Показать сообщение отдельно
Старый 15.02.2003, 00:47   #10  
Falcon is offline
Falcon
Восставший
Соотечественники
 
753 / 35 (3) +++
Регистрация: 08.02.2002
Адрес: Pincourt, Quebec, Canada
И все-таки я это дело победил...
Кажется...
Кому интересно - вот чего я сделал:
1. Добавил в таблицу InventSum поле Expiry date. Сделал обновление этого поля при каждом запуске формы InventOnHandReserve.
2. Вывел добавленное поле в грид вышеуказанной формы.
3. В метод executequery датасорса InventSum указанной формы добавил пару строчек:
PHP код:
    QueryBuildDataSource    qBSSum
...
    
qBSSum inventSum_DS.query().dataSourceName(inventSum_DS.name()); 
    
qBSSum.addSortField(fieldnum(InventSum,ExpDate)); 
Это для того,чтобы сортировка в форме шла по дате.
Знаю, что красивее было то же самое сделать в классе InventDimCtrl_Frm_OnHand - но уж очень не хотелось в классы лезть.
4. Теперь осталось самое сложное - поменять порядок автоматического резерва. Для этого в классе InventSumSearch_Reserve (все-таки пришлось...) в методе initQuery заменил LastUpdDateExpected на ExpDate - в нескольких строчках.
4.1. Еще в InventUpd_Reservation, метод updateReserveLess во всех трех селектах добавил
order by statusIssue, Expdate ,inventDimId. Только вот не знаю зачем, так на всякий случай

Вроде бы все...
Проверял и в SalesOrders, и в Inventory - вроде бы резервирует как надо...

Правда, попутно вылезла любопытная деталь. В "толстом клиенте" все работает ОК, а в тонком последние изменения (п.4) система как бы "не видит". Я естественно первым делом почистил кэш - не помогло. Перекомпилил все - без мазы. Подумал, может я не тот АОТ правил - нет, все правильно, в тонком клиенте изменения видны в АОТ, только как бы "не работают"...

Вот сижу, обхватив тыкву руками, и думаю - че ж такое может быть-то ? )))