Форум: "Corba";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
ВнизНикто не подскажет, почему при передаче в Excel я получаю Найти похожие ветки
← →
}|{yk © (2004-10-26 17:55) [0]ошибку OLE?
function TMyDBGrid.SaveToXLS(FileName: TFileName; UseOnlyVisibleColumns: boolean = true): TFunctionResult;
var
XLSArray, XLSRow: Variant;
HighBound, IDX: integer;
book: TBookmark;
E: Exception;
FieldsList: TStringList;
Diapasone: string;
ExcelApp: TOpExcel;
begin
Result.Successful := False;
Result.MessageOnError := "There is no data grid";
try
if Assigned(self) then
if Assigned(DataSource) then
if Assigned(DataSource.DataSet) then
begin
try
book := DataSource.DataSet.GetBookmark;
DataSource.DataSet.DisableControls;
if DataSource.DataSet.IsEmpty then
begin
Result.MessageOnError := "Dataset is empty"
end
else
{а тут власне виведення даних до варіантного масиву}
begin
FieldsList := TStringList.Create;
for Idx := 0 to self.Columns.Count - 1 do
begin
if self.Columns[Idx].Visible or not UseOnlyVisibleColumns then
FieldsList.Add(self.Columns[Idx].FieldName);
end;
with self.DataSource.DataSet do
begin
Last; {щоб відфетчити всі записи}
XLSArray := VarArrayCreate([0, RecordCount - 1], varVariant);
First;
while not Eof do
begin
XLSRow := VarArrayCreate([0, FieldsList.Count - 1], varVariant);
for IDX := 0 to FieldsList.Count - 1 do
XLSRow[IDX] := FindField(FieldsList.Strings[Idx]).Value;
XLSArray[RecNo - 1] := XLSRow;
Next;
end;
Diapasone := GetCellDiapasoneName(1, FieldsList.Count, 1, RecordCount);
end;
Result.MessageOnError := "Data retrived from dataset, but not inserted into Excel";
{тепер грузимо Excel та кидаємо в нього масив}
try
ExcelApp := TOpExcel.Create(self);
ExcelApp.Visible := false;
ExcelApp.Connected := true;
with ExcelApp.Workbooks.Add do
begin
with Worksheets.Add do
with Ranges.Add do
begin
Address := Diapasone;
Name := "GRID_DATA";
Value := XLSArray;
end;
SaveAs(FileName);
end;
Result.Successful := true;
Result.MessageOnError := "Succesfull transfered data";
finally
ExcelApp.Free;
end;
end;
finally
if Assigned(book) then
DataSource.DataSet.GotoBookmark(book);
DataSource.DataSet.EnableControls;
end;
end;
except on E: Exception do
begin
Result.MessageOnError := E.Message;
Exit;
end;
end;
end;
← →
VMcL © (2004-10-26 17:58) [1]>>}|{yk © (26.10.04 17:55)
Строку, на которой возникает ошибка, и текст сообщения об ошибке нужно угадать?
← →
clickmaker © (2004-10-26 18:20) [2]
> [1] VMcL © (26.10.04 17:58)
> >>}|{yk © (26.10.04 17:55)
>
> Строку, на которой возникает ошибка, и текст сообщения об
> ошибке нужно угадать?
Автор только не сказал, какой приз нам за это будет
Страницы: 1 вся ветка
Форум: "Corba";
Текущий архив: 2005.08.07;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.033 c