![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Неправильно записывает из базы в 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]Удалено модератором
Примечание: Создание пустых сообщений