ich stelle gerade fest, dass es wohl einen gravierenden Unterschied geben muß, ob ich in einem Browse eine Zelle, die editiert wurde, mit RETURN oder TAB verlasse.
das steht hier unter DCBROWSECOL
Code: Alles auswählen
@ 15,5 DCBROWSE oBrowse;
DATA oStrecken:cAlias;
EDIT xbeBRW_ItemSelected MODE DCGUI_BROWSE_EDITDOWN;
EVAL {|| pruefeAufSpaltenEnde(oBrowse,@lAnfang,@lEnde),dc_getrefresh(getlist) } ;
FREEZELEFT {1,2};
HEADLINES 2;
NOSOFTTRACK;
PARENT oGruppeBrowse;
PREEVAL {|| oBrowse:headerRbDown := {|aMousePos, nColPos, self| SpaltenHeaderNeu(nColPos,oBrowse,oRouten) },;
oBrowse:ItemRbDown := {|aMousePos, aRowCol, self| zeitenUebernahme(oBrowse,aRowCol,(oRouten:nArea)->id,(oStrecken:nArea)->folge),;
oBrowse:refreshAll();
};
};
SIZE DCGUI_PARENTWIDTH-15,DCGUI_PARENTHEIGHT-60
Code: Alles auswählen
FOR nI := 1 TO nMengeSpalten
cNi := Alltrim(Str(nI))
bColData := &("{||(oVarianten"+cNi+":nArea)->abfahrt}")
cHeader := IF( ! Empty((oVarianten&cNi:nArea)->tagesart),"Var" + cNi +';'+ (oVarianten&cNi:nArea)->tagesart,"Var" + cNi)
DCBROWSECOL DATA bColData;
DATATOOLTIP {|| .T.} TIPBLOCK {|| "RETURN oder Doppelklick linke Maustaste = Editmodus;rechte Maustaste = Übernahme der Zeit in ausgewählte Zelle"};
GOTFOCUS {|| pruefeAufSpaltenEnde(oBrowse,@lAnfang,@lEnde),dc_getrefresh(getlist) } ;
HEADER cHeader;
PARENT oBrowse;
PICTURE "@R 99:99";
TOOLTIP "rechte Maustaste um die Tagesart einzugeben oder zu ändern";
VALID {|c,o| validcol(oBrowse,o) };
WIDTH 50
NEXT
Code: Alles auswählen
********************************************************************************
STATIC FUNCTION validcol(oBrowse,oGet)
LOCAL cZeit := oGet:editBuffer()
LOCAL lErfolg := .T.
MEMVAR cNr
cNr := Alltrim(Str(oBrowse:colpos-2)) // mal sehen, was mir zu der 2 noch einfällt u es variabler zu halten
oVarianten&cNr:felderlesen()
oVarianten&cNr:abfahrt := Charrem(":",cZeit)
oVarianten&cNr:felderschreiben(oVarianten&cNr)
RETURN(lErfolg)