Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Неправильно записывает из базы в EXel [D7, Paradox]


Сергей И ©   (2006-04-17 18:10:00) 

1 Godex EZ-2 203dpi qqqqqqq \\ST-52  sergey 17.04.2006
2 Godex EZ-2 203dpi qqqqqqq \\ST-52 sergey 17.04.2006
3 Godex EZ-2 203dpi qqqqqqq \\ST-52sergey  17.04.2006
4 hp LaserJet 1320 PCL qqq l  \\192.168.0.90  oleg17.04.2006

имеются вот такие данные(смотри выше) в базе данных
когда я пытаюсь записать из в файл exel то получается чтото, такое ->>
Godex EZ-2 203dpi Спартак.xls \\192.168.0.90 oleg17.04.2006
Godex EZ-2 203dpi Спартак.xls \\192.168.0.90 oleg17.04.2006
Godex EZ-2 203dpi Спартак.xls \\192.168.0.90 oleg17.04.2006
hp LaserJet 1320 PCL Спартак.xls \\192.168.0.90 oleg17.04.2006
hp LaserJet 1320 PCL Спартак.xls \\192.168.0.90 oleg17.04.2006

а вот сам код перезаписи из базы в exel
->>
function save_file(dbgrid:tdbgrid; FileName: string):boolean;
const
 xlWBATWorksheet = -4167;
var
 Row, Col: Integer;
 XLApp, Sheet: OLEVariant;
begin
form1.DBGrid1.DataSource.DataSet.First;
Result := False;
 XLApp  := CreateOleObject('Excel.Application');
 try
   XLApp.Visible := False;
   XLApp.Workbooks.Add(xlWBatWorkSheet);
   Sheet      := XLApp.Workbooks[1].WorkSheets[1];
   Sheet.Name := 'Otchet';
  for col := 0 to form1.DBGrid1.Columns.Count -1   do
    begin
     for row := 0 to form1.DBGrid1.DataSource.DataSet.RecordCount do
       begin
      Sheet.Cells[row+1,col+1] :=form1.DBGrid1.Fields[col].AsString ;
      form1.DBGrid1.DataSource.DataSet.next;
     end;end;
  try
     XLApp.Workbooks[1].SaveAs(path+FileName);
     Result := True;
   except
   end;
 finally
   if not VarIsEmpty(XLApp) then
   begin
     XLApp.DisplayAlerts := False;
     XLApp.Quit;
     XLAPP := Unassigned;
     Sheet := Unassigned;
   end;
 end;
end;

в чем дело подскажите?


_RusLAN   (2006-04-18 10:49:00) [1]

лучше
перебирать записи НД.
а во вложеном цыкле пробегать по полям


Сергей И   (2006-04-18 10:48:00) [2]

Все спасибо я разобрался!


_RusLAN   (2006-04-18 10:45:00) [3]

Сергей И   (17.04.06 18:10)
form1.DBGrid1.Columns.Count -1

DBGrid может содержать статические поля(вроде так они называются) и их количество и порядок может не соответствовать набору данных


Сергей И   (2006-04-18 10:37:00) [4]

А что точно не так не подскажешь?


_RusLAN   (2006-04-18 10:36:00) [5]

Сергей И   (17.04.06 18:10)
hp LaserJet 1320 PCL Спартак.xls \\192.168.0.90 oleg17.04.2006
hp LaserJet 1320 PCL Спартак.xls \\192.168.0.90 oleg17.04.2006


form1.DBGrid1.DataSource.DataSet.RecordCount - 1


Johnmen   (2006-04-18 10:25:00) [6]

Естественно, ошибка в неверном вложении циклов. Или же в отсутствии First для начала цикла по записям.
А также ошибка в верхней границе цикла по записям.


Сергей И   (2006-04-18 10:18:00) [7]

Может быть не втой последовательности перебираю записи базы данных?


Сергей И   (2006-04-18 08:25:00) [8]

Удалено модератором
Примечание: Создание пустых сообщений


Наверх

Титульная страница Поиск, карта сайта Написать письмо