Página 1 de 1

Como s cuando edito y nuevo?

Publicado: Mar Ago 16, 2005 10:51 pm
por jrcpoli
Saludos:
Tengo un formulario general que contiene el siguiente codigo:
METHOD AddNew(oFrm) CLASS TFormMant
WITH OBJECT oFrm
:cText := "Agregar Nuevo"
::oDataSet:AddNew()
:ShowModal()
if :nModalResult == mrOK
::oDataSet:Update()
::oDBw:Refresh()
else
::oDataSet:Cancel()
endif
:End()
END WITH
RETURN NIL
//---------------------------------------------------------- --------------------
METHOD Edit(oFrm) CLASS TFormMant
WITH OBJECT oFrm
:cText := "Editar Registro"
::oDataSet:Edit()
:ShowModal()
// Since the form is closed here is important that you put
lHideOnClose to .T.
// when finished just destroy the form with End()
if :nModalResult == mrOK
::oDataSet:Update()
::oDBw:RefreshCurrent()
else
::oDataSet:Cancel()
endif
:End()
END WITH
RETURN NIL
Para hacer todos los mantenimientos de los ficheros auxiliares empleo un prg
para cada fichero que contiene este codigo:
METHOD AddNew( oSender ) CLASS TSocios
Super:AddNew(TFormSociosNew():New( Self ) )
RETURN Nil
//---------------------------------------------------------- -------------
METHOD Edit( oSender ) CLASS TSocios
Super:Edit(TFormSociosNew():New( Self ) )
RETURN Nil
Como se observa se llama al mismo formulario para los nuevos registro que
para editar un registro, yo necesito saber cuando estoy en modo edicción y
cuando es nuevo pero lo necesito saber en este formulario (TFormSociosNew)
no en el formulario generico que es el del primer código que es donde se
produce la pulsación o la acción de seleccionar lo que se va a hacer.
Segundo que evento debo activar para que no funcione el botón de OK mientras
no contengan datos una determinada seríe de DBEDIT, y si puede ser un
ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
compiladores era EditChange aquí no lo sé.
Tercero que evento desencadena que se pueda hacer un seguimiento de algunos
EDIT para comprobar si lo que ha metido el operador se ajusta a lo requerido
o si ha introducido una serie de datos desencadenar que se llene otro DBEDIT
asociado a este en otros compiladores EDITFOCUSCHANGE, o por el contrario si
se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
pueda saber el control que es y pongas lo que debe contener.
Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
(CristalReport, ReportPro).
Quinto se puede hacer funcionar un Active X, y si es así está ya operativo y
con que versión.
Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la tiene
TDBEDITBTN.
Bueno eso es todo espero vuestra respuesta.
entendible.
José Ramón Castro Polinio
JRCPOLI@terra.es

Como s cuando edito y nuevo?

Publicado: Mié Ago 17, 2005 8:26 am
por ignacio
Jose,
oDataSet:lOnEdit devuelve verdadero si se encuentra en edición, bien por
AddNew o Update.
oDataSet:lOnAppend devuelve verdadero si se encuentra en AddNew
Saludos,
"José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
news:[email=430251f8@ozsrvnegro.ozlan.local...]430251f8@ozsrvnegro.ozlan.local...[/email]
> Saludos:
> Tengo un formulario general que contiene el siguiente codigo:
> METHOD AddNew(oFrm) CLASS TFormMant
> WITH OBJECT oFrm
> :cText := "Agregar Nuevo"
> ::oDataSet:AddNew()
> :ShowModal()
> if :nModalResult == mrOK
> ::oDataSet:Update()
> ::oDBw:Refresh()
> else
> ::oDataSet:Cancel()
> endif
> :End()
> END WITH
> RETURN NIL
> //---------------------------------------------------------- --------------------
> METHOD Edit(oFrm) CLASS TFormMant
> WITH OBJECT oFrm
> :cText := "Editar Registro"
> ::oDataSet:Edit()
> :ShowModal()
> // Since the form is closed here is important that you put
> lHideOnClose to .T.
> // when finished just destroy the form with End()
> if :nModalResult == mrOK
> ::oDataSet:Update()
> ::oDBw:RefreshCurrent()
> else
> ::oDataSet:Cancel()
> endif
> :End()
> END WITH
> RETURN NIL
>
> Para hacer todos los mantenimientos de los ficheros auxiliares empleo un
> prg
> para cada fichero que contiene este codigo:
> METHOD AddNew( oSender ) CLASS TSocios
> Super:AddNew(TFormSociosNew():New( Self ) )
> RETURN Nil
> //---------------------------------------------------------- -------------
> METHOD Edit( oSender ) CLASS TSocios
> Super:Edit(TFormSociosNew():New( Self ) )
> RETURN Nil
>
> Como se observa se llama al mismo formulario para los nuevos registro que
> para editar un registro, yo necesito saber cuando estoy en modo edicción y
> cuando es nuevo pero lo necesito saber en este formulario (TFormSociosNew)
> no en el formulario generico que es el del primer código que es donde se
> produce la pulsación o la acción de seleccionar lo que se va a hacer.
>
> Segundo que evento debo activar para que no funcione el botón de OK
> mientras
> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
> compiladores era EditChange aquí no lo sé.
>
> Tercero que evento desencadena que se pueda hacer un seguimiento de
> algunos
> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
> requerido
> o si ha introducido una serie de datos desencadenar que se llene otro
> DBEDIT
> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el contrario
> si
> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
> pueda saber el control que es y pongas lo que debe contener.
>
> Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
> (CristalReport, ReportPro).
>
> Quinto se puede hacer funcionar un Active X, y si es así está ya operativo
> y
> con que versión.
>
> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la tiene
> TDBEDITBTN.
>
> Bueno eso es todo espero vuestra respuesta.
> entendible.
>
> José Ramón Castro Polinio
> JRCPOLI@terra.es
>
>
>
>
>
>
>

