Por cierto,
En la última versión se incluyo una mejora para evitar ciertos problemas con
los datacontrols. Ahora cuando se modifica directamente el buffer del
datacontrol cuando se encuentra el DataSet en edición se actualizan
automaticamente todos los DataControls que estuvieran enlazados con dicho
campo.
Un saludo,
"José Luis Capel" <
jose.luis@iaicom.com> escribió en el mensaje
news:[email=
44be439f@news.xailer.com...]
44be439f@news.xailer.com...[/email]
> Ignacio,
>
> Gracias por tu respuesta.
>
>>
>> No consigo ver en tu método Button2Click ninguna llamada al método
>> oMemDataSet:Edit(). No obstante si le doy al botón "Añadir" que hace
>> presisamente una llamada al método Edit() si funciona. Debería ser por
>> ejemplo así:
>
> Por error, el botón que pone 'Añadir' debe poner 'Editar'. A mi no me
> está funcionando el ejemplo que he puesto. La secuencia que sigo es esta:
>
> - Hago click en botón 'Añadir' (hace la llamada al Edit() )
> - Modifico el valor del tercer datacontrol (el numérico) y pongo 400 (por
> ejemplo).
> - Hago click en 'Grabar'
> - Pasa por el evento onclick y allí prentendo asignar al campo "D" (el
> cuarto) el valor del campo "C" multiplicado por 100.
>
> El resultado es el que se puede observar en la imagen. El resultado
> correcto debe ser 40000 sin embargo aparece 990000. Algo se me está
> escapando y no se verlo

>
> Muchas gracias por tu ayuda.
> Saludos,
> José Luis Capel
>
>
>
>>
>> METHOD Button2Click( oSender ) CLASS TForm3
>>
>> ::oMemDataSet1:Edit()
>> ::oMemdataSet1:varPut(4, ::oMemDataset1:c * 100 )
>> ::oMemDataSet1:Update()
>> MsgInfo(::oMemDataset1:d)
>>
>> RETURN Nil
>>
>> O así (son equivalentes):
>>
>> METHOD Button2Click( oSender ) CLASS TForm3
>>
>> ::oMemDataSet1:Edit()
>> ::oMemdataSet1:d := ::oMemDataset1:c * 100
>> ::oMemDataSet1:Update()
>> MsgInfo(::oMemDataset1:d)
>>
>> RETURN Nil
>>
>> En ambos casos se se coge el valor del campo 'C' antes de editarlo y
>> funciona correctamente ya que el campo 'D' no tiene ningún datacontrol
>> enlazado y por lo tanto en el método Update no se 'machaca' el valor que
>> tu
>> hayas introducido por código:
>>
>> Un saludo,
>>
>> "José Luis Capel" <
jose.luis@iaicom.com> escribió en el mensaje
>> news:[email=
44be1a26@news.xailer.com...]
44be1a26@news.xailer.com...[/email]
>>> Hola,
>>>
>>> Me estoy liando con un tema al cual no se verle la punta

>>>
>>> En un proceso de edición de una fila de un memdataset los datacontrols
>>> reciben el valor de los datafields. Se modifican esos valores y
>>> mediante
>>> el método update se pasan esos valores a los campos. Creo que esta es la
>>> idea del funcionamiento.
>>>
>>> En mi caso concreto, ese memdataset tiene cuatro campos y _solo_ tres
>>> datacontrols.
>>>
>>> El cuarto campo se actualiza justo antes del update.
>>>
>>> He probado lo siguiente
>>>
>>> A.
>>> ::oMemDataSet:Edit()
>>> ....
>>> ....
>>> ::oMemDataSet:MiCuartoCampo := ::oMemDataSet:MiTercerCampo * 100
>>> ::oMemDataSet:UPdate()
>>>
>>>
>>> B.
>>> ::oMemDataSet:Edit()
>>> ....
>>> ....
>>> ::oMemDataSet:VarPut(4, ::oMemDataSet:VarGet(3) * 100 )
>>> ::oMemDataSet:UPdate()
>>>
>>> C.
>>> ::oMemDataSet:Edit()
>>> ....
>>> ....
>>> ::oMemDataSet:VarPut(4, ::oMemDataSet:MiTercerCampo(3) * 100 )
>>> ::oMemDataSet:UPdate()
>>>
>>> Todos sin éxito aparente. ¿Podeis darme alguna pista?
>>>
>>> Os dejo un proyecto (form3).
>>> Saludos,
>>> José Luis Capel
>>>
>>>
>>
>>
>
>
>