Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновление но происходит! / 6 сообщений из 6, страница 1 из 1
28.11.2005, 16:26:30
    #33403931
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление но происходит!
VFP 9.0
есть грид с динамически загружаемыми таблицами.
В текстбоксе под гридом расчитываю некот. матем. операции с полями(используется всегда только одна из загруженных таблиц)
так например подсчитываю сумму полей с помощью Slect-sql
Делаю пересчет операции при изменении значения в поле
Записываю нач значение в Valid, сравниваю его с When, если не равны, то произвожу пересчет.
Но значение остаюстя почему-то тем же самым, (хотя по идее должно изменяться)
Причем при загрузке данных таблиц заново и построении грида значение в текстбоксе изменяется.
Как сделать чтобы значение в текстбоксе изменялось без перезагрузки таблиц и грида?
...
Рейтинг: 0 / 0
28.11.2005, 17:04:10
    #33404100
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление но происходит!
А зачем запускать Select-SQL? Тебе ведь нужно всего-лишь поправить значение одной записи. Т.е. сделать такое присвоение:

Сумма = Сумма - Старое_значение_Записи + Новое_значение_Записи

Я так понимаю, что Старое_значение_Записи ты сохраняешь в When, на а в Valid можно уже имеешь Новое_значение_Записи.

Сумму рассчитываешь один раз при открытии формы.
...
Рейтинг: 0 / 0
28.11.2005, 17:46:32
    #33404217
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление но происходит!
ВладимирМ А зачем запускать Select-SQL? Тебе ведь нужно всего-лишь поправить значение одной записи. Т.е. сделать такое присвоение:

Сумма = Сумма - Старое_значение_Записи + Новое_значение_Записи
Посто вместо суммы там может стоять и avg() и count() и еще что-нибудь.

Забыл добывать что значения я записываю в Valid и When для своего Textboxa, который ставлю вместо стандартного.

ВладимирМ Я так понимаю, что Старое_значение_Записи ты сохраняешь в When, на а в Valid можно уже имеешь Новое_значение_Записи.
Да, старое в Valid а измененное в When, а потом сраниваю Valid и When
...
Рейтинг: 0 / 0
28.11.2005, 18:04:56
    #33404268
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление но происходит!
RemansПосто вместо суммы там может стоять и avg() и count() и еще что-нибудь.
Это без разницы. AVG() - это среднее арифметическое. Т.е. для модификации по одной записи достаточно запомнить сумму и количество. Количество не изменилось, а сумму поменять по приведенному выше алгортиму.

Т.е. всегда можно модифицировать результат не прибегая к полному перерасчету по исходным данным. Обычно это достаточно длительная операция, а особого смысла не имеет, посокльку пользователь еще может передумать и отменить сделанные модификации. Поэтому разумнее делать такой "локальный" пересчет.

RemansДа, старое в Valid а измененное в When, а потом сраниваю Valid и When
То ли ты что-то недоговариваешь, то ли я тебя не понимаю.

When - это событие происходящее при входе в объект, а Valid - при выходе. Каким образом можно запомнить новое значение при входе, если его еще нет?

Я имел в виду, что надо сделать запоминание старого значение в событии When того TextBox в Grid, по которому выполняется расчет. Т.е. в момент входа в нужный столбец и на нужную строку. А в событии Valid того же TextBox (т.е. при выходе из ячейки Grid) делать коррекцию суммы, но уже без полного перерасчета по исходным данным.
...
Рейтинг: 0 / 0
29.11.2005, 01:17:10
    #33404688
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление но происходит!
Hi Remans!

В запрос добавить WITH (BUFFERING = .T.) и почитай хелп на эту тему...
Или считать не через SELECT-SQL а старыми xBase командами типа COUNT,
CALCULATE, SCAN...
До VFP9 в принципе нельзя было из буферизованного курсора с помощью SQL
запроса получить "несохранённые" данные.

Posted via ActualForum NNTP Server 1.3
...
Рейтинг: 0 / 0
29.11.2005, 12:44:25
    #33405548
Remans
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление но происходит!
Блин, вот что значит плохосоображающая голова к концу вечера.
Конечно же Старое значение сохраняю в When, а в Valid у же сравниваю с новым.

Igor Korolyov В запрос добавить WITH (BUFFERING = .T.) и почитай хелп на эту тему...


Да, вот именно это я и сделал. И сейчас все работает на ОК.

Спасибо!!!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновление но происходит! / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]