powered by simpleCommunicator - 2.0.51     © 2025 Programmizd 02
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Сбор критериев фильтра DW
7 сообщений из 7, страница 1 из 1
Сбор критериев фильтра DW
    #37515174
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1.Есть N-е количество условий для фильтрации базавого DW (список).
Каждое условие выдает Х критериев для фильтра по ID. Для "нормализации" сбрасываю всё в одно DS-tmp и группирую по ID. Получаю массив групп и перезаливаю DS-tmp, и в итоге DS-tmp с формированными условиями для фильтрации базавого DW.
Формирую строку условий фильтра, и в базовом DW результат поиска.
Есть лучшее решение, чтобы не задействовать SQL-запросы к БД?

2.В DW поинте можно в ручную набрать данные и потом их зафиксировать. А можно как-то залить извне (не вручную) и зафиксировать?

P.S. Хочу маленькую виртуальную БД зашить в РВ и решать какие-то запросы. =)
...
Рейтинг: 0 / 0
Сбор критериев фильтра DW
    #37515279
Фотография Ursego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не знаю подойдёт ли, но этот объект может быть полезен - он являет собой dictionary, хранящий различные значения, доступ к которым осуществляется не через номер элемента (как в массиве), а через уникальный текстовый ключ. Можно объявить instance variable типа nvo_parm - до "виртуальной базы данных" далеко, но всё-же...

При этом текстовым ключом доступа (key) будет ID, а значением (value) - массив типа string, в котором каждый элемент - один критерий фильтрации. Так как value - это массив, то тип данных для хранения будет any, т.е. надо использовать функции uf_set_a для записи в словарь и uf_get_a для чтения из словаря.

Код извлечения критериев из словаря и построения выражения фильтра будет выглядеть примерно так (ну, а код записи накидай сам, используя обратную логику и uf_set_a):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
ls_filter_criteria_arr[] = inv_parm.uf_get_a(as_dw_id)
li_num_of_criterias = UpperBound(ls_filter_criteria_arr)
for i =  1  to li_num_of_criterias
   if Len(ls_filter_expr) >  0  then
      ls_filter_expr += ") AND ("
   end if
   ls_filter_expr += ls_filter_criteria_arr[i]
next

ls_filter_expr = "(" + ls_filter_expr + ")"
adw.SetFilter(ls_filter_expr)
adw.Filter()
...
Рейтинг: 0 / 0
Сбор критериев фильтра DW
    #37515282
Фотография Ursego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Да, в словаре можно хранить и готовые выражения фильтрации (а не массивы для их динамического построения) - конечно, в зависимости от нужд того, что надо сделать. В этом случае надо использовать функции uf_set_s для записи в словарь и uf_get_s для чтения из словаря.
...
Рейтинг: 0 / 0
Сбор критериев фильтра DW
    #37515932
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
UrsegoНе знаю подойдёт ли, но этот объект может быть полезен..
Интересно, но ссылка на объект (nvo_parm.sru) не работает. У вас его случайно нет?
...
Рейтинг: 0 / 0
Сбор критериев фильтра DW
    #37516540
Фотография PL99
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AIS2.В DW поинте можно в ручную набрать данные и потом их зафиксировать. А можно как-то залить извне (не вручную) и зафиксировать?

P.S. Хочу маленькую виртуальную БД зашить в РВ и решать какие-то запросы. =)
DW painter меню View->Data
В окне Data контекстное меню Retrieve. Сохранить и выйти.

Видимо, речь идет об этом?
...
Рейтинг: 0 / 0
Сбор критериев фильтра DW
    #37516845
AIS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
PL99 ,
Спасибо за совет, нашёл.

P.S. Правда у меня в контекстном меню окна Data нет пункта Retrieve (РВ10.5).
Но зато в меню DW painter есть пункт Row->Import, который становится доступным в окне Preview.
Так что получилось всё что хотел по второму вопросу темы (2). :)
...
Рейтинг: 0 / 0
Сбор критериев фильтра DW
    #37519011
Фотография Ursego
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AISUrsegoНе знаю подойдёт ли, но этот объект может быть полезен..
Интересно, но ссылка на объект (nvo_parm.sru) не работает. У вас его случайно нет?Упс, пардон... Уже исправил ссылку.
...
Рейтинг: 0 / 0
7 сообщений из 7, страница 1 из 1
Форумы / PowerBuilder [игнор отключен] [закрыт для гостей] / Сбор критериев фильтра DW
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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