Отчеты в Excel

Программирование на Атлантисе (VIP, FCOM, ARD), FastReport

Модераторы: m0p3e, edward_K, Модераторы

hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Понятно, Edward!

А последовательность действий правильная?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

да. тока в конце еще не мешает сохранить в out. И шаблон держать как xlt не обязательно - его сложнее чуть подправлять.
XLGETACTIVEWORKBOOKNAME(wstr) ;
xlSaveAsWorkBookByName(wstr, wout) ;
XLKILLEXCEL ;
иначе при закрытии файла пойдет вопрос о сохранении в "мои документы"
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

А без шаблона никак? Или можно просто xls файл создать, в нем макросы настроить, в него же и писать данные из формы, а потом, наверное, надо будет сохранить его с другим именем (чтобы исходный файл остался нетронутым) - так возможно?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

xlCreatefromtemplate в автомате делает новый экземпляр, так что исходный файл не затронете. А какое будет у него расширение ( xlt от xls в принципе ничем не отличаются вроде как - тока способом открытия и сохранения) не важно. Поэтому шаблон делайте как xls - так чуть проще с ним работать.
Den
Местный житель
Сообщения: 1842
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Ярославская область ОАО "Часовой завод Чайка" г. Углич
Контактная информация:

Сообщение Den »

hope писал(а):А без шаблона никак? Или можно просто xls файл создать, в нем макросы настроить, в него же и писать данные из формы...
Конечно можно все и без шаблона и макросы настроить как надо по ходу...
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

А как макросы настроить по ходу? Да еще и параметры им передать желательно?
edward_K
Заслуженный деятель интернет-сообщества
Сообщения: 5187
Зарегистрирован: 29 мар 2005, 17:49
Откуда: SPB galaxy spb

Сообщение edward_K »

xlImportModule(file_mac);
xlRunMacro('MAC1(par1,par2)');
Другой способ отдельно делать лист данных и где то на нем указывать параметры для работы макроса - так например работает "состав заработной платы" да и все xlt отчеты(только более упорядоченно). Для отладки самого макроса это предпочтительней. Максро следует сохранять в windows кодировке, формат такой же как в Excel.
Ksenia
Посетитель
Сообщения: 39
Зарегистрирован: 29 мар 2005, 17:49
Откуда: Украина, Киев
Контактная информация:

Сообщение Ksenia »

я, например по ходу в отчете делаю так:
logstrtofile(sFileName,'Sub MacroBreak_'+OEM2ANSI(Replace(Replace(ShortMyOrgNameByExcel,' ','_'),'-',''))+CountRow+'()');
logstrtofile(sFileName,' With Worksheets("'+OEM2ANSI(ShortMyOrgNameByExcel)+'")');
for (i:=19;i<=CountRow;i:=i+20)
logstrtofile(sFileName,' .HPageBreaks.Add .Range("A'+(i)+'")');
logstrtofile(sFileName,'End With ');
logstrtofile(sFileName,'End Sub ');
xlImportModule(sFileName);
xlSetActiveSheetByName(ShortMyOrgNameByExcel)
xlRunMacro('MacroBreak_'+OEM2ANSI(Replace(Replace(ShortMyOrgNameByExcel,' ','_'),'-',''))+CountRow);

Этот кусок вставляет в конкретный лист макрос, который делает определенное число разрывов
Учиться, учиться и еще раз учиться
hope
Местный житель
Сообщения: 1353
Зарегистрирован: 29 мар 2005, 17:49
Контактная информация:

Сообщение hope »

Ок! Спасибо - буду пробовать!
Ответить