Como s cuando edito y nuevo?

Publicado: Mié Ago 17, 2005 11:59 am
por jrcpoli
Saludos:
Lo primero gracias por responder a una de mis preguntas, pero en el
correo iban más custiones que me he quedado sin respuesta, por favor volver
a leer el correo completo.
José Ramón Castro Polinio
JRCPOLI@terra.es
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:[email=4302d86f@ozsrvnegro.ozlan.local...]4302d86f@ozsrvnegro.ozlan.local...[/email]
> Jose,
>
> oDataSet:lOnEdit devuelve verdadero si se encuentra en edición, bien por
> AddNew o Update.
>
> oDataSet:lOnAppend devuelve verdadero si se encuentra en AddNew
>
> Saludos,
>
> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
> news:[email=430251f8@ozsrvnegro.ozlan.local...]430251f8@ozsrvnegro.ozlan.local...[/email]
>> Saludos:
>> Tengo un formulario general que contiene el siguiente codigo:
>> METHOD AddNew(oFrm) CLASS TFormMant
>> WITH OBJECT oFrm
>> :cText := "Agregar Nuevo"
>> ::oDataSet:AddNew()
>> :ShowModal()
>> if :nModalResult == mrOK
>> ::oDataSet:Update()
>> ::oDBw:Refresh()
>> else
>> ::oDataSet:Cancel()
>> endif
>> :End()
>> END WITH
>> RETURN NIL
>> //---------------------------------------------------------- --------------------
>> METHOD Edit(oFrm) CLASS TFormMant
>> WITH OBJECT oFrm
>> :cText := "Editar Registro"
>> ::oDataSet:Edit()
>> :ShowModal()
>> // Since the form is closed here is important that you put
>> lHideOnClose to .T.
>> // when finished just destroy the form with End()
>> if :nModalResult == mrOK
>> ::oDataSet:Update()
>> ::oDBw:RefreshCurrent()
>> else
>> ::oDataSet:Cancel()
>> endif
>> :End()
>> END WITH
>> RETURN NIL
>>
>> Para hacer todos los mantenimientos de los ficheros auxiliares empleo un
>> prg
>> para cada fichero que contiene este codigo:
>> METHOD AddNew( oSender ) CLASS TSocios
>> Super:AddNew(TFormSociosNew():New( Self ) )
>> RETURN Nil
>> //---------------------------------------------------------- -------------
>> METHOD Edit( oSender ) CLASS TSocios
>> Super:Edit(TFormSociosNew():New( Self ) )
>> RETURN Nil
>>
>> Como se observa se llama al mismo formulario para los nuevos registro que
>> para editar un registro, yo necesito saber cuando estoy en modo edicción
>> y
>> cuando es nuevo pero lo necesito saber en este formulario
>> (TFormSociosNew)
>> no en el formulario generico que es el del primer código que es donde se
>> produce la pulsación o la acción de seleccionar lo que se va a hacer.
>>
>> Segundo que evento debo activar para que no funcione el botón de OK
>> mientras
>> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
>> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
>> compiladores era EditChange aquí no lo sé.
>>
>> Tercero que evento desencadena que se pueda hacer un seguimiento de
>> algunos
>> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
>> requerido
>> o si ha introducido una serie de datos desencadenar que se llene otro
>> DBEDIT
>> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el contrario
>> si
>> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
>> pueda saber el control que es y pongas lo que debe contener.
>>
>> Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
>> (CristalReport, ReportPro).
>>
>> Quinto se puede hacer funcionar un Active X, y si es así está ya
>> operativo
>> y
>> con que versión.
>>
>> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la
>> tiene
>> TDBEDITBTN.
>>
>> Bueno eso es todo espero vuestra respuesta.
>> entendible.
>>
>> José Ramón Castro Polinio
>> JRCPOLI@terra.es
>>
>>
>>
>>
>>
>>
>>
>
>

Como s cuando edito y nuevo?

