|
|
#1 |
|
Участник
|
Вызвать modified поля датасорса
Я перекрываю modified поля датасорса на форме. Можно ли теперь программно вызвать этот метод?
|
|
|
|
|
#2 |
|
Участник
|
Попробуй напиши так: <имя поля>.hasChanged(true) - мне помогло.
А еще можно вот так: <имя датасорса>_ds.object(fieldNum(таблица, поле)).modified(); |
|
|
|
|
#3 |
|
Участник
|
2 kashperuk
<имя поля>.hasChanged(true) мне не совсем подходит, т.к. оно вызывает событие modified на дизайне, т.е., насколько я понял, <имя поля> - имя контрола на форме, а этого мне как раз и хочется избежать. Второй же вариант: <имя датасорса>_ds.object(fieldNum(таблица, поле)).modified();, хотя мне на первый взгляд показался именно тем что нужно, почему-то не вызывает методы датасорса формы, а вызывает только метод modifiedfield() таблицы. |
|
|
|
|
#4 |
|
Участник
|
Привет.
Возник такой же вопрос. Тока хуже - hasChanged не работает. Есть форма, на два DS - InventDim и InventJournalTrans. Метод modified одного из полей в InventDim перекрыт. В нем изменяется одно поле в InventJournalTrans PHP код:
Сделал так: PHP код:
Подскажите, что я не так делаю? |
|
|
|
|
#5 |
|
Модератор
|
Датасорс разрешен на редактирование?
|
|
|
|
|
#6 |
|
Участник
|
угу
|
|
|
|
|
#7 |
|
Модератор
|
А на контроле отрабатывает?
|
|
|
|
|
#8 |
|
Участник
|
2Artild
Так вызывается на таблице, а не на источнике данных. Цитата:
А на контроле отрабатывает?
|
|
|
|
|
#9 |
|
Модератор
|
Хм. Может, попробовать что-нить типа flush? может, где-нить в буфере зависло?
Какая-то, прямо скажу, странная ситуация - на датасорсе еще старые данные.. Может, вынести на контрол или вызывать оттуда код изменения InventJournalTrans? |
|
|
|
|
#10 |
|
Участник
|
Вот решение этой проблемы:
Код: {
FormDataObject datasourceField;
;
datasourceField = Datasource_DS.object(fieldNum(TableName,FieldName));
datasourceField.modified();
} |
|
|
|
| За это сообщение автора поблагодарили: Maxim Gorbunov (6), olesh (1), kashperuk (1), jasper (1), Gustav (6), Polgid (1), Cathome (1). | |