Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Varios
Registrarse FAQ Miembros Calendario Guía de estilo Buscar Temas de Hoy Marcar Foros Como Leídos

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 03-08-2011
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Error al generar excel

Esta aplicacion, quando me voy a generar una planilla Excel, me lo da un error asi: Los campos Text(Sql Server) no si muestra en la planilla, ellos si muestram asi: [Memo]. No se porque. Abajo estan los codigos que generan los archivos Excel.


Código:
procedure TF_GeraGridExcel.FormShow(Sender: TObject);
var
  aCountCol: Integer;
  i:integer;
begin
 try
  AGridExcel := TDBGrid.Create(self);
  AGridExcel.DataSource:=Agrid.DataSource;
  for i:=0 to Agrid.Columns.Count-1
  do begin
     AgridExcel.Columns.Add;
     AGridExcel.Columns[i].Assign(Agrid.Columns[i]);
  end;
  // Supondo que já tem o grid com as columns..
  ClbColunas.Clear;
  for aCountCol := 0 to AGridExcel.Columns.count -1 do
    ClbColunas.Items.Add(AGridExcel.Columns[aCountCol].Title.Caption+' - '+
                         AGridExcel.Columns[aCountCol].FieldName);
  self.Height := PnlButtons.Height+(AGridExcel.Columns.count * clbColunas.ItemHeight)+PnlTodos.Height+30;
 finally
//  FreeAndNil(aGridExcel);
 end;
end;


function TF_GeraGridExcel.GerarGridNoExcel(ADBGrid : TDbgrid): boolean;
var
  ExcelExport: TOLEExcel;
begin
  result := TRUE;
  Screen.Cursor := crHourGlass;
  ExcelExport   := TOLEExcel.Create(Application);
  try
    ExcelExport.IgnoreFont := false;
    ExcelExport.TitleFont.Style := ExcelExport.TitleFont.Style + [fsBold];
    ExcelExport.CreateExcelInstance;
    ExcelExport.DBGridToExcel(AGridExcel);
    ExcelExport.Visible := True;
  finally
    FreeAndNil(ExcelExport);
    Screen.Cursor := crDefault;
  end;
end;


procedure TF_GeraGridExcel.CheckBox1Click(Sender: TObject);
var
  aCount: Integer;
begin
  for aCount := 0 to ClbColunas.Items.Count -1 do
    ClbColunas.Checked[aCount] := (not ClbColunas.Checked[aCount]);
  self.Height := PnlButtons.Height+(AGrid.Columns.count * clbColunas.ItemHeight)+PnlTodos.Height;
end;
procedure TF_GeraGridExcel.BtnGerarGridExcelClick(Sender: TObject);
var
  aCount,
  aCountMax  : Integer;
begin
  if CheckedCount(clbColunas) = 0 then
  begin
    MessageDlg('Marque pelo menos uma coluna',mtInformation,[mbOk],0);
    exit;
  end;
  for aCount :=0 to ClbColunas.Items.Count -1
  do begin
    if (not ClbColunas.Checked[aCount]) then
    begin
       AgridExcel.Columns[aCount].Visible:=FALSE;
    end;
  end;
  aCount := 0;
  aCountMax := AgridExcel.Columns.Count -1;
  while aCount <= aCountMax do
  begin
    if (not AgridExcel.Columns[aCount].Visible) then
    begin
        AgridExcel.Columns.Delete(aCount);
        dec(aCountMax);
    end
    else
      Inc(acount);
  end;
  try
   ExibeMensagem(emCria,'Gerando planilha Excel');
   GerarGridNoExcel(AGridExcel);
  finally
   ExibeMensagem(emDestroi);
   AGridExcel.Columns.Assign(Agrid.Columns);
  end;
end;


function TF_GeraGridExcel.CheckedCount(aCheckListBox : TCheckListBox): Integer;
var
  aCount: Integer;
begin
 result := 0;
 for aCount := 0 to aCheckListBox.Items.Count -1 do
   if aCheckListBox.Checked[aCount] then
     Inc(result);
