Hallo,
ich nutze seit neuestem XbpBrowse intensiver.
Nun kommt es in meiner Anwendung öfters zu dem Fall, daß in einem XbpBrowse-Dialog (noch) keine Datensätze vorhanden sind.
Leider wird dann trotzdem ein leerer Datensatz angezeigt.
Kann man dies irgendwie verhindern?
Uli
XbpBrowse und leere Tabelle
Moderator: Moderatoren
- Bertram Hansen
- Foren-Moderator
- Beiträge: 1017
- Registriert: Di, 27. Sep 2005 8:55
- Wohnort: 51379 Leverkusen
- Hat sich bedankt: 28 Mal
- Danksagung erhalten: 20 Mal
- Kontaktdaten:
Hallo Uli,
meinst Du eventuell nur die Darstellung von leeren Datensätzen bei bestimmten Datentypen (numerisch = 0 oder logisch = .F.)?
Bei dem Datentype Zeichenkette wird bei mir "nichts" angezeigt.
meinst Du eventuell nur die Darstellung von leeren Datensätzen bei bestimmten Datentypen (numerisch = 0 oder logisch = .F.)?
Bei dem Datentype Zeichenkette wird bei mir "nichts" angezeigt.
Gruß Bertram
http://www.tobax.de
Mitglied der XUG Cologne
Mitglied der XUG Osnabrück
Beisitzer des Deutschsprachige Xbase-Entwickler e.V.
Solange Kakaobohnen an Bäumen wachsen ist Schokolade Obst!
- Tom
- Der Entwickler von "Deep Thought"
- Beiträge: 9380
- Registriert: Do, 22. Sep 2005 23:11
- Wohnort: Berlin
- Hat sich bedankt: 102 Mal
- Danksagung erhalten: 361 Mal
- Kontaktdaten:
Hallo, Uli.
Eine Datenbank ohne Datensätze gibt es bei Xbase genaugenommen nicht. Selbst bei EoF() liefert die Tabelle immer einen leeren Datensatz zurück, den "Phantom-Datensatz". Der enthält dann je nach Struktur leere Strings, .F. für logische Felder, das Null-Datum (" . . ") und Nullen bei numerischen Feldern (0 oder 0.00 usw.). Du müsstest also in den Daten-Codeblöcken Deines Browses abfangen, ob die Datenquelle auf Eof() steht - und dann entsprechend reagieren.
Eine Datenbank ohne Datensätze gibt es bei Xbase genaugenommen nicht. Selbst bei EoF() liefert die Tabelle immer einen leeren Datensatz zurück, den "Phantom-Datensatz". Der enthält dann je nach Struktur leere Strings, .F. für logische Felder, das Null-Datum (" . . ") und Nullen bei numerischen Feldern (0 oder 0.00 usw.). Du müsstest also in den Daten-Codeblöcken Deines Browses abfangen, ob die Datenquelle auf Eof() steht - und dann entsprechend reagieren.
Herzlich,
Tom
Tom
- Jan
- Marvin
- Beiträge: 14659
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Wenn das Problem "nur" ist, daß in dem Phantom-Datensatz im Browse nichtssagende Werte drin stehen (die bei "keinem vorhandenen" Datensatz natürlich irritieren), dann hab ich das anders gelöst. Ich habe nämlich das Problem, daß in vorhandenen Datensätzen Sachen angezeigt werden, die nur irritieren (wenn da nämlich nichts drin steht in dem Feld). Also habe ich im XbpColumn eine IIF()-Abfrage drin, die bei unerwünschten Werten ein "" im Browse anzeigt. Ungefähr so, wie ich im Browse auch kein .T. anzeige sondern z. B. ein "Ja".
Jan
Jan
- brandelh
- Foren-Moderator
- Beiträge: 15697
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 66 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Hi,
im XbpColum():datalink wird ja ein Codeblock eingtragen, der den anzuzeigenden Text zurückgibt. In diesem Codeblock kann man dann z.B. nach eof() oder anderen Dingen abfragen und so die Anzeige manipulieren. Ich habe auf diese Weise auch schon die Summe von 2 DBF Feldern anzeigen lassen.
im XbpColum():datalink wird ja ein Codeblock eingtragen, der den anzuzeigenden Text zurückgibt. In diesem Codeblock kann man dann z.B. nach eof() oder anderen Dingen abfragen und so die Anzeige manipulieren. Ich habe auf diese Weise auch schon die Summe von 2 DBF Feldern anzeigen lassen.
Gruß
Hubert
Hubert
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2828
- Registriert: Fr, 10. Feb 2006 9:51
- Wohnort: Aachen
- Hat sich bedankt: 259 Mal
- Danksagung erhalten: 12 Mal
- Kontaktdaten:
Hallo allerseits,
danke für die vielen Tips.
Ich habe es zunächst mit dem EOF-Hinweis umgesetzt.
Allerdings wird so immer noch ein "leerer" Datensatz hervorgehoben angezeigt.
Bei etwas mehr Zeit habe ich vor, von XbpBrowse eine eigene Klasse abzuleiten. Bei dieser kann man dann vielleicht mit Hilfe von :itemMarked() bei EOF() kurzerhand die (Vorder- und) Hintergrundfarbe von XBP_PP_COL_DA_HILITE.. auf XBP_PP_COL_DA_.. setzen
Uli
danke für die vielen Tips.
Ich habe es zunächst mit dem EOF-Hinweis umgesetzt.
Allerdings wird so immer noch ein "leerer" Datensatz hervorgehoben angezeigt.
Bei etwas mehr Zeit habe ich vor, von XbpBrowse eine eigene Klasse abzuleiten. Bei dieser kann man dann vielleicht mit Hilfe von :itemMarked() bei EOF() kurzerhand die (Vorder- und) Hintergrundfarbe von XBP_PP_COL_DA_HILITE.. auf XBP_PP_COL_DA_.. setzen
Uli