express++ dcbrowse edit nervt
Moderator: Moderatoren
express++ dcbrowse edit nervt
Hallo,
ich habe zur Erfassung von Buchungssätzen folgenden Lösungsansatz gewählt:
DCBROWSE....
DCGET.....
DCPUSHBUTTON......
Der DCGET-Teil funktioniert durch PICTURE, TABSTOP, KEYBLOCK für
meine Anforderungen optimal. Die Daten werden in Variablen gehalten
und erst wenn der gesamte Datensatz ok ist, in die Datenbank ge-
schrieben und im DCBROWSE angezeigt.
Die Korrektur der Daten erfolgt mit:
DCHOTKEY xbeK_F6 Action{||DC_BrowCellEdit(oBrowse,,,DCGUI_BROWSE_
EDITDOWN)}.
Der Cursor muß hier immer bis zum letzten Datensatz bewegt werden.
EDITACROSS muß alle Felder quer durchlaufen.
EDITEXIT +F6 pro Feld ist sehr mühsam.
Der TAB-Stop springt in den DCGET-Bereich.
Mein Ziel wäre ein browse in dem ich mich mit TAB und den Cursortasten
uneingeschränkt bewegen und die Werte einfach abändern kann.
Wie könnte man denn den DC_BrowCellEdit wieder deaktivieren?
Gruß Alfred
ich habe zur Erfassung von Buchungssätzen folgenden Lösungsansatz gewählt:
DCBROWSE....
DCGET.....
DCPUSHBUTTON......
Der DCGET-Teil funktioniert durch PICTURE, TABSTOP, KEYBLOCK für
meine Anforderungen optimal. Die Daten werden in Variablen gehalten
und erst wenn der gesamte Datensatz ok ist, in die Datenbank ge-
schrieben und im DCBROWSE angezeigt.
Die Korrektur der Daten erfolgt mit:
DCHOTKEY xbeK_F6 Action{||DC_BrowCellEdit(oBrowse,,,DCGUI_BROWSE_
EDITDOWN)}.
Der Cursor muß hier immer bis zum letzten Datensatz bewegt werden.
EDITACROSS muß alle Felder quer durchlaufen.
EDITEXIT +F6 pro Feld ist sehr mühsam.
Der TAB-Stop springt in den DCGET-Bereich.
Mein Ziel wäre ein browse in dem ich mich mit TAB und den Cursortasten
uneingeschränkt bewegen und die Werte einfach abändern kann.
Wie könnte man denn den DC_BrowCellEdit wieder deaktivieren?
Gruß Alfred
-
- UDF-Programmierer
- Beiträge: 92
- Registriert: Di, 19. Dez 2006 19:37
- Wohnort: Düsseldorf
- Kontaktdaten:
dcbrowse edit
Hallo Alfred,
ich programmiere schon über 5 Jahre mit Express.
Ich vermeide möglichst das direkte Editieren in einem
Browse-Objekt.
Ich öffne mit einem Doppelklick auf die Zeile ein
Fenster mit den entsprechenden Eingabefeldern.
Aber wenn es denn sein muss, nutze doch die EDITOR-Klausel
des DCBROWSECOL. (siehe Express-Hilfe DCBROWSECOL).
Gruß
Jürgen.
ich programmiere schon über 5 Jahre mit Express.
Ich vermeide möglichst das direkte Editieren in einem
Browse-Objekt.
Ich öffne mit einem Doppelklick auf die Zeile ein
Fenster mit den entsprechenden Eingabefeldern.
Aber wenn es denn sein muss, nutze doch die EDITOR-Klausel
des DCBROWSECOL. (siehe Express-Hilfe DCBROWSECOL).
Gruß
Jürgen.
- Tom
- 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:
Ich mache es auch wie Jürgen. Meistens hängt an der Datenerfassung zu viel dran, um es über die Standard-Erfassungsfunktionalitäten abdecken zu können. Und wenn nacheinander Daten erfaßt werden können sollen, kann man das auch entsprechend im Bearbeitungs-/Erfassungsfenster implementieren.
Herzlich,
Tom
Tom
- Tom
- 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:
Extrem vereinfacht:
Wäre natürlich anders bei einem Arraybrowse. Oder wenn Du eine allgemeine Edit-Funktion schreiben wollen würdest. Oder wenn Du mit OK/Abbruch arbeitest. Oder. Oder. Oder. Jedenfalls: Du baust einen Dialog für die Editierung und rufst ihn im Codeblock ITEMSELECTED auf. Je nachdem, was Du an Parametern übergibst, läßt sich das weiter ausgestalten.
Code: Alles auswählen
ITEMSELECTED{||_MyBrowseEdit(oBrowse))}
FUNCTION _MyBrowseEdit(oBrowse)
@ 1,1 DCSAY "Feld:" get db->feld
DCREAD GUI
oBrowse:RefreshCurrent()
RETURN nil
Herzlich,
Tom
Tom
Hallo Tom,
habe nun ein paar graue Haare mehr(PUBLIC statt LOCAL für Getlist), aber
grundsätzlich läuft es.
Ein Problem habe ich jedoch noch:
Sobald ich das 2. Formular schließe wird nicht nur der ausgewählte Satz
geändert sondern auch der letzte Datensatz.
Kann man den beiden dcread gui einen Namen zuweisen?
Gruß
Alfred
habe nun ein paar graue Haare mehr(PUBLIC statt LOCAL für Getlist), aber
grundsätzlich läuft es.
Ein Problem habe ich jedoch noch:
Sobald ich das 2. Formular schließe wird nicht nur der ausgewählte Satz
geändert sondern auch der letzte Datensatz.
Kann man den beiden dcread gui einen Namen zuweisen?
Gruß
Alfred
Hallo Tom,
das Problem ist nach der Verwendung von TABSTOP und TABGROUP
im Korrkturfenster verschwunden.
Die Sache mit den Objektnamen würde mich trotzdem noch interessieren.
Gruß
Alfred
das Problem ist nach der Verwendung von TABSTOP und TABGROUP
im Korrkturfenster verschwunden.
Die Sache mit den Objektnamen würde mich trotzdem noch interessieren.
Code: Alles auswählen
FUNCTION _Mybrowse(oBrowse)
Local GetList := {}, GetOptions
DCGETOPTIONS ;
SAYLEFT;
WINDOWHEIGTH 400;
WINDOWWIDTH 500
DCREAD GUI ;
MODAL ;
OPTIONS GETOPTIONS
RETURN nil
PROCEDURE MAIN()
Local GetList :={}, GETOPTIONS
@3,13 DCBROWSE oBrowse1;
SIZE 81,9.5 ;
ITEMSELECTED{|uNil1,uNill2,self|_MybrowseEdit(oBrowse),;
DC_GETREFRESH(Getlist)};
PARENT oDialog1
DCBROWSECOL FIELD erffibu148->Betrag;
OBJECT oColBetrag;
PARENT oBrowse1
DCGETOPTIONS ;
SAYLEFT;
WINDOWHEIGTH 450;
WINDOWWIDTH 750
DCREAD GUI ;
MODAL ;
OPTIONS GETOPTIONS ;
PARENT @oDialog1 ;
EVAL{|o|SetpAppWindow(o)}
RETURN
PROCEDURE APPSYS()
RETURN
Alfred