2014-11-03 2 views
0

DB = Oracle 11gOracle Apex получить несколько результатов из флажков

Apex = 4.2.6

В форме у меня есть различные предметы, которые все отлично работают. Однако теперь у меня есть набор флажков (: P14_DAYS) по одному для каждого дня недели. Что мне нужно сделать, так это получить все записи между: P14_START_DATE: P14_END_DATE, но только в течение дней выберите этот флажок.

Ниже также образец таблицы DATE_SETS

http://i.stack.imgur.com/YAckN.png

так, например дат 01-августа-14 - 5-Август-14 Но требуется только по воскресеньям и понедельники даты вернут 2 рефов ,

BEGIN 
UPDATE MD_TS_DETAIL 
SET job_for = :P14_JOBFORTEM, 
     job_type_id = :P14_JOB_TYPE_VALUE, 
     account_id = :P14_ACC_VAL, 
     qty = :P14_HRS, 
     rio = :P14_RIO, 
     post_code = :P14_POSTCODE 
WHERE id IN (SELECT D.id 
       FROM MD_TS_MAST M 
        LEFT JOIN MD_TS_DETAIL D 
          ON M.mast_id = D.md_id 
        LEFT JOIN DATE_SETS 
          ON ms_date = dt 
       WHERE eng_id = :P14_ENG_VAL 
        AND ms_date BETWEEN :P14_START_DATE AND :P14_END_DATE 
        AND DATE_SETS.col_day = ANY instr(':'||:P14_DAYS||':',Return) 
END; 

Любая помощь будет очень признательна.

+0

У вас уже есть флажки в вашем отчете или вам необходимо их добавить? – Dmitry

+0

Да, товар: P14_DAYS. Флажок установлен из LOV MON: MONDAY; TUE: TUESDAY и т. Д. –

+0

Сначала я думал, что в отчете есть столбец флажков. К сожалению, я никогда раньше не использовал флажки в LOV. – Dmitry

ответ

2

Я нашел этот пример: http://docs.oracle.com/cd/B31036_01/doc/appdev.22/b28839/check_box.htm#CHDBGDJH Как я могу понять, когда вы выбираете несколько значений в списке флажка, то пункт :P14_DAYS получает значение, которое содержит возвращенные значения выбранных элементов LOV с разделителями. Тогда вам необходимо заменить эту строку в запросе

AND DATE_SETS.col_day = ANY instr(':'||:P14_DAYS||':',Return) 

с

AND instr(':'||:P14_DAYS||':', ':'||DATE_SETS.col_day||':') > 0 

Здесь функционирует instr поисков подстроки DATE_SETS.col_day в строке :P14_DAYS. Он возвращает позицию подстроки, если подстрока найдена или 0, если не найден. Затем вы сравниваете результат функции с 0, а если результат> 0, это означает, что в числе выбранных значений находится DATE_SETS.col_day.

Смежные вопросы