procedure Exportar(DataSet: TDataSet; Arq: string; Ext: string);
var
shtml : widestring;
htmlfile : TextFile;
i : integer;
AvailableFields: set of TFieldType;
bookmark : tbookmarkstr;
begin
bookmark := dataset.Bookmark;
DataSet.DisableControls;
DataSet.First;
AvailableFields:=[ftInteger, ftWideString, ftDate, ftBcd, ftmemo, ftstring];
// --> cria o código html da página
shtml:= ' '+#13#10;
shtml:= shtml + '' +dataset.Name+'
' + #13#10;
shtml:= shtml + '' + #13#10;
shtml:= shtml + ''+#13+#10;
shtml:= shtml + ''+#13+#10;
//header da tabela
shtml:= shtml + '
shtml:= shtml + '
for i:=0 to DataSet.FieldCount-1 do
begin
if DataSet.Fields[i].DataType in AvailableFields then
begin
shtml:= shtml + '
shtml:= shtml +
'' +
DataSet.Fields.Fields[i].DisplayName +
'';
shtml:= shtml + '' + #13#10;
end;
end;{for}
shtml:= shtml + '' + #13#10;
//corpo da tabela
while not DataSet.Eof do
begin
shtml:= shtml + '
for i:=0 to DataSet.FieldCount-1 do
begin
if DataSet.Fields.Fields[i].DataType in AvailableFields then
begin
if DataSet.Fields.Fields[i].DataType = ftBcd then
begin
shtml:= shtml + '
end else
begin
shtml:= shtml + '
shtml:= shtml + '' + #13#10;
end;
end;
end;{for}
shtml:= shtml + '' + #13#10;
DataSet.Next;
end;{while}
shtml:= shtml + '' + #13#10;
//script para zebrar a tabela
shtml:= shtml + ''+#13+#10;
//finalizando a página
shtml:= shtml + '';
// --> salva o arquivo html
AssignFile(htmlfile,ChangeFileExt(Arq,'.'+Ext));
Rewrite(htmlfile);
WriteLn(htmlfile, shtml);
CloseFile(htmlfile);
DataSet.Bookmark := bookmark;
DataSet.EnableControls;
end;
Nenhum comentário:
Postar um comentário