powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Создание репорта
44 сообщений из 44, показаны все 2 страниц
Создание репорта
    #38633349
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем добрый день. Только начинаю учиться работать в Apex, и, поскольку английский я знаю не очень хорошо, а русскоязычной информации очень мало, часто стопорюсь на каких-то мелочах. Вот и решил просить помощи здесь.
Нужно вывести репорт, в котором есть поле is_valid, принимающее значения 1 и 0. При этом есть checkbox, со значениями "1" и "0". И при установлении соответствующих галочек должны выводиться поля с 1 или с 0.
У меня получилось это сделать через 2 репорта с запросами (один на выборку 1, другой - 0) в них, открывающихся при выполнении условия, заданного в Condition Type :)
Криво, но по другому не знаю как.
...
Рейтинг: 0 / 0
Создание репорта
    #38633471
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, в самом отчете в source я пишу PL/SQL запрос:
...
Рейтинг: 0 / 0
Создание репорта
    #38633473
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Допустим, в самом отчете в source я пишу PL/SQL запрос:

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Begin
IF :Checkbox1='Y' THEN
select * into ? from tvsjke.person where is_active=1 
END IF;
IF :Checkbox1='N' THEN
select * into ? from tvsjke.person where is_active=0;
END IF;
END;



Куда мне выводить эти запросы? И имеет ли смысл вообще такая конструкция, ведь запросы возвращают не одну строку ?
...
Рейтинг: 0 / 0
Создание репорта
    #38635393
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tvsjke,

можно выводить в переменную varchar2 и потом возвращать её.
Что-то типо
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
Declare
   temp varchar2;
Begin
   IF :Checkbox1='Y' THEN
      temp := 'select * from tvsjke.person where is_active=1';
   ELSE
      temp := 'select * from tvsjke.person where is_active=0';
   END IF;
   
   RETURN temp;
END;
...
Рейтинг: 0 / 0
Создание репорта
    #38635533
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Спасибо, Весёлый.
...
Рейтинг: 0 / 0
Создание репорта
    #38635554
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще такой вопрос: как мне сделать выбор значения checkbox'a уникальным, то есть чтобы можно было выбрать только одно значение ? и, если можно, пару тривиальных и понятных примеров с использованием APEX_APPLICATION.g_f*
...
Рейтинг: 0 / 0
Создание репорта
    #38635703
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Уникальный чекбокс это радиобаттон.
...
Рейтинг: 0 / 0
Создание репорта
    #38635728
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
с этим ясно) а как сделать, чтобы размер отчета был строго фиксирован, независимо от данных в нем?
...
Рейтинг: 0 / 0
Создание репорта
    #38635837
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

CSS / шаблоны
...
Рейтинг: 0 / 0
Создание репорта
    #38636327
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Begin
IF :Checkbox1='Y' THEN
select * into ? from tvsjke.person where is_active=1 
END IF;
IF :Checkbox1='N' THEN
select * into ? from tvsjke.person where is_active=0;
END IF;
END;


select *
into ?
from tvsjke.person
where (:Checkbox1='Y' and is_active=1) or (:Checkbox1='N' and is_active=0)
...
Рейтинг: 0 / 0
Создание репорта
    #38636393
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какой-то мегаизврат. Я даже не понял что нужно. В сурс отчетов пишется sql-запрос, а не pl/sql код.
...
Рейтинг: 0 / 0
Создание репорта
    #38636467
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто есть возможность так же написание plsql ф-и, возвращающей сам запрос.
...
Рейтинг: 0 / 0
Создание репорта
    #38636991
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Создание репорта
    #38639395
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так) С этим уже разобрался. А как сделать обновление таблицы динамическим, без нажатия на кнопку ?
...
Рейтинг: 0 / 0
Создание репорта
    #38639398
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Усилием мысли?
...
Рейтинг: 0 / 0
Создание репорта
    #38639415
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Шутить изволите? Впрочем, я не против. Наверное, это не очень приятно, сидеть на форуме и целый день читать глупые посты начинающих говнокодеров.
Понятно, что это можно сделать через js. А без него ? Должно же быть какое-то тривиальное решение, типа "поставить галочку там-то"
...
Рейтинг: 0 / 0
Создание репорта
    #38639442
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Что есть по Вашему динамически? Вы не пишите конкретики и мы должны сами догадаться?
Все что происходит на странице это апексовый JS. Отчет сам по себе не будет обновляться. Это делается через DA без обновления страницы. Событий там много.
1) Mouse move
2) Mouse click
3) Mouse dblclick
В DA таймеров нет, но можно свой написать, будет по таймеру обновляться.
...
Рейтинг: 0 / 0
Создание репорта
    #38639460
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GustlyЧто есть по Вашему динамически? Вы не пишите конкретики и мы должны сами догадаться?
Может tvsjke хочет обновлять по пушу с сервера ? Такой галочки нет.
...
Рейтинг: 0 / 0
Создание репорта
    #38639515
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть галочка, для обновления при пагинации. Но все равно самый оптимальный вариант кнопкой, ибо только пользователь знает когда ему надо обновить. Незачем без его хотения ему обновлять.
...
Рейтинг: 0 / 0
Создание репорта
    #38640031
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Поразмыслил, и понял, что действительно, лучше оставить вариант с кнопкой.
И, раз я уж начал тут отписываться не по теме, то продолжу:
Начал разбираться с обработчиками событий, и что-то не работает вроде как правильный код:

