DCBROWSECOL mit VALID im Array [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- 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]
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?
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!!
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!!
- Manfred
- 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
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.)
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!!
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!!
- Tom
- 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
Hallo, Manfred.
Probier doch mal das hier:
Und in "ValidCol" :
Probier doch mal das hier:
Code: Alles auswählen
... VALID {|c| c := validCol(c),.T. }
Code: Alles auswählen
FUNCTION validcol(c)
IF ! Empty(c)
IF ! ":" $ c
c := "33:33"
ENDIF
ENDIF
RETURN(c)
Herzlich,
Tom
Tom
- Manfred
- 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
Hi Tom,
klappt auch nicht, der gleiche Effekt
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!!
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!!
- Tom
- 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
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.
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
Tom
- Manfred
- 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
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.
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!!
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!!
- Tom
- 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]
Hallo, Manfred.
Keine Ursache!
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.
Keine Ursache!
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
Tom
- Manfred
- 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]
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?
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!!
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!!
- Tom
- 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]
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.
Herzlich,
Tom
Tom
- Manfred
- 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]
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:
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?
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] ) }
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!!
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!!
- Manfred
- 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]
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.
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!!
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!!
- Manfred
- 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]
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ß.
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!!
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!!
- Tom
- 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]
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.
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
Tom
- Manfred
- 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]
Aach so jeht datt.
Danke, wieder was dazugelernt.
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!!
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!!
- Manfred
- 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]
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.
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!!
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!!
- Tom
- 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]
Wenn ich das hier mache:
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.
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
Herzlich,
Tom
Tom
- Manfred
- 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]
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.
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!!
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!!
- Tom
- 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]
Wis?
Der zitierte Code funktioniert so, ohne Änderungen an irgendwelchen Klammern.
Der zitierte Code funktioniert so, ohne Änderungen an irgendwelchen Klammern.
Herzlich,
Tom
Tom
- Manfred
- 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]
So geht es nur
lasse ich die {}weg, dann kommen keine Parameter
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
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!!
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!!