Browser Zeilen markieren und temporär merken?
Moderator: Moderatoren
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Browser Zeilen markieren und temporär merken?
Ich habe da einen SQL Browser der mir 1-x Records anzeigt. Nun möchte ich davon 1-x Records markieren. Wo trage ich mir am besten ein welche Datensätze markiert sind? Es existiert ja jede Datenzeile im Speicher, gibt es da eventuell ein :cargo wo ich mir ein Flag markiert speichern könnte?
Das ganze soll nicht in die DB zurückgeschrieben werden, vielmehr werden die temporär markierten Datensätze anschließend weiterverarbeitet und sollen nicht weiter markiert bleiben.
Das ganze soll nicht in die DB zurückgeschrieben werden, vielmehr werden die temporär markierten Datensätze anschließend weiterverarbeitet und sollen nicht weiter markiert bleiben.
Gruß
Markus
Markus
- Martin Altmann
- Foren-Administrator
- Beiträge: 16508
- Registriert: Fr, 23. Sep 2005 4:58
- Wohnort: Berlin
- Hat sich bedankt: 111 Mal
- Danksagung erhalten: 48 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Moin Markus,
hast Du da die Daten nicht eh' in einem Array? Eine Spalte mehr dazu und mittels .T./.F. als Inhalt den Markiert-Modus hinterlegen.
Viele Grüße,
Martin
hast Du da die Daten nicht eh' in einem Array? Eine Spalte mehr dazu und mittels .T./.F. als Inhalt den Markiert-Modus hinterlegen.
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.
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Noch nicht. Ich wollte mir das reinschaufeln in ein Array sparen und dachte es gibt so eventuell auch einen einfachen Weg. Wenn nicht wird wohl ein Array werden.Martin Altmann hat geschrieben:Moin Markus,
hast Du da die Daten nicht eh' in einem Array? Eine Spalte mehr dazu und mittels .T./.F. als Inhalt den Markiert-Modus hinterlegen.
Viele Grüße,
Martin
Gruß
Markus
Markus
- AUGE_OHR
- Marvin
- Beiträge: 12906
- Registriert: Do, 16. Mär 2006 7:55
- Wohnort: Hamburg
- Hat sich bedankt: 19 Mal
- Danksagung erhalten: 45 Mal
Re: Browser Zeilen markieren und temporär merken?
du musst ja gar nicht alle Daten in ein Array schaufeln ... es reicht doch aus wenn du dir "merkst" welche Datensätze ( Row / Col ) markiert wurden. Allerdings mit einem normalen Browser wird dir aber noch nicht viel nützen. Du musst schon tiefer nach Ownerdraw gehen.satmax hat geschrieben:Noch nicht. Ich wollte mir das reinschaufeln in ein Array sparen und dachte es gibt so eventuell auch einen einfachen Weg. Wenn nicht wird wohl ein Array werden.
Am besten mit einer eigene Class MySQLBrowse FROM XbpBrowse. jetzt musst du nur noch das Array in o:customDrawCell vergleichen mit
Code: Alles auswählen
METHODE MySQLBrowse:customDrawCell( oPS, aInfo )
...
nRow := aInfo[ XBP_DRAWINFO_ITEM ]
IF ASCAN(::aMarker,nRow) > 0
lMarker := .T.
ELSE
lMarker := .F.
ENDIF
gruss by OHR
Jimmy
Jimmy
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2934
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Oder du legst dir ein leeres Array aTmp an, in das du beim Markieren die Recordnummer schreibst.
Eine Farbbedingung für die markierte Zeile wäre dann {|| iif(Ascan(aTmp,db->(recno()))>0, farbig, nichtfarbig)}
Eine Farbbedingung für die markierte Zeile wäre dann {|| iif(Ascan(aTmp,db->(recno()))>0, farbig, nichtfarbig)}
Viele Grüße
Wolfgang
Wolfgang
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Genau so mache ich das auch.Wolfgang Ciriack hat geschrieben:Oder du legst dir ein leeres Array aTmp an, in das du beim Markieren die Recordnummer schreibst.
Eine Farbbedingung für die markierte Zeile wäre dann {|| iif(Ascan(aTmp,db->(recno()))>0, farbig, nichtfarbig)}
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2824
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Browser Zeilen markieren und temporär merken?
Hallo,
nein, Ihr macht das nicht so. Weil hier nämlich ein SQL Browse (!) verwendet wird, und da gibt es Probleme mit dem recno(). Solange das Result Set unverändert ist, geht das hin. In dem Moment, wo das Result Set neu eingelesen wird, sind die generierten Satzpointer ungültig.
Aber der Ansatz ist vom Grundsatz her richtig, nur muss eben der Primary Key in dem Array abgelegt werden.
nein, Ihr macht das nicht so. Weil hier nämlich ein SQL Browse (!) verwendet wird, und da gibt es Probleme mit dem recno(). Solange das Result Set unverändert ist, geht das hin. In dem Moment, wo das Result Set neu eingelesen wird, sind die generierten Satzpointer ungültig.
Aber der Ansatz ist vom Grundsatz her richtig, nur muss eben der Primary Key in dem Array abgelegt werden.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Jan
- Marvin
- Beiträge: 14651
- Registriert: Fr, 23. Sep 2005 18:23
- Wohnort: 49328 Melle
- Hat sich bedankt: 21 Mal
- Danksagung erhalten: 88 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Georg,
ob ich jetzt RecNo() oder PrimaryKey nehme ist doch gleich. Ich merke mir eine eindeutige Kennzeichnung des Satzes.
Jan
ob ich jetzt RecNo() oder PrimaryKey nehme ist doch gleich. Ich merke mir eine eindeutige Kennzeichnung des Satzes.
Jan
Mitglied der XUG Osnabrück
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
Mitglied der XUG Berlin/Brandenburg
Mitglied des Deutschsprachige Xbase-Entwickler e. V.
-
- Der Entwickler von "Deep Thought"
- Beiträge: 2824
- Registriert: Fr, 08. Feb 2008 21:29
- Hat sich bedankt: 95 Mal
- Danksagung erhalten: 13 Mal
Re: Browser Zeilen markieren und temporär merken?
Hallo, Jan -
genau darum geht es. Beim Zugriff auf SQL-Tabellen (Result Sets) gibt es eine simulierte recno(), aber die ist nicht eindeutig. Darum mein Hinweis, dass der Primary Key verwendet werden muss (sofern es einen gibt). Ansonsten kann man sehr seltsame Resultate bekommen.
genau darum geht es. Beim Zugriff auf SQL-Tabellen (Result Sets) gibt es eine simulierte recno(), aber die ist nicht eindeutig. Darum mein Hinweis, dass der Primary Key verwendet werden muss (sofern es einen gibt). Ansonsten kann man sehr seltsame Resultate bekommen.
Liebe Grüsse aus der Eifel,
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
Georg S. Lorrig
Redakteur der Wiki des Deutschprachigen Xbase-Entwickler e.V.
- Wolfgang Ciriack
- Der Entwickler von "Deep Thought"
- Beiträge: 2934
- Registriert: Sa, 24. Sep 2005 9:37
- Wohnort: Berlin
- Hat sich bedankt: 13 Mal
- Danksagung erhalten: 34 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Ich hatte einfach mal das SQL überlesen
Viele Grüße
Wolfgang
Wolfgang
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Danke für alle Tipps, das mit SQL ist mir klar, ich habe in jeder Tabelle einen unique key.
Wenn ich's fertig habe, werde ich mich nochmals kurz melden wie ich es gelöst habe.
Wenn ich's fertig habe, werde ich mich nochmals kurz melden wie ich es gelöst habe.
Gruß
Markus
Markus
- brandelh
- Foren-Moderator
- Beiträge: 15695
- Registriert: Mo, 23. Jan 2006 20:54
- Wohnort: Germersheim
- Hat sich bedankt: 65 Mal
- Danksagung erhalten: 33 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
darum spendiere ich jeder Tabelle ein Feld RECNO als PrimaryKey bzw. autoincrementgeorg hat geschrieben:Hallo, Jan -
genau darum geht es. Beim Zugriff auf SQL-Tabellen (Result Sets) gibt es eine simulierte recno(), aber die ist nicht eindeutig.
Darum mein Hinweis, dass der Primary Key verwendet werden muss (sofern es einen gibt).
Ansonsten kann man sehr seltsame Resultate bekommen.
Gruß
Hubert
Hubert
- satmax
- 1000 working lines a day
- Beiträge: 831
- Registriert: Do, 02. Dez 2010 19:34
- Wohnort: Biberbach in Österreich
- Hat sich bedankt: 1 Mal
- Danksagung erhalten: 1 Mal
- Kontaktdaten:
Re: Browser Zeilen markieren und temporär merken?
Da die Daten aus verschiedensten Tabellen kommen und das mit einem SQL Statement nicht sinnvoll zu lösen ist, habe ich zwei Select daraus gemacht und das ganze in ein Array eingelesen. Es werden selten mehr wie ca. 200 Datensätze eingelesen werden, auf keinen Fall können es über 1000 werden.
Da ich ja auch TopDown verwende, habe ich dazu einfach tdArBrow() genommen. Eine Spalte mit einem Marker hinzugefügt, dann noch ein Codeblock:
Da ich ja auch TopDown verwende, habe ich dazu einfach tdArBrow() genommen. Eine Spalte mit einem Marker hinzugefügt, dann noch ein Codeblock:
Code: Alles auswählen
bColor := {|xVal,oCol,nRow| iif(oDlg:aData[oDlg:oBrows:nCurEl][2]==.t.,{tdDRD,tdYEL},{nil,nil}) }
- Dateianhänge
-
- browser.JPG (33.86 KiB) 5107 mal betrachtet
Gruß
Markus
Markus