Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Error texto y decimales al exportar a excel. (https://www.clubdelphi.com/foros/showthread.php?t=47633)

movorack 03-09-2007 17:45:28

Error texto y decimales al exportar a excel.
 
Saludos,

Estoy usando JEDI-VCL 3.32 en Delphi 7, y como motor de DB uso PostgreSQL 8.1

desde hace rato estoy usando jvDBGridExcelExport para exportar las grids a Excel y todo estaba bien pero tengo el siguiente problema...

Tengo una vista que muestro en una grid (JvDBUltimGrid); En la vista el campo itm_id es varchar(5) aunque los valores de ese campo parecen decimales NO LO SON (5.1, 5.2, 5.3). son la nomenclatura de unos codigos.

el problema lo tengo con dos codigos (varchar) en especifico: 5.1 y 5.10 que al ser exportados a excel (usando jvDBGridExcelExport) se muestran como 5.1 asumiendolos como valor numerico.

he intentado, he leido la documentacion de jedi, he buscado en internet... pero no encuentro nada... alguien porfavor me podria dar una manito en esto? o podria plantearme una solucion diferente para expoortar a excel?

gracias...

poliburro 03-09-2007 18:34:09

si tu problema es con el formato en excell, y deseas que tome el valor númerico como caracter, solo necesitas agregar una comilla simple al principio del valor:

'5.2

Excel va tomar el valor como la cadena "5.2", omitiendo por supuesto el indicador '


Suerte

movorack 03-09-2007 19:13:05

si pero...
 
agradezco tu respuesta y yo ya he leido esa respuesta en muchas partes pero...

al usar este componente de jedi, no hago nigun bucle para leer la grid ni nada por el estilo (solo conecto la DBGrid al componente, establezco el archivo donde se guardará y por ultinmo... le digo exportar -- Plug & Play :D ) y como es una DBGrid me la complica aun mas porque cualquier cambio que haga en la grid afectaria directamente la DB.

Muchas gracias...

movorack 03-09-2007 19:15:39

el codigo para exportar...
 
esta es la funcion que uso....

Código Delphi [-]
  procedure ExportToMSExcel(DBGridExcelExport : TJvDBGridExcelExport; SaveDialog : TJvSaveDialog; DBUltimGrid : TJvDBUltimGrid; ProgressDialog: TJvProgressDialog);
  begin
    SaveDialog.Title := 'Exportar a Microsoft Excel...';
    SaveDialog.Filter := 'Microsoft Excel 97-2003 [*.xls]|*.xls|Microsoft Excel 2007 [*.xlsx]|*.xlsx|Todos los Archivos [*.*]|*.*';
    SaveDialog.FilterIndex := 1;
    SaveDialog.DefaultExt := '*.xls';
    if SaveDialog.Execute Then
    begin
      DBGridExcelExport.FileName := SaveDialog.FileName;
      //DBGridExcelExport.UseFieldGetText := true;
      DBGridExcelExport.Grid := DBUltimGrid;
      ProgressDialog.Position := 0;
      ProgressDialog.Max := DBUltimGrid.DataSource.DataSet.RecordCount-1;
      ProgressDialog.Show;
      DBGridExcelExport.ExportGrid;
      ProgressDialog.Hide;
    end;
  end;

poliburro 03-09-2007 21:30:13

de hecho es más sencillo de lo que parece, por que no ejecutas la consulta en un Query concatenando la comilla al campo que deseas sea considerado como cadena. Luego ese query lo asignas al grid o a un nuevo grid, exportas cierras el query y santa solución batman.

:D.

suerte

movorack 04-09-2007 15:45:11

ok ok...
 
lo intentaré ahorita mismo...

al rato te cuento..

movorack 04-09-2007 16:13:59

Gracias.... muchas gracias... no hay de que son nomas de papas!!
 
oiga si...

ya hizo todo correcto, en el archivo excel ya estan los codigos en formato de texto...

modifique la vista a la que consulto, concatene la comilla en el campo.

Select .... ''''||campo .... y voila...

de verdad poliburro, muchas gracias.

BlueSteel 05-02-2008 20:12:04

Cita:

Empezado por movorack (Mensaje 227976)
esta es la funcion que uso....


Código Delphi [-]
  procedure ExportToMSExcel(DBGridExcelExport : TJvDBGridExcelExport; SaveDialog : TJvSaveDialog; DBUltimGrid : TJvDBUltimGrid; ProgressDialog: TJvProgressDialog);
  begin
    SaveDialog.Title := 'Exportar a Microsoft Excel...';
    SaveDialog.Filter := 'Microsoft Excel 97-2003 [*.xls]|*.xls|Microsoft Excel 2007 [*.xlsx]|*.xlsx|Todos los Archivos [*.*]|*.*';
    SaveDialog.FilterIndex := 1;
    SaveDialog.DefaultExt := '*.xls';
    if SaveDialog.Execute Then
    begin
      DBGridExcelExport.FileName := SaveDialog.FileName;
      //DBGridExcelExport.UseFieldGetText := true;
      DBGridExcelExport.Grid := DBUltimGrid;
      ProgressDialog.Position := 0;
      ProgressDialog.Max := DBUltimGrid.DataSource.DataSet.RecordCount-1;
      ProgressDialog.Show;
      DBGridExcelExport.ExportGrid;
      ProgressDialog.Hide;
    end;
  end;


Hola movorack

estaba mirando este código.. como nunca habia usado el componente DBGridExcelExport, lo copie y me funciono super bien... mi consulta va con respecto al ProgressDialog, que componente es ?.... y en que paleta esta ubicado... puse uno de tipo ProgressBar.. pero no me funciono...

Me podrias indicar como solucionar ese problema...

Gracias

movorack 07-02-2008 16:04:43

JvProgressDialog
 
hi BlueSteel

Ahorita mismo estoy de viaje y no estoy cerca de mi pc y no te podria decir que paleta es exactamente. Pero el ProgressDialog es parte de la JEDI VCL solo bajate la JEDI y allí está.

espero te ayude.

Saludos.

BlueSteel 07-02-2008 20:18:12

Gracias...

Ya lo solucione...estaba en la Paleta Jv Dialogs....

Ahora solo falta que me muestra la barra con el proceso de traspasando...es decir, me muestra la barra, pero no hay un progreso en la barra.. ( no se si me explique bien...), quizas es por la cantidad de registros que no se alcanza a notar.. pero en fin...

gracias


La franja horaria es GMT +2. Ahora son las 19:38:11.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi