XbpBrowse und anzeigbare Zeilen

Konzeptionelles, Technisches, Termine, Fragen zum Hersteller usw.

Moderator: Moderatoren

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

XbpBrowse und anzeigbare Zeilen

Beitrag von Manfred »

Hi,

ich komme im Moment nicht drauf, aber welche Möglichkeiten habe ich in einem Browse nur die Menge an Zeilen anzuzeigen, die auch belegt sind? In der Regel werden doch immer bis zum unteren Rand die Zeilen angezeigt, auch wenn nichts drin steht. Muß ich mir da irgendeine Kombination aus DbSkipper() und dann über rowCount usw. zusammenbauen, oder geht das auch anders.
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: 9367
Registriert: Do, 22. Sep 2005 23:11
Wohnort: Berlin
Hat sich bedankt: 102 Mal
Danksagung erhalten: 361 Mal
Kontaktdaten:

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von Tom »

Was willst Du tun? Soll sich die Höhe des Browses reduzieren, wenn ansonsten Leerzeilen dargestellt würden? Das wäre über SetPosAndSize() zu erreichen, wobei abhängig von den Presentation-Parametern und verfügbarer Datenmenge (Datensätze) errechnet werden müsste, wie groß das Browse werden muss.
Herzlich,
Tom
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von Manfred »

Hi Tom,

nee, ich habe mal ein Browse gesehen, das war größer als die Anzahl der Zeilen. Es waren aber immer nur die Zeilen sichtbar, die auch belegt waren. Das Browsefenster selbst, war immer gleich groß. Wenn ich also die Größe eines Browses hätte, in dem 20 Zeilen angezeigt werden könnten, dann möchte ich aber eben nur bei 3 Sätzen, 3 Zeilen sehen und nicht 3 gefüllte und 17 leere Zeilen. Da würde mich jetzt interessieren, ob das unter Xbase++ auch so gehen kann, oder ob IMMER ALLE Zeilen, egal ob leer oder gefüllt angezeigt werden. So war meine Frage gemeint.
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
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von AUGE_OHR »

Manfred hat geschrieben:nee, ich habe mal ein Browse gesehen, das war größer als die Anzahl der Zeilen. Es waren aber immer nur die Zeilen sichtbar, die auch belegt waren. Das Browsefenster selbst, war immer gleich groß. Wenn ich also die Größe eines Browses hätte, in dem 20 Zeilen angezeigt werden könnten, dann möchte ich aber eben nur bei 3 Sätzen, 3 Zeilen sehen und nicht 3 gefüllte und 17 leere Zeilen. Da würde mich jetzt interessieren, ob das unter Xbase++ auch so gehen kann, oder ob IMMER ALLE Zeilen, egal ob leer oder gefüllt angezeigt werden. So war meine Frage gemeint.
könnte es sein das du das "auffüllen" des Background vom XbpBrowse meinst ?

Code: Alles auswählen

   oBrowse:childList()[4]:type := XBPSTATIC_TYPE_TEXT
   oBrowse:childList()[4]:configure()
   oBrowse:childList()[4]:setColorBG( GRA_CLR_WHITE )
damit füllst du den Hintergrund so auf das dass XbpBrowse immer gleich gross erscheint.
gruss by OHR
Jimmy
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von Manfred »

Hi,

weiß ich nicht, ob wir das gleiche meinen. Ich wollte nur wissen, ob man nur Zeilen anzeigen kann, die einen Datensatz enthalten. Es bringt ja m.E. optisch nichts, wenn in einer DB nur 2 Sätze sind, aber im Browser X leere Zeilen angezeigt werden, nur weil das Fenster entsprechend groß ist. Und das Browsefenster anzupassen ist auch nicht elegant, weil dann das Risiko des Herumzappelns der Größe stören würde, wenn man an das Ende einer Db kommt und somit evtl. auch die Anzeigemenge weniger werden würde.
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
Rolf Ramacher
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 1930
Registriert: Do, 09. Nov 2006 10:33
Wohnort: Bergheim
Danksagung erhalten: 3 Mal
Kontaktdaten:

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von Rolf Ramacher »

Hi Manfred,

ich kann dir im Moment nicht folgen, was du möchtest. Wenn der Xbpbrowse() erzeugt wird, durchläufst du doch die Datenbank.
Und dann wird auch nur die Anzahl der Datensätze ins browse übertragen die auch vorhanden sind.

Siehe hier mein Beispiel:

Code: Alles auswählen

	use (cHeimat+"\TmpBestPos") New
	Index on Pos tag "ps" to (cHeimat+"\TmpBestPos.cdx")
	oBrowse := GuiBrowseDb( oDlg:drawingArea, aBrPos, {590,120} ) 
	TmpBestPos->(DbGoTop())
   FOR i=1 TO Fcount()
		cField:=FieldName( i ) 
		If cField="ARTNR"
			oBrowse:addColumn(FieldWBlock(cField,select()),7,aSpalt[i]) 
		Else
			oBrowse:addColumn(FieldWBlock(cField,select()),,aSpalt[i]) 
		EndIf
   NEXT 
	TmpBestPos->(DbGoBottom())
Gruß Rolf

Mitglied der Gruppe XUG-Cologne
www.xug-cologne.de
Benutzeravatar
Manfred
Foren-Administrator
Foren-Administrator
Beiträge: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von Manfred »

Hi,

ich war mal wieder besonders clever. Ich habe gerade die Anleitung genauer gelesen und festgestellt, das die var rowCount nur lesbar ist. Damit hat sich das Thema ja eh erledigt. Ich dachte ich könnte ermitteln wieviel Zeilen noch gebraucht werden und dann über rowCount einen neuen Wert setzen, der dann genau bis dahin geht. Dem ist aber nicht so.

Dann muß ich den Zauberer Friedhelm mal fragen, wie er das bei seinem Browse gemacht hat. Da habe ich das nämlich vor ein paar Monaten auf einem XUG Treffen in Leverkusen gesehen. Auf meine Frage hin, wie das geht meinte er nur: "ganz einfach", oder so ähnlich. Dumm das ich damals nicht nachgehakt habe. Aber ich bin ja bekannt für Fragen......
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: 21200
Registriert: Di, 29. Nov 2005 16:58
Wohnort: Kreis Wesel
Hat sich bedankt: 210 Mal
Danksagung erhalten: 67 Mal

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von Manfred »

So,

bevor ich jetzt hier alle verwirre hier nun eine Schnappschuß aus einem anderen Programm. Wie zu sehen ist, sind nur so viele Zeilen zu sehen, wie Sätze vorhanden sind.
Dateianhänge
browse.jpg
browse.jpg (14.42 KiB) 3281 mal betrachtet
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
AUGE_OHR
Marvin
Marvin
Beiträge: 12909
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 46 Mal

Re: XbpBrowse und anzeigbare Zeilen

Beitrag von AUGE_OHR »

Manfred hat geschrieben:weiß ich nicht, ob wir das gleiche meinen. Ich wollte nur wissen, ob man nur Zeilen anzeigen kann, die einen Datensatz enthalten. Es bringt ja m.E. optisch nichts, wenn in einer DB nur 2 Sätze sind, aber im Browser X leere Zeilen angezeigt werden, nur weil das Fenster entsprechend groß ist.
ok nun habe ich es wohl verstanden.

JA es geht mit einem entsprechenden "Skipper" welche "leere" Datensätze "skip"ed.
... ich müsste die Routine mal raussuche, aber wenn ich mich nicht irre hatte ich da einen Codeblock
übergeben der für die "Komprimierung" sorgte.
gruss by OHR
Jimmy
Antworten