Sign in Join

Live chat for Free Pascal, Lazarus, Delphi and every Pascal programmer.

Mailing lists / lazarus-es / 2013-02

Campo Float en DBGrid

5 messages · 3 people · –

Reply by email Subscribe to this list Your subscription

Read-only archive. Use j and k to move between messages.

Anxo Vázquez

Tengo una bd SQLite en la que hay definido varios campos decimales. Capturo los datos en las celdas de un DBGrid, el primer dato n�mero corresponde a un integer que captura sin problemas, estos aparecen en la celda del campo siguiente, lleva asociado un evento OnChange, ya que al introducir un n�mero da un mensaje diciendo que 12 no es un Float. Este es el c�digo.

procedure TfrmPedVen.ZqryLinPedvpesoChange(Sender: TField);
begin
   if (dbgLinFac.DataSource.DataSet.FieldByName('bultos').AsInteger
null) and (dbgLinFac.DataSource.DataSet.FieldByName('peso').AsInteger
null) then
     begin
       dbgLinFac.DataSource.DataSet.FieldByName('cantidad').AsFloat :=
dbgLinFac.DataSource.DataSet.FieldByName('bultos').AsInteger *
dbgLinFac.DataSource.DataSet.FieldByName('peso').AsFloat;
       dbgLinFac.DataSource.DataSet.FieldByName('precio').AsFloat :=
 ZqryArt.FieldByName('pv').AsFloat;
       dbgLinFac.DataSource.DataSet.FieldByName('importe').AsFloat :=
dbgLinFac.DataSource.DataSet.FieldByName('cantidad').AsFloat *
dbgLinFac.DataSource.DataSet.FieldByName('pv').AsFloat;
       dbgLinFac.DataSource.DataSet.FieldByName('num_serie').AsString :=
cbxSerie.Text + edNum.Text;
     end;
end;

El error salta en la celda que captura el peso.

Saludos y muchas gracias.
------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130228/0fc382e5/attachment.html>

Reply by email

José Mejuto
to Anxo Vázquez

El 28/02/2013 20:32, Anxo V�zquez escribi�:

Show quoted text 7 lines
Tengo una bd SQLite en la que hay definido varios campos decimales. Capturo los datos en las celdas de un DBGrid, el primer dato n�mero corresponde a un integer que captura sin problemas, estos aparecen en la celda del campo siguiente, lleva asociado un evento OnChange, ya que al introducir un n�mero da un mensaje diciendo que 12 no es un Float. Este es el c�digo.

Hola,

SQLite guarda toda la informaci�n en formato texto as� que lo �nico que se me ocurre es que puedas tener un problema de "punto decimal". Prueba a poner al principio del programa:

DefaultFormatSettings.DecimalSeparator:='.';

Y a ver que pasa...

Reply by email

Héctor F. Fiandor Rosario
to José Mejuto

Estimados colegas:

en mis aplicaciones, cuando tengo necesidad de usar cifras float como este ejemplo, acostumbro a leer el DecimalSeparator que tiene la maquina en una posicion muy al principio de la aplicacion. Si no es �n punto, entonces la guardo en una variable DecimalSeparatorAnt. Despu�s la cambio para el punto, hago todo el trabajo, y en la ultima form, que es la "despedida", vuelvo a restituirle al usuario su DecimalSeparatorAnt, para que no se ponga bravo. Esto es totalmente transparente para el usuario. Hay que tener en cuenta si el no ha dado con anterioridad alguna orden para "que no se pueda cambiar" el default, en cuyo caso hay que tomar otras medidas.

saludos,

Ing. H�ctor F. Fiandor Rosario
hfiandor en infomed.sld.cu

Earlier message 29 lines
----- Original Message ----- From: Jos� Mejuto To: Spanish version of Lazarus List Sent: Thursday, February 28, 2013 8:02 AM Subject: Re: [Lazarus-es] Campo Float en DBGrid El 28/02/2013 20:32, Anxo V�zquez escribi�: > Tengo una bd SQLite en la que hay definido varios campos decimales. > Capturo los datos en las celdas de un DBGrid, el primer dato n�mero > corresponde a un integer que captura sin problemas, estos aparecen en la > celda del campo siguiente, lleva asociado un evento OnChange, ya que al > introducir un n�mero da un mensaje diciendo que 12 no es un Float. Este > es el c�digo. > Hola, SQLite guarda toda la informaci�n en formato texto as� que lo �nico que se me ocurre es que puedas tener un problema de "punto decimal". Prueba a poner al principio del programa: DefaultFormatSettings.DecimalSeparator:='.'; Y a ver que pasa... --

Reply by email

Anxo Vázquez
to Héctor F. Fiandor Rosario

Hola.
DecimalSeparator no es la soluci�n, yo ya tengo puesto al principio DecimalSeparator := ',', aunque prob� con el punto. El problema me viene en el campo importe que es un campo calculado que por lo que parece no reconoce el contenido del campo peso como float.
No acabo de ver la relaci�n aunque si comento la l�nea correspondiente al importe el error desaparece.

El 1 de marzo de 2013 05:15, H�ctor F. Fiandor Rosario < hfiandor en infomed.sld.cu> escribi�:

