19.03.2010, 19:02 | #1 |
Участник
|
Как изменить значения полей из кода?
Стоит задача:
В форме PurchTable==>(New)==>PurchCreateOrder необходимо устанавливать для Site и Warehouse некоторые значения по умолчанию(например Def) если они пустые после введения вендора в Vendor Account. Например, ввели Vendor Account = 'V000001'. Из вендора подтянулись значения Site и Warehouse. Припустим - они пустые. Значит, должны подтянутся Site = 'Def' и Warehouse = 'Def'. Подскажите, плиз, как мне быть. Спасибо! |
|
19.03.2010, 19:41 | #2 |
Участник
|
Цитата:
Сообщение от andriy_s
В форме PurchTable==>(New)==>PurchCreateOrder необходимо устанавливать для Site и Warehouse некоторые значения по умолчанию(например Def) если они пустые после введения вендора в Vendor Account.
Например, ввели Vendor Account = 'V000001'. Из вендора подтянулись значения Site и Warehouse. Припустим - они пустые. Значит, должны подтянутся Site = 'Def' и Warehouse = 'Def'. Подскажите, плиз, как мне быть. Спасибо! PurchCreateOrder \ Data Sources \ PurchTable \ Fields \ OrderAccount \ Methods \ Modified |
|
19.03.2010, 19:58 | #3 |
Участник
|
Так и хотел сделать - но так не помогает:
X++: PurchTable_InventSiteId.text("Def"); |
|
19.03.2010, 20:11 | #4 |
Боец
|
Цитата:
Сообщение от andriy_s
Стоит задача:
В форме PurchTable==>(New)==>PurchCreateOrder необходимо устанавливать для Site и Warehouse некоторые значения по умолчанию(например Def) если они пустые после введения вендора в Vendor Account. Например, ввели Vendor Account = 'V000001'. Из вендора подтянулись значения Site и Warehouse. Припустим - они пустые. Значит, должны подтянутся Site = 'Def' и Warehouse = 'Def'. Подскажите, плиз, как мне быть. Спасибо! |
|
19.03.2010, 20:30 | #5 |
Участник
|
правильно, потому что надо изменять значение поля в датасорсе, а не значение контрола.
|
|
19.03.2010, 20:59 | #6 |
Боец
|
Цитата:
andriy_s, Касательно PurchTable\SalesTable инициализация происходит в методах таблицы: \Data Dictionary\Tables\PurchTable\Methods\modifiedField \Data Dictionary\Tables\PurchTable\Methods\transferOrderAccount здесь всё-таки лучше, чем на insert(), ибо после создания записи, вендора можно поменять. |
|
|
За это сообщение автора поблагодарили: andriy_s (1). |
19.03.2010, 21:49 | #7 |
Участник
|
Цитата:
потому что в момент PurchCreateOrder значение еще не записано в таблицу. И в таблице менять еще нечего. |
|
19.03.2010, 22:00 | #8 |
Участник
|
Цитата:
Сообщение от DSPIC
Касательно PurchTable\SalesTable инициализация происходит в методах таблицы:
\Data Dictionary\Tables\PurchTable\Methods\modifiedField \Data Dictionary\Tables\PurchTable\Methods\transferOrderAccount здесь всё-таки лучше, чем на insert(), ибо после создания записи, вендора можно поменять. |
|
|
За это сообщение автора поблагодарили: andriy_s (1). |
19.03.2010, 22:35 | #9 |
Боец
|
Цитата:
И определись, с чем именно ты согласен. В обоих приведенных цитатах речь идет о методах таблицы. |
|
19.03.2010, 22:46 | #10 |
Боец
|
|
|
19.03.2010, 23:04 | #11 |
Участник
|
Цитата:
Объясняю... "изменять нужно значение поля в таблице" нельзя изменять поле в таблице, поскольку табличную переменной бесполензно изменять и не записывать. А записывать в коде формы PurchCreateOrder нельзя, поскольку за запись отвечает сама форма при закрытии кнопкой Ok. Поэтому код вида в этой форме применять нельзя: X++: somemethod()
{
PurchTable pt;
pt.OrderAccount = "someValue";
pt.insert();
} внутри формы название датасорса обычно совпадает с именем таблицы. однако внутри формы обращаться надо именно по имени датасорса и менять поле датасорса, а не таблицы. Цитата:
Я с тобой согласен, что код надо разместить в методах таблицы. Однако если код вызывается из датасорса формы, то менять он будет не поля таблицы, а поля датасорса. я подозреваю, что ты немножко поторопился. и вдруг решил, что я говорю об объекте с суффиксом _ds. Нет, DSPIC, я не имел в виду объект с суффиксом _ds. Во-первых, этот объект не позволяет изменить значение поля Во-вторых, почитай про этот суффикс, раз уж программируешь меньше 100 лет |
|
19.03.2010, 23:21 | #12 |
Участник
|
"R-подход" тут не при чем.
Автор спрашивал про форму PurchCreateOrder, ты показываешь форму PurchTable. У PurchCreateOrder есть масса особенностей. Первая - она работает не с записью таблицы (датасорс еще не записан, будет записан только после нажатия кнопки Ok). повторюсь, что согласен с тобой и также считаю правильным писать код в modified таблицы. но будем справедливы. R-подход тут ни причем. |
|
19.03.2010, 23:37 | #13 |
Боец
|
Спасибо, повеселил на сон грядущий
P.S. Извините за флуд, ушел из темы... |
|
Теги |
default, override, purchcreateorder |
|
|