GARANTIR DESCONTO

Fórum Mudar nome dos titulos da planilha #405950

03/08/2011

0

Tenho uma rotina que gera uma planilha baseada no está em um DBGrid. Quando eu carregava do DBGrid, dava erro nos campos memos. Passei a carregar direto do DataSet e resolveu o poblema do campo memo, mas está carregando o nome original dos campos da tabela e preciso carregar o nome que está no DBGrid(Somente os nomes das colunas no Excel). Estava assim antes, mas não carregava o Memo, mas trazia os nomes dos títulos ExcelExport.DBGridToExcel(AGridExcel); Assim agora(abaixo) carrega os Memos, mas não consigo carregar os nomes dos títulos das colunas, ele carrega o nome que está no banco de dados. ExcelExport.DataSetToExcel(AGridExcel.DataSource.DataSet);
Pjava

Pjava

Responder

Posts

03/08/2011

Pjava

O que acontece é o seguinte. Em realidade ele está trazendo os campos com os nomes certos. O que está acontecendo é que ele está trazendo todos os campos do DataSet, logo os que não estão mapeados, estão aparecendo com esses nomes. Mas o problema é que ele só pode mostrar os campos selecionados(17 no total), aí o usário marca uns checkbox entre os 17 que ele quer mostrar. Não estou conseguindo trazer somente os selecionados na planilha. No Grid ele vem, mas na planilha não. Abnaixo os código referente a eles.  
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

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar