In order for this site to work correctly we need to store a small file (called a cookie) on your computer. Most every site in the world does this, however since the 25th of May 2011, by law we have to get your permission first. Please abandon the forum if you disagree.

Para que este foro funcione correctamente es necesario guardar un pequeño fichero (llamado cookie) en su ordenador. La mayoría de los sitios de Internet lo hacen, no obstante desde el 25 de Marzo de 2011 y por ley, necesitamos de su permiso con antelación. Abandone este foro si no está conforme.

TDBBrowse y el Control de las columnas

Foro público de Xailer en español
Responder
correo
Mensajes: 109
Registrado: Mar Nov 22, 2005 7:15 pm

TDBBrowse y el Control de las columnas

Mensaje por correo »

Perdonad que insista tanto pero sigue sin funcionarme
Voy a ver si consigo plantear la cuestión
Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos TABLA N
2 y TEXTO C 30
Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el siguiente
método
METHOD BtnNewClick( oSender ) CLASS TTABLAS
::Add(oSender)
RETURN Nil
METHOD ADD(oSender) CLASS TTABLAS
local nK
::nAlta := 1
::oDbfTab:AddNew() //Creo un registro
::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
::oBrwTab:Edit() //Edito el registro
RETURN NIL
Y efectivamente funciona ,aparece el control de edición en el primer
registro y primera columna
En el objeto TBrwColumn de la columna FICHA (la primera) he activado el ON
PostEdit
METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
local lOk
MsgInfo("Me evaluo 1")
if lCanceled
if MsgNoYes("¿Desea salir de la edición ?")
::oDbfTab:Delete()
::oBrwTab:GoTop()
retu nil
endif
endif
if AppData:oDbfTab:Seek(strzero(Value,2))
MsgAlert("Clave ya existe")
::oBrwTab:aCols[1]:Select()
::oBrwTab:Edit()
else
::oDbfTab:TABLA := Value
::oDbfTab:Update()
::oBrwTab:refresh()
endif
RETURN Nil
Si esto funcionara correctamente cuando pulso un valor e intro en la columna
"FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje "Me
evaluo 1" .
Este mensaje ,como el resto de las instrucciones del evento se evaluan
despues de editar la columna "TEXTO" ,es decir , la última
Alguien sabe por qué ? Se supone que debería evaluar el PostEdit de cada
columna ,despues de editar la columna y no despues de la última columna
Ruego me ayudeis porque ya no se lo que hacer y no me parece profesional
editar un formulario para 2 campos
Un saludo . Juan José García.
CapelSoft
Mensajes: 137
Registrado: Vie Jul 29, 2005 8:49 am
Ubicación: Valencia - España
Contactar:

TDBBrowse y el Control de las columnas

Mensaje por CapelSoft »

Juan José,
Déjanos un ejemplo sencillo (autocontenido) para poder ver lo que ocurre
y poder ayudarte mejor.
Saludos,
José Luis Capel
Juan José Garcí­a escribió:
> Perdonad que insista tanto pero sigue sin funcionarme
> Voy a ver si consigo plantear la cuestión
>
> Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos TABLA N
> 2 y TEXTO C 30
>
> Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el siguiente
> método
>
> METHOD BtnNewClick( oSender ) CLASS TTABLAS
> ::Add(oSender)
> RETURN Nil
>
> METHOD ADD(oSender) CLASS TTABLAS
> local nK
> ::nAlta := 1
> ::oDbfTab:AddNew() //Creo un registro
> ::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
> ::oBrwTab:Edit() //Edito el registro
> RETURN NIL
>
> Y efectivamente funciona ,aparece el control de edición en el primer
> registro y primera columna
>
> En el objeto TBrwColumn de la columna FICHA (la primera) he activado el ON
> PostEdit
>
> METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
> local lOk
> MsgInfo("Me evaluo 1")
> if lCanceled
> if MsgNoYes("¿Desea salir de la edición ?")
> ::oDbfTab:Delete()
> ::oBrwTab:GoTop()
> retu nil
> endif
> endif
>
> if AppData:oDbfTab:Seek(strzero(Value,2))
> MsgAlert("Clave ya existe")
> ::oBrwTab:aCols[1]:Select()
> ::oBrwTab:Edit()
> else
> ::oDbfTab:TABLA := Value
> ::oDbfTab:Update()
> ::oBrwTab:refresh()
> endif
>
> RETURN Nil
>
> Si esto funcionara correctamente cuando pulso un valor e intro en la columna
> "FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje "Me
> evaluo 1" .
> Este mensaje ,como el resto de las instrucciones del evento se evaluan
> despues de editar la columna "TEXTO" ,es decir , la última
>
> Alguien sabe por qué ? Se supone que deberí­a evaluar el PostEdit de cada
> columna ,despues de editar la columna y no despues de la última columna
>
> Ruego me ayudeis porque ya no se lo que hacer y no me parece profesional
> editar un formulario para 2 campos
>
> Un saludo . Juan José Garcí­a.
>
>
>
>
--
José Luis Capel
http://www.CapelBlog.es
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TDBBrowse y el Control de las columnas

