|
Как передать значение переменной JS в SQL REPORT?
|
|||
---|---|---|---|
#18+
Ситуация такая: есть SQL репорт, где условие where like строка поиска. Без перезагрузки страницы меняется многократно строка поиска и просиходит автообновление репорта по событию onchache. Строка поиска -итем, но получить текущее актуальное значение могу только через JS. Не хотелось бы сабмитить страницу. Как передать эту переменную в в where скл-репорт? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2010, 12:33 |
|
Как передать значение переменной JS в SQL REPORT?
|
|||
---|---|---|---|
#18+
могу я юзать (с точки зрения правильности) глобальные переменные , а в SQL репорте wwv_flow.g_x02? Или это не гламурно? ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2010, 12:35 |
|
Как передать значение переменной JS в SQL REPORT?
|
|||
---|---|---|---|
#18+
Пока на ум приходит такой вариант - записывать через ajax значение итема строки поиска в БД, в SQL репорте юзать значение из БД. Рефреш SQL репорта делать через JS. То есть onchage: 1. записали значение в БД. 2. рефреш SQL REPORT ... |
|||
:
Нравится:
Не нравится:
|
|||
27.12.2010, 13:22 |
|
Как передать значение переменной JS в SQL REPORT?
|
|||
---|---|---|---|
#18+
Парни, простенький вопрос, наверняка кто уже писал на pl/sql, ну чтоб самому не выдумывать. Есть строка (str) ",333344,область,Название (с) р-он,г.Такой, ул.Майская,д15,,2 Надо с нее получить a:=Название b:=Такой, c:=Майская Или еще пример ",333344,область,,Такой-на-Дону г., Майский пер.,д15,,2 Надо с нее получить a:='' b:=Такой-на-Дону, c:=Майский Это надо, чтобы выделить автоматом три ключевых слова поиска (который формируют строку поиска str like '%'||a||'%'||b||'%'||c||'%', юзер потом их может корректировать ... |
|||
:
Нравится:
Не нравится:
|
|||
28.12.2010, 01:49 |
|
Как передать значение переменной JS в SQL REPORT?
|
|||
---|---|---|---|
#18+
itpbПока на ум приходит такой вариант - записывать через ajax значение итема строки поиска в БД, в SQL репорте юзать значение из БД. Рефреш SQL репорта делать через JS. То есть onchage: 1. записали значение в БД. 2. рефреш SQL REPORT До 4-ой версии - именно так. Начиная с 4-ой, можно через Dynamic Action всё сделать. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2010, 17:28 |
|
Как передать значение переменной JS в SQL REPORT?
|
|||
---|---|---|---|
#18+
itpbПарни, простенький вопрос, наверняка кто уже писал на pl/sql, ну чтоб самому не выдумывать. Вообще-то, это вопрос основного форума Oracle. Попробуйте через regexp_replace убрать всё лишнее (г., обл., р-он и т.д.), а потом бейте на лексемы. Простыми способами задача КЛАДР быстро и дёшево не решается. :) ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2010, 17:31 |
|
Как передать значение переменной JS в SQL REPORT?
|
|||
---|---|---|---|
#18+
suPPLeritpbПарни, простенький вопрос, наверняка кто уже писал на pl/sql, ну чтоб самому не выдумывать. Вообще-то, это вопрос основного форума Oracle. Попробуйте через regexp_replace убрать всё лишнее (г., обл., р-он и т.д.), а потом бейте на лексемы. Простыми способами задача КЛАДР быстро и дёшево не решается. :) ну вообщем тогда еще сделал, выложу тут, может кому пригодится: Пакет ZZZ function STR_ARR (param1 IN varchar2) return zzz_arr; body function STR_ARR (param1 IN varchar2) return zzz_arr AS l_word varchar(30); c1 zzz_arr:=zzz_arr(); l_index PLS_INTEGER := 1; BEGIN LOOP --слово, как набор символов: alfanumeric, "_", "-", "\". Всё остальное разделители. l_word := REGEXP_SUBSTR(param1, '[[:alnum:]_\-]+', 1, l_index); EXIT WHEN l_word IS NULL; c1.EXTEND; c1(l_index):=l_word; l_index := l_index + 1; END LOOP; return c1; END STR_ARR; процесс после сабмита и всех других процессов (последний в списке) обновляет ключевые поля поиска по базе declare c1 zzz_arr; par number:=3; qw varchar2(300); begin c1:=ZZZ_MAIN.STR_ARR(:P17_ADRESS1); for i IN REVERSE 1..c1.count loop if LENGTH(c1(i))>5 then if par>0 then qw:='update ZZZ.ZZZ_KLIENT set ADRESS_S'||par||'='''||c1(i)||''' where ID='||:KL_ID; execute immediate qw; end if; par:=par-1; end if; end loop; commit; end; итем - строка поиска P17_SEACHADRESS value or expression select (t1."ADRESS_S1"||'+'||t1."ADRESS_S2"||'+'||t1."ADRESS_S3") from "ZZZ"."ZZZ_KLIENT" t1 where t1."ID" =:KL_ID динамик актион на итем chache function adrr_s(){ var v1=""; var v2=""; var v3=""; var nn=$("#P17_SEACHADRESS").val(); var ar=nn.split('+'); if (ar.length>0) {var v1=trim(ar[0]);} if (ar.length>1) {var v2=trim(ar[1]);} if (ar.length>2) {var v3=trim(ar[2]);} $.ajax( {mode: "abort", dataType: 'html', traditional:true, cache:false, type:'POST', url: "wwv_flow.show", data:{p_request:'APPLICATION_PROCESS=ZZZ_KLIENT_ADRESS',x01:v1,x02:v2, x03:v3, x04:$("#KL_ID").val(), p_flow_id: $("#pFlowId").val(), p_flow_step_id: $("#pFlowStepId").val(), p_instance: $("#pInstance").val()}, error:function(){alert('Ошибка записи!');} } ); my_report10.call_refresh(); } my_report10 - SQL репорт, в который выводится результат поиска ... |
|||
:
Нравится:
Не нравится:
|
|||
29.12.2010, 17:43 |
|
|
start [/forum/topic.php?fid=50&gotonew=1&tid=1876688]: |
0ms |
get settings: |
9ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
66ms |
get topic data: |
12ms |
get first new msg: |
7ms |
get forum data: |
3ms |
get page messages: |
48ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 180ms |
0 / 0 |