Publicado: Mié Ago 17, 2005 12:27 pm
por jrcpoli
Saludos Ignacio:
He probado en el Formulario TFormPoblacNew las variables logicas que me
has enviado pero parece que así no consigo nada, para que veas como lo hecho
te adjunto esto:
METHOD N_PuntoCreate( oSender ) CLASS TFormPoblacNew
oSender:oDataSet := ::oParent:oDataSet
RETURN Nil
//---------------------------------------------------------- --------------------
METHOD FormInitialize( oSender ) CLASS TFormPoblacNew
// Estoy en Registro Nuevo
IF ::oParent:oDataSet:lOnAppend
MsgInfo("Estoy Añadiendo")
ELSE
MsgInfo("Estoy Editando")
END IF
** Carga los ComboBox
WITH OBJECT ::oNum_Club
:aItems := CargarClub()
END
WITH OBJECT ::oN_Fed
:aItems := CargarFed()
END
WITH OBJECT ::oN_Zona
:aItems := CargarZona()
END
RETURN Nil
Siempre me dá que estoy editando, aunque le formulario que me presenta están
los campos vacios, creo que la llamada la debo de hacer o desde otro sitio o
está mal configurada.
José Ramón Castro Polinio.
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:[email=4302d86f@ozsrvnegro.ozlan.local...]4302d86f@ozsrvnegro.ozlan.local...[/email]
> Jose,
>
> oDataSet:lOnEdit devuelve verdadero si se encuentra en edición, bien por
> AddNew o Update.
>
> oDataSet:lOnAppend devuelve verdadero si se encuentra en AddNew
>
> Saludos,
>
> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
> news:[email=430251f8@ozsrvnegro.ozlan.local...]430251f8@ozsrvnegro.ozlan.local...[/email]
>> Saludos:
>> Tengo un formulario general que contiene el siguiente codigo:
>> METHOD AddNew(oFrm) CLASS TFormMant
>> WITH OBJECT oFrm
>> :cText := "Agregar Nuevo"
>> ::oDataSet:AddNew()
>> :ShowModal()
>> if :nModalResult == mrOK
>> ::oDataSet:Update()
>> ::oDBw:Refresh()
>> else
>> ::oDataSet:Cancel()
>> endif
>> :End()
>> END WITH
>> RETURN NIL
>> //---------------------------------------------------------- --------------------
>> METHOD Edit(oFrm) CLASS TFormMant
>> WITH OBJECT oFrm
>> :cText := "Editar Registro"
>> ::oDataSet:Edit()
>> :ShowModal()
>> // Since the form is closed here is important that you put
>> lHideOnClose to .T.
>> // when finished just destroy the form with End()
>> if :nModalResult == mrOK
>> ::oDataSet:Update()
>> ::oDBw:RefreshCurrent()
>> else
>> ::oDataSet:Cancel()
>> endif
>> :End()
>> END WITH
>> RETURN NIL
>>
>> Para hacer todos los mantenimientos de los ficheros auxiliares empleo un
>> prg
>> para cada fichero que contiene este codigo:
>> METHOD AddNew( oSender ) CLASS TSocios
>> Super:AddNew(TFormSociosNew():New( Self ) )
>> RETURN Nil
>> //---------------------------------------------------------- -------------
>> METHOD Edit( oSender ) CLASS TSocios
>> Super:Edit(TFormSociosNew():New( Self ) )
>> RETURN Nil
>>
>> Como se observa se llama al mismo formulario para los nuevos registro que
>> para editar un registro, yo necesito saber cuando estoy en modo edicción
>> y
>> cuando es nuevo pero lo necesito saber en este formulario
>> (TFormSociosNew)
>> no en el formulario generico que es el del primer código que es donde se
>> produce la pulsación o la acción de seleccionar lo que se va a hacer.
>>
>> Segundo que evento debo activar para que no funcione el botón de OK
>> mientras
>> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
>> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
>> compiladores era EditChange aquí no lo sé.
>>
>> Tercero que evento desencadena que se pueda hacer un seguimiento de
>> algunos
>> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
>> requerido
>> o si ha introducido una serie de datos desencadenar que se llene otro
>> DBEDIT
>> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el contrario
>> si
>> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
>> pueda saber el control que es y pongas lo que debe contener.
>>
>> Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
>> (CristalReport, ReportPro).
>>
>> Quinto se puede hacer funcionar un Active X, y si es así está ya
>> operativo
>> y
>> con que versión.
>>
>> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la
>> tiene
>> TDBEDITBTN.
>>
>> Bueno eso es todo espero vuestra respuesta.
>> entendible.
>>
>> José Ramón Castro Polinio
>> JRCPOLI@terra.es
>>
>>
>>
>>
>>
>>
>>
>
>

Como s cuando edito y nuevo?

Publicado: Mié Ago 17, 2005 7:04 pm
por zeasoftware
> IF ::oParent:oDataSet:lOnAppend
al ponerlo en el initialize siempre sera falso.
Ademas, un registro nuevo siempre lo editas, es cuastion de analisis.
Si traducimos, ADD == agregar por lo tanto: AddNew me agregar un registro
nuevo.
Ahora Edit == Editar, por lo tanto tomamos el registro actual y lo editamos,
Si checas los methodos son muy similares, cambian muy pocos, yo los he usado
para mis procesos de mantenimiento.
Saludos.
Ramón Zea

Como s cuando edito y nuevo?