Mensaje por ignacio »

Juan José,
Si lo que desea es capturar el evento que se produce cuando se salta de
edición de una columna a otra cuando se encuentre en edición en linea,
entonces deberá utilizar el evento ONEXIT del control oGridEdit de la
columna que pierde el foco.
Un saludo,
"Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
news:439f2874$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Perdonad que insista tanto pero sigue sin funcionarme
> Voy a ver si consigo plantear la cuestión
>
> Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos TABLA
> N
> 2 y TEXTO C 30
>
> Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el
> siguiente
> método
>
> METHOD BtnNewClick( oSender ) CLASS TTABLAS
> ::Add(oSender)
> RETURN Nil
>
> METHOD ADD(oSender) CLASS TTABLAS
> local nK
> ::nAlta := 1
> ::oDbfTab:AddNew() //Creo un registro
> ::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
> ::oBrwTab:Edit() //Edito el registro
> RETURN NIL
>
> Y efectivamente funciona ,aparece el control de edición en el primer
> registro y primera columna
>
> En el objeto TBrwColumn de la columna FICHA (la primera) he activado el ON
> PostEdit
>
> METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
> local lOk
> MsgInfo("Me evaluo 1")
> if lCanceled
> if MsgNoYes("¿Desea salir de la edición ?")
> ::oDbfTab:Delete()
> ::oBrwTab:GoTop()
> retu nil
> endif
> endif
>
> if AppData:oDbfTab:Seek(strzero(Value,2))
> MsgAlert("Clave ya existe")
> ::oBrwTab:aCols[1]:Select()
> ::oBrwTab:Edit()
> else
> ::oDbfTab:TABLA := Value
> ::oDbfTab:Update()
> ::oBrwTab:refresh()
> endif
>
> RETURN Nil
>
> Si esto funcionara correctamente cuando pulso un valor e intro en la
> columna
> "FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje "Me
> evaluo 1" .
> Este mensaje ,como el resto de las instrucciones del evento se evaluan
> despues de editar la columna "TEXTO" ,es decir , la última
>
> Alguien sabe por qué ? Se supone que debería evaluar el PostEdit de cada
> columna ,despues de editar la columna y no despues de la última columna
>
> Ruego me ayudeis porque ya no se lo que hacer y no me parece profesional
> editar un formulario para 2 campos
>
> Un saludo . Juan José García.
>
>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
correo
Mensajes: 109
Registrado: Mar Nov 22, 2005 7:15 pm

TDBBrowse y el Control de las columnas

Mensaje por correo »

