powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как сгенерировать таблицу
15 сообщений из 15, страница 1 из 1
Как сгенерировать таблицу
    #38171115
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
У меня есть несколько таблиц с разным количеством полей, мне нужно написать функцию которая выводила бы эти таблицы как есть (то-есть формировался бы заголовок на основании имен полей).

Вот так выглядит часть функции сейчас

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
htp.p('<table style="width: 100%" border="0" cellpadding="0" cellspacing="0">
<tbody>
<tr>
<th class="header">Артикул</th>
<th class="header">Товар</th>
<th class="header">Цена</th>
</tr>');
for rec in (SELECT * FROM tablename )
loop
htp.p('<tr><td>'||rec.id||'</td><td>'||rec.product||'</td><td>'||rec.price||'</td></tr>');
end loop;
htp.p('</tbody></table>');
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38172961
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Мне нужно примерно следующее: Сформировать запрос Select из разных переменных, выполнить его и результат обработать курсором.
В какой тип переменной можно засунуть
Код: plsql
1.
 SELECT * FROM ТАБЛИЦА_С_РАЗНЫМ_КОЛ_ВОМ_ПОЛЕЙ



Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
....
declare
TABLENAME varchar2(50);
STR varchar2(200);
begin
TABLENAME:='Product';
STR:='SELECT * FROM'|| TABLENAME ;

for rec in (STR)
.....
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38173376
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loggin,

В Source региона с отчётом может быть как SQL-запрос, так и тело функции, возвращающей строку с текстом запроса. Если мы говорим про отчёт, конечно. Иначе можно воспользоваться http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35127/apex_plugin_util.htm#BABFBIJD]APEX_PLUGIN_UTIL.get_data[2] , чтобы выполнить запрос и в цикле его вывести.
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38173654
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLer,

этот вариант у меня что-то не получается.... А еще средства существуют? )

Скажите пожалуйста, вот такой код возможно как-нибудь изменить чтобы он заработал ? )

TABLENAME:='Product';
STR:='SELECT * FROM'|| TABLENAME ;

for rec in (STR)
loop
htp.p(rec.id);
end loop;
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38173670
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logginsuPPLer,

этот вариант у меня что-то не получается.... А еще средства существуют? )

Скажите пожалуйста, вот такой код возможно как-нибудь изменить чтобы он заработал ? )

Код: plsql
1.
2.
3.
4.
5.
6.
7.
TABLENAME:='Product';
STR:='SELECT * FROM'|| TABLENAME ;

for rec in (STR) 
loop
htp.p(rec.id);
end loop;



Возможно. RTFM OPEN-FOR Statement .

Код: plsql
1.
2.
3.
4.
5.
6.
7.
declare
  l sys_refcursor;
begin
  open l for 'select * from dual';
  close l;
end;
/



Но я пока не вижу надобности в этом. Чем Вас не устраивают обычные отчёты, в Source которых указывается тело функции, возвращающей текст запроса?
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174150
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Дело в том, что я отправляю ajax запрос, а ApplicationProcess генерирует и возвращает HTML код таблицы в зависимости от того какие параметры я передаю. А на странице есть регион в который с помощью JavaScript запихиваю ответ с сервера.
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174328
Migelle
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Это можно решить с помощью DBMS_SQL Но если таблиц немного то IMHO проще написать несколько if-ов с со своим циклом для каждой таблицы.
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174355
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Migelle,

я так и сделал изначально, но после того как пришлось добавить еще несколько таблиц то вес кода получился больше 30кб, а APEX не позволяет сохранить код в ApplicationProcess >30кб и в итоге он отказался принимать мой код).
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174363
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Или так:

execute immediate > 'begin ... for loop ... htp.p ... end;';
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174368
SvDev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loggin,

Для этого есть хранимые процедуры / пакеты
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174442
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
loggin,

0. Как уже предлагалось выше, RTFM APEX_PLUGIN_UTIL.get_data[2]. Это удобные обёртки вокруг DBMS_SQL, которые возвращают результат запроса и определения столбцов в коллекциях. Циклы по коллекциям тривиальны и влезут в 32K.
1. Откажитесь от идеи "один регион показывает все таблицы". Она пагубна. Делайте нормальные отчёты на одной странице в разных регионах или на разных страницах. Отображать HTML вручную — это не APEX way в большинстве случаев.
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174510
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerloggin,

0. Как уже предлагалось выше, RTFM APEX_PLUGIN_UTIL.get_data[2]. Это удобные обёртки вокруг DBMS_SQL, которые возвращают результат запроса и определения столбцов в коллекциях. Циклы по коллекциям тривиальны и влезут в 32K.
1. Откажитесь от идеи "один регион показывает все таблицы". Она пагубна. Делайте нормальные отчёты на одной странице в разных регионах или на разных страницах. Отображать HTML вручную — это не APEX way в большинстве случаев.

Пункт №1 меня крайне огорчил) Спасибо за ценные советы!
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174820
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Подскажите плиз еще вот что.....
Создал отдельную страницу на нее добавил несколько репортов с условием отображения по TABLENAME. Все замечательно, но споткнулся на том, что в настройках ссылки можно задать всего 3 параметра, а мне нужно передать на другую страницу примерно 6-8 параметров.

Как грамотно это сделать?
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174830
Фотография suPPLer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
logginКак грамотно это сделать?
0. Вставить несколько названий полей через запятую в одно поле. Напротив, соответственно, значения для полей через запятую.
1. Выбрать URL в качестве Target, почитать про формат ссылок в APEX и склеить соответствующий URL.

PS: Параметров что-то чересчур.
...
Рейтинг: 0 / 0
Как сгенерировать таблицу
    #38174882
loggin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
suPPLerlogginКак грамотно это сделать?
0. Вставить несколько названий полей через запятую в одно поле. Напротив, соответственно, значения для полей через запятую.
1. Выбрать URL в качестве Target, почитать про формат ссылок в APEX и склеить соответствующий URL.

PS: Параметров что-то чересчур.
Может для Apex это действительно так (параметров чересчур), но вообще GET запрос позволяет передать и побольше параметров.

Спасибо вам за помощь! Все получилось!
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Как сгенерировать таблицу
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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