DCBROWSECOL mit VALID im Array [ERLEDIGT]

Moderator: Moderatoren

Antworten
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Hi,

im Moment bin ich wieder total durcheinander. Ich habe einen browse gebaut, der Daten aus einem Array erhält. In den Columns soll aber die Möglichkeit bestehen Daten zu erfassen. Das Klappt auch, aber es gibt mal wieder Probleme bei der Validierung.

Ich gebe dem Anwender die Möglichkeit Uhrzeiten ohne Doppelpunkt einzugeben, also z.B. 0030. Nach Return, rufe ich eine Funktion auf, die einen Doppelpunkt dazulügt und den neuen Wert in das Arrayfeld schreibt. Das klappt auch. In dem Array steht der Wert mit Doppelpunkt. Aber kurz danach steht wieder der 1. Wert ohne Doppelpunkt drin. Und auch im Array ist das dann der Fall.

Ich habe mir diese Aktion einmal über den Debugger angesehen und habe festgestellt, wenn express++ an die Stelle kommt oBrowse:refreshcurrent(), wird genau da wieder der alte Wert ins Array eingetragen und in die Column übernommen.

Nix mit Doppelpunkt.

Wo liegt mein Denkfehler?
Zuletzt geändert von Manfred am Fr, 15. Jan 2010 9:25, insgesamt 1-mal geändert.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array

Beitrag von Tom »

Code?
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array

Beitrag von Manfred »

Code: Alles auswählen

PROCEDURE variantenverwaltung(oRouten,oLinien)
          LOCAL cHeader   := ""
          LOCAL cVersion  := "14.01.2010"
          LOCAL getlist   := {}
          LOCAL GetOptions
          LOCAL nFensterBreite := 100
          LOCAL nFensterHoehe  := 700
          LOCAL nASpalte       := 0
          LOCAL nAZeile        := 0
          LOCAL nI             := 0
          LOCAL nPbBreite      := 70
          LOCAL nPbHoehe       := 30

          LOCAL oBrowse        := NIL
          LOCAL oDialog        := NIL
          LOCAL oGruppeBrowse  := NIL
          LOCAL oHaltestellen  := haltestellen():new()
          LOCAL oPbEnde        := NIL
          LOCAL oStrecken      := strecken():new()
          LOCAL oTagesarten    := tagesarten():new()
//          LOCAL oVarianten     := varianten():new()
          LOCAL oVariantenkopf := variantenkopf():new()

          MEMVAR oHauptDialog

          nFensterBreite  := oHauptDialog:clientsize[1]
          oHaltestellen:db_oeffnen()
          oStrecken:db_oeffnen("idroute",,,,,,,,,,,,.T.)
          oTagesarten:db_oeffnen()
          oVariantenkopf:db_oeffnen("idroute")
          (oStrecken:nArea)->(DbSetScope(SCOPE_BOTH,Str((oRouten:nArea)->id,8,0)))
          (oVariantenKopf:nArea)->(DbSetScope(SCOPE_BOTH,Str((oRouten:nArea)->id,8,0))) // damit nur die eine Route sichtbar ist
          (oVariantenkopf:nArea)->(DbSetRelation(oTagesarten:nArea,{|| Str((oVariantenkopf:nArea)->idtagesart,8,0) },"Str((oVariantenkopf:nArea)->idtagesart,8,0)","id"))
          oStrecken:aVarianten := {}
          DO WHILE ! (oStrecken:nArea)->(Eof())
             IF oHaltestellen:satzsuchen(Str((oStrecken:nArea)->idhaltest,8,0),,"id",,,,,,.F.)
                AAdd(oStrecken:aVarianten,{(oHaltestellen:nArea)->bezlang})
                nAZeile++
                FOR nASpalte := 1 TO 51
                    AAdd(oStrecken:aVarianten[nAZeile],"    ")
                NEXT
             ENDIF
             (oStrecken:nArea)->(Dbskip())
          ENDDO
//------------------------------------------------------------------------------
          @ 45,5 DCGROUP oGruppeBrowse;
                 CAPTION "Fahrvarianten Linie: " + Trim((oLinien:nArea)->bez) + " Route: " + Trim((oRouten:nArea)->bez);
                  PARENT oDialog;
                    SIZE DCGUI_PARENTWIDTH-20,DCGUI_PARENTHEIGHT-50
