17.12.2004, 13:42 | #1 |
Участник
|
InventRepJournalTable_RU
В Ахапте 2,5 для печати из складских журналов например "Акт о списании"
была таблица и форма InventRepJournalTable_RU, в Ахапте 3,0 такой таблицы нет и соответственно в таблице InventJournalTrans поле OffSessionID_RU, по которому были связаны эти таблицы, переименовано в DEL_OffSessionID_RU. Подскажите на что заменена эта таблица в 3.0 и как в 3.0 формировать эти отчеты? |
|
17.12.2004, 16:12 | #2 |
сибиряк
|
InventJournalReportTable_RU ?
__________________
С уважением, Вячеслав. |
|
17.12.2004, 16:25 | #3 |
Участник
|
спасибо
|
|
29.03.2005, 14:34 | #4 |
Moderator
|
А не подскажите где она заполняется?
[Проблема в том, что после разноске журнала инвентаризации не заполнятеся журнал результатов инвентаризации (заголовок которого - InventJournalReportTable_RU)] |
|
29.03.2005, 17:55 | #5 |
Участник
|
а заполняется она в класса обработчиках отчетов отнаследованных от InventJournalProforma_RU, где в метод initOfficialsDefault надо передать параметр прописанный как раз в этом поле, если же в поле ничего не стоит, тогда он возьмет новый, который лучше уж записать в поле offsessionId_RU, если охота потом получить те же строки в форме должностных лиц.
|
|
18.08.2005, 10:09 | #6 |
Moderator
|
Для разнесенных журналов Инвентаризации не создались записи в InventJournalReportTable.
Хотелось бы найти причину. [Случай частный -- т.е. обычно таблица заполняется] Вот ход заполнения InventJournalReportTable 1. Таблица inventJournalReportTable заполняется методом protected void insertReport(Map _dateCostMap, Map _dateDimMap = null) класса InventJournalReport_RU 2. Этот метод для инвентаризации вызывается из метода void saveReport(JournalTransList _journalTransList) класса InventJournalReport_CountColl_RU 3. Метод saveReport вызывается методом protected void postJournal(JournalTransList _journalTransList) класса InventJournalCheckPost_Movement В чем может быть причина что в InventJournalReportTable записи не попали? [Понимаю что вопрос общий, но стандартными методами выяснить сложно] |
|
18.08.2005, 12:17 | #7 |
Moderator
|
Работая в режиме эмуляции дебагера вышел на таблицу InventJournalReportParms_RU в которой на рабочей снесли все записи.
Вопрос исчерпан. Спасибо! |
|
19.08.2005, 05:37 | #8 |
Участник
|
Кстати, удаляются записи из InventJournalReportParms_RU очень просто. Достаточно в форме название складских журналов нажать кнопочку "Обновить". По идее это надо делать один единственный раз при настройки системы. Но уже в ходе эксплуатации можно нечаянно нажать на эту кнопку и все - никаких отчетов (требований-накладных, актов на списание и т.д.) по складским журналам. Причем обнаруживается это обычно уже после того как разнесено некоторое немаленькое количество журналов. И приходится все отсутствующие отчеты создавать ручками...
Дабы этого не произошло, надо ограничиывать доступ к настройкам складских журналов. А еще лучше чуть-чуть подправить в коде: в методе InventJournalReportTypes_RU::initTable() закомментировать строчку PHP код:
|
|
19.08.2005, 09:37 | #9 |
Moderator
|
Спасибо! Актуально.
|
|
17.06.2009, 10:42 | #10 |
Участник
|
немного о InventJournalReportTypes_RU::initTable()
Реанимирую немного давно забытую тему.
Цитата:
Сообщение от Peter Savintsev
Кстати, удаляются записи из InventJournalReportParms_RU очень просто. Достаточно в форме название складских журналов нажать кнопочку "Обновить". По идее это надо делать один единственный раз при настройки системы. Но уже в ходе эксплуатации можно нечаянно нажать на эту кнопку и все - никаких отчетов (требований-накладных, актов на списание и т.д.) по складским журналам.
То что при этом удаляются ранее выбранные отчеты для наименований журналов - пожалуй что можно отнести к багам (недоработке) этого куска функционала. Не совсем понятно почему ситуация не меняется от версии к версии: аналогичное поведение наблюдается и в AX 4.0 SP2, на днях посмотрел локализованный код AX2009 - при беглом просмотре метод InventJournalReportTypes_RU::initTable() не изменился (визуально). Цитата:
X++: public void updateControls() { ... while select ReportType, Description from reportTypesTable where reportTypesTable.JournalType == inventJournalName.JournalType { select firstonly RecId from inventReportParms where inventReportParms.ReportType == reportTypesTable.ReportType && inventReportParms.InventJournalNameId == inventJournalName.JournalNameId; if (inventReportParms.RecId) { //BP deviation documented selectedItemsCtrl.addItem(new FormListItem(reportTypesTable.Description, 0, inventReportParms.ReportType)); } else { //BP deviation documented availableItemsCtrl.addItem(new FormListItem(reportTypesTable.Description, 0, reportTypesTable.ReportType)); } } ... } Понятно что описанная ситуация имеет несколько искусственный характер, но все же. Для целостности картины в методе InventJournalReportTypes_RU::initTable() необходимо все-таки удалять записи из таблицы InventJournalReportParms_RU, но не столь 'сурово' как в штатном функционале: X++: delete_from reportsTable; X++: public server static void initTable() { DictEnum journalTypeEnum = new DictEnum(enumnum(InventJournalType)); DictEnum reportTypeEnum = new DictEnum(enumnum(InventJournalReportType_RU)); int idx, jdx; InventJournalType journalType; InventJournalReportType_RU reportType; InventJournalReport_RU report; InventJournalReportTypes_RU reportTypesTable; InventJournalReportParms_RU reportsTable; // --> in.dc InventJournalName inventJournalName ; // <-- in.dc ; delete_from reportTypesTable; // --> in.dc // delete_from reportsTable; // <-- in.dc for(idx = 0; idx < reportTypeEnum.values(); idx++) { reportType = reportTypeEnum.index2Value(idx); report = InventJournalReport_RU::construct(reportType); for(jdx = 0; jdx < journalTypeEnum.values(); jdx++) { journalType = journalTypeEnum.index2Value(jdx); if (report.isJournalTypeSupported(journalType)) { reportTypesTable.clear(); reportTypesTable.JournalType = journalType; reportTypesTable.ReportType = reportType; reportTypesTable.Description = report.description(); reportTypesTable.insert(); } } } // --> in.dc delete_from reportsTable notexists join reportTypesTable where reportTypesTable.ReportType == reportsTable.ReportType join inventJournalName where inventJournalName.JournalNameId == reportsTable.InventJournalNameId && inventJournalName.JournalType == reportTypesTable.journalType ; // <-- in.dc }
__________________
Dynamics AX 4.0 SP2 |
|
|
За это сообщение автора поблагодарили: Kabardian (3). |