Показать сообщение отдельно
Старый 02.02.2005, 14:53   #2  
Alks is offline
Alks
Участник
 
336 / 41 (2) +++
Регистрация: 23.07.2004
Адрес: г. Новокузнецк
В таблицу InventDimParm вообще никогда не надо ничего вставлять.
Эта таблица по сути своей используется лишь как запись (record, struct) в памяти компьютера, определяющая тот или иной режим обработки складских аналитик в InventDim (в отчётах и запросах - как правило - какие аналитики отображать, т.е. по каких сворачивать итоги, а какие вообще не выводить).

В родителе класса, выводящего отчёт (InventReport_DimPhys) есть метод:

PHP код:
Query initQuery()
{
    
inventDimParm inventDimParmCriteria;
    ;
    
inventDimParm.itemIdFlag            true;
    
inventDimParmCriteria.ClosedFlag    true;

    return 
inventDim::newQueryInventSum(super(),'',null,inventDimParmCriteria,inventDimParm);

В inventDim::newQueryInventSum происходит модификация Query так чтобы группировать по выбранному пользователем InventDimParm.

А в отчёте в методе init есть код:

PHP код:
    inventDimGenSetup_Report    = new inventDimCtrl_Rep(element);
    
inventDimGenSetup_Report.parmDimParmVisible(inventDimReport.parmInventDimParm());
    
inventDimGenSetup_Report.updateControls(); 
Который скрывает незначащие аналитики с листа отчёта.

Самый правильный способ - отказаться от такой затеи.
Ограничивать стандартный функционал, имхо, нехорошо, такими варварскими методами.
Но если крайне требуют, то самым аккуратным было бы перепопределение initQuery в InventReport_DimPhys таким образом:

PHP код:
Query initQuery()
{
    ;
    
// меняем inventDimParm
    
...
    return 
super();

Эх... то ли мануал написать по использованию InventDim в отчётах.