Ignacio
He leido en la ayuda como Xailer crea un objeto oGridEdit asociado a la
columna y que está activo cuando esta se edita .
Pero como capturo el evento desde el Ide ?
Gracias.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:43a04f54$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Juan José,
>
> Si lo que desea es capturar el evento que se produce cuando se salta de
> edición de una columna a otra cuando se encuentre en edición en linea,
> entonces deberá utilizar el evento ONEXIT del control oGridEdit de la
> columna que pierde el foco.
>
> Un saludo,
>
> "Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
> news:439f2874$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Perdonad que insista tanto pero sigue sin funcionarme
>> Voy a ver si consigo plantear la cuestión
>>
>> Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos TABLA
>> N
>> 2 y TEXTO C 30
>>
>> Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el
>> siguiente
>> método
>>
>> METHOD BtnNewClick( oSender ) CLASS TTABLAS
>> ::Add(oSender)
>> RETURN Nil
>>
>> METHOD ADD(oSender) CLASS TTABLAS
>> local nK
>> ::nAlta := 1
>> ::oDbfTab:AddNew() //Creo un registro
>> ::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
>> ::oBrwTab:Edit() //Edito el registro
>> RETURN NIL
>>
>> Y efectivamente funciona ,aparece el control de edición en el primer
>> registro y primera columna
>>
>> En el objeto TBrwColumn de la columna FICHA (la primera) he activado el
>> ON
>> PostEdit
>>
>> METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
>> local lOk
>> MsgInfo("Me evaluo 1")
>> if lCanceled
>> if MsgNoYes("¿Desea salir de la edición ?")
>> ::oDbfTab:Delete()
>> ::oBrwTab:GoTop()
>> retu nil
>> endif
>> endif
>>
>> if AppData:oDbfTab:Seek(strzero(Value,2))
>> MsgAlert("Clave ya existe")
>> ::oBrwTab:aCols[1]:Select()
>> ::oBrwTab:Edit()
>> else
>> ::oDbfTab:TABLA := Value
>> ::oDbfTab:Update()
>> ::oBrwTab:refresh()
>> endif
>>
>> RETURN Nil
>>
>> Si esto funcionara correctamente cuando pulso un valor e intro en la
>> columna
>> "FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje
>> "Me
>> evaluo 1" .
>> Este mensaje ,como el resto de las instrucciones del evento se evaluan
>> despues de editar la columna "TEXTO" ,es decir , la última
>>
>> Alguien sabe por qué ? Se supone que debería evaluar el PostEdit de cada
>> columna ,despues de editar la columna y no despues de la última columna
>>
>> Ruego me ayudeis porque ya no se lo que hacer y no me parece profesional
>> editar un formulario para 2 campos
>>
>> Un saludo . Juan José García.
>>
>>
>>
>>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

TDBBrowse y el Control de las columnas

Mensaje por ignacio »

Juan José,
oCol:oGridEdit:OnExit := {|oSender| MiFuncion( oSender ) }
Saludos
"Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
news:43a05736$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ignacio
> He leido en la ayuda como Xailer crea un objeto oGridEdit asociado a la
> columna y que está activo cuando esta se edita .
> Pero como capturo el evento desde el Ide ?
> Gracias.
> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
> news:43a04f54$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Juan José,
>>
>> Si lo que desea es capturar el evento que se produce cuando se salta de
>> edición de una columna a otra cuando se encuentre en edición en linea,
>> entonces deberá utilizar el evento ONEXIT del control oGridEdit de la
>> columna que pierde el foco.
>>
>> Un saludo,
>>
>> "Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
>> news:439f2874$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Perdonad que insista tanto pero sigue sin funcionarme
>>> Voy a ver si consigo plantear la cuestión
>>>
>>> Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos
>>> TABLA N
>>> 2 y TEXTO C 30
>>>
>>> Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el
>>> siguiente
>>> método
>>>
>>> METHOD BtnNewClick( oSender ) CLASS TTABLAS
>>> ::Add(oSender)
>>> RETURN Nil
>>>
>>> METHOD ADD(oSender) CLASS TTABLAS
>>> local nK
>>> ::nAlta := 1
>>> ::oDbfTab:AddNew() //Creo un registro
>>> ::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
>>> ::oBrwTab:Edit() //Edito el registro
>>> RETURN NIL
>>>
>>> Y efectivamente funciona ,aparece el control de edición en el primer
>>> registro y primera columna
>>>
>>> En el objeto TBrwColumn de la columna FICHA (la primera) he activado el
>>> ON
>>> PostEdit
>>>
>>> METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
>>> local lOk
>>> MsgInfo("Me evaluo 1")
>>> if lCanceled
>>> if MsgNoYes("¿Desea salir de la edición ?")
>>> ::oDbfTab:Delete()
>>> ::oBrwTab:GoTop()
>>> retu nil
>>> endif
>>> endif
>>>
>>> if AppData:oDbfTab:Seek(strzero(Value,2))
>>> MsgAlert("Clave ya existe")
>>> ::oBrwTab:aCols[1]:Select()
>>> ::oBrwTab:Edit()
>>> else
>>> ::oDbfTab:TABLA := Value
>>> ::oDbfTab:Update()
>>> ::oBrwTab:refresh()
>>> endif
>>>
>>> RETURN Nil
>>>
>>> Si esto funcionara correctamente cuando pulso un valor e intro en la
>>> columna
>>> "FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje
>>> "Me
>>> evaluo 1" .
>>> Este mensaje ,como el resto de las instrucciones del evento se evaluan
>>> despues de editar la columna "TEXTO" ,es decir , la última
>>>
>>> Alguien sabe por qué ? Se supone que debería evaluar el PostEdit de cada
>>> columna ,despues de editar la columna y no despues de la última columna
>>>
>>> Ruego me ayudeis porque ya no se lo que hacer y no me parece profesional
>>> editar un formulario para 2 campos
>>>
>>> Un saludo . Juan José García.
>>>
>>>
>>>
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
correo
Mensajes: 109
Registrado: Mar Nov 22, 2005 7:15 pm

