DCBROWSE und leeres Array

Moderator: Moderatoren

DCBROWSE und leeres Array

Beitragvon Manfred » Di, 29. Nov 2016 11:28

Ich stosse gerade auf ein merkwürdiges Problem. Kann es sein, das man kein leeres Array browsen kann?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
 
Beiträge: 16575
Registriert: Di, 29. Nov 2005 17:58
Wohnort: Kreis Wesel

Re: DCBROWSE und leeres Array

Beitragvon Manfred » Di, 29. Nov 2016 11:37

sorry, muß es korrigieren. Ein leeres Array ist es nicht, ich habe es in dem Fall statt mit Werten, mit {"","",""} gefüllt. Also eigentlich eine leere Zeile. Das war mein erster Versuch das Problem anzugehen.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
 
Beiträge: 16575
Registriert: Di, 29. Nov 2005 17:58
Wohnort: Kreis Wesel

Re: DCBROWSE und leeres Array

Beitragvon Tom » Di, 29. Nov 2016 11:53

Das Problem liegt an der Funktion "DC_GetColArray()". Die antwortet bei leeren Arrays immer mit Strings, wodurch es zu Datentypenfehlern kommt. Ich hatte schon vor einer Weile angeregt, dass man ihr Defaults (andere Datentypen) übergeben können sollte, aber bis Roger das macht, muss man selbst agieren:

Code: Alles auswählen
DCBROWSECOL DATA {||IF(Len(aArray)=0,'-',DC_GetColArray(1,oBrowse))} ...
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6728
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin

Re: DCBROWSE und leeres Array

Beitragvon Manfred » Di, 29. Nov 2016 12:44

Hi Tom,
mag sein dass ich mich etwas blöde anstelle, aber es klappt nicht.
Das DATA mußte gegen DATALINK getauscht werden, weil es sonst mit dem Codeblock einen Fehler gab beim cmpilieren, aber so
Code: Alles auswählen
@ 15,5 DCBROWSE oDialogZusatz:oBrowseVerein;
                    COLOR {|| CursorFarbe("array",oDialogZusatz,Dc_getColArray(0,oDialogZusatz:oBrowseVerein))};
               CURSORMODE XBPBRW_CURSOR_ROW;
                     DATALINK {||IF(Len(oDialogZusatz:aVerein)=0,"-",DC_GetColArray(1,oDialogZusatz:oBrowseVerein))};
                NOHSCROLL;
              NOSOFTTRACK;
                   PARENT oDialogZusatz:oRahmenBrowseVerein;
                     SIZE DCGUI_PARENTWIDTH-10,DCGUI_PARENTHEIGHT - oDialogZusatz:nPbHoehe

          DCBROWSECOL ELEMENT VEREIN_BEZ;
                       HEADER "Bezeichnung" HCOLOR GRA_CLR_BLACK,GRA_CLR_GREEN;
                       PARENT oDialogZusatz:oBrowseVerein;
                        WIDTH 200
          DCBROWSECOL ELEMENT VEREIN_ART;
                       HEADER "Art" HCOLOR GRA_CLR_BLACK,GRA_CLR_GREEN;
                       PARENT oDialogZusatz:oBrowseVerein;
                        WIDTH 30

gibt es die Fehlermeldung
DC-ReadGui() error! Browse has no data source

was mache ich falsch?
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
 
Beiträge: 16575
Registriert: Di, 29. Nov 2005 17:58
Wohnort: Kreis Wesel

Re: DCBROWSE und leeres Array

Beitragvon Wolfgang Ciriack » Di, 29. Nov 2016 12:55

Gib mal als leeres Array {{"","",""}} an.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2245
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: DCBROWSE und leeres Array

Beitragvon Manfred » Di, 29. Nov 2016 12:57

Hi Wolfgang,
da bin ich gerade bei. Das war sicherlich ein blöder Fehler, aber es klappt immer noch nicht richtig. Den Grund dafür suche ich aber noch.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
 
Beiträge: 16575
Registriert: Di, 29. Nov 2005 17:58
Wohnort: Kreis Wesel

Re: DCBROWSE und leeres Array

Beitragvon Wolfgang Ciriack » Di, 29. Nov 2016 13:00

Ich sorge eigentlich schon beim Erstellen des Arrays dafür, dass es nicht leer ist, indem ich notfalls ein entsprechendes Leerelement einfüge.
Viele Grüße
Wolfgang
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 2245
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin

Re: DCBROWSE und leeres Array

Beitragvon Tom » Di, 29. Nov 2016 13:34

Ich habe die DATA-Klausel von DCBROWSECOL gemeint, nicht die von DCBROWSE. Letztere gibt das zu browsende Array an, erstere ist der Codeblock für die Spaltendaten.
Herzlich,
Tom
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
 
Beiträge: 6728
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin

Re: DCBROWSE und leeres Array

Beitragvon Manfred » Di, 29. Nov 2016 13:57

@Wolfgang,
da ich im Moment den vielen Ratschlägen folge mehr mit Arrays zu machen, stoße ich hier und da auf ein paar Dinge, die ich so bisher nicht wußte. Deshalb mußte ich das auch lernen.
@Tom,
Danke, das habe ich so nicht erkannt (Wald, Bäume usw.). Werde es mal versuchen.
Gruß Manfred
Mitglied der XUG Leverkusen
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
 
Beiträge: 16575
Registriert: Di, 29. Nov 2005 17:58
Wohnort: Kreis Wesel


Zurück zu eXpress++

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 1 Gast