Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.08.07;
Скачать: CL | DM;

Вниз

Никто не подскажет, почему при передаче в 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 вся ветка

Текущий архив: 2005.08.07;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.071 c
1-1121926026
dreamse
2005-07-21 10:07
2005.08.07
Что такое DupString ?


14-1121171225
Bless
2005-07-12 16:27
2005.08.07
Как передать большой объем информации через Инет?


9-1113670574
Степан
2005-04-16 20:56
2005.08.07
Как изменять контрастность спрайта?


3-1119957012
Валерий
2005-06-28 15:10
2005.08.07
Почему Table is read only


1-1121531665
TStas
2005-07-16 20:34
2005.08.07
Почему StretchDraw не уменьшает прапорционально?