|
13.01.2004, 14:31 | #1 |
Участник
|
Уважаемые коллеги.
Итак, имеем форму SalesTable Необходимо перебрать SalesLines выбранного заказа и установить определенное значение InventDim, например InventGTDId_RU. У меня пока не получается ((
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
13.01.2004, 14:46 | #2 |
Участник
|
это надо использовать методы таблицы InventDim.
Код: { InventDim dim = InventDim::find(SalesLine.inventDimId); dim.InventGtdId_RU = ...код любимого ГТД... dim = InventDim::findOrCreate(dim.dimID); } Дополнительно полезно разобраться как добавлять/скрывать/запрещать редактирование аналитики в формах/отчетах стандартными методами. |
|
14.01.2004, 13:16 | #3 |
Участник
|
Код: { SalesLine SalesLineSelect; InventDim dim; ; SalesLineSelect = SalesLine_ds.getFirst(); while ( SalesLineSelect ) { dim = InventDim::find(SalesLineSelect.inventDimId, true); //EN_find - ищет последнюю ГТД от определенного поставщика dim.InventGtdId_RU = InventGTD_RU::EN_find(SalesTable.K_DrawFrom,SalesLineSelect.ItemId); dim = InventDim::findOrCreate(dim); SalesLineSelect.InventDimId = dim.inventDimId; SalesLineSelect.write(); SalesLineSelect = SalesLine_ds.getNext(); } } Т.е. стоит задача - по нажатию на кнопочку заполнить SalesLine последними (по времени ГТД от конкретного поставщика) ------------------- не, надо снова на 1С переходить
__________________
----------------------------------------- Искренне Ваш, ДК. |
|
14.01.2004, 13:19 | #4 |
Участник
|
не работает потому, что getFirst() работает не с таблицей, а с датасорсом формы. А у датасорса есть свои методы. InventDimId он на форме отсутствует. Форма сама его обновляет исходя из других полей на форме.
работай с query либо с select'ом напрямую. while select { ... } а в конце что-либо вроде salesline_ds.research() для того, чтобы обновить форму исходя из обновленных значений в базе. |
|
14.01.2004, 13:48 | #5 |
Участник
|
Код: void clicked() { SalesLine SalesLineSelect; InventDim dim; ; if (SalesTable.K_DrawFrom) TTSBEGIN; while select forupdate SalesLineSelect where SalesLineSelect.SalesId == SalesTable.SalesId { dim = InventDim::find(SalesLineSelect.inventDimId, true); dim.InventGtdId_RU = InventGTD_RU::EN_find(SalesTable.K_DrawFrom,SalesLineSelect.ItemId); dim = InventDim::findOrCreate(dim); SalesLineSelect.InventDimId = dim.inventDimId; SalesLineSelect.update(); } TTSCOMMIT; Salesline_ds.research(); }
__________________
----------------------------------------- Искренне Ваш, ДК. |
|