XbPQuickBrowse
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: 71 Mal
XbPQuickBrowse
Moin,
ich muß mal wieder für ein wenig Traffic hier im Forum sorgen
Ich habe mir das Beispiel Qbrowse2 zwischengenommen und etwas umgebaut. Jetzt kann man Zeichenweise im Index suchen. Das klappt auch alles recht schön. Meine Frage jetzt, kann man dieses Teil auch komplett unter XbPBrowse realisieren, bzw. hat jemand hier sowas schon gemacht und könnte seine Erfahrung mitteilen? Im Moment habe ich zur Anzeige das XbpBrowse und zum Suchen im Browser das modifizierte QuickBrowse. Schön wäre es, wenn alles in einem , nämlich dem XbpBrowse klappen würde.
Wäre jetzt nur mal eine Frage am Rande, bevor ich mir wieder die Nächte um die Ohren schlage und kein Ergebnis erziele, weil irgendwas so nicht klappt, wie ich es denke.
ich muß mal wieder für ein wenig Traffic hier im Forum sorgen
Ich habe mir das Beispiel Qbrowse2 zwischengenommen und etwas umgebaut. Jetzt kann man Zeichenweise im Index suchen. Das klappt auch alles recht schön. Meine Frage jetzt, kann man dieses Teil auch komplett unter XbPBrowse realisieren, bzw. hat jemand hier sowas schon gemacht und könnte seine Erfahrung mitteilen? Im Moment habe ich zur Anzeige das XbpBrowse und zum Suchen im Browser das modifizierte QuickBrowse. Schön wäre es, wenn alles in einem , nämlich dem XbpBrowse klappen würde.
Wäre jetzt nur mal eine Frage am Rande, bevor ich mir wieder die Nächte um die Ohren schlage und kein Ergebnis erziele, weil irgendwas so nicht klappt, wie ich es denke.
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!!
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
Re: XbPQuickBrowse
hi,
dann in der betreffenden Spalte (mit Index) anfängt zu suchen ? JA !
ist nur ein "kleiner Teil" von dem was XbpBrowse kann
wenn man XBPBRW_CURSOR_ROW verwendet läst sich nicht so einfach
bestimmen in welcher Colume man nun ist und welcher IndexOrd() nun
verwendet werden soll/muss ...
gruss by OHR
Jimmy
du meinst jetzt ein XbpBrowse wo du einfach "lostippen" kannst und erManfred hat geschrieben:Moin,
Ich habe mir das Beispiel Qbrowse2 zwischengenommen und etwas umgebaut. Jetzt kann man Zeichenweise im Index suchen. Das klappt auch alles recht schön. Meine Frage jetzt, kann man dieses Teil auch komplett unter XbPBrowse realisieren, bzw. hat jemand hier sowas schon gemacht und könnte seine Erfahrung mitteilen?
dann in der betreffenden Spalte (mit Index) anfängt zu suchen ? JA !
sagen wir es mal so : Alles was man mit Quickbrowse machen kannIm Moment habe ich zur Anzeige das XbpBrowse und zum Suchen im Browser das modifizierte QuickBrowse. Schön wäre es, wenn alles in einem , nämlich dem XbpBrowse klappen würde.
ist nur ein "kleiner Teil" von dem was XbpBrowse kann
hm ... doch da gibt es etwas was ich (noch nicht) in den Griff bekomme :Wäre jetzt nur mal eine Frage am Rande, bevor ich mir wieder die Nächte um die Ohren schlage und kein Ergebnis erziele, weil irgendwas so nicht klappt, wie ich es denke.
wenn man XBPBRW_CURSOR_ROW verwendet läst sich nicht so einfach
bestimmen in welcher Colume man nun ist und welcher IndexOrd() nun
verwendet werden soll/muss ...
gruss by OHR
Jimmy
- Jan
- Marvin
- Beiträge: 14662
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Mich würde das auch interessieren. Unter Clipper hatte ich mir das mal geschrieben, da ging dann beim ersten Tastendruck ein Fenster auf, wo man noch mehr eintippen konnte, und der Browse ist dann automatisch auf den ersten Eintrag mit dem Eintrag gesprungen.
Nach dem Umschreiben auf Xbase würde ich das natürlich gerne wiederhaben. Hab auch schon gegrübelt, wie das funktionieren könnte. Ohne Ergeniss...
Jan
Nach dem Umschreiben auf Xbase würde ich das natürlich gerne wiederhaben. Hab auch schon gegrübelt, wie das funktionieren könnte. Ohne Ergeniss...
Jan
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 71 Mal
Hi Jan,
mit Quickbrowse ist das relativ einfach, was das Suchen in einem vorgegebenen Index betrifft. Wenn Du willst kann ich Dir das geänderte Beispiel von Alaska zukommen lassen.
mit Quickbrowse ist das relativ einfach, was das Suchen in einem vorgegebenen Index betrifft. Wenn Du willst kann ich Dir das geänderte Beispiel von Alaska zukommen lassen.
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: 71 Mal
Ich habe beides parallel laufen, mal das mal das, je nachdem, wo ich gerne suchen möchte und wo es genügt nur anzuzeigen. Ich werde es im Laufe der Zeit versuchen alles in XbpBrowse unterzubringen, aber im Moment fehlt mir das nötige Know How dazu, also benutze ich beides...
Am besten wäre es noch, wenn man es mit OrdWildSeek() verknüpfen kann, das wäre der Hammer.
Am besten wäre es noch, wenn man es mit OrdWildSeek() verknüpfen kann, das wäre der Hammer.
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!!
- brandelh
- Foren-Moderator
- Beiträge: 15707
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 71 Mal
- Danksagung erhalten: 38 Mal
- Kontaktdaten:
das ist gar nicht sinnvoll. Wenn die Fähigkeiten von QuickBrowse reichen, sollte man diesen nehmen. Da er weniger kann, ist er resourcenschonender. Der Rechner muss für diesen weniger Zeit aufbringen etc.Manfred hat geschrieben:Ich werde es im Laufe der Zeit versuchen alles in XbpBrowse unterzubringen, aber im Moment fehlt mir das nötige Know How dazu, also benutze ich beides...
Gruß
Hubert
Hubert
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 71 Mal
Prima Hubert,
der Vorschlag klingt recht sympathisch. Was möchtest Du trinken?brandelh hat geschrieben:das ist gar nicht sinnvoll. Wenn die Fähigkeiten von QuickBrowse reichen, sollte man diesen nehmen. Denn da er weniger kann, ist er Resourcenschonender. Der Rechner muss für diesen weniger Zeit aufbringen etc.Manfred hat geschrieben:Ich werde es im Laufe der Zeit versuchen alles in XbpBrowse unterzubringen, aber im Moment fehlt mir das nötige Know How dazu, also benutze ich beides...
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!!
- Martin Altmann
- Foren-Administrator
- Beiträge: 16555
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 116 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Hallo Manfred,
Viele Grüße,
Martin
Viele Grüße,
Martin
Webseite mit XB2.NET und ausschließlich statischem Content in Form von HTML-Dateien: https://www.altem.de/
Webseite mit XB2.NET und ausschließlich dynamischem Content in Form von in-memory-HTML: https://meldungen.altem.de/
Mitglied der XUG Osnabrück
Vorsitzender des Deutschsprachige Xbase-Entwickler e. V.
- AUGE_OHR
- Marvin
- Beiträge: 12913
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 46 Mal
hi,
aber nur leider "nur vorwärtz" ... (ok mit 2st Index der DESCEND ist ginge
es wohl ...)
Es ist auch möglich in den "Skipper" eine "Bedingung" einzubauen und
die dann zu evaluieren :
gruss by OHR
Jimmy
grundsätzlich geht das, man muss sich "nur" selbst einen "Skipper" bauen,Manfred hat geschrieben: Am besten wäre es noch, wenn man es mit OrdWildSeek() verknüpfen kann, das wäre der Hammer.
aber nur leider "nur vorwärtz" ... (ok mit 2st Index der DESCEND ist ginge
es wohl ...)
Es ist auch möglich in den "Skipper" eine "Bedingung" einzubauen und
die dann zu evaluieren :
Code: Alles auswählen
oBrowse:skipBlock := {|x| GoNext(x, {|| ZRGNR=URECHNR } , @obrowse) }
oBrowse:goTopBlock := {|| GoTop( {||ZRGNR=URECHNR } , @obrowse) }
oBrowse:goBottomBlock := {|| GoBottom( {||ZRGNR=URECHNR } , @obrowse) }
...
FUNCTION GoNext(nToSkip, bWhileCond , obrowse)
LOCAL nSkipped := 0, nDirection
IF RECNO()==LASTREC()+1
* obrowse:hitBottomBlock
RETURN 0
ENDIF
nDirection := IIF(nToSkip > 0, 1, -1)
DO WHILE nSkipped != nToSkip .AND. EVAL(bWhileCond) .AND. ;
!EOF() .AND. !BOF()
SKIP nDirection
nSkipped += nDirection
ENDDO
IF EOF()
SKIP -1
nSkipped--
* obrowse:hitBottomBlock
ELSEIF BOF()
GOTO RECNO()
nSkipped++
* obrowse:hitTopBlock
ELSEIF !EVAL(bWhileCond)
SKIP -nDirection
nSkipped += -nDirection
ENDIF
RETURN nSkipped
Jimmy
- Manfred
- Foren-Administrator
- Beiträge: 21225
- Registriert: Di, 29. Nov 2005 16:58
- Wohnort: Kreis Wesel
- Hat sich bedankt: 210 Mal
- Danksagung erhalten: 71 Mal
Hi Leute,
wieder mal etwas interessantes entdeckt.
Ich habe unter XbpBrowse 2 Möglichkeiten die Felder einer DB zu browsen. Entweder lese ich sie direkt aus der Db aus und zeige dann alle Felder im Browsefenster an, oder aber ich gebe eine Maskendatei an, in der die einzelnen Feldnamen mit Überschriftbezeichnungen in einzelnen Datensätzen stehen. Das klappt auch prima, nur ist mir jetzt etwas unter XbpQuickBrowse aufgefallen, wonach ich etliche Zeit auf Fehlersuche war. Unter Quickbrowse kann man nicht so ohne weiteres die Feldbezeichnungen aus einer Tabelle einlesen und dann browsen lassen. Die Feldbezeichnungen müssen mit TRIM(feldname) angegeben werden, sonst wird nur ein leerer Bildschirm angezeigt.
Jetzt sagt nicht, das ist ein alter Hund.....
Hier ein kleiner Ausschnitt wie es abläuft.
wieder mal etwas interessantes entdeckt.
Ich habe unter XbpBrowse 2 Möglichkeiten die Felder einer DB zu browsen. Entweder lese ich sie direkt aus der Db aus und zeige dann alle Felder im Browsefenster an, oder aber ich gebe eine Maskendatei an, in der die einzelnen Feldnamen mit Überschriftbezeichnungen in einzelnen Datensätzen stehen. Das klappt auch prima, nur ist mir jetzt etwas unter XbpQuickBrowse aufgefallen, wonach ich etliche Zeit auf Fehlersuche war. Unter Quickbrowse kann man nicht so ohne weiteres die Feldbezeichnungen aus einer Tabelle einlesen und dann browsen lassen. Die Feldbezeichnungen müssen mit TRIM(feldname) angegeben werden, sonst wird nur ein leerer Bildschirm angezeigt.
Jetzt sagt nicht, das ist ein alter Hund.....
Hier ein kleiner Ausschnitt wie es abläuft.
Code: Alles auswählen
IF ! EMPTY(cMaskendatei) // wenn keine Maskendateibezeichnung übergeben wurde
IF ! FILE("..\datenbanken\masken\" + cMaskendatei + ".dbf") // wenn die Maskendatei nicht vorhanden ist
oMessage:anzeigen("ACHTUNG! Eine Anzeigemaske " + cMaskendatei + " liegt nicht vor. ")
IF ! lPauschalMaske
RETURN(.F.)
ENDIF
IF oMessage:anzeigen("Soll die Datenbank pauschal angezeigt werden?",.T.,"N")
cMaskendatei := ""
ELSE
RETURN(.F.)
ENDIF
ELSE
DbUseArea(.T.,"DBFCDX","..\datenbanken\masken\" + cMaskendatei,"maske",.T.,.F.)// kann vielleicht später mal gegen etwas komfortableres ausgetauscht werden
aMaskenArray := ARRAY(maske->(LASTREC()),FCOUNT()) // Erzeugung des Arrays anhand der Recordmenge in der Maskendatei
maske->(DBEVAL({|| aMaskenArray[maske->(RECNO())] := {maske->feld,maske->uschrift,maske->folge,maske->feldbreite,maske->ausblenden,maske->fix}}))
ASORT(aMaskenArray,,, { |x, y| x[3] < y[3] }) // Array wird nun nach der vorgegebenen Reihenfolge sortiert für Browse
maske->(DbCloseArea()) // wird geschlossen, da alle Werte übernommen wurden in ARRAY
nLen := LEN(aMaskenArray)
FOR nI := 1 TO nLen // einmal das Array durchlaufen und die Felder abfragen
AAdd(aFields,TRIM(aMaskenArray[nI,1])) // Feldbezeichnungen
AAdd(aHeader,aMaskenArray[nI,2]) // Überschriften
NEXT
ENDIF
ENDIF
IF EMPTY(cMaskendatei)
nFcount := (ALIAS())->(Fcount())
FOR nI := 2 TO nFcount // für den Fall, das es keine Maskendatei gibt
AAdd(aFields, (ALIAS())->(FieldName(nI))) // Feldnamen übernehmen
AAdd(aHeader, (ALIAS())->(FieldName(nI))) // Überschriften aus den Feldnamen generieren
NEXT // überlegt werden, ob das Fenster nicht danach nochmals angepaßt wird mit neuer Breite
ENDIF
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!!