end;
Responder Con Cita
  #2  
Antiguo 03-08-2011
Avatar de oscarac
[oscarac] oscarac is offline
Miembro Premium
 
Registrado: sep 2006
Ubicación: Lima - Perú
Posts: 2.010
Poder: 20
oscarac Va por buen camino
y que mensaje de error sale?
__________________
Dulce Regalo que Satanas manda para mi.....
Responder Con Cita
  #3  
Antiguo 03-08-2011
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
No sale mensaje, solamente que en el Excel, no viene nada en el campo Descricao, apenas la palabra [Memo], asi como estás. Y el campo tiene valor, ejemplo: 555905-02, esto es solo un ejemplo.
Responder Con Cita
  #4  
Antiguo 03-08-2011
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Yo cambie la forma de alimentar el Grid y funciono, o sea, yo pase el DataSet y no el Grid como estava y asi funciono, pero hay un problema. Como es un campo Text, hay <ENTER>. En un texto pequeño como el que yo tengo, ok, pero si for un campo con muchos Enter's, entonces es posible del excel poner cada palavra en un celda, lo que me traria un gran problema. Como rmover estes Enter's? Gracias. Me lo dijeron que son los valores #$D#$A, pero no se como si lo hace.
Responder Con Cita
  #5  
Antiguo 03-08-2011
Paulao Paulao is offline
Miembro
 
Registrado: sep 2003
Ubicación: Rua D 31 Casa 1 - Inhoaíba - Rio de Janeiro - RJ - Brasil
Posts: 637
Poder: 21
Paulao Va por buen camino
Ahora me lo trae todo, pero me gustaria de traer solamente los campos selecionados en unos CheckBoxes, pero ele me lo trae todo lo estas en el DataSet. No consigo traer solo los marcados. Abajo los codigos:

Código Delphi [-]
try
  AGridExcel := TDBGrid.Create(self);
  AGridExcel.DataSource:=Agrid.DataSource;
  for i:=0 to Agrid.Columns.Count-1
  do begin
     AgridExcel.Columns.Add;
     AGridExcel.Columns[i].Assign(Agrid.Columns[i]);
  end;
  // Supondo que já tem o grid com as columns..
  ClbColunas.Clear;
  for aCountCol := 0 to AGridExcel.Columns.count -1 do
    ClbColunas.Items.Add(AGridExcel.Columns[aCountCol].Title.Caption+' - '+
                         AGridExcel.Columns[aCountCol].FieldName);
  self.Height := PnlButtons.Height+(AGridExcel.Columns.count * clbColunas.ItemHeight)+PnlTodos.Height+30;
 finally
//  FreeAndNil(aGridExcel);
 end;

var
  ExcelExport: TOLEExcel;
  i: integer;
begin
  result := TRUE;
  Screen.Cursor := crHourGlass;
  ExcelExport   := TOLEExcel.Create(Application);
  try
    ExcelExport.IgnoreFont := false;
    ExcelExport.TitleFont.Style := ExcelExport.TitleFont.Style + [fsBold];
    ExcelExport.CreateExcelInstance;
    ExcelExport.DataSetToExcel(AGridExcel.DataSource.DataSet);
    //ExcelExport.DBGridToExcel(AGridExcel);
    ExcelExport.Visible := True;
  finally
    FreeAndNil(ExcelExport);
    Screen.Cursor := crDefault;
  end;
end;
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Generar Informes a Excel en delphi 2010 HELBERT GARCIA MS SQL Server 19 28-04-2010 05:21:19
Error al generar instalador con installshield (error 6173) jangel_ramirezm Varios 4 09-12-2008 00:07:54
Error al generar Consulta subzero Firebird e Interbase 1 26-05-2007 07:30:35
Documentación para generar ficheros Word y Excel quade Servers 2 05-01-2005 11:51:34
Generar documentos Word y Excel quade C++ Builder 1 03-01-2005 18:18:09


La franja horaria es GMT +2. Ahora son las 01:45:44.


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
Copyright 1996-2007 Club Delphi