Página 1 de 1

TDBBrowse y el Control de las columnas

Publicado: Mar Dic 13, 2005 9:00 pm
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.

TDBBrowse y el Control de las columnas

Publicado: Mar Dic 13, 2005 9:04 pm
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.
>
>
>
>

TDBBrowse y el Control de las columnas

Publicado: Mié Dic 14, 2005 5:58 pm
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.
>
>
>
>

TDBBrowse y el Control de las columnas

Publicado: Mié Dic 14, 2005 6:32 pm
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.
>>
>>
>>
>>
>
>

TDBBrowse y el Control de las columnas

Publicado: Mié Dic 14, 2005 6:43 pm
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.
>>>
>>>
>>>
>>>
>>
>>
>
>

TDBBrowse y el Control de las columnas

Publicado: Mié Dic 14, 2005 6:51 pm
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.
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>