Muchas Gracias por compartir tu código .
Como nos dices que podemos hacer comentarios ( siempre constructivos
) sobre el código , quiero decirte que veo que en la edicion de la agenda usas los arrays para sostener los objetos get y las variables . Yo tambien los usaba hasta que descubrí los Hash que permiten que mi codigo sea mucho mas "comprensible" cuando se alarga el numero de lineas a realizar ....
Me explico un poco : tu codigo
- Code: Select all Expand view
GNRL:={}
OBJ_GNRL=ARRAY(FCOUNT())
FOR N=1 TO FCOUNT()
AADD(GNRL,FIELDGET(N))
NEXT
DBSETORDER(INDICE)
GO POS
DEFINE DIALOG EDIT_GNRL FROM 0, 0 TO 27, 72;
TITLE "Gestión de la Agenda";
font ofontdlg
@ 15, 15 SAY "Código" PIXEL SIZE 50,10 right
IF NUEVO
GNRL[1]=ULT
@ 15, 70 GET OBJ_GNRL[1] VAR GNRL[1] PIXEL SIZE 26,10 UPDATE;
VALID TRATAR_AGEN(1) COLOR CLR_AZULETE,CLR_AMARILLO
OBJ_GNRL[1]:bLostFocus={||OBJ_GNRL[1]:SetColor(CLR_AMARILLO,CLR_AZULETE)}
OBJ_GNRL[1]:bGotFocus={||OBJ_GNRL[1]:SetColor(CLR_AZULETE,CLR_AMARILLO)}
mi codigo seria asi :
- Code: Select all Expand view
GNRL:= {=>}
OBJ_GNRL:= {=>}
FOR N=1 TO FCOUNT()
GNRL[ fieldname(n) ] := FIELDGET(N)
NEXT
DBSETORDER(INDICE)
GO POS
DEFINE DIALOG EDIT_GNRL FROM 0, 0 TO 27, 72;
TITLE "Gestión de la Agenda";
font ofontdlg
@ 15, 15 SAY "Código" PIXEL SIZE 50,10 right
IF NUEVO
GNRL["codigo"]=ULT
@ 15, 70 GET OBJ_GNRL["codigo"] VAR GNRL["codigo"] PIXEL SIZE 26,10 UPDATE;
VALID TRATAR_AGEN(1) COLOR CLR_AZULETE,CLR_AMARILLO
OBJ_GNRL["codigo"]:bLostFocus={||OBJ_GNRL["codigo"]:SetColor(CLR_AMARILLO,CLR_AZULETE)}
OBJ_GNRL["codigo"]:bGotFocus={||OBJ_GNRL["codigo"]:SetColor(CLR_AZULETE,CLR_AMARILLO)}