Cell Edit in dcbrowse()

Moderator: Moderatoren

Antworten
Hippo
Rookie
Rookie
Beiträge: 10
Registriert: So, 20. Okt 2013 16:11

Cell Edit in dcbrowse()

Beitrag von Hippo »

Hallo zusammen,
ich habe ebenfalls ein Problem mit EDIT in DCBROWSE().
Ich möchte eine Zelle mit xBeK_CTRL_E editieren und mit Mausclick oder Enter speichern, das Editieren gelingt, das Speichern nicht.

Code: Alles auswählen

@ 3,2 DCBROWSE oBrowse DATA cAlias SIZE wcol,wrow FONT feldfont ;
     ITEMSELECTED {||dblclickvorein(),oBrowse:RefreshAll()};
     EDIT xbeK_CTRL_E;
     PRESENTATION DC_BrowPres()
...
DCREAD GUI FIT TO lStatus;
TITLE titelzeile OPTIONS GetOptions ENTEREXIT HANDLER MyHandlerV REFERENCE @oBrowse FIT;
EVAL {||oBrowse:hide(), oBrowse:show(),obrowse:refreshall()}
Selbst, wenn ich den Code aus Roger's XDEMO FUNCTION XSample_10 übernehme
EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITACROSSDOWN ;
DELETE xbeK_DEL ;
INSERT xbeK_INS ;
PRESENTATION DC_BrowPres()
wird bei mir nicht gespeichert.
Kann mir jemand helfen ?
Danke
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
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: Cell Edit in dcbrowse()

Beitrag von Wolfgang Ciriack »

Zeig doch mal die passende DCBROWSECOL dazu.
Viele Grüße
Wolfgang
Hippo
Rookie
Rookie
Beiträge: 10
Registriert: So, 20. Okt 2013 16:11

Re: Cell Edit in dcbrowse()

Beitrag von Hippo »

Code: Alles auswählen

@ 3,2 DCBROWSE oBrowse DATA cAlias SIZE wcol,wrow FONT feldfont ;
     ITEMSELECTED {||dblclickvorein(),oBrowse:RefreshAll()};
     EDIT xbeK_CTRL_E;
     PRESENTATION DC_BrowPres()
 DCBROWSECOL  FIELD &felder1 WIDTH 1 ;
   HEADER feldub1 PARENT oBrowse
 DCBROWSECOL FIELD  &felder2 WIDTH 4;
   HEADER feldub2 PARENT oBrowse
 DCBROWSECOL FIELD  &felder3 WIDTH 4;
   HEADER feldub3 PARENT oBrowse
 DCBROWSECOL FIELD  &felder4 WIDTH 1 ;
   HEADER feldub4 PARENT oBrowse
 DCBROWSECOL FIELD  &felder5 WIDTH 1 ;
   HEADER feldub5 PARENT oBrowse
 DCBROWSECOL FIELD  &felder6 WIDTH 10  ;
   HEADER feldub6 PARENT oBrowse
 DCBROWSECOL FIELD  &felder7 WIDTH 20 ;
   HEADER feldub7 PARENT oBrowse
 DCBROWSECOL FIELD  &felder8 WIDTH 20 ;
   HEADER feldub8 PARENT oBrowse
DCBROWSECOL FIELD &felder9 WIDTH 6 ;
   HEADER feldub9 PARENT oBrowse
 DCBROWSECOL FIELD  &felder10 WIDTH 5;
   HEADER feldub10 PARENT oBrowse
 DCBROWSECOL FIELD  &felder11 WIDTH 7;
   HEADER feldub11 PARENT oBrowse
 DCBROWSECOL FIELD  &felder12 WIDTH 6 ;
   HEADER feldub12 PARENT oBrowse
 DCBROWSECOL FIELD  &felder13 WIDTH 6 ;
   HEADER feldub13 PARENT oBrowse