Publicado: Jue Ago 18, 2005 9:20 am
por ignacio
José,
Lee de nuevo mi mensaje. Sería así:
> IF ::oParent:oDataSet:lOnAppend
> MsgInfo("Estoy Añadiendo")
> ELSEIF ::oParent:oDataSet:lOnEdit
> MsgInfo("Estoy Editando")
> ELSE
> MsgInfo("Estoy visualizando")
> END IF
Saludos,
"José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
news:[email=43031123@ozsrvnegro.ozlan.local...]43031123@ozsrvnegro.ozlan.local...[/email]
> Saludos Ignacio:
>
> He probado en el Formulario TFormPoblacNew las variables logicas que me
> has enviado pero parece que así no consigo nada, para que veas como lo
> hecho
> te adjunto esto:
>
> METHOD N_PuntoCreate( oSender ) CLASS TFormPoblacNew
> oSender:oDataSet := ::oParent:oDataSet
> RETURN Nil
> //---------------------------------------------------------- --------------------
> METHOD FormInitialize( oSender ) CLASS TFormPoblacNew
> // Estoy en Registro Nuevo
> IF ::oParent:oDataSet:lOnAppend
> MsgInfo("Estoy Añadiendo")
> ELSE
> MsgInfo("Estoy Editando")
> END IF
>
> ** Carga los ComboBox
> WITH OBJECT ::oNum_Club
> :aItems := CargarClub()
> END
> WITH OBJECT ::oN_Fed
> :aItems := CargarFed()
> END
> WITH OBJECT ::oN_Zona
> :aItems := CargarZona()
> END
>
> RETURN Nil
>
> Siempre me dá que estoy editando, aunque le formulario que me presenta
> están
> los campos vacios, creo que la llamada la debo de hacer o desde otro sitio
> o
> está mal configurada.
>
> José Ramón Castro Polinio.
>
> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
> news:[email=4302d86f@ozsrvnegro.ozlan.local...]4302d86f@ozsrvnegro.ozlan.local...[/email]
>> Jose,
>>
>> oDataSet:lOnEdit devuelve verdadero si se encuentra en edición, bien por
>> AddNew o Update.
>>
>> oDataSet:lOnAppend devuelve verdadero si se encuentra en AddNew
>>
>> Saludos,
>>
>> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
>> news:[email=430251f8@ozsrvnegro.ozlan.local...]430251f8@ozsrvnegro.ozlan.local...[/email]
>>> Saludos:
>>> Tengo un formulario general que contiene el siguiente codigo:
>>> METHOD AddNew(oFrm) CLASS TFormMant
>>> WITH OBJECT oFrm
>>> :cText := "Agregar Nuevo"
>>> ::oDataSet:AddNew()
>>> :ShowModal()
>>> if :nModalResult == mrOK
>>> ::oDataSet:Update()
>>> ::oDBw:Refresh()
>>> else
>>> ::oDataSet:Cancel()
>>> endif
>>> :End()
>>> END WITH
>>> RETURN NIL
>>> //---------------------------------------------------------- --------------------
>>> METHOD Edit(oFrm) CLASS TFormMant
>>> WITH OBJECT oFrm
>>> :cText := "Editar Registro"
>>> ::oDataSet:Edit()
>>> :ShowModal()
>>> // Since the form is closed here is important that you put
>>> lHideOnClose to .T.
>>> // when finished just destroy the form with End()
>>> if :nModalResult == mrOK
>>> ::oDataSet:Update()
>>> ::oDBw:RefreshCurrent()
>>> else
>>> ::oDataSet:Cancel()
>>> endif
>>> :End()
>>> END WITH
>>> RETURN NIL
>>>
>>> Para hacer todos los mantenimientos de los ficheros auxiliares empleo un
>>> prg
>>> para cada fichero que contiene este codigo:
>>> METHOD AddNew( oSender ) CLASS TSocios
>>> Super:AddNew(TFormSociosNew():New( Self ) )
>>> RETURN Nil
>>> //---------------------------------------------------------- -------------
>>> METHOD Edit( oSender ) CLASS TSocios
>>> Super:Edit(TFormSociosNew():New( Self ) )
>>> RETURN Nil
>>>
>>> Como se observa se llama al mismo formulario para los nuevos registro
>>> que
>>> para editar un registro, yo necesito saber cuando estoy en modo edicción
>>> y
>>> cuando es nuevo pero lo necesito saber en este formulario
>>> (TFormSociosNew)
>>> no en el formulario generico que es el del primer código que es donde se
>>> produce la pulsación o la acción de seleccionar lo que se va a hacer.
>>>
>>> Segundo que evento debo activar para que no funcione el botón de OK
>>> mientras
>>> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
>>> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
>>> compiladores era EditChange aquí no lo sé.
>>>
>>> Tercero que evento desencadena que se pueda hacer un seguimiento de
>>> algunos
>>> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
>>> requerido
>>> o si ha introducido una serie de datos desencadenar que se llene otro
>>> DBEDIT
>>> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el
>>> contrario
>>> si
>>> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
>>> pueda saber el control que es y pongas lo que debe contener.
>>>
>>> Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
>>> (CristalReport, ReportPro).
>>>
>>> Quinto se puede hacer funcionar un Active X, y si es así está ya
>>> operativo
>>> y
>>> con que versión.
>>>
>>> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la
>>> tiene
>>> TDBEDITBTN.
>>>
>>> Bueno eso es todo espero vuestra respuesta.
>>> entendible.
>>>
>>> José Ramón Castro Polinio
>>> JRCPOLI@terra.es
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>

Como s cuando edito y nuevo?

