|
|
|
Обновление но происходит!
|
|||
|---|---|---|---|
|
#18+
VFP 9.0 есть грид с динамически загружаемыми таблицами. В текстбоксе под гридом расчитываю некот. матем. операции с полями(используется всегда только одна из загруженных таблиц) так например подсчитываю сумму полей с помощью Slect-sql Делаю пересчет операции при изменении значения в поле Записываю нач значение в Valid, сравниваю его с When, если не равны, то произвожу пересчет. Но значение остаюстя почему-то тем же самым, (хотя по идее должно изменяться) Причем при загрузке данных таблиц заново и построении грида значение в текстбоксе изменяется. Как сделать чтобы значение в текстбоксе изменялось без перезагрузки таблиц и грида? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 16:26 |
|
||
|
Обновление но происходит!
|
|||
|---|---|---|---|
|
#18+
А зачем запускать Select-SQL? Тебе ведь нужно всего-лишь поправить значение одной записи. Т.е. сделать такое присвоение: Сумма = Сумма - Старое_значение_Записи + Новое_значение_Записи Я так понимаю, что Старое_значение_Записи ты сохраняешь в When, на а в Valid можно уже имеешь Новое_значение_Записи. Сумму рассчитываешь один раз при открытии формы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 17:04 |
|
||
|
Обновление но происходит!
|
|||
|---|---|---|---|
|
#18+
ВладимирМ А зачем запускать Select-SQL? Тебе ведь нужно всего-лишь поправить значение одной записи. Т.е. сделать такое присвоение: Сумма = Сумма - Старое_значение_Записи + Новое_значение_Записи Посто вместо суммы там может стоять и avg() и count() и еще что-нибудь. Забыл добывать что значения я записываю в Valid и When для своего Textboxa, который ставлю вместо стандартного. ВладимирМ Я так понимаю, что Старое_значение_Записи ты сохраняешь в When, на а в Valid можно уже имеешь Новое_значение_Записи. Да, старое в Valid а измененное в When, а потом сраниваю Valid и When ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 17:46 |
|
||
|
Обновление но происходит!
|
|||
|---|---|---|---|
|
#18+
RemansПосто вместо суммы там может стоять и avg() и count() и еще что-нибудь. Это без разницы. AVG() - это среднее арифметическое. Т.е. для модификации по одной записи достаточно запомнить сумму и количество. Количество не изменилось, а сумму поменять по приведенному выше алгортиму. Т.е. всегда можно модифицировать результат не прибегая к полному перерасчету по исходным данным. Обычно это достаточно длительная операция, а особого смысла не имеет, посокльку пользователь еще может передумать и отменить сделанные модификации. Поэтому разумнее делать такой "локальный" пересчет. RemansДа, старое в Valid а измененное в When, а потом сраниваю Valid и When То ли ты что-то недоговариваешь, то ли я тебя не понимаю. When - это событие происходящее при входе в объект, а Valid - при выходе. Каким образом можно запомнить новое значение при входе, если его еще нет? Я имел в виду, что надо сделать запоминание старого значение в событии When того TextBox в Grid, по которому выполняется расчет. Т.е. в момент входа в нужный столбец и на нужную строку. А в событии Valid того же TextBox (т.е. при выходе из ячейки Grid) делать коррекцию суммы, но уже без полного перерасчета по исходным данным. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.11.2005, 18:04 |
|
||
|
Обновление но происходит!
|
|||
|---|---|---|---|
|
#18+
Hi Remans! В запрос добавить WITH (BUFFERING = .T.) и почитай хелп на эту тему... Или считать не через SELECT-SQL а старыми xBase командами типа COUNT, CALCULATE, SCAN... До VFP9 в принципе нельзя было из буферизованного курсора с помощью SQL запроса получить "несохранённые" данные. Posted via ActualForum NNTP Server 1.3 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 01:17 |
|
||
|
Обновление но происходит!
|
|||
|---|---|---|---|
|
#18+
Блин, вот что значит плохосоображающая голова к концу вечера. Конечно же Старое значение сохраняю в When, а в Valid у же сравниваю с новым. Igor Korolyov В запрос добавить WITH (BUFFERING = .T.) и почитай хелп на эту тему... Да, вот именно это я и сделал. И сейчас все работает на ОК. Спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.11.2005, 12:44 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33405548&tid=1592914]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
202ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
26ms |
get tp. blocked users: |
1ms |
| others: | 243ms |
| total: | 505ms |

| 0 / 0 |
