|
![]() |
#1 |
Administrator
|
На самом деле, сколько будет строчек она не знает (по крайней мере, не считает). Больше того, вывод в документ производится по полям, а не по записям (то есть, таблицы выводятся по столбцам, а не по строкам). Чтобы создать видимость разбивки на строки, Axapta вставляет мягкий перенос (soft line break) между различными значениями поля при выводе. Лучше всего это заметно при выводе документов в Word.
С Excel что-то напортачили они немного. Чуть-чуть поправив классы DocuActionCOM_Excel и DocuActionTrans можно добиться такого же поведения при создании документов Excel, как и при создании документов Word. Во-первых, в методе insertField класса DocuActionTrans нужно указать, чтобы перевод строки (soft line break) при переходе к новой записи вставлялся после уже выведенного значения, а не вместо него. Блок перевода строки в оригинале: Код: if (first) first = false; else this.insertSoftLineBreak(); Код: if (first) first = false; else { this.insertSoftLineBreak(curPos); curPos++; } Код: // MAXIM, Move right if no hard break void mainInsertField(DocuField docuField, DocuRef docuRef) { COM range; ; super(docuField, docuRef); if (!docuField.HardLineBreak) { range = sysExcelRange.comObject(); range = range.offset(0,1); range.select(); sysExcelRange.comObject(range); } }
__________________
Not registered yet? Register here! Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me |
|