QuickBrowse dynamisch füllen und Satz anzeigen

Zugriff, Engines, Konvertierung. Von ADS über DBF bis zu SQL.

Moderator: Moderatoren

Antworten
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

QuickBrowse dynamisch füllen und Satz anzeigen

Beitrag von AUGE_OHR »

ich befülle dynamisch ein QuickBrowse nachdem ich es erstellt habe.
Die Anzeige wird durch oQB:RefreshAll() ausgelöst. komischerweise scheint, wenn die Seite "voll" ist

Code: Alles auswählen

   oQB:GoBottom() 
   oQB:RefreshAll() 
nicht zu helfen ?!
was funktioniert ist

Code: Alles auswählen

   IF LEN(::KauftItem) < oQB:rowCount
      oQB:goTop()
      oQB:refreshAll()
   ELSE
      nCount := LEN(::KauftItem)
      oQB:goToRecord(nCount)
      oQB:refreshRows( nCount, nCount )
*     oQB:refreshAll()
   ENDIF
was allerdings einen Neben-Effekt hat: er zeigt es immer in der 1st Zeile an ...
zumindest "sieht" der User das was passiert.

Frage : wie bekomme ich den neuen Array Satz im QuickBrowse in der letzten Zeile angezeigt und der Rest scrollt 1 Zeile hoch ?
gruss by OHR
Jimmy
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
Der Entwickler von "Deep Thought"
Beiträge: 2932
Registriert: Sa, 24. Sep 2005 9:37
Wohnort: Berlin
Hat sich bedankt: 13 Mal
Danksagung erhalten: 34 Mal
Kontaktdaten:

Re: QuickBrowse dynamisch füllen und Satz anzeigen

Beitrag von Wolfgang Ciriack »

Drehe doch die Anzeige um und zeige den neuesten Datensatz immer als ersten an.
Viele Grüße
Wolfgang
Benutzeravatar
AUGE_OHR
Marvin
Marvin
Beiträge: 12903
Registriert: Do, 16. Mär 2006 7:55
Wohnort: Hamburg
Hat sich bedankt: 19 Mal
Danksagung erhalten: 44 Mal

Re: QuickBrowse dynamisch füllen und Satz anzeigen

Beitrag von AUGE_OHR »

Wolfgang Ciriack hat geschrieben:Drehe doch die Anzeige um und zeige den neuesten Datensatz immer als ersten an.
JA ... das mache ich beim Umsatz so weil es ja nur einen Datensatz mit der Umsatz-Nummer gibt.

ich habe doch, in jeder Rechnung, mehrere Artikel und deshalb auch die selbe ARTNR in verschiedenen Rechnungen als Position.
Nun will ich ja eine Art UNIQUE (ARTNR) aber eben auch "wie oft" der Artikel zu welchem (Tages) Preis gekauft wurde um den Durchschnitt (Tendenz) anzuzeigen.

wenn ich nur die erste Bildschirmseite anzeige ist es ja wie bei Cl*pper ... und nun kommt die "Liste"
bei Cl*pper musste der User zwar immer die Space-Taste drücken um die nächste(n) Seite(n) anzuzeigen aber da ist der User beschäftigt ... ;)
auch hat es "original" viel länger gedauert weil jede ARTNR "einzeln", per SEEK, zuerst addiert wurden bevor eine Ausgabe erfolgte ...
für grosse Arrays waren 64kb einfach zu wenig [-(

es sieht also nun so aus :
1.) am schnellsten wäre es das Array ohne Anzeige komplett zu erstellen ... aber dann sieht der User "nichts" ausser der Sanduhr

2.) man kann, nach der ersten Seite ( > o::rowCount ), einfach auf ein weiteres o:refresh* verzichten ... aber dann denkt der User das die Applikation "hängt".
2.a) klar ein Progressbar ... damit der User was "sieht" ... aber der Scrollbar bewegt sich ja ...

3.) mit Anzeige wird er deutlich langsamer wobei XbpQuickBrowse beim selben Array schneller ist ( weil er nur in der 1st Zeile anzeigt und nicht scrollt )
3.a) am langsamsten ist es mit ::oQBkunden:goBottom() und ::oQBkunden:refreshAll()
3.b) ein wenig schneller sind ::oQBkunden:down() und ::oQBkunden:refreshCurrent() welches den selben Effekt erzeugen

hm ... :-k man erweitert es auf ein inkrementelles Browse und schränkt es gleich auf den gewünschten SCOPE ( KDNR + ARTNR ) ein ... und lädt den Rest im Hintergrund ( Thread )
gruss by OHR
Jimmy
Antworten