//------------------------------------------------------------------------------
          oVariantenkopf:skipDb(,,,,.F.,1)                                      // zum Anfang, damit gleich die Spalten erzeugt werden können
          @ 15,5 DCBROWSE oBrowse;
                     DATA oStrecken:aVarianten;
                     EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITDOWN;
               FREEZELEFT {1};
                HEADLINES 2;
              NOSOFTTRACK;
                   PARENT oGruppeBrowse;
                     SIZE DCGUI_PARENTWIDTH-15,DCGUI_PARENTHEIGHT-60

          DCBROWSECOL ELEMENT 1;
               HEADER "Streckenfolge";
               PARENT oBrowse;
              PROTECT {|| .T.};
                WIDTH 170

          FOR nI := 2 TO 51                                                     // 50 Spalten werden pauschal gebaut
              IF ! (oVariantenKopf:nArea)->(Eof())
                 cHeader := (oTagesarten:nArea)->bez
              ELSE
                 cHeader := "Variante;" + Alltrim(Str(nI-1))
              ENDIF
              DCBROWSECOL ELEMENT nI;
                   HEADER cHeader;
                   PARENT oBrowse;
                    VALID {|| validCol(oStrecken,oBrowse) };
                    WIDTH 50
          NEXT
//------------------------------------------------------------------------------
          @ 5,5 DCPUSHBUTTON;
                      ACTION {|| DC_ReadGuiEvent(DCGUI_EXIT_ABORT,GetList)};
                ALIGNCAPTION BS_MULTILINE;
                     CAPTION 7755;
                        EVAL {|| oPbEnde:setPos( { 5,5 } ) };
                      OBJECT oPbEnde;
                      PARENT oGruppeBrowse;
                        SIZE nPbBreite, nPbHoehe;
                     TABSTOP
//------------------------------------------------------------------------------
          DCGETOPTIONS;
                BORDER XBPDLG_SIZEBORDER;
            HILITEGETS GRA_CLR_CYAN;
           NOMAXBUTTON;
           NOMINBUTTON;
                 PIXEL;
            SAYOPTIONS XBPSTATIC_TEXT_VCENTER+XBPSTATIC_TEXT_RIGHT;
          TOOLTIPCOLOR GRA_CLR_BLACK, GRA_CLR_YELLOW;
           WINDOWWIDTH nFensterBreite;
          WINDOWHEIGHT nFensterHoehe

          DCREAD GUI;
           APPWINDOW oHauptDialog:drawingArea;
                EVAL {|| SetAppFocus(oBrowse)};
             OPTIONS GetOptions;
              PARENT @oDialog;
               TITLE "Varianten " + cVersion
          (oStrecken:nArea)->(DbClearScope())
          (oVariantenKopf:nArea)->(DbClearScope())
          (oVariantenkopf:nArea)->(DbClearRelation())
          oHaltestellen:schliesse_datenbank()
          oStrecken:schliesse_datenbank()
          oTagesarten:schliesse_datenbank()
          oVariantenkopf:schliesse_datenbank()
          RETURN
********************************************************************************
FUNCTION validcol(oStrecken,oBrowse)
         IF ! Empty(oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos])
            IF ! ":" $ oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos]
               oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos] := "33:33" //PosIns(oStrecken:aVarianten[oBrowse:rowpos,oBrowse:colpos],":",3)
            ENDIF
         ENDIF
         DC_GetBrowArray(oBrowse,oStrecken:aVarianten)
         RETURN(.T.)
Ich habe mal 33:33 reingeschrieben als festen Wert, damit man wirklich was erkennen kann, hat also nichts echtes zu bedeuten.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array

Beitrag von Tom »

Hallo, Manfred.

Probier doch mal das hier:

Code: Alles auswählen

... VALID {|c| c := validCol(c),.T. }
Und in "ValidCol" :

Code: Alles auswählen

FUNCTION validcol(c)
         IF ! Empty(c)
            IF ! ":" $ c
               c := "33:33"
            ENDIF
         ENDIF
         RETURN(c)
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array

Beitrag von Manfred »

Hi Tom,

klappt auch nicht, der gleiche Effekt
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array

Beitrag von Tom »

Hallo, Manfred.

Das Problem ist, dass beim Edit im Browse ein neues DC_XbpGet aktiv wird, das seinen Inhalt erst in die Datenquelle zurückschreibt, wenn es verlassen/zerstört wird. Glücklicherweise ist genau dieses SLE der zweite (nicht dokumentierte) Parameter beim VALID im DCBROWSECOL. Wenn Du das hier zusammenfährst, kannst Du die Spalte 4 (Uhrzeit) editieren, und die Uhrzeit wird um eckige Klammern ergänzt, wenn da noch keine sind. Dies geschieht im Browse und in der Datenquelle (siehe Parameter). Viel Spaß damit.

