Распределенные приложения: контроллеры автоматизации. Часть 2. Фертиков В.В. - 15 стр.

UptoLike

Составители: 

15
for i:=0 to Table1.FieldCount-1 do
Sheet.Cells[2,i+2].Value :=
Table1.Fields.Fields[i].FieldName;
Arr := VarArrayCreate([0,Table1.FieldCount],varVariant);
with Table1 do while not Eof do begin
j:=j+1;
Arr[0] := IntToStr(j);
for i:=0 to FieldCount-1 do
Arr[i+1] := Fields.Fields[i].AsString;
Sheet.Range['A'+IntToStr(j+2)+':'+
Chr(Ord('A')+FieldCount)+IntToStr(j+2)].Value:=Arr;
Next
end;
Table1.Close
end;
Заметим , что при выводе шапки таблицы каждая ячейка Excel заполняет -
ся индивидуально, а для вывода данных заполняется вариантный массив , кото-
рый затем используется для передачи Excel строки таблицы целиком:
Рис. 3. Отчет в книге Microsoft Excel
Для полноты изложения материала приведем текст программы на C++
для разработчиков клиента в среде программирования Borland C++Builder:
void __fastcall TForm1::Button1Click(TObject *Sender)
{ Table1->DatabaseName="DBDEMOS";
Table1->TableName="country.db"; Table1->Open();
Variant Exl,Book,Sheet,Arr;
                               15
  for i:=0 to Table1.FieldCount-1 do
     Sheet.Cells[2,i+2].Value :=
          Table1.Fields.Fields[i].FieldName;
  Arr := VarArrayCreate([0,Table1.FieldCount],varVariant);
  with Table1 do while not Eof do begin
     j:=j+1;
     Arr[0] := IntToStr(j);
     for i:=0 to FieldCount-1 do
          Arr[i+1] := Fields.Fields[i].AsString;
     Sheet.Range['A'+IntToStr(j+2)+':'+
          Chr(Ord('A')+FieldCount)+IntToStr(j+2)].Value:=Arr;
     Next
  end;
  Table1.Close
end;

     Заметим, что при выводе шапки таблицы каждая ячейка Excel заполняет-
ся индивидуально, а для вывода данных заполняется вариантный массив, кото-
рый затем используется для передачи Excel строки таблицы целиком:




                   Рис. 3. Отчет в книге Microsoft Excel

      Для полноты изложения материала приведем текст программы на C++
для разработчиков клиента в среде программирования Borland C++Builder:
void __fastcall TForm1::Button1Click(TObject *Sender)
{    Table1->DatabaseName="DBDEMOS";
     Table1->TableName="country.db"; Table1->Open();
     Variant Exl,Book,Sheet,Arr;