Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Группировки / 16 сообщений из 16, страница 1 из 1
14.03.2008, 16:08
    #35191520
umnik_net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
Добрый день.
Какие проблемы возникают при группировке по вычисляемым по функции столбцам?
Как только создаю группу по функции, уже при просмотре retrieve тянется "годами",
а Suppress Repeating Values начинает брехать.
Что подскажете? Кроме,конечно, варианта совать разобранную функцию в SQL?
...
Рейтинг: 0 / 0
14.03.2008, 16:14
    #35191555
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
umnik_netДобрый день.
Какие проблемы возникают при группировке по вычисляемым по функции столбцам?
Как только создаю группу по функции, уже при просмотре retrieve тянется "годами",
а Suppress Repeating Values начинает брехать.
Что подскажете? Кроме,конечно, варианта совать разобранную функцию в SQL?
По глобальным функциям? Они вычисляются каждый раз, когда понадобятся а не 1 раз чтобы получить значение и запомнить, соответственно при их использовании все работает гораздо дольше.
...
Рейтинг: 0 / 0
17.03.2008, 10:19
    #35194274
umnik_net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
Да нет, функции-то локальные. Созданные просто для упрощения жизни и экономии места.
Почти элементарный Case. Как только попадает в группу - все, время растет с 0,5с до 10-12мин.
Если функцию выкладывать в SQL-запрос - в принципе, нормально, но как-то тупо...
...
Рейтинг: 0 / 0
17.03.2008, 11:00
    #35194412
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
umnik_netДа нет, функции-то локальные. Созданные просто для упрощения жизни и экономии места.
Почти элементарный Case. Как только попадает в группу - все, время растет с 0,5с до 10-12мин.
Если функцию выкладывать в SQL-запрос - в принципе, нормально, но как-то тупо...
Я говорю про глобальные функции PowerBuilder. Что Вы имеете ввиду под локальными функциями - не ясно.
...
Рейтинг: 0 / 0
19.03.2008, 16:46
    #35201212