Publicado: Jue Ago 18, 2005 9:29 am
por ignacio
Jose,
>>> Segundo que evento debo activar para que no funcione el botón de OK
>>> mientras
>>> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
>>> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
>>> compiladores era EditChange aquí no lo sé.
OnCheckState()
Por ejemplo:
METHOD BtnAppendCheckState( oSender ) CLASS TFrm
RETURN !Empty( ::oEdit:cText )
>>> Tercero que evento desencadena que se pueda hacer un seguimiento de
>>> algunos
>>> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
>>> requerido
>>> o si ha introducido una serie de datos desencadenar que se llene otro
>>> DBEDIT
>>> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el
>>> contrario
>>> si
>>> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
>>> pueda saber el control que es y pongas lo que debe contener.
>>>
OnExit() es un evento que se dispaa cuando el control pierde foco, y onEnter
se dispara cuando lo recibe.
>>> Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
>>> (CristalReport, ReportPro).
No estará disponible hasta la versión 2.0 de Xailer, osea, que le falta
basante. Nuestra intención es hacer de momento una clase de conexión con CR.
Estamos estudiando la integración de otros productos gratuitos pero de una
gran potencia, pero de momento seguimos en la fasa de búsqueda.
>>> Quinto se puede hacer funcionar un Active X, y si es así está ya
>>> operativo
>>> y
>>> con que versión.
De momento no está operativo, pero estará para la versión 1.0 en nuestro
producto 'Profesional', es decir, la versión 'Personal' no tendrá esta
característica.
>>>
>>> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la
>>> tiene
>>> TDBEDITBTN.
TDBEdit hereda de TEdit que tampoco usa máscara. Sin embargo TDBMaskEdit si
la utiliza ya que hereda de TMaskEdit. De la misma forma TDbEditBtn tiene
máscara por heredar de TEditBtn que también la tiene.
Un saludo,
"José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
news:[email=43030f08@ozsrvnegro.ozlan.local...]43030f08@ozsrvnegro.ozlan.local...[/email]
> Saludos:
>
> Lo primero gracias por responder a una de mis preguntas, pero en el
> correo iban más custiones que me he quedado sin respuesta, por favor
> volver
> a leer el correo completo.
>
> José Ramón Castro Polinio
> JRCPOLI@terra.es
>
>
> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
> news:[email=4302d86f@ozsrvnegro.ozlan.local...]4302d86f@ozsrvnegro.ozlan.local...[/email]
>> Jose,
>>
>> oDataSet:lOnEdit devuelve verdadero si se encuentra en edición, bien por
>> AddNew o Update.
>>
>> oDataSet:lOnAppend devuelve verdadero si se encuentra en AddNew
>>
>> Saludos,
>>
>> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
>> news:[email=430251f8@ozsrvnegro.ozlan.local...]430251f8@ozsrvnegro.ozlan.local...[/email]
>>> Saludos:
>>> Tengo un formulario general que contiene el siguiente codigo:
>>> METHOD AddNew(oFrm) CLASS TFormMant
>>> WITH OBJECT oFrm
>>> :cText := "Agregar Nuevo"
>>> ::oDataSet:AddNew()
>>> :ShowModal()
>>> if :nModalResult == mrOK
>>> ::oDataSet:Update()
>>> ::oDBw:Refresh()
>>> else
>>> ::oDataSet:Cancel()
>>> endif
>>> :End()
>>> END WITH
>>> RETURN NIL
>>> //---------------------------------------------------------- --------------------
>>> METHOD Edit(oFrm) CLASS TFormMant
>>> WITH OBJECT oFrm
>>> :cText := "Editar Registro"
>>> ::oDataSet:Edit()
>>> :ShowModal()
>>> // Since the form is closed here is important that you put
>>> lHideOnClose to .T.
>>> // when finished just destroy the form with End()
>>> if :nModalResult == mrOK
>>> ::oDataSet:Update()
>>> ::oDBw:RefreshCurrent()
>>> else
>>> ::oDataSet:Cancel()
>>> endif
>>> :End()
>>> END WITH
>>> RETURN NIL
>>>
>>> Para hacer todos los mantenimientos de los ficheros auxiliares empleo un
>>> prg
>>> para cada fichero que contiene este codigo:
>>> METHOD AddNew( oSender ) CLASS TSocios
>>> Super:AddNew(TFormSociosNew():New( Self ) )
>>> RETURN Nil
>>> //---------------------------------------------------------- -------------
>>> METHOD Edit( oSender ) CLASS TSocios
>>> Super:Edit(TFormSociosNew():New( Self ) )
>>> RETURN Nil
>>>
>>> Como se observa se llama al mismo formulario para los nuevos registro
>>> que
>>> para editar un registro, yo necesito saber cuando estoy en modo edicción
>>> y
>>> cuando es nuevo pero lo necesito saber en este formulario
>>> (TFormSociosNew)
>>> no en el formulario generico que es el del primer código que es donde se
>>> produce la pulsación o la acción de seleccionar lo que se va a hacer.
>>>
>>> Segundo que evento debo activar para que no funcione el botón de OK
>>> mientras
>>> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
>>> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
>>> compiladores era EditChange aquí no lo sé.
>>>
>>> Tercero que evento desencadena que se pueda hacer un seguimiento de
>>> algunos
>>> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
>>> requerido
>>> o si ha introducido una serie de datos desencadenar que se llene otro
>>> DBEDIT
>>> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el
>>> contrario
>>> si
>>> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
>>> pueda saber el control que es y pongas lo que debe contener.
>>>
>>> Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
>>> (CristalReport, ReportPro).
>>>
>>> Quinto se puede hacer funcionar un Active X, y si es así está ya
>>> operativo
>>> y
>>> con que versión.
>>>
>>> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la
>>> tiene
>>> TDBEDITBTN.
>>>
>>> Bueno eso es todo espero vuestra respuesta.
>>> entendible.
>>>
>>> José Ramón Castro Polinio
>>> JRCPOLI@terra.es
>>>
>>>
>>>
>>>
>>>
>>>
>>>
>>
>>
>
>
>
>
>
>

Como s cuando edito y nuevo?

