DCBROWSE und DataObject [ERLEDIGT]
Moderator: Moderatoren
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
DCBROWSE und DataObject [ERLEDIGT]
Hi,
wie macht man das eigentlich mit dem DCBROWSE DCBROWSECOL im Zusammenhang mit DataObjects als Array? Bisher gebe ich ja immer ELEMENT NR an, das ist ja nicht mehr Sinn und Zewck bei DataObject. Die können/werden ja jetzt direkt mit den Namen angesprochen. Aber wie hat Roger das vorgesehen? Oder geht dass gar nicht zu nutzen? Ich hatte mal kurz etwas probiert, bin aber damit auf die Schnauze gefallen. War sicherlich total falsch!
wie macht man das eigentlich mit dem DCBROWSE DCBROWSECOL im Zusammenhang mit DataObjects als Array? Bisher gebe ich ja immer ELEMENT NR an, das ist ja nicht mehr Sinn und Zewck bei DataObject. Die können/werden ja jetzt direkt mit den Namen angesprochen. Aber wie hat Roger das vorgesehen? Oder geht dass gar nicht zu nutzen? Ich hatte mal kurz etwas probiert, bin aber damit auf die Schnauze gefallen. War sicherlich total falsch!
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject
Schau die mal das Beispiel unter Samples\Browse\objects.prg an, sollte als Grundlage passen. Hab es aber selbst noch nicht benutzt.
Viele Grüße
Wolfgang
Wolfgang
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject
hervorragend. Das Zauberwort ist OBJECTVAR und name statt ELEMENT und nummer.
Danke, das hatte ich total überlesen.
Danke, das hatte ich total überlesen.
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: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
leider ein weiteres Verständnisproblem.
Wie spreche ich denn das Objectvar an?
Ich habe ein logisches Feld in dem Dataobject und möchte gerne bei .T. "Ja" und bei .F. "Nein" anzeigen. Ich würge mir die ganze Zeit einen ab, aber es will nicht klappen.
Der nächste Schritt wäre dann mittels Doppelklick .T. gegen .F. zu tauschen. Ich bekomme das nicht hin. Ich weiß nicht, wie man das Object anspricht.
Wie spreche ich denn das Objectvar an?
Ich habe ein logisches Feld in dem Dataobject und möchte gerne bei .T. "Ja" und bei .F. "Nein" anzeigen. Ich würge mir die ganze Zeit einen ab, aber es will nicht klappen.
Der nächste Schritt wäre dann mittels Doppelklick .T. gegen .F. zu tauschen. Ich bekomme das nicht hin. Ich weiß nicht, wie man das Object anspricht.
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Code: Alles auswählen
DCBROWSECOL OBJECTVAR {|o|IF(o:logischesFeld,"ja","nein")} PARENT oBROWSE HEADER "JaNein" WIDTH 6
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
ach, darf da kein DATA vorstehen? Dann würde das den Fehler erklären.
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Auf OBJECTVAR folgt entweder der Name einer iVar oder ein Codeblock, der das Objekt als Parameter bekommt. DATA ist nur bei Arrays oder Tabellen nötig, wenn statt der direkten Daten auf das Ergebnis eines Codeblocks zugegriffen werden soll. Es ersetzt dort FIELD oder ELEMENT.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
und wie setze ich COLOR in Abhängigkeit vom Wert? Also "JA" grün und "NEIN" rot.
ich habe naiverweise mal versucht
Das gibt aber eine Fehlermeldung. Da wird wohl versucht auf eine Membervar zuzugreifen, was dann nicht klappt.
ich habe naiverweise mal versucht
Code: Alles auswählen
COLOR {|o| IF(o:webfrei,GRA_CLR_GREEN,GRA_CLR_RED) };
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Im Codeblock bekommst Du den Zelleninhalt als Parameter. Lass es Dir einfach mal anzeigen.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
ich stehe mal wieder auf der Leitung. Wie mache ich das? Meine Versuche führen alle ins Leere.
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Der COLOR-Codeblock bekommt das, was Dir oColumn:DataArea:GetCell() auch zurückliefern würde, also das konkrekte Datum in der Zelle. Wenn Du ein Array von Objekten im Browser braust und die Spalte enthält z.B. o:Name, dann wäre in "{|x| ... }" das x gleich o:Name.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
hm,
ich habe den Code von mir weiter oben mit dem Color Block ausprobiert und das |o| angeschaut. da war ein leerer string drin.
ich habe den Code von mir weiter oben mit dem Color Block ausprobiert und das |o| angeschaut. da war ein leerer string drin.
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: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
ich muß den Thread nochmal erweitern.
Das Array soll nun mit einem Filter versehen werden können. Das kommt aber jetzt erst zum Schluß, vorher muß ich noch etwas anderes klären. Ich habe mir einen Button gebaut, der, wenn er gedrückt wird, einen Codeblock erzeugen soll, der das Array im Browse filtern soll. Es gibt Browsespalten, die sortiert sind. Es soll so ablaufen: auf der Zeile, auf der der Cursor steht, soll die Spalte genommen werden, die sortiert ist und der Wert der dann in der sortierten Spalte steht soll als Grundlage für den Filter dienen. Welche Spalte sortiert ist, merke ich mir über eine Variable Jetzt dachte ich, es genügt, wenn ich in der aufgerufenen Funktion prüfe, von welcher Browserzeile ich komme und welche Spalte sortiert ist (siehe Variablen von vorhin) um dann auszulesen was in der besagten Zele/Spalte für ein Wert steht um den dann als Filter zu setzen und ein .T. zu erlangen, wenn es stimmt. Jetzt wurde meine Vorfreude dadurch getrübt, dass die Rückgabe der Sortierspalte leider nicht der Folge im DataObject folgt. Da ich zu dem Zeitpunkt zwar die Spalte wüßte, aber nicht die Dataobject Bezeichnung muß ich natürlich den Wert und nicht den Namen angeben. Damit lande ich aber auf die logische Reihenfolge im Object/Array und nicht der, die in der Browserspalten steht. Was mache ich nun?
Das Array soll nun mit einem Filter versehen werden können. Das kommt aber jetzt erst zum Schluß, vorher muß ich noch etwas anderes klären. Ich habe mir einen Button gebaut, der, wenn er gedrückt wird, einen Codeblock erzeugen soll, der das Array im Browse filtern soll. Es gibt Browsespalten, die sortiert sind. Es soll so ablaufen: auf der Zeile, auf der der Cursor steht, soll die Spalte genommen werden, die sortiert ist und der Wert der dann in der sortierten Spalte steht soll als Grundlage für den Filter dienen. Welche Spalte sortiert ist, merke ich mir über eine Variable Jetzt dachte ich, es genügt, wenn ich in der aufgerufenen Funktion prüfe, von welcher Browserzeile ich komme und welche Spalte sortiert ist (siehe Variablen von vorhin) um dann auszulesen was in der besagten Zele/Spalte für ein Wert steht um den dann als Filter zu setzen und ein .T. zu erlangen, wenn es stimmt. Jetzt wurde meine Vorfreude dadurch getrübt, dass die Rückgabe der Sortierspalte leider nicht der Folge im DataObject folgt. Da ich zu dem Zeitpunkt zwar die Spalte wüßte, aber nicht die Dataobject Bezeichnung muß ich natürlich den Wert und nicht den Namen angeben. Damit lande ich aber auf die logische Reihenfolge im Object/Array und nicht der, die in der Browserspalten steht. Was mache ich nun?
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: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
hier mal ein wenig Code
Browser
Code der aufgerufen wird vom Button um den Filter zu erstellen.
Browser
Code: Alles auswählen
@ 15,5 DCBROWSE oDialogZusatz:oBrowse;
CURSORMODE XBPBRW_CURSOR_ROW;
DATA oDialogZusatz:aAuftragoffen;
FILTER oDialogZusatz:bBrowsefilter;
ITEMMARKED {|| ItemmarkedBrowse(oDialogZusatz),;
dc_getrefresh(getlist),;
dc_getorigset(getlist);
};
NOSOFTTRACK;
PARENT oDialogZusatz:oRahmenBrowse;
PREEVAL {|| oDialogZusatz:oBrowse:headerRbDown := {|aMousePos, nColPos, self| MausImKopf(nColPos,oDialogZusatz,{1,2,4,6})}};
SIZE DCGUI_PARENTWIDTH-10,DCGUI_PARENTHEIGHT - 20
Code: Alles auswählen
IF ! ::lBrowseFilter
nSortSpalte := Val(SubStr(::cBrowseSort,7,3)) // jetzt bekomme ich die Spalte, nach der sortiert ist.
nZeile := DC_GetColArray(0,::oBrowse) // jetzt die zeile von der wir kommen
cBrowseInhalt := ::aAuftragOffen[nZeile,nSortSpalte] // und jetzt der Filterinhalt der Spaltenzeile
::bBrowseFilter := {|x| x[nSortSpalte] = cBrowseInhalt}
::lBrowseFilter := .T.
ELSE
::bBrowseFilter := {|| .T.}
::lBrowseFilter := .F.
ENDIF
DC_GetBrowArray(::oBrowse,::aAuftragOffen) // das muß hier hin, damit das Array angezeigt wird im Browse
::oBrowse:gotop()
::oBrowse:refreshAll()
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!!
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2945
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 14 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Schau die mal die Funktion DC-GetColArray() an, die liefert die das Element, was du benötigst.
Viele Grüße
Wolfgang
Wolfgang
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
Hi Wolfgang,
wie müßte ich das angehen? Wenn ich statt der 0 die nSortSpalte angebe, bekomme ich das gleich Ergebnis wie mit meiner Methode. Und das ist nicht das wa sich brauche.
wie müßte ich das angehen? Wenn ich statt der 0 die nSortSpalte angebe, bekomme ich das gleich Ergebnis wie mit meiner Methode. Und das ist nicht das wa sich brauche.
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: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
jetzt habe ich mir einen Workaround programmiert.
ich merke mir jetzt wie das DataObject IVar heißt und spreche es direkt an.
leider wird aber der Browser nicht aktualisiert. Was mache ich denn nun schon wieder falsch?
Beim Erststart stht der Filterblock auf {|| .T.} das klappt. selbst wenn ioch da direkt einen andere Bedingung rein schreibe, wird der Filter richtig interpretiert. Aber im nachhinein nicht mehr, wenn ich ihn ändere über oben angeführte Funktion. Ich dachte ein DC-GetBrowArray() genügt mit einem refreshall() dahinter? Stattdessen ändert sich nichts in der Anzeige, aber der Cursor läßt sich nicht mehr bewegen. Alles im Browse steht still.
Auch wenn ich den Filter wieder zurücksetze im Elsebereich, klappt es nicht mehr.
ich merke mir jetzt wie das DataObject IVar heißt und spreche es direkt an.
Code: Alles auswählen
IF ! ::lBrowseFilter
nZeile := DC_GetColArray(0,::oBrowse) // jetzt die zeile von der wir kommen
cBrowseInhalt := ::aAuftragOffen[nZeile]:&(::cBrowseSortDoName) // und jetzt der Filterinhalt der Spaltenzeile
::bBrowseFilter := {|x| x:&(::cBrowseSortDoName) = cBrowseInhalt}
::lBrowseFilter := .T.
ELSE
::bBrowseFilter := {|| .T.}
::lBrowseFilter := .F.
ENDIF
DC_GetBrowArray(::oBrowse,::aAuftragOffen) // das muß hier hin, damit das Array angezeigt wird im Browse
// ::oBrowse:gotop()
::oBrowse:refreshAll()
Beim Erststart stht der Filterblock auf {|| .T.} das klappt. selbst wenn ioch da direkt einen andere Bedingung rein schreibe, wird der Filter richtig interpretiert. Aber im nachhinein nicht mehr, wenn ich ihn ändere über oben angeführte Funktion. Ich dachte ein DC-GetBrowArray() genügt mit einem refreshall() dahinter? Stattdessen ändert sich nichts in der Anzeige, aber der Cursor läßt sich nicht mehr bewegen. Alles im Browse steht still.
Auch wenn ich den Filter wieder zurücksetze im Elsebereich, klappt es nicht mehr.
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Dir ist schon klar, dass es mit der FILTER-Klausel im DCBROWSE für Arrays einen Mechanismus gibt, der das automatisch erledigt - und der Dir eine Menge Arbeit abnehmen kann?
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
nein, nicht wirklich. Aber irgendwo muß ich ja anfangen. Welchen meinst Du denn?
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Den, von dem ich da geschrieben habe.
Der FILTER-Codeblock wird für jede Browsezeile evaluiert. Ich mache es meistens so, dass ich über eine Variable festlege, ob überhaupt ein Filter aktiv ist ("lFilter"), dann wird die Zeile entsprechend ausgewertet, meistens allerdings über eine Funktion, weil die Parameter komplexer sind. Ist kein Filter aktiv, wird jede Zeile angezeigt.
Code: Alles auswählen
@ 1,1 DCBROWSE oBrowse DATA aMyArray .... FILTER {|a|IF(lFilter,a[nAktuelleSpalte] = <irgendwas>,.T.)}
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
verstehe ich nicht. Wo liegt der Unterschied zu dem was ich bisher gebaut habe? Es muß doch ein logischer Wert zurückgeliefert werden und das tut es doch bei mir, oder nicht?
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Habe ich übersehen, Du verwendest ja die FILTER-Klausel. Dann brauchst Du aber den ganzen DC_GetBrowArray-Schnödeldödel nicht, weil die FILTER-Klausel mit jedem :RefreshAll() evaluiert wird. Mit DC_GetBrowArray() jubelst Du dem Browse ja eine neue Datenquelle unter (oBrowse:DataSource), während Du aber eigentlich nur willst, dass die Anzeige auf bestimmte Zeilen begrenzt wird. Das Array darf dafür unverändert bleiben, weil DCBROWSE die Bedingungen ja selbst in allen Navigationsblöcken prüft. Du musst nur für den Filter eine Bedingung formulieren, die er auch auswerten kann. bFilterBlock muss dafür einzelne Arrayzeilen als Parameter entgegennehmen und für diese jeweils .T. oder .F. zurückliefern, je nachdem, ob sie angezeigt werden sollen oder nicht.
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
irgendwas ist da faul. Der Codeblock muß doch nur .T. oder .F. zurückliefern..... was bedutet: Entweder alles oder gar nichts anzeigen, wenn nur mit .T. und .F. gearbeitet wird
ich habe das mal gemacht nur um zu sehen, ob einmal alles und einmal nmichts angezeigt wird.
Resultat: beim 1.Aufruf ist der Codeblock {|| .T. } und es wird alles angezeigt. So ist es ja richtig.
wenn ich den Button drücke, dann wird der Codeblock auf .F. gesetzt und alles friert ein im Browser ich komme auch mit Rückstellung auf .T. nicht wieder in den Scrollmodus. Tilt, Finito, Feierabend.
Was mache ich da falsch?
ich habe das mal gemacht nur um zu sehen, ob einmal alles und einmal nmichts angezeigt wird.
Code: Alles auswählen
IF ! ::lBrowseFilter
nZeile := DC_GetColArray(0,::oBrowse) // jetzt die zeile von der wir kommen
cBrowseInhalt := ::aAuftragOffen[nZeile]:&(::cBrowseSortDoName) // und jetzt der Filterinhalt der Spaltenzeile
::bBrowseFilter := {|| .F.}
::lBrowseFilter := .T.
ELSE
::bBrowseFilter := {|| .T.}
::lBrowseFilter := .F.
ENDIF
::oBrowse:refreshAll()
wenn ich den Button drücke, dann wird der Codeblock auf .F. gesetzt und alles friert ein im Browser ich komme auch mit Rückstellung auf .T. nicht wieder in den Scrollmodus. Tilt, Finito, Feierabend.
Was mache ich da falsch?
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: 9394
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 104 Mal
- Danksagung erhalten: 364 Mal
- Kontaktdaten:
Re: DCBROWSE und DataObject [ERLEDIGT]
Mmh. Ich habe noch keinen Array-Filter ausprobiert, bei dem nichts mehr übrig bleibt. Wie verhält sich Dein Browse, wenn das Array schon beim Aufruf leer ist? Genau diese Situation generierst Du ja mit diesem Radikalfilter. Was passiert, wenn Du eine vernünftigere Bedingung wählst, etwa ein Filter auf ungerade Werte in irgendeiner numerischen Spalte oder so?
Herzlich,
Tom
Tom
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 70 Mal
Re: DCBROWSE und DataObject [ERLEDIGT]
ich habe beim Start einmal einen Wert eingegeben von dem ich weiß, das er ein parmal vorhanden ist. Das klappt.
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!!