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.

Mostrar Campo Calculado

Foro público de Xailer en español
Responder
rcardenas
Mensajes: 55
Registrado: Lun Oct 11, 2004 2:11 am

Mostrar Campo Calculado

Mensaje por rcardenas »

Hola
Tengo un campo calculado que muestro correctamente en un dbBrowse, pero al
editar ese valor en un formalario de Edición no me sale ningun Valor. Como
puedo desplegar ese campo Calculado?
Ej. el Campo calculado es:
::oDataSet:AddCalcField( "xSaldo2", ;
{|oField| oField:oDataSet:Saldo1 + ;
oField:oDataSet:Saldo2 + ;
oField:oDataSet:Saldo3 + ;
oField:oDataSet:Saldo4 + ;
oField:oDataSet:Saldo5 + ;
oField:oDataSet:Saldo6 + ;
oField:oDataSet:Saldo7 + ;
oField:oDataSet:ItbmsM + ;
oField:oDataSet:Saldo8 } )
Luego en le Formulario de Captura/Modificacion lo defino así:
oDataField --- xSaldo2
en el Evento OnCreate --- DefineCampo
METHOD DefineCampo( oSender ) CLASS TForm0701e
oSender:oDataSet := ::oParent:oDataSet
RETURN Nil
--
Saludos
Raúl Eduardo Cárdenas S.
Law & Accounting System's, Inc.
Gerente General
Celular: (507) 672-8838
Email: rcardenas@fgs2002.com
---
Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.776 / Virus Database: 523 - Release Date: 10/12/2004
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Mostrar Campo Calculado

Mensaje por ignacio »

