Rarisimo! Formato de numeros
Publicado por Pedro (23 intervenciones) el 12/01/2006 23:13:27
Les cuento: tengo una aplicacion donde utilizo los componentes de numeros de rxtools.
Al inicio de mi aplicacion pongo decimalseparator := '.', asi que el formato del componente aparece por ej. 0.00 (con el punto).
Un cliente me mostro que estando en la aplicacion y sin cerrarla iba al internet explorer, borraba el contenido del historial en Opciones de internet, eliminar archivos y oh! sorpresa al volver a la aplicacion el currencyedit cambia el formato a 0,00 (con coma) entonces cuando grabo algun dato le da el error "type mismatch in expression".
La configuración regional de la pc esta en español argentina y los numero puestos con el formato 0.000,00; seguramente que el problema es por eso pero alguien sabe porque sucede que la aplicacion no mantiene el formato indicado al inicio de la misma.
Les doy un ejemplo de cuando grabo un registro y sale el error type mismatch, si hago un seguimiento es porque cambio el formato de . a ,. Que estoy haciendo mal al grabar?
sql.text := 'insert into "' + destarch + '" (CODTMP, CODART, DESCRI, UNIDAD, TASAGE, TASAAC, CANTID, PRECIO, TOTAL, TOTNG, TOTTG, TOTTA, TOTRE, PRESIN)';
sql.add(' values (' + inttostr(data1.query_tmp.recordcount+1) );
sql.add(', "' + edit_ct.text + '"' );
if edit_ct.Text = '0' then
sql.add(', "' + edit_articulo.text + '"')
else
sql.add(', "' + DATA1.QUERY_ARTICULO.FIELDBYNAME('DESCRI').ASSTRING + '"');
sql.add(', "' + label_unidad.caption + '"');
sql.add(', "' + currtostr(edit_ta.value) + '"' );
sql.add(', "' + currtostr(edit_tc.value) + '"' );
sql.add(', "' + currtostr(edit_ca.value) + '"' );
sql.add(', "' + currtostr(edit_pr.value) + '"');
sql.add(', "' + currtostr(xto) + '"'); ACA SI EL FORMATO ESTA CON EL . NO PASA NADA SINO ESTA CON LA , TIRA ERROR
sql.add(', "' + currtostr(xng) + '"');
sql.add(', "' + currtostr(xtg) + '"');
sql.add(', "' + currtostr(xta) + '"');
sql.add(', "' + currtostr(xre) + '"');
sql.add(', "' + currtostr(edit_presin.value) + '" );');
execsql;
Desde ya muchas gracias!
Al inicio de mi aplicacion pongo decimalseparator := '.', asi que el formato del componente aparece por ej. 0.00 (con el punto).
Un cliente me mostro que estando en la aplicacion y sin cerrarla iba al internet explorer, borraba el contenido del historial en Opciones de internet, eliminar archivos y oh! sorpresa al volver a la aplicacion el currencyedit cambia el formato a 0,00 (con coma) entonces cuando grabo algun dato le da el error "type mismatch in expression".
La configuración regional de la pc esta en español argentina y los numero puestos con el formato 0.000,00; seguramente que el problema es por eso pero alguien sabe porque sucede que la aplicacion no mantiene el formato indicado al inicio de la misma.
Les doy un ejemplo de cuando grabo un registro y sale el error type mismatch, si hago un seguimiento es porque cambio el formato de . a ,. Que estoy haciendo mal al grabar?
sql.text := 'insert into "' + destarch + '" (CODTMP, CODART, DESCRI, UNIDAD, TASAGE, TASAAC, CANTID, PRECIO, TOTAL, TOTNG, TOTTG, TOTTA, TOTRE, PRESIN)';
sql.add(' values (' + inttostr(data1.query_tmp.recordcount+1) );
sql.add(', "' + edit_ct.text + '"' );
if edit_ct.Text = '0' then
sql.add(', "' + edit_articulo.text + '"')
else
sql.add(', "' + DATA1.QUERY_ARTICULO.FIELDBYNAME('DESCRI').ASSTRING + '"');
sql.add(', "' + label_unidad.caption + '"');
sql.add(', "' + currtostr(edit_ta.value) + '"' );
sql.add(', "' + currtostr(edit_tc.value) + '"' );
sql.add(', "' + currtostr(edit_ca.value) + '"' );
sql.add(', "' + currtostr(edit_pr.value) + '"');
sql.add(', "' + currtostr(xto) + '"'); ACA SI EL FORMATO ESTA CON EL . NO PASA NADA SINO ESTA CON LA , TIRA ERROR
sql.add(', "' + currtostr(xng) + '"');
sql.add(', "' + currtostr(xtg) + '"');
sql.add(', "' + currtostr(xta) + '"');
sql.add(', "' + currtostr(xre) + '"');
sql.add(', "' + currtostr(edit_presin.value) + '" );');
execsql;
Desde ya muchas gracias!
Valora esta pregunta


0