Код: javascript
1.
2.
3.
4.
function soBoring() {
    alert(1);
  }
 document.getElementById('myId').addEventListener("click",soBoring,true);


...

Код: html
1.
<input id="myId" class="button1" type="button" value="test">
...
Рейтинг: 0 / 0
Создание репорта
    #38640039
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

http://jsfiddle.net/gA3zz/
Все должно работать. Возможно где-то выше падает на ошибке, и этот код не работает. Смотрите консоль.
...
Рейтинг: 0 / 0
Создание репорта
    #38640456
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke
Код: javascript
1.
addEventListener


В апексе уже встроен JQuery, зачем мешать подходы, пользуйтесь jquery или апексовыми селекторами, ивенты в jquery тоже удобнее а если хватает можно пользоваться ивентами из apex api
http://docs.oracle.com/cd/E37097_01/doc/doc.42/e35127/javascript_api.htm#AEAPI29445
...
Рейтинг: 0 / 0
Создание репорта
    #38640476
Весёлый
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tvsjkeпару тривиальных и понятных примеров с использованием APEX_APPLICATION.g_f*

checkbox задаётся как
Код: plsql
1.
apex_item.checkbox2(49, RowID) as cb



Далее создаётся процесс
Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
9.
begin
   for i in 1..apex_application.g_f49.count
      loop
         if :P177_DT1 is not null then
            update UGDT_TABLE_TRAIN_FULL_NOTIF t set t.ACTUALTIMEDEPARTURE = to_date(:P177_DT1, 'dd.mm.yyyy hh24:mi')
            where t.RowID = apex_application.g_f49(i);			
         end if;
      end loop;
end;
...
Рейтинг: 0 / 0
Создание репорта
    #38640629
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Что-то не хотят у меня в Apex'e работать ни jQuery, ни apexAPI

В HTML Header'e пишу:

<script>
$(document.getElementById("ID1")).click(function() {
alert("Hello world!");
});
</script>
<p><input id="ID1" type="button" value="PRESS ME"></p>

...ничего.

Пишу:

apex.confirm('Check', 'value');

...ничего.
...
Рейтинг: 0 / 0
Создание репорта
    #38640640
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Открой консоль и посмотри наличие ошибок.
...
Рейтинг: 0 / 0
Создание репорта
    #38640821
Casufi
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke$(document.getElementById("ID1"))
$('#ID1')
http://api.jquery.com/category/selectors/
...
Рейтинг: 0 / 0
Создание репорта
    #38641865
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Casufi, точно, не тот селектор использовал. А как обратиться к определенному полю(столбцу, яцейке) таблицы репорта, чтобы навесить click на него ?
...
Рейтинг: 0 / 0
Создание репорта
    #38641933
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Поле = ячейка. Столбец это набор ячеек.
$('#REPORT_ID tr').find('td:eq(3)') - 4-й столбец
...
Рейтинг: 0 / 0
Создание репорта
    #38642039
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gustly, а почему так не работает ( 1-я строка): $('#REPORT_ID').find(tr:eq(0)) ?
...
Рейтинг: 0 / 0
Создание репорта
    #38642073
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Потому что нет кавычек
$('#REPORT_ID').find('tr:eq(0)')
И вообще можно в один селектор
$('#REPORT_ID tr:eq(0)')
...
Рейтинг: 0 / 0
Создание репорта
    #38642173
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gustly, спасибо
...
Рейтинг: 0 / 0
Создание репорта
    #38643467
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем привет, это снова я. Хочу сделать всплывающее контекстное меню по клику мыши. И возник вопрос - event.PageY и event.PageY можно вызывать в любое время в любом месте, или только внутри функции-обработчика события мыши ?