Publicado: Jue Ago 18, 2005 10:33 pm
por jrcpoli
Saludos:
Es correcta la secuencia, lo que pasa es que el problema radica donde se
pone, he comprobado que funciona correctamente si se implementa en mi caso
en el evento FormShow( oSender ), si se implementa en FormInitialize(
oSender ) no funciona, ¿esto es correcto?, logicamente si FormShow(
oSender ) se dispara cuando el formulario se ha ejecutado, es correcto que
sea así y no cuando se Inicializa a no ser que haya que hacer algo para que
se dispare en FormInitialize( oSender ).
METHOD FormShow( oSender ) CLASS TFormPoblacNew
// Estoy en Registro Nuevo por lo tanto
// lEditar := False
::lEditar := ::oParent:oDataSet:lOnAppend
IF ::lEditar
// Poner el Punto de suelta automaticamente
//::oN_Punto:Value := PonerNPunto()
ELSE
// Desactiva Varios Edit que son campos claves.
::oN_Punto:lEnabled := .F.
::oL_Suelta:lEnabled := .F.
// Selecciona la primera pestaña del Folder
::oFolderPage1:Select()
ENDIF
RETURN Nil
Segunda cuestión si se tiene abierta como es mi caso un DataSet y quiero
cuando añado un registro que un campo tenga un valor que sea incremental con
respecto al mayor valor que tenga actualmente la base de datos que será la
misma, necesito abrir una nueva instancia de DataSet através de una función
si alguien es tan amable me puede decir como se abre dicha DataSet dentro de
la función, lo puedo hacer igual que se abre dentro de un formulario, por
este código me dice que el alias ya está abierto.
FUNCTION PonerNPunto()
LOCAL numvacante := 0
LOCAL numocupado := 0
** Abrir base de datos
USE BASESPOBLAC SHARED NEW ALIAS "Poblac" // Sustituir por abrir con
DataSet
IF LASTREC() > 1
// Se posiciona en el primer registro
Poblac->(DBGOTOP())
numocupado := Poblac->N_Punto
numvacante := numocupado + 1
DO WHILE !EOF()
IF Poblac->N_Punto >= numvacante
numocupado := Poblac->N_Punto
ENDIF
numvacante := numocupado + 1
Poblac->(DBSKIP())
ENDDO
ELSE
numvacante := 1
ENDIF
// Cerrar Base
Close Poblac
RETURN numvacante
José Ramón Castro Polinio
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:[email=4304369f@ozsrvnegro.ozlan.local...]4304369f@ozsrvnegro.ozlan.local...[/email]
> José,
>
> Lee de nuevo mi mensaje. Sería así:
>
>> IF ::oParent:oDataSet:lOnAppend
>> MsgInfo("Estoy Añadiendo")
>> ELSEIF ::oParent:oDataSet:lOnEdit
>> MsgInfo("Estoy Editando")
>> ELSE
>> MsgInfo("Estoy visualizando")
>> END IF
>
> Saludos,
>
> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
> news:[email=43031123@ozsrvnegro.ozlan.local...]43031123@ozsrvnegro.ozlan.local...[/email]
>> Saludos Ignacio:
>>
>> He probado en el Formulario TFormPoblacNew las variables logicas que
>> me
>> has enviado pero parece que así no consigo nada, para que veas como lo
>> hecho
>> te adjunto esto:
>>
>> METHOD N_PuntoCreate( oSender ) CLASS TFormPoblacNew
>> oSender:oDataSet := ::oParent:oDataSet
>> RETURN Nil
>> //---------------------------------------------------------- --------------------
>> METHOD FormInitialize( oSender ) CLASS TFormPoblacNew
>> // Estoy en Registro Nuevo
>> IF ::oParent:oDataSet:lOnAppend
>> MsgInfo("Estoy Añadiendo")
>> ELSE
>> MsgInfo("Estoy Editando")
>> END IF
>>
>> ** Carga los ComboBox
>> WITH OBJECT ::oNum_Club
>> :aItems := CargarClub()
>> END
>> WITH OBJECT ::oN_Fed
>> :aItems := CargarFed()
>> END
>> WITH OBJECT ::oN_Zona
>> :aItems := CargarZona()
>> END
>>
>> RETURN Nil
>>
>> Siempre me dá que estoy editando, aunque le formulario que me presenta
>> están
>> los campos vacios, creo que la llamada la debo de hacer o desde otro
>> sitio
>> o
>> está mal configurada.
>>
>> José Ramón Castro Polinio.
>>
>> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
>> news:[email=4302d86f@ozsrvnegro.ozlan.local...]4302d86f@ozsrvnegro.ozlan.local...[/email]
>>> Jose,
>>>
>>> oDataSet:lOnEdit devuelve verdadero si se encuentra en edición, bien por
>>> AddNew o Update.
>>>
>>> oDataSet:lOnAppend devuelve verdadero si se encuentra en AddNew
>>>
>>> Saludos,
>>>
>>> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
>>> news:[email=430251f8@ozsrvnegro.ozlan.local...]430251f8@ozsrvnegro.ozlan.local...[/email]
>>>> Saludos:
>>>> Tengo un formulario general que contiene el siguiente codigo:
>>>> METHOD AddNew(oFrm) CLASS TFormMant
>>>> WITH OBJECT oFrm
>>>> :cText := "Agregar Nuevo"
>>>> ::oDataSet:AddNew()
>>>> :ShowModal()
>>>> if :nModalResult == mrOK
>>>> ::oDataSet:Update()
>>>> ::oDBw:Refresh()
>>>> else
>>>> ::oDataSet:Cancel()
>>>> endif
>>>> :End()
>>>> END WITH
>>>> RETURN NIL
>>>> //---------------------------------------------------------- --------------------
>>>> METHOD Edit(oFrm) CLASS TFormMant
>>>> WITH OBJECT oFrm
>>>> :cText := "Editar Registro"
>>>> ::oDataSet:Edit()
>>>> :ShowModal()
>>>> // Since the form is closed here is important that you put
>>>> lHideOnClose to .T.
>>>> // when finished just destroy the form with End()
>>>> if :nModalResult == mrOK
>>>> ::oDataSet:Update()
>>>> ::oDBw:RefreshCurrent()
>>>> else
>>>> ::oDataSet:Cancel()
>>>> endif
>>>> :End()
>>>> END WITH
>>>> RETURN NIL
>>>>
>>>> Para hacer todos los mantenimientos de los ficheros auxiliares empleo
>>>> un
>>>> prg
>>>> para cada fichero que contiene este codigo:
>>>> METHOD AddNew( oSender ) CLASS TSocios
>>>> Super:AddNew(TFormSociosNew():New( Self ) )
>>>> RETURN Nil
>>>> //---------------------------------------------------------- -------------
>>>> METHOD Edit( oSender ) CLASS TSocios
>>>> Super:Edit(TFormSociosNew():New( Self ) )
>>>> RETURN Nil
>>>>
>>>> Como se observa se llama al mismo formulario para los nuevos registro
>>>> que
>>>> para editar un registro, yo necesito saber cuando estoy en modo
>>>> edicción
>>>> y
>>>> cuando es nuevo pero lo necesito saber en este formulario
>>>> (TFormSociosNew)
>>>> no en el formulario generico que es el del primer código que es donde
>>>> se
>>>> produce la pulsación o la acción de seleccionar lo que se va a hacer.
>>>>
>>>> Segundo que evento debo activar para que no funcione el botón de OK
>>>> mientras
>>>> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
>>>> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
>>>> compiladores era EditChange aquí no lo sé.
>>>>
>>>> Tercero que evento desencadena que se pueda hacer un seguimiento de
>>>> algunos
>>>> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
>>>> requerido
>>>> o si ha introducido una serie de datos desencadenar que se llene otro
>>>> DBEDIT
>>>> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el
>>>> contrario
>>>> si
>>>> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que se
>>>> pueda saber el control que es y pongas lo que debe contener.
>>>>
>>>> Cuarto se sabe cuando va ha estar disponible el editor de reportes tipo
>>>> (CristalReport, ReportPro).
>>>>
>>>> Quinto se puede hacer funcionar un Active X, y si es así está ya
>>>> operativo
>>>> y
>>>> con que versión.
>>>>
>>>> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la
>>>> tiene
>>>> TDBEDITBTN.
>>>>
>>>> Bueno eso es todo espero vuestra respuesta.
>>>> entendible.
>>>>
>>>> José Ramón Castro Polinio
>>>> JRCPOLI@terra.es
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>

