|
Oracle reports
|
|||
---|---|---|---|
#18+
Вот есть таблица клиентов Customer с полем Name. Есть функция,в процессе вызова которой заполняется вьюха. Пусть называться она будет View. p_name :='Иванов Иван Иванович' ret:=function(p_name) Это, если запустить функцию по одному конкретному клиенту, и если все сойдется в этой функции она просто возвратит то, что и было на входе, но при этом еще заполнится View. И записей во вьюхе может быть несколько. А надо сделать такой отчет, где на входе этой функции будет поле Name из таблицы клиентов Customer, т.е. отчет по всем клиентам. Отчет бы выглядел так NAME1 запись1 из View. ....... запись N из View. NAME2 запись1 из View. ....... запись N из View. и т.п. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 12:47 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
"функция,в процессе вызова которой заполняется вьюха" - это как? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 14:31 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
функция заврапленная (могу только пользовать) но вьюха такая: reate or replace view terror_vw as select no , nn , word , key_no from table(terror.Data_Check) t; ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 14:46 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
А куда передается имя для поиска? это вы террористов ищете? :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 15:33 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
имя передается в функцию в результате выполнения функции заполняется вьюха ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 15:35 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
Функция, в которую передается имя, я так понимаю, тоже не ваша? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 15:37 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
функция врапленная да собственно, разврапленной она нам и не нужна какой результат этой функции мы знаем на вход ее подается имя на выходе оно же и возвращается в случае определенного результата+плюс заполяется вьюха собственно, я повторила пост 1 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 15:45 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
volik017, кстати, почему тоже не наша? только она и не наша ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 15:54 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
Получается, у вас, фактически, "заполняется" не вьюха, а некая коллекция, заполнение которой инициируется внешним вызовом. Как вариант: постоить в Reports трехуровневый master-detail. q1(select имя from customers) -> q2(select function(имя) from dual) -> q3(select * from terror_vw) Но это надо поэксперементировать, сходу не скажу, сработает ли. Второй вариант: построить по этой же логике весь набор данных у себя в хранимой процедуре, и возвращать наружу в Reports целиком. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 16:01 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
конкретно пробывала так делала repeating frame, где источником была таблица костюмеров, там же вывожу поле Name этой таблицы На этом же поле в триггере пишу вызов той самой функции ret:=function(p_name), которая "заполняет" вьюху данными в том же repeating frame делалю еще repeating frame, где источником является та самая вьюха. выдает чего то, но не то ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 16:30 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
Сложность в том, что вам нужно обеспечить координированную цепочку (получил имя) -> (дернул функцию для этого имени) -> (зачитал результат выполнения функции для этого имени из view). Если порядок где-то будет нарушен, вы не получите правильных результатов. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 16:34 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
вот именно это пока и не получается )))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 16:38 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
Ну, как-то так, вроде работает (думаю, идея будет понятна): Тестовый пример: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46.
Тестовый report прилагается (6i) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.12.2013, 17:08 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
volik017функция заврапленная (могу только пользовать) но вьюха такая: reate or replace view terror_vw as select no , nn , word , key_no from table(terror.Data_Check) t; Попробуйте использовать Ref Cursor Query вместо SQL Query. Думаю в вашем варианте это лучшее решение. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.12.2013, 14:58 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
Можно еще немоного в обход. Сделать временную или обычную таблицу table_for_view для данных из вью. В триггере Before Report сделать курсор, который проходит по всем клиентам, для каждой строки курсора вызывать функцию и копировать данные в таблицу table_for_view . Сам репорт основать на table_for_view. В конце (или в начале) очищать table_for_view. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.12.2013, 14:49 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
-=APS=-, Нет, так не работает. Работает только в том случае, если функция нашла полное совпадение в таблице по входному параметру name и их не больше одного. Т.е., если та самая вьюха, которая формируется в процессе отработки функции имеет более одной записи по конкретному name или совпадение не полное (функция ищет и по части текста), то данные не выводятся в отчет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2013, 14:34 |
|
Oracle reports
|
|||
---|---|---|---|
#18+
psvolik017функция заврапленная (могу только пользовать) но вьюха такая: reate or replace view terror_vw as select no , nn , word , key_no from table(terror.Data_Check) t; Попробуйте использовать Ref Cursor Query вместо SQL Query. Думаю в вашем варианте это лучшее решение. Спасибо, так получилось. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.12.2013, 17:31 |
|
|
start [/forum/topic.php?fid=51&fpage=10&tid=1878244]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
44ms |
get topic data: |
11ms |
get forum data: |
2ms |
get page messages: |
66ms |
get tp. blocked users: |
2ms |
others: | 17ms |
total: | 175ms |
0 / 0 |