Problemas con variables
Posted: Wed Nov 12, 2008 10:32 am
Hola a todos,
En mi programa tengo una rutina para cambiar datos de un combobox, cuando hago doble clic entro en edición en una nueva ventana de forma que puedo rectificar los datos.
En esta ventana tengo un botón de cancelar y así dejar todo como estaba si no quiero medicarlo.
Para hacer esto, al entrar en la función hago una copia de la tabla de combobox en una variable nueva.
Si doy al botón aceptar retorna la modificada y si le doy a cancelar o cierro la ventan la copia.
La sorpresa es que cuando se modifica la original se modifica a la vez la copia así que no me sirve para nada.
¿Alguien sabe a que puede deberse esto?
Os pongo un ejemplo para que me entendáis:
FUNCTION AMTAULA(NP,TAULA,TI)
LOCAL FINESTRA2,SOR:=.F.,TAULAA
TAULAA=TAULA
DEFINE DIALOG FINESTRA2 FROM 1,1 TO 164,690 TITLE TI FONT TLLETRA PIXEL
............
@ 60,117 BUTTON "D'acord" SIZE 50,12 ACTION (SOR:=.T.,FINESTRA2:END()) PIXEL OF FINESTRA2
@ 60,177 BUTTON "Cancel·lar" SIZE 50,12 ACTION FINESTRA2:END() PIXEL OF FINESTRA2
ACTIVATE DIALOG FINESTRA2 CENTERED
IF SOR=.F.
RETURN TAULAA
ENDIF
RETURN TAULA
Recuerdos,
Andrés.
En mi programa tengo una rutina para cambiar datos de un combobox, cuando hago doble clic entro en edición en una nueva ventana de forma que puedo rectificar los datos.
En esta ventana tengo un botón de cancelar y así dejar todo como estaba si no quiero medicarlo.
Para hacer esto, al entrar en la función hago una copia de la tabla de combobox en una variable nueva.
Si doy al botón aceptar retorna la modificada y si le doy a cancelar o cierro la ventan la copia.
La sorpresa es que cuando se modifica la original se modifica a la vez la copia así que no me sirve para nada.
¿Alguien sabe a que puede deberse esto?
Os pongo un ejemplo para que me entendáis:
FUNCTION AMTAULA(NP,TAULA,TI)
LOCAL FINESTRA2,SOR:=.F.,TAULAA
TAULAA=TAULA
DEFINE DIALOG FINESTRA2 FROM 1,1 TO 164,690 TITLE TI FONT TLLETRA PIXEL
............
@ 60,117 BUTTON "D'acord" SIZE 50,12 ACTION (SOR:=.T.,FINESTRA2:END()) PIXEL OF FINESTRA2
@ 60,177 BUTTON "Cancel·lar" SIZE 50,12 ACTION FINESTRA2:END() PIXEL OF FINESTRA2
ACTIVATE DIALOG FINESTRA2 CENTERED
IF SOR=.F.
RETURN TAULAA
ENDIF
RETURN TAULA
Recuerdos,
Andrés.