Как-то так написал, но не работает (странно, да ?)):

function createMessage() {
var container = document.createElement('div');
container.style.top=event.PageY;
container.style.right=event.PageX;
container.innerHTML = '<div class="message"> \
<a class="message a" title="Редактировать поля таблицы" href=" http://www.prodota.ru"><small>Редактировать</small></a> \
</div>';
return container.firstChild;
}
$( document ).on( "mousemove", function( event ) {
$( document.body).on( "click", function(
var messageElem = createMessage();
document.body.appendChild(messageElem);
))
});

Тем, кто напишет подробный ответ, будет уготован вип-номер в раю
...
Рейтинг: 0 / 0
Создание репорта
    #38643468
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой, вот
...
Рейтинг: 0 / 0
Создание репорта
    #38643469
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
function createMessage() {
  var container = document.createElement('div');
  container.style.top=event.PageY;
  container.style.right=event.PageX;
  container.innerHTML = '<div class="message"> \
      <a class="message a" title="Редактировать поля таблицы" href="http://www.prodota.ru"><small>Редактировать</small></a> \
  </div>';
  return container.firstChild;
}
$( document ).on( "mousemove", function( event ) {
$( document.body).on( "click", function(
var messageElem = createMessage();
document.body.appendChild(messageElem);
))
});
...
Рейтинг: 0 / 0
Создание репорта
    #38643490
Gustly
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Передавай event в createMessage как параметр.
...
Рейтинг: 0 / 0
Создание репорта
    #38645027
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Так, с этим ясно, спасибо.

Теперь вот что: нужно по выполнении процедуры заполнить галочками Checkbox

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Declare
   temp number;
Begin
      temp := 'select masked from tvsjke.mask where masked=10';
   IF temp=10 THEN
     :Box2 := '1:3:6';
   END IF;
END;



Но выдает ORA-06502: PL/SQL: numeric or value error: character to number conversion error. Поле masked имеет тип number.
В чем дело, не пойму
...
Рейтинг: 0 / 0
Создание репорта
    #38645053
heavyside
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

Я думаю он валится на
Код: plsql
1.
temp := 'select masked from tvsjke.mask where masked=10';


где Вы полю типа number присваиваете строковое значение)
...
Рейтинг: 0 / 0
Создание репорта
    #38645131
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
heavyside, и что посоветуете ?)
...
Рейтинг: 0 / 0
Создание репорта
    #38645181
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjke,

апострофы уберите!
...
Рейтинг: 0 / 0
Создание репорта
    #38645187
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
без них не будет работать же
...
Рейтинг: 0 / 0
Создание репорта
    #38645312
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
tvsjkeбез них не будет работать же

Да, но для этого есть директива INTO
...
Рейтинг: 0 / 0
Создание репорта
    #38646704
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ясно)
Такой еще вопрос: как мне обратиться в js-функции к checkbox'у, чтобы установить "сhecked" ?
$('#BOX1_0').html('<checked="checked">') не работает
...
Рейтинг: 0 / 0
Создание репорта
    #38648649
tvsjke
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять нужна помощь. Хотя я, наверное, уже всем надоел своими глупыми вопросами, но все же, может кто-то поможет по доброте душевной.

Есть процесс

Код: plsql
1.
2.
3.
4.
5.
6.
7.
8.
Declare
   temp varchar2(100);
Begin
IF :Field5 IS NOT NULL THEN
         temp := 'select mask from tvsjke.pass where pass_id=to_number(:Field5)';
         :Box1 := temp;
   END IF;
END;


(как он должен работать) в Field5 я, допустим, ввожу 10, сравниваю это число с ID, и присваиваю значение из mask, а там хранятся значения типа 1:2, 3:4:7, checkbox'у, и, по идее, должны выставиться галочки.
(как он работает) просто присваивает строку 'select mask from tvsjke.pass where pass_id=to_number(:Field5)' checkbox'у.

Что я делаю не так, и вообще юзабельна ли эта схема ?
...
Рейтинг: 0 / 0
Создание репорта
    #38648669
kasik
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
создавайте новую тему, а не обрывочными сведениями кидайтесь.
...
Рейтинг: 0 / 0
44 сообщений из 44, показаны все 2 страниц
Форумы / Oracle APEX [игнор отключен] [закрыт для гостей] / Создание репорта
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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