|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Здравствуйте. Я в Oracle, и вообще в БД новичок. Сейчас пытаюсь своими силами освоить Reports 11g. Чувствую себя при этом как слепой на оргии - все приходится делать на ощупь. Поэтому хотелось бы попросить указать хоть на какие-то учебники/инструкции и прочее подобное. У меня есть только 1 глава из книги Пэрри, посвященная Отчетам, и ее естественно не хватает. Курсы со стоимостью 30-60 тыс. руб. просьба не советовать, нет финансовой возможности. И еще. Прикрепил ссылку на файлик RDF. Помогите пожалуйста объединить все 5 запросов в 1 табличку (со 2 по 5-ый должны выводиться по очереди, каждый в отдельной колонке, после последней колонки первого запроса). 1 запрос - прекрасно отображается, при попытке привязать второй - ошибка rep-1213. В одной теме был аналогичный вопрос, но объяснения я не понял :(. Заранее спасибо всем желающим помочь. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 10:15 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Забыл уточнить. Приложенный отчет - попытка перенести из Report 5-ой версии след. отчета: .dt 1 1 4 7 35 36 41 42 57 58 76 77 92 93 99 100 104 105 128 130 131 133 142 144 164 166 177 178 255 . . declare god a4 . declare nmmd a30 . declare nmsv a6 . declare nplv1 a15 . declare gostm a18 . declare nmpf a15 . declare tlot 99999.9 . declare kdag 9999 . declare nabor a25 . declare kceh a2 . declare nceh a10 . declare kdpr a6 . declare knpr a20 . declare grvb a10 . declare napt a75 . declare votg 9999999999.999 . define sel select to_char(dotg,'yyyy') god,sert97.nmmd,sert97.nmsv,nplv1,sert97.gostm,nmpf,tlot, sert97.kdag,kceh,grvb,kdpr,sum(votg)/1000 into god,nmmd,nmsv,nplv1,gostm,nmpf,tlot,kdag,kceh,grvb,kdpr,votg from sert97,smar where sert97.prar is null and dotg>=to_date('01/01/2010','dd/mm/yyyy') and dotg<to_date('01/04/2013','dd/mm/yyyy') and sert97.nmmd=smar.nmmd and sert97.gostm=smar.gostm and sert97.nmsv=smar.nmsv group by to_char(dotg,'yyyy'),sert97.nmmd,sert97.nmsv,nplv1,sert97.gostm,nmpf,tlot,sert97.kdag,kceh,grvb,kdpr order by to_char(dotg,'yyyy') .. . define sel1 select napt into napt from kupa.gruzpol where grvb=&grvb .. . define sel2 select nceh into nceh from kupa.ceh where kceh=&kceh and rownum=1 .. . define sel3 select nabor into nabor from kupa.oborud where kdag=&kdag and rownum=1 .. . define sel4 select knpr into knpr from kupa.product where kdpr=&kdpr .. .t 1 . define zag .body .. . define body . execute sel1 . execute sel2 . execute sel3 .execute sel4 . print god .nc . print nmmd .nc . print nmsv .nc . print nplv1 .nc . print gostm .nc . print nmpf .nc . print tlot .nc . print kdag .nc . print nabor .nc . print kceh .nc . print nceh .nc . print knpr .nc . print votg .nc . print napt .nc .. . report sel body zag .te .stop ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 10:34 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Kaimen, Я бы Вам, как новичку, для начала бы посоветовал изучить SQL, чтобы научиться составлять правильные запросы. Книг в сети полно, в том числе и на русском. А потом уже "выводить" данные в отчёте, причем не обязательно искать документацию по 11 репортам, достаточно и более ранних версий, 6-ой например, суть не изменилась.. Ссылки на ресурсы ищите на форуме, уже не раз дублировались.. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 10:45 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
mRdUKEKaimen, Я бы Вам, как новичку, для начала бы посоветовал изучить SQL, чтобы научиться составлять правильные запросы. Книг в сети полно, в том числе и на русском. А потом уже "выводить" данные в отчёте, причем не обязательно искать документацию по 11 репортам, достаточно и более ранних версий, 6-ой например, суть не изменилась.. Ссылки на ресурсы ищите на форуме, уже не раз дублировались.. Про SQL я уже прочитал несколько хороших книг, но одной теории мало, нужно ее закреплять практикой. Тот листинг, что я привел, 100% рабочий в 5 версии. Хотелось бы понять как его же реализовать в графической оболочке. Он достаточно простой, не думаю, что специалисту будет сложно объяснить один небольшой конкретный пример. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 11:40 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Как-то странно описана поставленная задача. Что значит "...(со 2 по 5-ый должны выводиться по очереди, каждый в отдельной колонке, после последней колонки первого запроса)..."? Скоре всего, подразумевается, что для каждой строки из запроса Q1 должна быть получена строка в Q2..Q5, и определенный реквизит из этой строки должен быть включен в отчет. Такую задачу, в принципе, вообще правильнее было бы решать, объединив это всё в Q1 (либо через соединение, либо выбрав нужные данные подзапросом). Тогда и Q2..Q5 не потребуются. А для нормального объединения в том варианте отчета, который вы приложили (сейчас там в Q2..Q5 выбирается случайная единственная строка), следует использовать data link. Кроме того, у вас поле NAPT не лежит в пределах нужного repeating frame. - Кстати, лично я считаю Reports "слишком уж специфичным" средством генерации отчетов. После его мозгоразрывающей архитектуры и кошмарного дизайнера, поработав с _нормальными_ продуктами и поняв, как оно _должно_ быть - чувствуешь только негатив, когда нужно опять что-то подправить в одной из кучи rdf-ок. :( ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 13:48 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
-=APS=-Как-то странно описана поставленная задача. Что значит "...(со 2 по 5-ый должны выводиться по очереди, каждый в отдельной колонке, после последней колонки первого запроса)..."? Скоре всего, подразумевается, что для каждой строки из запроса Q1 должна быть получена строка в Q2..Q5, и определенный реквизит из этой строки должен быть включен в отчет. Такую задачу, в принципе, вообще правильнее было бы решать, объединив это всё в Q1 (либо через соединение, либо выбрав нужные данные подзапросом). Тогда и Q2..Q5 не потребуются. А для нормального объединения в том варианте отчета, который вы приложили (сейчас там в Q2..Q5 выбирается случайная единственная строка), следует использовать data link. Кроме того, у вас поле NAPT не лежит в пределах нужного repeating frame. - Кстати, лично я считаю Reports "слишком уж специфичным" средством генерации отчетов. После его мозгоразрывающей архитектуры и кошмарного дизайнера, поработав с _нормальными_ продуктами и поняв, как оно _должно_ быть - чувствуешь только негатив, когда нужно опять что-то подправить в одной из кучи rdf-ок. :( Спасибо за отклик, про постановку задачи вы правильно поправили меня, прошу прощения за косноязычность (в листинге Reports 5.1 все более наглядно). Объединить это все в Q1 я и сам изначально хотел, но столкнулся с условиями WHERE в запросах со 2 по 5 (и ROWNUM в них), не смог упаковать их в один запрос. Советовался у специалистов, которые сказали что сделать это нельзя. Если вы знаете способ как реализовать объединение не в Reports, а непосредственно на SQL, подскажите. А про data link я почитаю в справке, спасибо. -=APS=- Кроме того, у вас поле NAPT не лежит в пределах нужного repeating frame. Никак не могу его туда "запихать" :( :( Не посоветуете ли другую литературу по Reports, поскольку даже на сайте Oracle любые инструкции просто отсутствуют (ошибка 404). И есть ли какие-то еще инструменты по созданию отчетов, имеющие возможность использовать базы Oracle? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 14:12 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Kaimen, Структуры таблиц (типы полей) и связи между ними дали бы, вопросов меньше было бы. А так на вскидку, должно быть что-то типа этого: Код: plsql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
можно на основе этих таблиц сделать вью, и уже исходя из этой вью "тащить" что нужно, считать суммы соответсвенно.. + добавить Код: plsql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 14:38 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
mRdUKE можно на основе этих таблиц сделать вью, и уже исходя из этой вью "тащить" что нужно, считать суммы соответсвенно.. [/src] Имеется в виду представление отчета в виде Модели данных (первая кнопка слева на панели инструментов в окне "Редактор отчетов")? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 14:56 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
авторНе посоветуете ли другую литературу по Reports, поскольку даже на сайте Oracle любые инструкции просто отсутствуют (ошибка 404). Другой литературы - навалом :) Лично я, впервые столкнувшись с Forms и Reports (2000-й год еще был), постигал это дело по Справке: собственно, по самой справке + Quick Tour + Cue Cards. Кое-какие примеры были под руками, да и с интернетом тогда было похуже. авторИ есть ли какие-то еще инструменты по созданию отчетов, имеющие возможность использовать базы Oracle?Сложно что-то рекомендовать, не зная ваших потребностей, ваших масштабов, среды разработки, уровня разработчиков, ограничений по бюджету и т.п. Как правило, сейчас все серьезные отчетные системы поддерживают получение данных с более-менее распространенных серверов БД, а обеспечивается это либо собственными, либо другими компонентами доступа, а-ля ODBC, OLE DB etc. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 15:12 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
-=APS=-Сложно что-то рекомендовать, не зная ваших потребностей, ваших масштабов, среды разработки, уровня разработчиков, ограничений по бюджету и т.п. Как правило, сейчас все серьезные отчетные системы поддерживают получение данных с более-менее распространенных серверов БД, а обеспечивается это либо собственными, либо другими компонентами доступа, а-ля ODBC, OLE DB etc. Маштабы - пром. предприятие, все БД - Oracle. Уровень разработчиков в среднем пока не очень высокий - учимся) Правильно ли я понимаю, что в данном отношении лидер - Crystal Reports, который (вроде бы) работает с базами Oracle, а по количеству возможностей и доступности для начинающих значительно лучше чем Оракл Репортс. Какие еще есть варианты? ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 15:25 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Ну, Crystal - вещь неплохая. Возможно, для вашего класса задач это - подходящий вариант. Например, у нас девелоперы сделали большой крен в сторону .net (c#), для отчетности - Fast Reports/Stimulsoft Reports. Юзается еще Oracle Discoverer. Много чего тащится в Excel через OLE DB. Всё же упирается в цену :) ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 15:49 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
-=APS=-, Спасибо за конкретику. По поводу вашей ссылки на поиск Гугл, если вы посмотрите, то все курсы там - это один и тот же, для 6 версии. Даются самые основы, которые в 11 версии за тебя делает Визард. Поэтому, повторюсь, литературы по Репортсу, видимо не существует в принципе. А по английской справке обучатся тяжеловато, особенно учитывая отсутствие опыта в данном направлении. Если вспомните какую-нибудь литературу, буду благодарен. Например Д. Перри в книге "Введение в Оракл10г" посвящает Репортам всего одну небольшую главу. Там информация хорошая, но ее преступно мало :( А сам Оракл благоразумно удалил со своих сайтов всю инфу, чтобы продавать людям курсы по 60+ тысяч. ... |
|||
:
Нравится:
Не нравится:
|
|||
21.05.2013, 16:45 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
... |
|||
:
Нравится:
Не нравится:
|
|||
22.05.2013, 09:22 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Kaimen, 1) Принципы разработки Forms и Reports примерно одинаковы для 6-ой и 11G версий. Отличаются среды выполнения (клиент-сервер, 3-х звенка) и способы доставки отчетов (локальный клиент, интернет). Так что для понимания принципов пользуйте старые учебники по 6i и можете даже поставить Forms Reports 6i для более быстрого обучения. 2) Теоретически, Отчеты и Формы можно последовательно конвертировать проходя последовательно всю цепочку основных версий формсов и репртсов. То есть, если у вас отчет в Reports 5, то надо поставить Reports 6i, открыть его в Reports 6i, поправить при необходимости и сохранить в новом формате 6i. Затем поставить Reports 10G. Открыть в Reports 10G отчет, сохраненный в формате Reports 6i, поправить при необходимости и сохранить в новом формате 10G. Открыть отчет в формате 10G в Reports 11G, поправить при необходимости и сохранить в новом формате 11G. PS. думаю понятно, что это накладно. 3) Если есть возможность (есть лицензия), то в большинстве случаев в качестве отчетной системы лучше использовать Orace BIPublisher. Если нет возможность - смотрите JasprReports, Birt и д.р. opensource альтернативы. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 02:08 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
brig_2000, Спасибо за конкретику! ... |
|||
:
Нравится:
Не нравится:
|
|||
23.05.2013, 10:12 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Почему начиная со второй страницы печатной формы последняя колонка начинает сползать вниз? ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2013, 11:11 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
"Съезжает" у вас скорее всего потому, что заголовок Kceh (M_1) не находится в M_G_GOD_HDR. - Позволю себе несколько замечаний. Если спрашиваете совета в такой ситуации, старайтесь облегчить задачу тем, кто будет пытаться вам помочь. Для этого недостаточно выложенного исходника отчета, не помешал бы как минимум скриншот "что и куда съезжает", потому что запустить на выполнение ваш отчет у себя для воспроизведения ситуации - невозможно по причине отсутствия ваших таблиц и данных. В идеале, конечно, еще было бы приложить скрипты с созданием тестовых таблиц и наполнением их тестовыми данными. Еще: почитайте еще побольше про SQL и best practices в его оформлении; ваш базовый запрос изобилует массой неаккуратностей. Старайтесь давать объектам удобочитаемые имена (так, чтобы мог понять не только узкий специалист в вашей отрасли, но и сторонний человек); используйте алиасы к таблицам в запросах; старайтесь уточнять алиасом явным образом, откуда именно выбирается столбец; у вас почему-то в group by идут повторения одного и того же столбца из одной/разных таблиц (при наличии соединения по этим полям). И, все-таки, выполняйте соединение связанных таблиц непосредственно в базовом запросе. Запрос, несколько измененный, будет выглядеть так (имена таблиц тоже несколько изменены - мне так было удобнее): Код: sql 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.
... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2013, 12:45 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
-=APS=-запустить на выполнение ваш отчет у себя для воспроизведения ситуации - невозможно по причине отсутствия ваших таблиц и данных. Простите, не подумал... -=APS=-В идеале, конечно, еще было бы приложить скрипты с созданием тестовых таблиц и наполнением их тестовыми данными. А вот это - даже не представляю себе как сделать. -=APS=-Еще: почитайте еще побольше про SQL и best practices в его оформлении; ваш базовый запрос изобилует массой неаккуратностей. Старайтесь давать объектам удобочитаемые имена (так, чтобы мог понять не только узкий специалист в вашей отрасли, но и сторонний человек) Страшно сказать - но так или почти так было написано в оригинальных rpt для Reports 5.0. Буду конечно читать - КАК надо. За листинг, спасибо, сейчас буду изучать его. И за идею по "съезжанию" колонки. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.05.2013, 15:47 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Подскажите, что за проблемы с форматом условий сравнения? Листинг: SELECT ALL SUM (NVL(PSKL.FSSD, 0)) Ves_Sdachi, SUM (NVL(PSKL.SGIF, 0)) + SUM (NVL (PSKL.STPRM, 0)) Priplaty FROM PSKL WHERE (PSKL.STDT2 IS NULL OR pskl.STDT2>:USER_DATE) AND PSKL.STDT1=:USER_DATE AND PSKL.PRN IS NULL где USER_DATE - дата, вводимая пользователем при старте отчета. Хранится в формате "date". Стоит в строке AND PSKL.STDT1=:USER_DATE добавить "<" перед "=" AND PSKL.STDT1<=:USER_DATE и Построитель запросов выдает синтаксическую ошибку (нормально отрабатывая в 5 версии). Как же правильно указывается условие "меньше или равно"? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2013, 15:48 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Сложно сказать, вроде, синтаксически всё верно. В Reports 9.2 работает: ... |
|||
:
Нравится:
Не нравится:
|
|||
30.05.2013, 16:12 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Возник еще один вопрос. Есть текст запроса из версии 5.1 .define sel select kceh,sum(nvl(fssd,0)), sum(nvl(sgif,0)) + sum(nvl(stprm,0)) into kceh,v,d from pskl where prn is null and (stdt2 is null or stdt2>to_date(&zap,'dd/mm/yyyy')) and stdt1 <= to_date(&zap,'dd/mm/yyyy') group by kceh .. На переменную KCEH, которая в нем определяется, в дальнейшем ссылаются 2 запроса: .define nch select nceh into nceh from kupa.ceh where kceh=&kceh и .define sele select sum(nvl(fssd,0)), sum(nvl(sgif,0)) + sum(nvl(stprm,0)) into ve,de from pskl where kceh=&kceh and (stdt2 is null or stdt2>to_date(&zap,'dd/mm/yyyy')) and stdt1 <= to_date(&zap,'dd/mm/yyyy') and prn is null and vdnz='э' and kdch1 is null Но в 11 версии, создать и сослаться на переменные вот так напрямую (INTO), как я понимаю нельзя. Все делается путем рисования Каналов связи в режиме Модель данных. В приложенном файле - попытка это сделать. Будут ли в отчете извлекаться нужные данные в результате организации такой связи? Нужны ли строки (KUPA.CEH.KCEH = PSKL.KCEH) ... |
|||
:
Нравится:
Не нравится:
|
|||
03.06.2013, 13:40 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Может ли кто-то подсказать, какова процедура создания формы для ввода пользовательских параметров при публикации отчета в WEB? Конкретно: пользователь должен ввести дату, на которую он хочет получить отчет, от этой переменной пляшет в дальнейшем весь отчет. Форма параметров в отчете задана и при построении отчета в Reports успешно выводится на экран, запрашивая у пользователя дату. Как добиться аналогичного эффекта в web? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 10:14 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
KaimenФорма параметров в отчете задана и при построении отчета в Reports успешно выводится на экран, запрашивая у пользователя дату. Как добиться аналогичного эффекта в web? При вызове отчёта задать параметр PARAMFORM=YES. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.06.2013, 11:50 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Возник вопрос по печати объектов. В справке не нашел. Суть в следующем. Условная табличка с 2 колонками: в одной код марки металла, во второй - произведенный вес. Выборка происходит сначала по одному коду (итог при печати может занимать несколько листов), после чего печатаются итоговые поля, и начинается следующая таблица - с результатами выборки по след. коду, с точно таким же подведением итогов. В итоговых полях печатается точно такое же поле "Код", как и в таблице + итоговое поле по общему весу. Вопрос: (1) Как заставить итоговые поля выходить на печать по окончании выборки всех полей с одним из кодов , (2) и как затем продолжить печать, но уже по другому набору кодов. Прилагаю образец. Код | Вес --------------------------- 22 111 22 222 22 333 --------------------------- Итого по коду: 22 Общий вес: 666 кг Код | Вес --------------------------- 43 111 43 222 43 444 --------------------------- Итого по коду: 43 Общий вес: 777 кг ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 10:15 |
|
Начало изучения Report Builder 11g
|
|||
---|---|---|---|
#18+
Другими словами, можно наверное сказать так: каким образом содержимое ячейки может управлять печатью других объектов? В том числе разрывов страницы: в моем примере после итогов по каждому коду следует разрыв, и с новой страницы должен продолжиться тот же запрос, но выбирающий следующую группу кодов. Совершенно не понятно даже куда вставить условие типа "если код такой-то выбран из базы весь, то напечатать Итог и перейти к выборке след. кода". ... |
|||
:
Нравится:
Не нравится:
|
|||
24.06.2013, 11:13 |
|
|
start [/forum/topic.php?fid=51&fpage=12&tid=1878309]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
72ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
56ms |
get tp. blocked users: |
1ms |
others: | 12ms |
total: | 181ms |
0 / 0 |