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