Code: Alles auswählen

#include "dcdialog.ch"
#include "appevent.ch"

#pragma library("dclipx.lib")

PROCEDURE appsys() ; RETURN

PROCEDURE main()
LOCAL getlist    := {}
LOCAL GetOptions
LOCAL oBrowse

aDir := Directory()

@ 1,1 DCBROWSE oBrowse DATA aDir SIZE 100,25 FIT EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITDOWN
DCBROWSECOL ELEMENT 1 WIDTH 10 PARENT oBROWSE
DCBROWSECOL ELEMENT 2 WIDTH 10 PARENT oBROWSE
DCBROWSECOL ELEMENT 3 WIDTH 10 PARENT oBROWSE
DCBROWSECOL ELEMENT 4 WIDTH 10 PARENT oBROWSE VALID {|c,o|aDir:=BrowValid(c,o,aDir,oBrowse),.T.}
DCBROWSECOL ELEMENT 5 WIDTH 10 PARENT oBROWSE

DCREAD GUI FIT ADDBUTTONS EVAL {||SetAppFocus(oBrowse)}
RETURN

FUNCTION BrowValid(c,oGet,aDir,oBrowse)
IF !"[" $ c
  c := "["+c+"]"
ENDIF
aDir[DC_BrowseRow(oBrowse),4] := c
oGet:SetData(c)
RETURN aDir
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array

Beitrag von Manfred »

Hi Tom,

nicht zu fassen. Das ist jetzt innerhalb kurzer Zeit, ein wiederholtes Mal, dass Du so geheime Dinge aus express++ herausfindest. Ich habe das nicht gesehen. Das hast Du doch bestimmt über Einzelschritte im Debugger herausgefunden, oder wußtest Du das so?

Vielen Dank, ich stand kurz davor eine andere Lösung zu nehmen.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Tom »

Hallo, Manfred.

Keine Ursache! :D

Der Gedankengang war eigentlich simpel: Roger erzeugt SLEs, wenn der Edit-Modus für das Browse genutzt wird. Im VALID-Codeblock muss er also irgendwie Zugriff darauf haben, denn man editiert ja nicht tatsächlich im Browse, sondern im überlagerten Control. Er muss also selbst im VALID-Codeblock an den EditBuffer des SLEs herankommen, was die Vermutung nahelegte, dass das SLE-Objekt einer der (nicht dokumentierten) Parameter des Codeblocks ist. Also habe ich einfach die Parameterliste ergänzt (VALID {|a,b,c,d,e,| ... }) und mir dort mit DC_DebugQout() anzeigen lassen, was in a,b,c,... so steckt. Gleich Nummer zwei war ein DC_XbpSLE, also wahrscheinlich genau das, was ich gesucht habe. Ausprobiert - und, siehe da: Es stimmte. Und dass erst am Ende - also nach der Validierung - der EditBuffer des SLEs wieder ausgelesen und in die Datenquelle zurückgeschrieben wird, das war das Hauptproblem. Was man in der Valid-Funktion mit SetData() leicht umgehen konnte.

Man muss nur ein bisschen darüber nachdenken (oder im Quellcode nachschauen, den hat man ja), wie das vermutlich funktioniert.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Ja,

ich bin immer noch oder wieder fasziniert, was man so alles aus Xbase++ rausholen kann. Da ich aber wohl immer noch an der Oberfläche kratze, denke ich an solche Dinge überhaupt nicht, also komme ich auch gar nicht auf die Idee danach zu suchen.

Ich habe sicherlich schon etliches in den letzten Monaten gelernt, aber es reicht nicht...

Aber mit den Anforderungen wächst die Kraft. Oder wie sagt man?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Tom »

Das ist das schöne daran, wenn man eXpress++ benutzt: Man kann sich austoben, ohne großartige Ahnung von OOP- und GUI-Programmierung zu haben, und während man das tut, lernt man genau darüber sehr viel. Als ich mit Xbase++ und eXpress++ angefangen habe, vor elf Jahren, wusste ich über beides genau: nichts, trotzdem stand die erste funktionierende Applikation ziemlich flink. Inzwischen könnte ich das alles locker selbst, aber ich muss nicht, schließlich macht eXpress++ weitenteils genau das, was ich brauche. Und wenn ich tiefer gehen möchte, wird der Sherlock rausgekramt und investigiert. 8)
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Pass öp, et geht wigger...