Raúl,
No tiene mucho sentido editar un campo calculado, a no ser de que tu mismo
controles que operaciones se harán cuando se editen y graben que se puede
hacer modificando el evento 'OnSetValue' del propio TDataField del campo
calculado:
oCalcField := oDbf:AddCalcField( "Suma", {|o| .... } )
oCalcFileld:OnSetValue := {|o, v| o:oDataSet:MiCampoReal := v }
Ahora bien, para mostrarlo solamente en un formulario aparte no deberías
tener ningún problema. Lo acabo de probar y me ha funcionado correctamente.
Lo único que veo que no has hecho es asignar a la propiedad oDataField del
datacontrol que mostrará el campo calculado el literal "xSaldo2".
Un saludo,
--
Ignacio Ortiz
www.xailer.com
"Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje
news:416e20c1$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Hola
>
> Tengo un campo calculado que muestro correctamente en un dbBrowse, pero al
> editar ese valor en un formalario de Edición no me sale ningun Valor.
> Como
> puedo desplegar ese campo Calculado?
>
> Ej. el Campo calculado es:
>
> ::oDataSet:AddCalcField( "xSaldo2", ;
> {|oField| oField:oDataSet:Saldo1 + ;
> oField:oDataSet:Saldo2 + ;
> oField:oDataSet:Saldo3 + ;
> oField:oDataSet:Saldo4 + ;
> oField:oDataSet:Saldo5 + ;
> oField:oDataSet:Saldo6 + ;
> oField:oDataSet:Saldo7 + ;
> oField:oDataSet:ItbmsM + ;
> oField:oDataSet:Saldo8 } )
>
> Luego en le Formulario de Captura/Modificacion lo defino así:
> oDataField --- xSaldo2
> en el Evento OnCreate --- DefineCampo
>
>
> METHOD DefineCampo( oSender ) CLASS TForm0701e
> oSender:oDataSet := ::oParent:oDataSet
> RETURN Nil
>
>
>
> --
> Saludos
>
> Raúl Eduardo Cárdenas S.
> Law & Accounting System's, Inc.
> Gerente General
> Celular: (507) 672-8838
> Email: rcardenas@fgs2002.com
>
>
> ---
> Outgoing mail is certified Virus Free.
> Checked by AVG anti-virus system (http://www.grisoft.com).
> Version: 6.0.776 / Virus Database: 523 - Release Date: 10/12/2004
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Avatar de Usuario
ignacio
Site Admin
Mensajes: 9246
Registrado: Lun Abr 06, 2015 8:00 pm
Ubicación: Madrid, Spain
Contactar:

Mostrar Campo Calculado

Mensaje por ignacio »

Raúl,
Veo que efectivamente estaba fallando cuando se utilizaba en controles tipo
DBEdit por ejemplo, pero funcionaba bien con DBLabel. Ahora ya esta
corregido. Obviamente si no se sobreescribe el evento OnSetValue() para
dicho campo calculado cuando se salve (update) el DataSet no guardará nada
pues no sabe como hacerlo.
Gracias por la información, un saludo
--
Ignacio Ortiz
www.xailer.com
"Ignacio Ortiz" <NoNameToAvoidSpam@ozs.com> escribió en el mensaje
news:416e9e6d$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
> Raúl,
>
> No tiene mucho sentido editar un campo calculado, a no ser de que tu mismo
> controles que operaciones se harán cuando se editen y graben que se puede
> hacer modificando el evento 'OnSetValue' del propio TDataField del campo
> calculado:
>
> oCalcField := oDbf:AddCalcField( "Suma", {|o| .... } )
> oCalcFileld:OnSetValue := {|o, v| o:oDataSet:MiCampoReal := v }
>
> Ahora bien, para mostrarlo solamente en un formulario aparte no deberías
> tener ningún problema. Lo acabo de probar y me ha funcionado
> correctamente. Lo único que veo que no has hecho es asignar a la propiedad
> oDataField del datacontrol que mostrará el campo calculado el literal
> "xSaldo2".
>
> Un saludo,
>
>
> --
> Ignacio Ortiz
> www.xailer.com
> "Raúl Eduardo Cárdenas" <rcardenas@fgs2002.com> escribió en el mensaje
> news:416e20c1$[email=1@ozsrv2.ozlan.local...]1@ozsrv2.ozlan.local...[/email]
>> Hola
>>
>> Tengo un campo calculado que muestro correctamente en un dbBrowse, pero
>> al
>> editar ese valor en un formalario de Edición no me sale ningun Valor.
>> Como
>> puedo desplegar ese campo Calculado?
>>
>> Ej. el Campo calculado es:
>>
>> ::oDataSet:AddCalcField( "xSaldo2", ;
>> {|oField| oField:oDataSet:Saldo1 + ;
>> oField:oDataSet:Saldo2 + ;
>> oField:oDataSet:Saldo3 + ;
>> oField:oDataSet:Saldo4 + ;
>> oField:oDataSet:Saldo5 + ;
>> oField:oDataSet:Saldo6 + ;
>> oField:oDataSet:Saldo7 + ;
>> oField:oDataSet:ItbmsM + ;
>> oField:oDataSet:Saldo8 } )
>>
>> Luego en le Formulario de Captura/Modificacion lo defino así:
>> oDataField --- xSaldo2
>> en el Evento OnCreate --- DefineCampo
>>
>>
>> METHOD DefineCampo( oSender ) CLASS TForm0701e
>> oSender:oDataSet := ::oParent:oDataSet
>> RETURN Nil
>>
>>
>>
>> --
>> Saludos
>>
>> Raúl Eduardo Cárdenas S.
>> Law & Accounting System's, Inc.
>> Gerente General
>> Celular: (507) 672-8838
>> Email: rcardenas@fgs2002.com
>>
>>
>> ---
>> Outgoing mail is certified Virus Free.
>> Checked by AVG anti-virus system (http://www.grisoft.com).
>> Version: 6.0.776 / Virus Database: 523 - Release Date: 10/12/2004
>>
>>
>
>
Ignacio Ortiz de Zúñiga
[Equipo de Xailer / Xailer team]
https://www.xailer.com
Responder