Como s cuando edito y nuevo?

Publicado: Vie Ago 19, 2005 9:00 am
por ignacio
José,
No se cuando ni como llama a los métodos Edit y AddNew del Dataset, y
posiblemente, ahí radique el motivo por el cual no le funciona en
FormInitialize.
En cuanto a su segunda pregunta, puede hacerlo de dos formas, abriendo otro
dataset, lo cual no implica ninguna complejidad supongo, o utilizando el
mismo Dataset que utiliza para la edición.
Para este último caso el código sería algo así:
WITH OBJECT oDataset
:SaveState( .T. ) // El parametro es super imporante
:OrdSetFocus( "CODIGO" )
:GoBottom()
nLast := :Codigo + 1
:RestoreState( .T. )
END WITH
Consulte en la documentación los métodos SaveState y RestoreState.
Saludos
"José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
news:[email=4304f092@ozsrvnegro.ozlan.local...]4304f092@ozsrvnegro.ozlan.local...[/email]
> Saludos:
> Es correcta la secuencia, lo que pasa es que el problema radica donde
> se
> pone, he comprobado que funciona correctamente si se implementa en mi caso
> en el evento FormShow( oSender ), si se implementa en FormInitialize(
> oSender ) no funciona, ¿esto es correcto?, logicamente si FormShow(
> oSender ) se dispara cuando el formulario se ha ejecutado, es correcto que
> sea así y no cuando se Inicializa a no ser que haya que hacer algo para
> que
> se dispare en FormInitialize( oSender ).
>
> METHOD FormShow( oSender ) CLASS TFormPoblacNew
> // Estoy en Registro Nuevo por lo tanto
> // lEditar := False
> ::lEditar := ::oParent:oDataSet:lOnAppend
> IF ::lEditar
> // Poner el Punto de suelta automaticamente
> //::oN_Punto:Value := PonerNPunto()
> ELSE
> // Desactiva Varios Edit que son campos claves.
> ::oN_Punto:lEnabled := .F.
> ::oL_Suelta:lEnabled := .F.
> // Selecciona la primera pestaña del Folder
> ::oFolderPage1:Select()
> ENDIF
> RETURN Nil
>
> Segunda cuestión si se tiene abierta como es mi caso un DataSet y quiero
> cuando añado un registro que un campo tenga un valor que sea incremental
> con
> respecto al mayor valor que tenga actualmente la base de datos que será la
> misma, necesito abrir una nueva instancia de DataSet através de una
> función
> si alguien es tan amable me puede decir como se abre dicha DataSet dentro
> de
> la función, lo puedo hacer igual que se abre dentro de un formulario, por
> este código me dice que el alias ya está abierto.
>
> FUNCTION PonerNPunto()
> LOCAL numvacante := 0
> LOCAL numocupado := 0
> ** Abrir base de datos
> USE BASESPOBLAC SHARED NEW ALIAS "Poblac" // Sustituir por abrir con
> DataSet
> IF LASTREC() > 1
> // Se posiciona en el primer registro
> Poblac->(DBGOTOP())
> numocupado := Poblac->N_Punto
> numvacante := numocupado + 1
> DO WHILE !EOF()
> IF Poblac->N_Punto >= numvacante
> numocupado := Poblac->N_Punto
> ENDIF
> numvacante := numocupado + 1
> Poblac->(DBSKIP())
> ENDDO
> ELSE
> numvacante := 1
> ENDIF
> // Cerrar Base
> Close Poblac
> RETURN numvacante
>
> José Ramón Castro Polinio
>
> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
> news:[email=4304369f@ozsrvnegro.ozlan.local...]4304369f@ozsrvnegro.ozlan.local...[/email]
>> José,
>>
>> Lee de nuevo mi mensaje. Sería así:
>>
>>> IF ::oParent:oDataSet:lOnAppend
>>> MsgInfo("Estoy Añadiendo")
>>> ELSEIF ::oParent:oDataSet:lOnEdit
>>> MsgInfo("Estoy Editando")
>>> ELSE
>>> MsgInfo("Estoy visualizando")
>>> END IF
>>
>> Saludos,
>>
>> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
>> news:[email=43031123@ozsrvnegro.ozlan.local...]43031123@ozsrvnegro.ozlan.local...[/email]
>>> Saludos Ignacio:
>>>
>>> He probado en el Formulario TFormPoblacNew las variables logicas que
>>> me
>>> has enviado pero parece que así no consigo nada, para que veas como lo
>>> hecho
>>> te adjunto esto:
>>>
>>> METHOD N_PuntoCreate( oSender ) CLASS TFormPoblacNew
>>> oSender:oDataSet := ::oParent:oDataSet
>>> RETURN Nil
>>> //---------------------------------------------------------- --------------------
>>> METHOD FormInitialize( oSender ) CLASS TFormPoblacNew
>>> // Estoy en Registro Nuevo
>>> IF ::oParent:oDataSet:lOnAppend
>>> MsgInfo("Estoy Añadiendo")
>>> ELSE
>>> MsgInfo("Estoy Editando")
>>> END IF
>>>
>>> ** Carga los ComboBox
>>> WITH OBJECT ::oNum_Club
>>> :aItems := CargarClub()
>>> END
>>> WITH OBJECT ::oN_Fed
>>> :aItems := CargarFed()
>>> END
>>> WITH OBJECT ::oN_Zona
>>> :aItems := CargarZona()
>>> END
>>>
>>> RETURN Nil
>>>
>>> Siempre me dá que estoy editando, aunque le formulario que me presenta
>>> están
>>> los campos vacios, creo que la llamada la debo de hacer o desde otro
>>> sitio
>>> o
>>> está mal configurada.
>>>
>>> José Ramón Castro Polinio.
>>>
>>> "Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
>>> news:[email=4302d86f@ozsrvnegro.ozlan.local...]4302d86f@ozsrvnegro.ozlan.local...[/email]
>>>> Jose,
>>>>
>>>> oDataSet:lOnEdit devuelve verdadero si se encuentra en edición, bien
>>>> por
>>>> AddNew o Update.
>>>>
>>>> oDataSet:lOnAppend devuelve verdadero si se encuentra en AddNew
>>>>
>>>> Saludos,
>>>>
>>>> "José R.Castro" <JRCPOLI@terra.es> escribió en el mensaje
>>>> news:[email=430251f8@ozsrvnegro.ozlan.local...]430251f8@ozsrvnegro.ozlan.local...[/email]
>>>>> Saludos:
>>>>> Tengo un formulario general que contiene el siguiente codigo:
>>>>> METHOD AddNew(oFrm) CLASS TFormMant
>>>>> WITH OBJECT oFrm
>>>>> :cText := "Agregar Nuevo"
>>>>> ::oDataSet:AddNew()
>>>>> :ShowModal()
>>>>> if :nModalResult == mrOK
>>>>> ::oDataSet:Update()
>>>>> ::oDBw:Refresh()
>>>>> else
>>>>> ::oDataSet:Cancel()
>>>>> endif
>>>>> :End()
>>>>> END WITH
>>>>> RETURN NIL
>>>>> //---------------------------------------------------------- --------------------
>>>>> METHOD Edit(oFrm) CLASS TFormMant
>>>>> WITH OBJECT oFrm
>>>>> :cText := "Editar Registro"
>>>>> ::oDataSet:Edit()
>>>>> :ShowModal()
>>>>> // Since the form is closed here is important that you put
>>>>> lHideOnClose to .T.
>>>>> // when finished just destroy the form with End()
>>>>> if :nModalResult == mrOK
>>>>> ::oDataSet:Update()
>>>>> ::oDBw:RefreshCurrent()
>>>>> else
>>>>> ::oDataSet:Cancel()
>>>>> endif
>>>>> :End()
>>>>> END WITH
>>>>> RETURN NIL
>>>>>
>>>>> Para hacer todos los mantenimientos de los ficheros auxiliares empleo
>>>>> un
>>>>> prg
>>>>> para cada fichero que contiene este codigo:
>>>>> METHOD AddNew( oSender ) CLASS TSocios
>>>>> Super:AddNew(TFormSociosNew():New( Self ) )
>>>>> RETURN Nil
>>>>> //---------------------------------------------------------- -------------
>>>>> METHOD Edit( oSender ) CLASS TSocios
>>>>> Super:Edit(TFormSociosNew():New( Self ) )
>>>>> RETURN Nil
>>>>>
>>>>> Como se observa se llama al mismo formulario para los nuevos registro
>>>>> que
>>>>> para editar un registro, yo necesito saber cuando estoy en modo
>>>>> edicción
>>>>> y
>>>>> cuando es nuevo pero lo necesito saber en este formulario
>>>>> (TFormSociosNew)
>>>>> no en el formulario generico que es el del primer código que es donde
>>>>> se
>>>>> produce la pulsación o la acción de seleccionar lo que se va a hacer.
>>>>>
>>>>> Segundo que evento debo activar para que no funcione el botón de OK
>>>>> mientras
>>>>> no contengan datos una determinada seríe de DBEDIT, y si puede ser un
>>>>> ejemplo sencillo de su uso, ya lo complicaré yo seguro, en algunos
>>>>> compiladores era EditChange aquí no lo sé.
>>>>>
>>>>> Tercero que evento desencadena que se pueda hacer un seguimiento de
>>>>> algunos
>>>>> EDIT para comprobar si lo que ha metido el operador se ajusta a lo
>>>>> requerido
>>>>> o si ha introducido una serie de datos desencadenar que se llene otro
>>>>> DBEDIT
>>>>> asociado a este en otros compiladores EDITFOCUSCHANGE, o por el
>>>>> contrario
>>>>> si
>>>>> se tiene que hacer EDIT por EDIT o se puede hacer con un DO CASE que
>>>>> se
>>>>> pueda saber el control que es y pongas lo que debe contener.
>>>>>
>>>>> Cuarto se sabe cuando va ha estar disponible el editor de reportes
>>>>> tipo
>>>>> (CristalReport, ReportPro).
>>>>>
>>>>> Quinto se puede hacer funcionar un Active X, y si es así está ya
>>>>> operativo
>>>>> y
>>>>> con que versión.
>>>>>
>>>>> Una sugerencia porque TDBEDIT no tiene la propiedad cPicture y si la
>>>>> tiene
>>>>> TDBEDITBTN.
>>>>>
>>>>> Bueno eso es todo espero vuestra respuesta.
>>>>> entendible.
>>>>>
>>>>> José Ramón Castro Polinio
>>>>> JRCPOLI@terra.es
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>>
>>>>
>>>>
>>>
>>>
>>
>>
>
>