Página 1 de 1

data controls

Publicado: Jue Jun 15, 2006 2:28 pm
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.

data controls

Publicado: Jue Jun 15, 2006 2:52 pm
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.
>

data controls

Publicado: Jue Jun 15, 2006 4:52 pm
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.
>>
>
>

data controls

Publicado: Jue Jun 15, 2006 5:14 pm
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.
>>
>
>

data controls

Publicado: Jue Jun 15, 2006 5:57 pm
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.
>>>
>>
>>
>
>