DM->InputStatItem->FieldByName("ID")->AsInteger;
DM->StoreToSklad->ParamByName("in_item")->AsString =
DM->InputStatItem->FieldByName("ITEM")->AsString;
DM->StoreToSklad->ParamByName("in_ediz")->AsString =
DM->InputStatItem->FieldByName("EDIZ")->AsString;
DM->StoreToSklad->ParamByName("in_kol")->AsInteger =
DM->InputStatItem->FieldByName("KOL")->AsInteger;;
DM->StoreToSklad->ParamByName("in_price")->AsCurrency =
DM->InputStatItem->FieldByName("PRICE")->AsCurrency;
DM->StoreToSklad->ExecProc();
DM->StoreToSkladTR->CommitRetaining();
DM->Database->QueryValueAsStr("UPDATE prihodnakl SET proved =
'T' WHERE ID = " + IntToStr(DM->InputStat->FieldByName("ID")->AsInteger) + ";", 0);
DM->InputStatItem->Next();
}
}
} else ShowMessage("Документ вже проведено!");
DM->InputStat->ReopenLocate("ID");
}
Для організації обліку вихідних накладних та контролю їх проведення передбачена форма «Книга реалізації» (рис. 5.12). За структурою форма подібна до форми «Книга приходу», але працює з представленням «OUTPUTSTAT_VIEW» бази даних.
Кнопка «Провести документ» форми «Книга реалізації» призначена для проведення документу і працює за наступним алгоритмом: якщо на момент натискання обраний документ (вихідна накладна) не був проведений (поле «Проведено» містить значення «F») відбувається прохід по всіх записах detail-таблиці «OutputStatItem» форми і передача в зберігану процедуру «DEL_FROM_SKLAD» відповідних параметрів (найменування товару та кількості одиниць), після чого відбувається виклик зберіганої процедури методом ExecProc() компоненту DelFromSklad (TpFIBStoreProc).