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.

data controls

Foro público de Xailer en español
Responder
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

data controls

Mensaje por Rolando »

Por favor un alma caritativa que me indique como ponerle a un datacontrol un
valor inicial luego de un addnew, va el pedazo de codigo
METHOD DBNavigator1ClickInsert( oSender ) CLASS TForm2
LOCAL oFrm
WITH OBJECT oFrm := FrmPaciente():New( Self )
:cText := "Agregar Pacientes"
::oDataPac:AddNew()
::oDataPac:FECHAING := DATE() //No funciona, alguien sabe porque?
:ShowModal()
if :nModalResult == mrOK
::oDataPac:NROM := PONULTHCL() //Este si funciona
::oDataPac:Update()
::odBbrowse1:Refresh()
else
::oDataPac:Cancel()
endif
:End()
END WITH
RETURN .F.
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

data controls

Mensaje por ignacio »

Rolando,
No funciona porque no es lo mismo el control que recoge que el DataControl
con el que se enlaza. En el proceso Addnew() del dataset se inicializan los
valores de los Datacontrols enlazados. Lo que hagas después sobre el buffer
del DataSet ni se entera el DataControl.
Lo puedes solucionar de dos formas:
- utiliza la propiedad TDataField:DefValue para establecer un valor inicial
al campo antes de Addnew
- actualiza el valor del control, no el del Dataset: oEdit:Value := DATE()
>::oDataPac:NROM := PONULTHCL() //Este si funciona
Este funciona porque seguramente no hay ningún DataControl enlazado con el
campo NROM, y por lo tanto no existe ningun que control que MACHAQUE lo que
hayas escrito tu en el buffer del TDataField.
Saludos,
"Rolando" <rsarrailh@gmail.com> escribió en el mensaje
news:4491527c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Por favor un alma caritativa que me indique como ponerle a un datacontrol
> un valor inicial luego de un addnew, va el pedazo de codigo
>
> METHOD DBNavigator1ClickInsert( oSender ) CLASS TForm2
> LOCAL oFrm
>
> WITH OBJECT oFrm := FrmPaciente():New( Self )
> :cText := "Agregar Pacientes"
> ::oDataPac:AddNew()
> ::oDataPac:FECHAING := DATE() //No funciona, alguien sabe porque?
> :ShowModal()
> if :nModalResult == mrOK
> ::oDataPac:NROM := PONULTHCL() //Este si funciona
> ::oDataPac:Update()
> ::odBbrowse1:Refresh()
> else
> ::oDataPac:Cancel()
> endif
> :End()
> END WITH
>
> RETURN .F.
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

data controls

Mensaje por Rolando »

Ok. El problema que tengo ahora es detectar cuando el dataset esta en append
por que uso la misma ventana para agregar o editar, lo intente con el metodo
lOnAppend pero me sigue dando .F. No se de que otra forma detectarlo.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:44915814$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Rolando,
>
> No funciona porque no es lo mismo el control que recoge que el DataControl
> con el que se enlaza. En el proceso Addnew() del dataset se inicializan
> los valores de los Datacontrols enlazados. Lo que hagas después sobre el
> buffer del DataSet ni se entera el DataControl.
>
> Lo puedes solucionar de dos formas:
>
> - utiliza la propiedad TDataField:DefValue para establecer un valor
> inicial al campo antes de Addnew
> - actualiza el valor del control, no el del Dataset: oEdit:Value := DATE()
>
>>::oDataPac:NROM := PONULTHCL() //Este si funciona
>
> Este funciona porque seguramente no hay ningún DataControl enlazado con el
> campo NROM, y por lo tanto no existe ningun que control que MACHAQUE lo
> que hayas escrito tu en el buffer del TDataField.
>
> Saludos,
>
> "Rolando" <rsarrailh@gmail.com> escribió en el mensaje
> news:4491527c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Por favor un alma caritativa que me indique como ponerle a un datacontrol
>> un valor inicial luego de un addnew, va el pedazo de codigo
>>
>> METHOD DBNavigator1ClickInsert( oSender ) CLASS TForm2
>> LOCAL oFrm
>>
>> WITH OBJECT oFrm := FrmPaciente():New( Self )
>> :cText := "Agregar Pacientes"
>> ::oDataPac:AddNew()
>> ::oDataPac:FECHAING := DATE() //No funciona, alguien sabe porque?
>> :ShowModal()
>> if :nModalResult == mrOK
>> ::oDataPac:NROM := PONULTHCL() //Este si funciona
>> ::oDataPac:Update()
>> ::odBbrowse1:Refresh()
>> else
>> ::oDataPac:Cancel()
>> endif
>> :End()
>> END WITH
>>
>> RETURN .F.
>>
>
>
Rolando
Mensajes: 191
Registrado: Lun May 08, 2006 2:10 pm

