|
|
|
|
#1 |
|
Участник
|
интересно...
Групповое перемещение контролов - это, по-моему, самое вкусное что есть в данной утилите. Самая тупая работа, когда надо добавить поле в перегруженный контролами отчет типа ТТН. И сидишь, сдвигаешь все соседние не-авто поля вручную на некую дельту. Уважаемый Ярослав, добавьте линейку-разметку на report view.
|
|
|
|
|
#2 |
|
Участник
|
Вместо/вместе с групповым смещением при редактировании таблиц можете ещё попробовать "link as table".
Кстати, забыл указать в README ограничения: 1. Редактируется только GENERATED DESIGN. 2. Controls автоматически располагаются в каждой секции методом "Horizontal, flush right" независимо от указанного в ArrangeMethod секции. 3. Автоматическое расположение controls происходит без переносов на следующие строки, т.е. как в режиме "Fit to page". 4. Свойства LabelLineBelow и LabelLineThickness не учитываются. 5. Ширина текстов может немного отличаться от Axapta. |
|
|
|
|
#3 |
|
Британский учённый
|
Идея очень хорошая, так как разрабатывать отчеты в Аксапте это самое нудное занятие имхо.
Я как то пару раз писал скрипты для подобных рутинных действий. Для удобства можно интегрировать с Аксаптой: автоэкспорт отчета и вызов утилиты с параметром пути к файлу. Готов написать код со стороны Аксапты. Хотелось бы поддержку более новых версий в будущем.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
|
|
#4 |
|
Участник
|
У меня нет других версий Axapta, кроме упомянутой, поэтому проверить работоспособность я не могу. Те, у кого они есть, могут написать о результатах. Я позже попробую доделать AxRepEditor для получения названия файла отчёта из параметров.
|
|
|
|
|
#5 |
|
Участник
|
Во вложенном файле --- новая версия AxRepEditor.
Изменения: . Сделано получение названия файла отчёта из параметров командной строки. . Добавлена проверка уникальности названий control-ов. . Исправлена ошибка при создании новой секции (не кэшировались свойства). . Добавлена лицензия в дистрибутив. . Переделан алгоритм применения связей. . Добавлены линейки, сетка и привязка к ней. Последний раз редактировалось Ярослав Щекин; 18.08.2011 в 14:20. |
|
|
|
| За это сообщение автора поблагодарили: axalex (1). | |
|
|
#6 |
|
Участник
|
Во вложенном файле --- новая версия AxRepEditor.
Изменения: . Исправлена ошибка: Fontsize control'а не наследовался из его секции. . Исправлена ошибка: свойства активного control'а не обновлялись после 'align as table'. . Выделение control-ов перенесено с Shift-Click на CTRL-Click. . Добавлено: при нажатии ALT во время перемещения активного control-а перемещение происходит только по вертикали или по горизонтали от исходного положения. To Link: Вы не пробовали реализовать автоэкспорт отчета и вызов утилиты с параметром пути к файлу? To All: Вы не заметили каких-либо ошибок? Кто-нибудь попробовал работу с другими версиями Axapta? Последний раз редактировалось Ярослав Щекин; 18.08.2011 в 14:20. |
|
|
|
|
#7 |
|
Сам.AX
|
Для четверочных отчетов у меня не заработало...
__________________
ѣ |
|
|
|
|
#8 |
|
Участник
|
Так и пишет --- не работаю?
![]() Вы не могли бы выложить какой-нибудь (небольшой) отчёт из четвёрки? |
|
|
|
|
#9 |
|
Участник
|
__________________
С уважением, Алексей. |
|
|
|
|
#10 |
|
Участник
|
В 5.0 тоже не вышло.
__________________
С уважением, Алексей. |
|
|
|
|
#11 |
|
Британский учённый
|
Цитата:
Реализовано через SysContextMenu, так же есть кнопочка для Табакса.
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
|
| За это сообщение автора поблагодарили: S.Kuskov (4), Ярослав Щекин (1). | |
|
|
#12 |
|
Участник
|
Спасибо. Но, когда я пытался адаптировать этот проект под свою Axapta 3.0, то выяснил, что отчёт экспортируется без меток (вызовом treeNodeExport). Вы не знаете, каким образом заставить Axapta экспортировать их?
|
|
|
|
|
#13 |
|
Британский учённый
|
Цитата:
X++: // >> DEV:mxk 18/08/11-16:09:19 DEV_ReportEditorExternal>> /* System export flags #define.noExport(0) // Do not export #define.export(1) // Export #define.expKeepIds(0x0100) // Export with ID's #define.expLables(0x0400) // Export labels #define.expProjectOnly(0x800) // Export project only #define.expLockOnExport(0x1000) // Lock exported elements #define.expDefaultValues(0x2000) // Export default properties values #define.expLayer(0x4000) // Export current layer only*/ protected void export( TreeNode _node = reportNode, FilePath _fileName = xpoFile) { int flag = (#expKeepIds + #expLables + #expLockOnExport); ; if (_node) { _node.treeNodeExport(_fileName, flag); } } X++: // >> DEV:mxk 18/08/11-16:09:19 DEV_ReportEditorExternal>> /* System import flags #define.impOk(0x0000) // Element imported #define.impError(0x0001) // Element is not imported #define.impReImport(0x0002) // Reimport is needed #define.impReImporting(0x0004) // Reimporting #define.impStopped(0x0008) // Stop import #define.impNeverOverwrite(0x0010) // Do not overwrite elements #define.impQueryOverwrite(0x0020) // Display a dialog asking if you want to override or not #define.impGetCompareNode(0x0040) // Import into node not in tree #define.impRemoveExcess(0x0080) // Delete subelements not found in tree #define.impKeepIds(0x0100) // Keep ID's after import #define.impFormCopyPaste(0x0200) // Using import to copy and paste form-controls #define.impLabels(0x0400) // Import labels #define.impOverrideLocks(0x0800) // Override locks #define.impAddToProject(0x2000) // Import into project #define.impIgnoreCheckStatus(0x8000)// Import even if object is checked in*/ protected void import( TreeNode _importNode = reportNode, FilePath _fileName = xpoFile) { SysImportElements import; SysCompilerOutput compiler; TmpAotImport tmpAotImport; TreeNode treeNodeImport; int importId; int elements; int flag = (#impKeepIds + #impOverrideLocks + #impLabels + #impIgnoreCheckStatus + #impRemoveExcess); boolean importOk ; try { // Import file and compile it import = new SysImportElements(); import.newFile(xpoFile); import.parmAddToProject(false); import.parmImportAot(true); import.parmImportWithIds(false); import.import(#impRemoveExcess | #impIgnoreCheckStatus); // retrieve the compilation log and use it to produce the external log tmpAotImport = import.getTmpImportAot(); compiler = infolog.compilerOutput(); info(strfmt("Report %1 successfully imported.", _importNode.treeNodeName())); } catch(Exception::Error) { error(strfmt("@SYS97044", xpoFile)); } }
__________________
Людям физического труда для восстановления своих сил нужен 7-8 часовой ночной сон. Людям умственного труда нужно спать часов 9-10. Ну а программистов будить нельзя вообще. |
|
|
| Теги |
| xpo, xpo editor, законченный пример, полезное, редактор |
|
|
| Опции темы | Поиск в этой теме |
| Опции просмотра | |
|