Отчеты в Excel
Модераторы: m0p3e, edward_K, Модераторы
-
- Заслуженный деятель интернет-сообщества
- Сообщения: 5188
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: SPB galaxy spb
xlImportModule(file_mac);
xlRunMacro('MAC1(par1,par2)');
Другой способ отдельно делать лист данных и где то на нем указывать параметры для работы макроса - так например работает "состав заработной платы" да и все xlt отчеты(только более упорядоченно). Для отладки самого макроса это предпочтительней. Максро следует сохранять в windows кодировке, формат такой же как в Excel.
xlRunMacro('MAC1(par1,par2)');
Другой способ отдельно делать лист данных и где то на нем указывать параметры для работы макроса - так например работает "состав заработной платы" да и все xlt отчеты(только более упорядоченно). Для отладки самого макроса это предпочтительней. Максро следует сохранять в windows кодировке, формат такой же как в Excel.
-
- Посетитель
- Сообщения: 39
- Зарегистрирован: 29 мар 2005, 17:49
- Откуда: Украина, Киев
- Контактная информация:
я, например по ходу в отчете делаю так:
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);
Этот кусок вставляет в конкретный лист макрос, который делает определенное число разрывов
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);
Этот кусок вставляет в конкретный лист макрос, который делает определенное число разрывов
Учиться, учиться и еще раз учиться