06.11.2003, 16:46 | #1 |
Участник
|
создание закупки-2
Dear All!
Не работает вот такой кусочек кода: PurchTable purchTable; PurchTableType purchTableType; VendTable vendTable; NumberSeq purchNumberSeq; ; purchTable.initValue(); purchTable.purchStatus = PurchStatus::Backorder; purchTable.purchaseType = PurchaseType::Purch; purchNumberSeq = NumberSeq::newGetNum(purchParameters::numRefPurchId(), true); purchTable.purchId = purchNumberSeq.num(); info(strfmt("purchId=%1", purchTable.purchId)); purchTable.orderAccount = "00001"; purchTable.initFromVendTable(); ttsbegin; purchTable.insert(); purchTableType.purchIdUsed(); ttscommit; return purchTable; Видимо, натыкается на "ручной ввод". Но как здесь выбрать нужную запись? |
|
06.11.2003, 17:10 | #2 |
Banned
|
Какой еще "ручной ввод"? Что, собственно, говорит система в сообщении об ошибке? Теоретически ttsbegin должен быть в самом начале.
|
|
10.11.2003, 14:09 | #3 |
Участник
|
Создание шапки закупки
Разобрался. Не указал, что purchParameters::numRefPurchId() - пользовательский метод, к-рый возвращает следующее:
NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(PurchId))), т. е. находит для текущей компании ссылку в таблице NumberSeqReference. Т. е. действительно, метод NumberSeq.num() возвращал пустую строку, к-рая и пишется в PurchId, т. к. в таблице numTableNum (экземпляр NumberSequenceTable) в соотв. строке было numTableNum.restrictionLevel == RestrictionLevel::Manual ("Ручной выбор"). Исправил значение с 0 на 4 ("Изменения запрещены"), заработало. В итоге такой код добавляет шапку закупки: PurchTable purchTable; PurchTableType purchTableType; VendTable vendTable; NumberSeq purchNumberSeq; ; purchTable.initValue(); purchTable.purchStatus = PurchStatus::Backorder; purchTable.purchaseType = PurchaseType::Purch; purchTableType = purchTable.type(); purchTable.purchId = purchTableType.getNewPurchId(); purchNumberSeq = NumberSeq::newGetNum(NumberSeqReference::findReference(typeId2ExtendedTypeId(typeid(PurchId))), true); purchTable.purchId = purchNumberSeq.num(); purchTable.orderAccount = "00001"; // код поставщика purchTable.initFromVendTable(); ttsbegin; purchTable.insert(); purchTableType.purchIdUsed(); ttscommit; return purchTable; |
|