umnik_net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
Функции элементов управления... А как их иначе называть? Не оконные, а функции приложения...
...
Рейтинг: 0 / 0
19.03.2008, 17:59
    #35201463
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
umnik_netФункции элементов управления... А как их иначе называть? Не оконные, а функции приложения...
Каких элементов? Каким образом из DataWindow можно вызвать функцию приложения (я напоминаю, что в PowerBuilder'е есть объект application). Пожалуйста ознакомьтесь с официальной версией именования объектов и функций в системе.
...
Рейтинг: 0 / 0
20.03.2008, 09:02
    #35202325
umnik_net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
Подробнее:
Есть обычный запрос для DW
SELECT distinct NZP_ZEX.data_nzp, NZP_ZEX.zex, NZP_ZEX.kol_a+ NZP_ZEX.kol_sn as kol,
rtrim(NZP_ZEX.spz) as spz, NZP_ZEX.izd, mat.mat_n, mat.bch, spr_ed.naim,
case when kol_a>0 then zen_mat.zena_SOK
when kol_sn>0 then
(case when mat.kod_mat in ( select izd from nzp_arxiw_repl
where dat_v= left(convert(char, DATEADD(month ,-1,cast( right( :datn,2) +left( :datn,2)+'01' as smalldatetime)),12),2) +
substring(convert(char, DATEADD(month ,-1,cast( right( :datn,2) +left( :datn,2)+'01' as smalldatetime)),12),3,2)and zex=NZP_ZEX.zex and uch='98' )
then (select distinct (st_komp+st_os_mat+st_ws_mat) from nzp_arxiw_repl
where dat_v= left(convert(char, DATEADD(month ,-1,cast( right( :datn,2) +left( :datn,2)+'01' as smalldatetime)),12),2) +
substring(convert(char, DATEADD(month ,-1,cast( right( :datn,2) +left( :datn,2)+'01' as smalldatetime)),12),3,2)
and mat.kod_mat = izd and zex=NZP_ZEX.zex and uch='98')
else zen_mat.zena_SOK end )
else zen_mat.zena_SOK end as zena,
inv_op.preds, inv_op.chl_kom
FROM NZP_ZEX, mat, spr_ed,
zen_mat , inv_op
WHERE ( NZP_ZEX.izd = mat.nomn ) and
( mat.kev = spr_ed.k_ed ) and
( mat.kod_mat *= zen_mat.kod_mat ) and
( NZP_ZEX.data_nzp = inv_op.data_nzp ) and
( NZP_ZEX.zex = inv_op.zex ) and ( NZP_ZEX.uch = inv_op.uch )and
( ( NZP_ZEX.data_nzp = :datn ) AND
( NZP_ZEX.uch = '98' ) AND
( NZP_ZEX.kol_a+ NZP_ZEX.kol_sn > 0 ) )
и есть вычисляемое поле, основанное на функции вычисления балансового счета
CHOOSE CASE bs
case '1'
bs='10.1'
case '2'
bs='1012'
case '3'
bs='10.2'
case '4'
bs='10.4'
case '5'
bs='10.9'
case '6'
bs='10.6'
case '7'
bs='10.3'
case '8'
bs='10.5'
case '0'
bs='10.9'
case '9'
bs ='10.9'
END CHOOSE

return bs
При группировке по этому полю все веселье и начинается. Запрос, который выполняется доли секунды, висит по 10-15 мин.
И еще раз вопрос: в принципе можно использовать такие поля для группировки или придумывать
что-то еще?
...
Рейтинг: 0 / 0
20.03.2008, 09:14
    #35202347
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
umnik_net...
И еще раз вопрос: в принципе можно использовать такие поля для группировки или придумывать
что-то еще?ИМХО, не надо городить огород там, где уже есть полисад... (с) Русская народная пословица

Вынесите свои соответствия балансовых счетов в таблицу в базе, присоедините ее к запросу и не мучайтесь... И никаких проблем с группировкой не возникнет.
Табличка то с двумя полями всего!
idbs110.121012310.2410.4510.9610.6710.3810.5010.9910.9И, в дальнейшем, если кол-во или соответствие ваших балансовых счетов изменится, то не придется править приложение, достаточно будет поправить таблицу...
...
Рейтинг: 0 / 0
20.03.2008, 09:30
    #35202383
r4
r4
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
Ikar И, в дальнейшем, если кол-во или соответствие ваших балансовых счетов изменится, то не придется править приложение, достаточно будет поправить таблицу...
+1
...
Рейтинг: 0 / 0
20.03.2008, 09:31
    #35202385
umnik_net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
Ну, вообще-то, это был простейший вариант. А на более сложных фунциях плодить таблицы с их перерасчетом?? Я про сам факт использования группировки по функциональному полю?
...
Рейтинг: 0 / 0
20.03.2008, 09:37
    #35202404
Локшин Марк
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
И первый мой совет поясняет причину происходящего (не касаясь особенностей реализации).
...
Рейтинг: 0 / 0
20.03.2008, 10:27
    #35202576
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
umnik_netНу, вообще-то, это был простейший вариант.
...В смысле "мы не ищем легких путей", чтоли?

ЗЫ В общем то Марк все сказал...
...
Рейтинг: 0 / 0
20.03.2008, 10:35
    #35202595
umnik_net
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
А что нам легкие пути?
Спасибо!
...
Рейтинг: 0 / 0
20.03.2008, 10:50
    #35202661
Anatoly Moskovsky
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
А кто-то понял, что такое функции элементов управления, они же локальные функции, и как они вызываются из DW ?
...
Рейтинг: 0 / 0
20.03.2008, 10:51
    #35202667
Ikar
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
Anatoly MoskovskyА кто-то понял, что такое функции элементов управления, они же локальные функции, и как они вызываются из DW ?Я так понял, что имеются ввиду обычные глобальные функции, безо всяких элементов управления и иже с ними... ИМХО...
...
Рейтинг: 0 / 0
24.03.2008, 10:28
    #35208944
KOLCHOZ_POSTEVENT
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Группировки
А мне кажется,что причины начинаются с сортировки,а не с группировки.
Колличество записей большое,записи длинные(предполагаю).
Вы попробуйте после ретрива сделать сортировку по выч.полю,с какой-нибудь временной кнопки,setsort там,sort пропишите,посмотрите,не застрянет ли.Курсор на песочные часы поменяйте,для наглядности setpointer(hourglass!).
Если застрянет,значит,такова жизнь,группировку,по другому как-то делать надо.
А как,это уже другая тема.
...
Рейтинг: 0 / 0
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Группировки / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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