|
![]() |
#1 |
Moderator
|
Цитата:
![]() P.S. Да, и текстовое значение "000333" после вставки останется текстовым значением "000333", не превратившись в число 333. |
|
|
За это сообщение автора поблагодарили: Dimk (1). |
![]() |
#2 |
Участник
|
всем спасибо, буду разбираться дальше
|
|
![]() |
#3 |
Участник
|
Цитата:
![]() ![]() X++: #define.ReportTemplateName ('ReportTemplate.xlt') // нзвания полей - заголовков табличной части шаблона и названия колонок в RecordSet #define.fldAccountNum ('AccountNum') #define.fldTransDate ('TransDate') #define.fldDocumentDesc ('DocumentDesc') #define.fldAmount ('LineAmount') // названия полей в шапке шаблона #define.fldHdrLine1 ('headerLine1') #define.fldHdrLine2 ('headerLine2') #define.fldHdrLine3 ('headerLine3') // название ячейки, откуда будет начат вывод строк #define.fldReportLines ('reportLines') // экземпляр Uni_ReportChannelExcel, созданный на клиенте и переданный отчету Uni_ReportChannel repChannel; // ... { Map mapReport; real nLine; // номер строки данных отчета в Map - вдруг диапазона int не хватит... void outputReportHeader() { UserInfo userInfo; ; repChannel.initReportChannel(#ReportTemplatePath_RU + #ReportTemplateName); select firstonly name from userInfo where userInfo.id == curuserid(); repChannel.insertReportValue(#fldHdrLine1, this.reportTitle()); repChannel.insertReportValue(#fldHdrLine2, strfmt("@DIS10758", currencyCode)); repChannel.insertReportValue(#fldHdrLine3, strfmt("Отчет сформирован: %1 %2, пользователь: %3", today(), time2str(timenow(),0,0), userInfo.name)); repChannel.insertReportValue(#fldAccountNum,"@DIS8614"); // и т.д. - вставка полей шапки отчета } void outputReportBody() {; repChannel.outputReportBody(mapReport.pack(), #fldReportLines); } void outputReportFooter() {; // вставка итоговых полей отчета // освобождение используемых COM-объектов repChannel.finalize(); } void dumpReportStr(str _p1, TransDate _p2, str _p3, Amount _p4) {; mapReport.insert(nLine,[_p1, // #fldAccountNum _p2, // #fldTransDate _p3, // #fldDocumentDesc _p4]); // #fldAmount nLine++; } void initReportStruct() { #CCADO Array arrFields = new Array(Types::Container); int i = 1; ; arrFields.value(i, [#fldAccountNum, #adBSTR] ); i++; arrFields.value(i, [#fldTransDate, #adDBDate]); i++; arrFields.value(i, [#fldDocumentDesc, #adBSTR] ); i++; arrFields.value(i, [#fldAmount, #adDouble]); repChannel.initReportBuffer(arrFields.pack()); } ; // поехали... initReportStruct(); mapReport = new Map(Types::Real, Types::Container); nLine = 1.0; while select * from tmpTbl order by TransDate { // подготовка данных к выводу и... dumpReportStr(tmpTbl.AccountNum, tmpTbl.TransDate, tmpTbl.DocDesc, tmpTable.Amount); } // вывод в Excel outputReportHeader(); outputReportBody(); outputReportFooter(); } |
|
|
За это сообщение автора поблагодарили: aidsua (1), Gustav (9). |
![]() |
#4 |
Участник
|
См. также http://axapta.mazzy.ru/lib/direct_sql/
|
|
|
За это сообщение автора поблагодарили: Dimk (1). |
Теги |
ax3.0, excel, законченный пример, отчет, экспорт, экспорт в excel, шаблон |
|
|