25.05.2020, 12:47 | #1 |
Участник
|
добавление столбцов в шаблон Excel
Добрый день,
Я делаю отчет на базе класса XMLExcelReport_RU. В методе create report сформировал временную таблицу: X++: protected void createReport() { int i = 1; this.initSectionMap(); this.execute(#HEADER); while(qr.next()) { smmActivityParentLinkTable = qr.get(tableNum(SMMActivityParentLinkTable)); smmActivities = qr.get(tableNum(smmActivities)); tsTimeSheetLine = qr.get(tableNum(tsTimeSheetLine)); tsTimesheetLineWeek = qr.get(tableNum(tsTimesheetLineWeek)); for (i=1; i<=7; i+=1) { if(tsTimesheetLineWeek.Hours[i]) { taskDaysFactTmp_ICL.ActivityType = smmActivities.ICLPRJDevTaskActivityType; taskDaysFactTmp_ICL.ResponsibleWorker = HcmWorker::worker2Name(smmActivities.ResponsibleWorker); taskDaysFactTmp_ICL.ActivityDate = tsTimesheetLineWeek.DayFrom + (i-1); taskDaysFactTmp_ICL.Hours = tsTimesheetLineWeek.Hours[i]; } } taskDaysFactTmp_ICL.insert(); } this.execute(#PageHeader); this.execute(#Body); } X++: protected void fillData(MSOfficeBookMark_RU _bookmark) { switch (_bookmark) { case #HEADER: this.fillHeader(); break; case #PageHeader: this.fillPageHeader(); break; case #Body: this.fillBody(); break; } } X++: protected void fillPageHeader() { while select activitydate from taskDaysFactTmp_ICL group by taskDaysFactTmp_ICL.ActivityDate order by taskDaysFactTmp_ICL.ActivityDate { } } |
|
26.05.2020, 06:46 | #2 |
Участник
|
Насколько я понимаю, в самом XMLExcelReport_RU вы столбцы динамически добавлять не сможете. Точнее, стандартными средствами Аксапты не сможете
Вижу такие варианты: 1) Дописать-создать методы, которые будут работать с XML-файлом, создавая там нужные столбцы с нужным форматом - вероянто, в библиотеке для OXML это все уже есть, надо только сделать обертку в DAX 2) предварительно через COM открыть ваш шаблон Excel и динамически добавить нужные столбцы в шаблон (с метками и т.д.). Затем уже заполнить шаблон через XMLExcelReport_RU как обычно 3) не использовать XMLExcelReport_RU вообще, а использовать какой-нибудь COM или, например, ADO для заполнения + COM для необходимого форматирования |
|
|
За это сообщение автора поблагодарили: dark_knight (1). |