Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проблема с computed field / 14 сообщений из 14, страница 1 из 1
31.08.2006, 09:12
    #33954352
eugene_2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Решил посмотреть на PB 10.5. И сразу же наткнулся на странную вещь. Есть в datawindow типа Grid вычисляемое поле в строке detail вида a * b. Скрипт меняет значения полей a и b. В PB 9.0.2 все работало - после изменения полей вычисляемое поле меняло свое значение, а в 10.5 - нет. Поставил последний EBF - 5063. Тоже самое. Кто-нибудь с таким сталкивался?
...
Рейтинг: 0 / 0
31.08.2006, 09:43
    #33954429
eugene_2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Добавление к предыдущей информации. Опытным путем выяснилось, что вычисляемое поле обновляет свое значение только в следующих случаях:
1. При щелчке мышкой на этом поле, если у datawindow включено свойство Mouse Selection.

2. При переходе на другую закладку и возврате назад (datawindow лежит на tabpage).

3. При создании в разделе Summary вычисляемого поля суммы на основе полей a или b. Причем создание такого же поля суммы в Summary на основе вычисляемого поля a*b (detail) такого эффекта не дает.

Вообщем странно все это...
...
Рейтинг: 0 / 0
31.08.2006, 13:44
    #33955412
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
А если groupcalc() вызвать - поможет?
Кстати, может это теперь фича такая, а то при большом количестве данных пересчет computed fields занимает ощутимое время...
...
Рейтинг: 0 / 0
31.08.2006, 14:58
    #33955681
eugene_2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
groupcalc() не помог. Да и судя по описанию, он вызывает пересчет итогов групп, а у меня групп нет. Значение считается в каждой строке деталей.
...
Рейтинг: 0 / 0
31.08.2006, 16:05
    #33955964
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
eugene_2006Да и судя по описанию, он вызывает пересчет итогов групп, а у меня групп нет. Значение считается в каждой строке деталей.
Ну по всей вероятности, он еще там что-то внутри считает, потому что мне с похожими проблемами помогало.
...
Рейтинг: 0 / 0
31.08.2006, 16:24
    #33956057
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Делайте так:
Код: plaintext
1.
2.
3.
dw_1.SetRedraw(False)
dw_1.SetItem( 1 , "a",  10 )
dw_1.SetRedraw(True)
...
Рейтинг: 0 / 0
31.08.2006, 17:18
    #33956317
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Anatoly MoskovskyДелайте так:
Анатолий, не держите меня за дурака, это же не помогает. Значение computed field должно быть пересчитано не зависимо от того, нужно отображать данные или нет (с этим могут быть проблемы хоть в DataStore).
...
Рейтинг: 0 / 0
31.08.2006, 17:53
    #33956487
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Я проверил прежде чем написать.
...
Рейтинг: 0 / 0
31.08.2006, 18:40
    #33956621
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Anatoly MoskovskyЯ проверил прежде чем написать.
Ну как на это может повлиять SetRedraw()? А если я захочу сделать GetItem...
у computed field'a перед SetRedraw(true), я что, неверное значение получу?
...
Рейтинг: 0 / 0
31.08.2006, 18:50
    #33956646
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Я написал как обойти.
Причину проблемы я не знаю.
...
Рейтинг: 0 / 0
31.08.2006, 19:44
    #33956751
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Anatoly MoskovskyЯ написал как обойти.
Да не решение это! Вернее решение, но не той проблемы. Чтобы не перерисовывалось каждый раз - это да. А если сделать так сотенку computed field'ов и вставить строчек так 10000 и засечь скорость работы, и сперва вставить 10000 строчек, а потом создать 100 computed field'ов и сравнить скорость работы, то сразу станет понятно про что я говорю.
...
Рейтинг: 0 / 0
31.08.2006, 23:56
    #33957037
18-я весна
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Пусть лучше автор вопроса скажет подходит ему это или лучше багрепорт в сайбейс написать и ждать что может где-то в версии 12 исправят :)
...
Рейтинг: 0 / 0
01.09.2006, 08:58
    #33957316
eugene_2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
Решение в стиле

Код: plaintext
1.
2.
dw_1.SetRedraw(False)
dw_1.SetItem( 1 , "a",  10 )
dw_1.SetRedraw(True)

мне подходит, причем, я проверил, что оно работает. Я считаю, что это даже, в какой-то степени, более оптимально в плане производительности. Проблема, действительно, именно в отрисовке значения вычисляемого поля. Если после изменения полей a и b получить в скрипте значение вычисляемого поля a*b, то будет правильное новое значение, хотя на экране отображается старое значение.

Если эта проблема проявляется не только у меня, то согласен, что это похоже на баг. Кстати, а в 10-й версии такая проблема есть?
...
Рейтинг: 0 / 0
01.09.2006, 12:31
    #33958086
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Проблема с computed field
eugene_2006Кстати, а в 10-й версии такая проблема есть?

В 10.2.1.9004 - нет.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Проблема с computed field / 14 сообщений из 14, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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