TDBBrowse y el Control de las columnas

Mensaje por correo »

Voy a probar esto ,mi mensaje de arriba lo escribi antes de leer este
Gracias.
"Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
news:43a059b0$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Juan José,
>
> oCol:oGridEdit:OnExit := {|oSender| MiFuncion( oSender ) }
>
> Saludos
>
> "Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
> news:43a05736$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Ignacio
>> He leido en la ayuda como Xailer crea un objeto oGridEdit asociado a la
>> columna y que está activo cuando esta se edita .
>> Pero como capturo el evento desde el Ide ?
>> Gracias.
>> "Ignacio Ortiz de Zúñiga" <InvalidAccount@ozs.com> escribió en el mensaje
>> news:43a04f54$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Juan José,
>>>
>>> Si lo que desea es capturar el evento que se produce cuando se salta de
>>> edición de una columna a otra cuando se encuentre en edición en linea,
>>> entonces deberá utilizar el evento ONEXIT del control oGridEdit de la
>>> columna que pierde el foco.
>>>
>>> Un saludo,
>>>
>>> "Juan José García" <correo@jjgsoft.biz> escribió en el mensaje
>>> news:439f2874$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>>> Perdonad que insista tanto pero sigue sin funcionarme
>>>> Voy a ver si consigo plantear la cuestión
>>>>
>>>> Quiero editar una DBF abierta con un TDataSet (oDbfTab) de 2 campos
>>>> TABLA N
>>>> 2 y TEXTO C 30
>>>>
>>>> Tengo una TDBBROWSE (oBrwTab) y un botón (oBtnNew) que Ejecuta el
>>>> siguiente
>>>> método
>>>>
>>>> METHOD BtnNewClick( oSender ) CLASS TTABLAS
>>>> ::Add(oSender)
>>>> RETURN Nil
>>>>
>>>> METHOD ADD(oSender) CLASS TTABLAS
>>>> local nK
>>>> ::nAlta := 1
>>>> ::oDbfTab:AddNew() //Creo un registro
>>>> ::oBrwTab:GoTop() //Fuerzo para que el registro se ubique arriba
>>>> ::oBrwTab:Edit() //Edito el registro
>>>> RETURN NIL
>>>>
>>>> Y efectivamente funciona ,aparece el control de edición en el primer
>>>> registro y primera columna
>>>>
>>>> En el objeto TBrwColumn de la columna FICHA (la primera) he activado el
>>>> ON
>>>> PostEdit
>>>>
>>>> METHOD BrwCol1PostEdit( oSender, Value, lCanceled, nKey ) CLASS TTABLAS
>>>> local lOk
>>>> MsgInfo("Me evaluo 1")
>>>> if lCanceled
>>>> if MsgNoYes("¿Desea salir de la edición ?")
>>>> ::oDbfTab:Delete()
>>>> ::oBrwTab:GoTop()
>>>> retu nil
>>>> endif
>>>> endif
>>>>
>>>> if AppData:oDbfTab:Seek(strzero(Value,2))
>>>> MsgAlert("Clave ya existe")
>>>> ::oBrwTab:aCols[1]:Select()
>>>> ::oBrwTab:Edit()
>>>> else
>>>> ::oDbfTab:TABLA := Value
>>>> ::oDbfTab:Update()
>>>> ::oBrwTab:refresh()
>>>> endif
>>>>
>>>> RETURN Nil
>>>>
>>>> Si esto funcionara correctamente cuando pulso un valor e intro en la
>>>> columna
>>>> "FICHA" que es la primera ,por lo menos me deberia aparecer el mensaje
>>>> "Me
>>>> evaluo 1" .
>>>> Este mensaje ,como el resto de las instrucciones del evento se evaluan
>>>> despues de editar la columna "TEXTO" ,es decir , la última
>>>>
>>>> Alguien sabe por qué ? Se supone que debería evaluar el PostEdit de
>>>> cada
>>>> columna ,despues de editar la columna y no despues de la última columna
>>>>
>>>> Ruego me ayudeis porque ya no se lo que hacer y no me parece
>>>> profesional
>>>> editar un formulario para 2 campos
>>>>
>>>> Un saludo . Juan José García.
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>
Responder