03.04.2003, 12:57 | #1 |
Соучастник
|
очистка полей. простой вопрос
в форме есть два датасорса. Есть по одной группе полей из каждого датасорса.
как по некоему событию очистить все(!) поля(например id, name) из одной группы полей(в смысле очистить соотв. текстбоксы в форме).. пытаюсь сделать так: Цитата:
fDS.query.dataSourceNo(1).clearRanges();
fDS.executeQuery(); затем пытаюсь сделать так: Цитата:
fDS.query.dataSourceNo(1).clearRanges();
criteriaRecId = query.dataSourceNo(1).addRange(fieldName2Id(fDS.table(),'RecId')); criteriaRecId.value(strFmt('%1',0)); fDS.executeQuery(); если это же самое сделать для другого датасорса - id сбрасывается, name остается старым(повторяю, имеются в виду textbox-ы). any ideas? P.S.: сорри, что не волшебник, а только учусь
__________________
View Anton Soldatov's LinkedIn profile |
|
04.04.2003, 00:39 | #2 |
Участник
|
Вообще-то clearRanges относятся к Ranges - условиям диапазонов для работы с фильтрами и никакого отношения к группам полей не имеет.
Задача очистки всех полей в группе несколько надуманная - я думаю логичней зоздать метод типа init...(...) на таблице и инициализировать и стирать то и так как нужно и потом вызывать метод для текущей записи на соурсе |
|
04.04.2003, 05:06 | #3 |
Соучастник
|
Цитата:
Изначально опубликовано Vladislav Yushakov
Вообще-то clearRanges относятся к Ranges - условиям диапазонов для работы с фильтрами и никакого отношения к группам полей не имеет. Задача очистки всех полей в группе несколько надуманная - я думаю логичней зоздать метод типа init...(...) на таблице и инициализировать и стирать то и так как нужно и потом вызывать метод для текущей записи на соурсе Цитата:
"X++ Advanced"
The data contents of a table can be influenced using a query linked to the relevant form. Forms that are linked to one or more tables also contain queries. While they may not be as visible as in a report when you are looking at the tree structure of a form, but that it is actually the same. If you expand the three structure of a form in the AOT, you will see that you don’t see the query but you can see the data source.
__________________
View Anton Soldatov's LinkedIn profile |
|
04.04.2003, 05:27 | #4 |
Соучастник
|
Цитата:
Изначально опубликовано Vladislav Yushakov
я думаю логичней зоздать метод типа init...(...) на таблице и инициализировать и стирать то и так как нужно и потом вызывать метод для текущей записи на соурсе Привязку к конкретной таблице осуществлять не хочется - смысла тогда в этом TreeBuilder не будет. это ж у каждой таблицы, по которой строится дерево, нужно определять какой-то дополнительный метод, а это плохо... Если я описал все слишком сумбурно - посмотрите tutorial_form_treeDatasource.
__________________
View Anton Soldatov's LinkedIn profile |
|
04.04.2003, 10:28 | #5 |
Соучастник
|
проблему решил, но криво. сделал след. образом:
Цитата:
query = fDS.query();
criteriaRecId = query.dataSourceNo(1).findRange(fieldName2Id(fDS.table(),'RecId')); if (!criteriaRecId) criteriaRecId = query.dataSourceNo(1).addRange(fieldName2Id(fDS.table(),'RecId')); criteriaRecId.value(strFmt('%1',0)); fDS.executeQuery(); fDS.cursor().clear(); fDS.refresh(); построил индекс по RecId, иначе на форме остаются старые значения. конечно, лучше бы было посмотреть, как реализован executeQuery и не делать ничего-не-возвращающий select, а взять какой нибудь iterator полей в форме, и обнулить их... но исходники FormDataSource похоже спрятаны, и как это делать я не знаю - поэтому и постил в форум.
__________________
View Anton Soldatov's LinkedIn profile |
|
|
Похожие темы | ||||
Тема | Ответов | |||
Банковский перевод. Простой вопрос | 0 | |||
Простой вопрос | 3 | |||
Очень-очень простой вопрос | 23 | |||
Еще 1 простой вопрос по пакетной обработке | 1 | |||
Простой вопрос | 2 |
|