Benutzeravatar
Wolfgang Ciriack
Der Entwickler von "Deep Thought"
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: Cell Edit in dcbrowse()

Beitrag von Wolfgang Ciriack »

Ich benutze zum Editieren immer die EDITOR Option von DCBROWSECOL, z.B.:

Code: Alles auswählen

@4.00, 3 DCBROWSE oBrowseArt ;
     DATA cIndex ;
     SIZE 90, 7.6 ;
     NOHSCROLL ;
     FIT ;
     TABSTOP ;
     EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITEXIT EXIT {|o| o:dehilite(), SetAppFocus(oZahlart) } ;
     LOSTFOCUS {|| oBrowseArt:dehilite() } ;
     GOTFOCUS {|| oBrowseArt:refreshAll() }

DCBROWSECOL FIELD (cIndex)->vk ;
            HEADER "E-Preis "+EUROZCH ;
            WIDTH 6 ;
            PRESENTATION aPresParx ;
            EDITOR "IDVK" ;
            ALIGN XBPALIGN_RIGHT+XBPALIGN_VCENTER ;
            PARENT oBrowseArt
......
@ NIL,NIL DCGET xNIL PICT "9999999.99" GETID "IDVK" ;
     VALID {|| NeuBerech(@v_netto, @v_steuer, @v_brutto, oWaufRec), dc_getrefresh(Getlist), .T. } ;
     POPUP {|d|MY_popcalc(d)} ;
     POPKEY xbeK_F1 ;
     FONT M->oGDL:cSayFont2

DCBROWSECOL FIELD (cIndex)->rabatt ;
            HEADER "Rabatt %" ;
            WIDTH 4 ;
            PRESENTATION aPresParx ;
            EDITOR "IDPR" ;
            ALIGN XBPALIGN_HCENTER ;
            PARENT oBrowseArt

@ NIL,NIL DCGET xNIL PICT "999.99" GETID "IDPR" ;
     VALID {|| NeuBerech(@v_netto, @v_steuer, @v_brutto, oWaufRec), dc_getrefresh(Getlist), .T. } ;
     FONT M->oGDL:cSayFont2
Viele Grüße
Wolfgang
Hippo
Rookie
Rookie
Beiträge: 10
Registriert: So, 20. Okt 2013 16:11

Re: Cell Edit in dcbrowse()

Beitrag von Hippo »

Danke Wolfgang, ich werde den Weg in den nächsten Tagen ausprobieren. Der Nachteil ist, dass alle Cols einzeln programmiert werden müssen und dies für mehrere Tabellen. Der Weg in XDEMO ist so einfach und elegant - wenn er funktionniert.
Nachtrag; Da hatte ich leider nur einen Teil der Function gelesen, ganz so elegant war das doch nicht

Peter
Zuletzt geändert von Hippo am Fr, 09. Jan 2015 21:41, insgesamt 1-mal geändert.
Hippo
Rookie
Rookie
Beiträge: 10
Registriert: So, 20. Okt 2013 16:11

Re: Cell Edit in dcbrowse()

Beitrag von Hippo »

Hallo Wolfgang
Dein Posting hat mich auf die richtige Fährte geführt. Es waren zwei Fehler zu korrigieren
1. Der Weg über die Macrovariablen &felder war falsch, es muss über %cAlias->Feldname gehen
2. Die Zeile EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITEXIT ruf das Editieren mit Doppelklick auf
Die Zeile ITEMSELECTED {||dblclickvorein(),oBrowse:RefreshAll()} muss raus. Beenden im Editiermodus mit Enter
Mit DCHOTKEY 13 ACTION {||entervorein(),oBrowse:RefreshAll()} // ENTER
habe ich die Entertaste zur Verfügung für den Aufruf einer function, wenn ich nicht im Editiermodus bin
So klappt es und ist auch nicht so viel Aufwand wie befürchtet, da ich keine EDITOR Option brauche
Danke nochmal
Antworten