nachdem ich jetzt die Sache so laufen hatte, wurde doch noch etwas geändert.

Ich füge als "Zeile" ins Array eine Leerzeile ein, die ich im Browse ausblende, weil ich die 1.Zeile in den Spalten für temporäre Daten nutze.

Das mache ich so:

Code: Alles auswählen

FILTER {|a| ! Empty(a[1] ) }
das klappt auch, die erste Zeile ist ja leer und wird deshalb nicht angezeigt. Leider wird jeder Wert in den Spalten wieder auf den Ursprungswert zurückgesetzt, sobald ich das Feld verlasse. Ich habe mir die Sache mal mit dem Debugger angesehen bei der Validcol Funktion. Dort wird wohl die 1 Zeile des Arrays übergeben und nicht die Zeile/Spalte, in der die Eingabe erfolgte.
Watt nu?
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Jou,

hat sich auch erledigt.

In der Funktion muß ich immer oBrowse:rowpos+1 machen, dann klappt es. Ob das jetzt die glorreiche Lösung ist, glaube ich nicht, aber in meinem Fall, hilft es erstmal weiter.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Hi Tom,

da ich jetzt schon wieder vor einem depperten Problem mit Browse und Valid stehe, aber nicht nur fragen möchte, sage mir doch bitte, wie klappt das mit dem Abfragen der Parameterliste mit DC_DebugQout()? Ich habe keinerlei Vorstellung, was man da wie und vor allen Dingen wo einbauen muß.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Tom »

Hallo, Manfred.

Codeblöcke sind parametrisiert, aber man sieht manchmal nicht, welche und wie viele Parameter vorgesehen sind. Also tut man einfach so, als gäbe es sehr viele davon und debugt sie:

... VALID {|a,b,c,d,e,f|DC_DebugQout(a,b,c,d,e,f)}

DC_DebugQout() wirft alles an Parametern aus, was es bekommt, und auch NILs. Wenn Du rausbekommen hast, welche Parameter es gibt, kannst Du sie fallweise z.B. mit DC_Arrayview() oder DC_InspectObject() untersuchen.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Aach so jeht datt.

Danke, wieder was dazugelernt.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Nee,

tut mir ja echt leid, dass ich mich so schusselig anstelle, aber es wird nur ein Fenster geöffnet in dem steht von wo aufgerufen wurde.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Tom »

Wenn ich das hier mache:

Code: Alles auswählen

PROCEDURE MAIN()
LOCAL GetList    := {}
LOCAL c := Space(30)

@ 1,1 DCSAY "Name:" GET c VALID {|a,b,c,d,e,f|DC_DebugQout(a,b,c,d,e,f),.T.}

DCREAD GUI FIT ADDBUTTONS

RETURN
sehe ich nach dem Verlassen des SLEs im Debug-Fenster zwei Einträge (zweimal "DC_XbpGet"), also zwei Verweise auf Objekte. Das Valid hat also offenbar zwei Parameter - beide verweisen auf das SLE.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

Alles klar,

ich habe die Anleitung nochmals genau gelesen, die Werte in der Klammer müssen in geschweiften Klammern stehen. Dann wird da auch ein Schuh draus.
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Benutzeravatar
Tom
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 9357
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 101 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Tom »

Wis? :oops:

Der zitierte Code funktioniert so, ohne Änderungen an irgendwelchen Klammern.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21186
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: DCBROWSECOL mit VALID im Array [ERLEDIGT]

Beitrag von Manfred »

So geht es nur

Code: Alles auswählen

DCBROWSECOL FIELD (oVarianten&cNi:nArea)->abfahrt;
                   HEADER cHeader;
                   PARENT oBrowse;
                  PICTURE "@R 99:99";
                    VALID {|a,b,c,d,e,f,g,h,i,j,k,l| DC_DebugQout( {a,b,c,d,e,f,g,h,i,j,k,l} ) };
                    WIDTH 60
lasse ich die {}weg, dann kommen keine Parameter
Gruß Manfred
Mitglied der XUG Osnabrück
Schatzmeister des Deutschsprachige Xbase-Entwickler e.V.
großer Fan des Xbaseentwicklerwiki https://wiki.xbaseentwickler.de/index.p ... Hauptseite
Doof kann man sein, man muß sich nur zu helfen wissen!!
Antworten