27.04.2005, 15:34 | #1 |
Участник
|
Вопрос по Datasource
Добрый день, всем!
Помогите пожалуйста найти ответ на вопрос: можно ли выполнить обработку datasource на форме в цикле. Примеры на данном сайте я видела, если в grid пользователь выбрал несколько записей, а если не выбрал, как можно это реализовать? Ситуация в следующем, есть форма (Создание строк журнала), на этой форме есть поле есть один из datasource таблицы InventSum. Я добавила свое поле, которое является расчетным (display метод) от поля AvailPhisical таблицы InventSum. При нажатии пользователем на кнопку мной введенное поле должно пересчитаться по определенному алгоритму и обновиться на форме. Мне в дисплей метод надо передать курсор таблицы Inventsum, т.к. в противном случае поле с дисплей методом ведет себя не стабильно (при потери фокуса меняет значение). За ранее благодарна. |
|
27.04.2005, 15:42 | #2 |
Модератор
|
Хм. Странная задачка.
1) Если пользователь не выбрал несколько строк, обработается одна - текущая. Как Вы думаете, зачем иначе в цикле третичный оператор "? : " ? 2) "в противном случае поле с дисплей методом ведет себя не стабильно" - это ошбка прогрммирования. Программируйте дисплей методы на таблице. Не забывайте кэшировать. Или храните рассчетные значения в переменных. С Уважением, Георгий. |
|
27.04.2005, 15:54 | #3 |
Участник
|
Дело в том что на таблице я не могу написать display метод, у меня в таблице нет некоторых параметров необходимых да и по полу AvailPhisical в datasource идет суммирование, мне это суммо вое значение надо пересчитать.
|
|
27.04.2005, 18:11 | #4 |
Участник
|
Посмотрите как работают display-методы на источниках данных в форме Главная книга-Запросы-Оборот по счету-Оборотно-сальдовая ведомость. В частности, методы getBegCreditBalance() и ему подобные на источнике данных LedgerTable.
Там значения для расчетных полей берутся из map'а - таким способом обеспечивается кеширование. А сам расчет может быть сколь угодно сложным и не зависеть от конкретного DataSource формы. То есть, курсор передавать надо, но в расчете он может участвовать только для фильтрации данных в сложных запросах, например PHP код:
PS: Это абстрактный пример. |
|
03.05.2005, 10:02 | #5 |
Участник
|
Спасибо всем за ответы! Кое что из всего сказанного помогло. Но вот возникает теперь другая проблема:
1. Я создала display методы на таблице. 2. на форме создала combobox и в его метод modified включила проверку значения этого combo и при соотвествующем значении прописываю в DataMethod контрола (контрол находится на Grid) формы display метод из таблицы. Вот собственно и проблема: при щелчке мыши на Grid у меня значения обратно пересчитываются (при чем частично). Помогите, пожалуйста, разобраться в чем проблема! |
|
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|