![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ExcelApplication
john_mag © (2005-06-07 12:28:00)Добрый полдень всем! После ваших советов модернизировал прогу.
Вроде все работает нормально, но дело в следующем: после каждого цикла i сохраняется файл с уникальным именем и с данными, ОДНАКО, файлы сораняются, но данные появляются только в первом файле, а остальные пусты! если кто-нибудь сможет дать дельный совет - буду очень признателен!
Anatoly Podgoretsky (2005-06-07 13:47:00) [1]john_mag © (07.06.05 13:18) [10]
Есть разные варианты
1. выбросить
2. продолжать использовать
3. третье
Digitman (2005-06-07 13:30:00) [2]
> что мне делать с тем , что у меня есть??
трассировать пошагово
john_mag (2005-06-07 13:18:00) [3]нет предела совершенству! и нет совершенных программ (Windows,...) все Ваши пожелания я учту и исправлю, но что мне делать с тем , что у меня есть??
GreatMaster (2005-06-07 13:17:00) [4]> а разницы с моим кодом что-то я не вижу..
дык мой кусок работает - пишет в файлы разные данные, сравни со своим и найди ошипку
Digitman (2005-06-07 13:13:00) [5]зачем n раз создавать/уничтожать объект Excel.Application и раб.книгу, когда это можно сделать один раз, а в цикле только заполнять раб.лист и сохранять документ в файл ?
john_mag (2005-06-07 13:12:00) [6]GreatMaster (07.06.05 13:07) [6]
А вот у тебя, if mass[4+cc2,i] НЕ РАВНО 1 then сам понимаешь...
это ведь только часть кода. идет проверка массива и если значение массива = 1 то в FileName в таблицу записываются данные из БД.
а разницы с моим кодом что-то я не вижу...
GreatMaster (2005-06-07 13:07:00) [7]вот упрощёный вариант твоего, он работает:
for j:= 1 to 10 do
begin
xlApp:= CreateOleObject('Excel.Application');
xlApp.WorkBooks.Add;
xlSheet:= xlApp.WorkBooks[1].WorkSheets[1];
xlSheet.Name:= 'qwerty';
for i:= 1 to 5 do
begin
begin
xlSheet.Cells.Item[1,1].Value:= IntToStr(j);
O:= 'C:\Apteka\Append\'+IntToStr(j)+'.xls';
FileName:= O;
end;
end;
xlApp.Workbooks[1].SaveAs(FileName);
xlApp.Quit;
xlApp := Unassigned;
xlSheet := Unassigned;
end;
А вот у тебя, if mass[4+cc2,i] НЕ РАВНО 1 then сам понимаешь...
john_mag (2005-06-07 12:54:00) [8]GreatMaster (07.06.05 12:32) [3]
Щас мы все собирёмся и попытаемся угадать твой код...
зря ты так...
у меня код не отсылается... "удаленный сервер разорвал связь"
попробую еще раз...
john_mag (2005-06-07 12:54:00) [9]for j:= 1 to n do
begin
xlApp:= CreateOleObject('Excel.Application');
xlApp.WorkBooks.Add;
xlSheet:= xlApp.WorkBooks[1].WorkSheets[1];
xlSheet.Name:= 'qwerty';
for i:= 1 to m do
begin
if mass[4+cc2,i] = 1 then
begin
xlSheet.Cells.Item[cc+1,1].Value:= IntToStr(FF1.Number);
O1:= FF6.NameFirm;
O:= 'C:\Apteka\Append\'+O1+'.xls';
FileName:= O;
Inc(cc);
end;
Inc(c);
Inc(cc1);
end;
cc1:= 0;
Inc(cc2);
Inc(cc2);
xlApp.Workbooks[1].SaveAs(FileName);
xlApp.Quit;
xlApp := Unassigned;
xlSheet := Unassigned;
end;
GreatMaster (2005-06-07 12:32:00) [10]Щас мы все собирёмся и попытаемся угадать твой код...
-=XP=- (2005-06-07 12:31:00) [11]После ваших советов модернизировал прогу
Уважаемый Егений!
Я сохранил все Ваши вопросы и ответы на них. Но, к сожалению, архив куда-то пропал. Поэтому ответить на этот вопрос не могу, по причине абсолютного непонимания того, о чем идет речь.
Digitman (2005-06-07 12:29:00) [12]как и всегда, ошибка в 17-й строке