powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / List Item
4 сообщений из 4, страница 1 из 1
List Item
    #36404990
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Имеются два поля, одно зависит от другого.
При нажатии на второе поле, создается рекорд группа:
Код: plaintext
1.
2.
3.
4.
rg_id := create_group_from_query('CGDV$DLRG',
     'SELECT d.CS_FULLNAME, d.CS_CODE '||
     'FROM   t_class d '||
     'WHERE   d.cs_dm_id = ''OBJ_SVZ'' AND EXISTS (SELECT 1 FROM   t_class t WHERE t.cs_code= 3 AND t.cs_dm_id = ''SVODKA_ZATRAT'' AND t.cs_id=d.cs_id_cs_id) '||
     'ORDER BY  2 DESC');

но вылетает ошибка FRM-41337

Может в рекорд группе подзапрос нельзя использовать?
...
Рейтинг: 0 / 0
List Item
    #36405253
Алымов Анатолий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А сам запрос в формах компилиться? например в for in ()?
...
Рейтинг: 0 / 0
List Item
    #36405329
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Алымов Анатолий,

компилируется.

Сначала в стадии
Код: plaintext
1.
2.
IF P_WHEN = 'BEFORE' THEN 
        CGDV$POPULATE_DYNAMIC_LISTS;
...
Тут еще нет значений на форме и не откуда брать эту зависимость, поэтому просто заполняем поля на форме.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
PROCEDURE CGDV$POPULATE_DYNAMIC_LISTS IS
/* Read each lists values from its record group and populate the list */
  temp NUMBER;  /* Return value of populate_group call */
  rg_id RECORDGROUP;  /* Return value of populate_group call */
BEGIN

  rg_id := create_group_from_query('CGDV$DLRG',
    'SELECT RV_MEANING, RV_LOW_VALUE '||
    'FROM   CG_REF_CODES '||
    'WHERE  RV_DOMAIN = ''SVODKA_ZATRAT'' '||
    'ORDER BY  2 DESC');
  temp := populate_group(rg_id);
  populate_list('UKS_SHOPS1.SP_OBJECT_TYPE', rg_id);
  delete_group(rg_id);

 rg_id := create_group_from_query('CGDV$DLRG',
     'SELECT d.CS_FULLNAME, d.CS_CODE '||
     'FROM   t_class d '||
     'WHERE   cs_dm_id = ''OBJ_SVZ''  AND EXISTS (SELECT * FROM   t_class t WHERE  t.cs_dm_id = ''SVODKA_ZATRAT'' AND t.cs_id=d.cs_id_cs_id) '||
     'ORDER BY  2 DESC');
    
  temp := populate_group(rg_id);
  populate_list('UKS_SHOPS1.SP_TO_ID', rg_id);
  delete_group(rg_id);
END;

Но если нужно изменить поля, то на поле, которое зависит в тригере WHEN-LIST-CHANGED
вызываю тот же текст для тестирования, потом я его изменю, но вылетает букет ошибо сначала
FRM-41331 и сразу же FRM-41337.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
declare
/* Read each lists values from its record group and populate the list */
  temp NUMBER;  /* Return value of populate_group call */
  rg_id RECORDGROUP;  /* Return value of populate_group call */
BEGIN
  
  rg_id := create_group_from_query('CGDV$DLRG',
     'SELECT d.CS_FULLNAME, d.CS_CODE '||
     'FROM   t_class d '||
     'WHERE   cs_dm_id = ''OBJ_SVZ''  AND EXISTS (SELECT * FROM   t_class t WHERE  t.cs_dm_id = ''SVODKA_ZATRAT'' AND t.cs_id=d.cs_id_cs_id) '||
     'ORDER BY  2 DESC ' );
     clear_list('UKS_SHOPS1.SP_TO_ID');
  populate_list('UKS_SHOPS1.SP_TO_ID', rg_id);
  delete_group(rg_id);
END;
...
Рейтинг: 0 / 0
List Item
    #36405675
lexxora
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
lexxora,

послушался совета и сделал через LOV

проблема снялась
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Oracle Forms [игнор отключен] [закрыт для гостей] / List Item
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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