Show quoted text 59 lines
** Estimados colegas: en mis aplicaciones, cuando tengo necesidad de usar cifras float como este ejemplo, acostumbro a leer el DecimalSeparator que tiene la maquina en una posicion muy al principio de la aplicacion. Si no es �n punto, entonces la guardo en una variable DecimalSeparatorAnt. Despu�s la cambio para el punto, hago todo el trabajo, y en la ultima form, que es la "despedida", vuelvo a restituirle al usuario su DecimalSeparatorAnt, para que no se ponga bravo. Esto es totalmente transparente para el usuario. Hay que tener en cuenta si el no ha dado con anterioridad alguna orden para "que no se pueda cambiar" el default, en cuyo caso hay que tomar otras medidas. saludos, Ing. H�ctor F. Fiandor Rosario hfiandor en infomed.sld.cu ----- Original Message ----- *From:* Jos� Mejuto <joshyfun en gmail.com> *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> *Sent:* Thursday, February 28, 2013 8:02 AM *Subject:* Re: [Lazarus-es] Campo Float en DBGrid El 28/02/2013 20:32, Anxo V�zquez escribi�: > Tengo una bd SQLite en la que hay definido varios campos decimales. > Capturo los datos en las celdas de un DBGrid, el primer dato n�mero > corresponde a un integer que captura sin problemas, estos aparecen en la > celda del campo siguiente, lleva asociado un evento OnChange, ya que al > introducir un n�mero da un mensaje diciendo que 12 no es un Float. Este > es el c�digo. > Hola, SQLite guarda toda la informaci�n en formato texto as� que lo �nico que se me ocurre es que puedas tener un problema de "punto decimal". Prueba a poner al principio del programa: DefaultFormatSettings.DecimalSeparator:='.'; Y a ver que pasa... -- _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es _______________________________________________ Lazarus-es mailing list Lazarus-es en lists.lazarus.freepascal.org http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130301/cbd63aa4/attachment-0001.html>

Reply by email

Anxo Vázquez
to Anxo Vázquez

El problema es que el campo calculado cantidad tiene valor null, no se porque no recibe el valor del producto de peso por bultos, con lo cual el campo importe, cantidad*precio no es un float.
Un saludo.

El 1 de marzo de 2013 19:07, Anxo V�zquez <xanxov en esdebian.org> escribi�:

Show quoted text 71 lines
Hola. DecimalSeparator no es la soluci�n, yo ya tengo puesto al principio DecimalSeparator := ',', aunque prob� con el punto. El problema me viene en el campo importe que es un campo calculado que por lo que parece no reconoce el contenido del campo peso como float. No acabo de ver la relaci�n aunque si comento la l�nea correspondiente al importe el error desaparece. El 1 de marzo de 2013 05:15, H�ctor F. Fiandor Rosario < hfiandor en infomed.sld.cu> escribi�: ** > Estimados colegas: > > en mis aplicaciones, cuando tengo necesidad de usar cifras float como > este ejemplo, acostumbro a leer el DecimalSeparator que tiene la maquina en > una posicion muy al principio de la aplicacion. Si no es �n punto, entonces > la guardo en una variable DecimalSeparatorAnt. Despu�s la cambio para el > punto, hago todo el trabajo, y en la ultima form, que es la "despedida", > vuelvo a restituirle al usuario su DecimalSeparatorAnt, para que no se > ponga bravo. Esto es totalmente transparente para el usuario. Hay que tener > en cuenta si el no ha dado con anterioridad alguna orden para "que no se > pueda cambiar" el default, en cuyo caso hay que tomar otras medidas. > > saludos, > > Ing. H�ctor F. Fiandor Rosario > hfiandor en infomed.sld.cu > > > ----- Original Message ----- > *From:* Jos� Mejuto <joshyfun en gmail.com> > *To:* Spanish version of Lazarus List<lazarus-es en lists.lazarus.freepascal.org> > *Sent:* Thursday, February 28, 2013 8:02 AM > *Subject:* Re: [Lazarus-es] Campo Float en DBGrid > > El 28/02/2013 20:32, Anxo V�zquez escribi�: > > Tengo una bd SQLite en la que hay definido varios campos decimales. > > Capturo los datos en las celdas de un DBGrid, el primer dato n�mero > > corresponde a un integer que captura sin problemas, estos aparecen en la > > celda del campo siguiente, lleva asociado un evento OnChange, ya que al > > introducir un n�mero da un mensaje diciendo que 12 no es un Float. Este > > es el c�digo. > > > > Hola, > > SQLite guarda toda la informaci�n en formato texto as� que lo �nico que > se me ocurre es que puedas tener un problema de "punto decimal". Prueba > a poner al principio del programa: > > DefaultFormatSettings.DecimalSeparator:='.'; > > Y a ver que pasa... > > -- > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > > > _______________________________________________ > Lazarus-es mailing list > Lazarus-es en lists.lazarus.freepascal.org > http://lists.lazarus.freepascal.org/mailman/listinfo/lazarus-es > >

------------ pr�xima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://lists.lazarus.freepascal.org/pipermail/lazarus-es/attachments/20130301/86112e57/attachment.html>

Reply by email