data controls

Mensaje por Rolando »

Probe la forma de TDataField:DefValue y anduvo perfecto, muchas gracias
maestro.
"Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
news:44915814$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Rolando,
>
> No funciona porque no es lo mismo el control que recoge que el DataControl
> con el que se enlaza. En el proceso Addnew() del dataset se inicializan
> los valores de los Datacontrols enlazados. Lo que hagas después sobre el
> buffer del DataSet ni se entera el DataControl.
>
> Lo puedes solucionar de dos formas:
>
> - utiliza la propiedad TDataField:DefValue para establecer un valor
> inicial al campo antes de Addnew
> - actualiza el valor del control, no el del Dataset: oEdit:Value := DATE()
>
>>::oDataPac:NROM := PONULTHCL() //Este si funciona
>
> Este funciona porque seguramente no hay ningún DataControl enlazado con el
> campo NROM, y por lo tanto no existe ningun que control que MACHAQUE lo
> que hayas escrito tu en el buffer del TDataField.
>
> Saludos,
>
> "Rolando" <rsarrailh@gmail.com> escribió en el mensaje
> news:4491527c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Por favor un alma caritativa que me indique como ponerle a un datacontrol
>> un valor inicial luego de un addnew, va el pedazo de codigo
>>
>> METHOD DBNavigator1ClickInsert( oSender ) CLASS TForm2
>> LOCAL oFrm
>>
>> WITH OBJECT oFrm := FrmPaciente():New( Self )
>> :cText := "Agregar Pacientes"
>> ::oDataPac:AddNew()
>> ::oDataPac:FECHAING := DATE() //No funciona, alguien sabe porque?
>> :ShowModal()
>> if :nModalResult == mrOK
>> ::oDataPac:NROM := PONULTHCL() //Este si funciona
>> ::oDataPac:Update()
>> ::odBbrowse1:Refresh()
>> else
>> ::oDataPac:Cancel()
>> endif
>> :End()
>> END WITH
>>
>> RETURN .F.
>>
>
>
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9463
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

data controls

Mensaje por ignacio »

Rolando,
mandanos un pequeñisimo ejemplo mostrando el problema.
Gracias
"Rolando" <rsarrailh@gmail.com> escribió en el mensaje
news:44917453$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
> Ok. El problema que tengo ahora es detectar cuando el dataset esta en
> append por que uso la misma ventana para agregar o editar, lo intente con
> el metodo lOnAppend pero me sigue dando .F. No se de que otra forma
> detectarlo.
>
> "Ignacio Ortiz de Zúñiga" <NoName@xailer.com> escribió en el mensaje
> news:44915814$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>> Rolando,
>>
>> No funciona porque no es lo mismo el control que recoge que el
>> DataControl con el que se enlaza. En el proceso Addnew() del dataset se
>> inicializan los valores de los Datacontrols enlazados. Lo que hagas
>> después sobre el buffer del DataSet ni se entera el DataControl.
>>
>> Lo puedes solucionar de dos formas:
>>
>> - utiliza la propiedad TDataField:DefValue para establecer un valor
>> inicial al campo antes de Addnew
>> - actualiza el valor del control, no el del Dataset: oEdit:Value :=
>> DATE()
>>
>>>::oDataPac:NROM := PONULTHCL() //Este si funciona
>>
>> Este funciona porque seguramente no hay ningún DataControl enlazado con
>> el campo NROM, y por lo tanto no existe ningun que control que MACHAQUE
>> lo que hayas escrito tu en el buffer del TDataField.
>>
>> Saludos,
>>
>> "Rolando" <rsarrailh@gmail.com> escribió en el mensaje
>> news:4491527c$[email=1@ozsrvnegro.ozlan.local...]1@ozsrvnegro.ozlan.local...[/email]
>>> Por favor un alma caritativa que me indique como ponerle a un
>>> datacontrol un valor inicial luego de un addnew, va el pedazo de codigo
>>>
>>> METHOD DBNavigator1ClickInsert( oSender ) CLASS TForm2
>>> LOCAL oFrm
>>>
>>> WITH OBJECT oFrm := FrmPaciente():New( Self )
>>> :cText := "Agregar Pacientes"
>>> ::oDataPac:AddNew()
>>> ::oDataPac:FECHAING := DATE() //No funciona, alguien sabe porque?
>>> :ShowModal()
>>> if :nModalResult == mrOK
>>> ::oDataPac:NROM := PONULTHCL() //Este si funciona
>>> ::oDataPac:Update()
>>> ::odBbrowse1:Refresh()
>>> else
>>> ::oDataPac:Cancel()
>>> endif
>>> :End()
>>> END WITH
>>>
>>> RETURN .F.
>>>
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[OZ Software]
https://www.ozs.es
--
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder