2013-09-24 2 views
0

Я хотел создать кнопку копирования в форме, но эта кнопка должна работать, используя SQL заявления, которое будет каксоздание кнопки копирования с помощью SQL апекса оракула

select name, address1, address2, zipcode, car_type, model from Users WHERE report_id=:report_id

пояснит больше в это с примером.

Если в отчете у меня есть список пользователей, и когда вы нажмете на одного из пользователей, он перенесет вас в форму. В этой форме вы можете выйти и save, где save button, они будут другой кнопкой под названием copy, эта кнопка будет использовать sql выше и скопирует SOME информацию о форме, основанной на report_id (текущий отчет, просматриваемый/отредактированный в форме.)

copy button перенаправляет на страницу формы и будет отображать информацию, содержащуюся в этом заявлении sql.

Я хочу использовать SQL заявление, потому что в

action when button clicked

with these values он говорит, что колоны, запятые показывают не быть в тех значениях, например ADDRESS_1, car_type и другого содержания типов данных этих и из-за этого, Я действительно хочу это сделать. Я попробовал, но я продолжал получать 404 error page, поэтому я хочу попробовать использовать метод sql.

Как я могу это сделать, пожалуйста?

Editted ДОБАВЛЯТЬ ИЗОБРАЖЕНИЯ ДЛЯ МОЕЙ ИДЕИ В КОТОРЫХ Я думаю, ВОЗМОЖНО решить эту проблему enter image description here

изображения ВЫШЕ показывает мою COPY кнопки. как вы можете видеть, что элемент и значения является order_id enter image description here

Изображение выше показывает PROCESSES, в котором запускается запрос SQL и condition это копия button.

Способ, которым я думаю, что это сработает, заключается в том, что при нажатии кнопки копирования будет выполняться запрос sql и использовать текущий order_id на form, чтобы получить всю информацию в sql и показать ее в поле формы.

enter image description here

ответ

0

Я нашел решение. Мой запрос действительно работает, и способ, которым я пытался это сделать, был прав. Проблема заключалась в том, что в полях. У меня был тип источника database column, который был неправильным. Мне нужно установить его на Static Assignment(Value equals source attribute), а источник - only when current value in session state is null

0

Это не очень понятно.

  1. Зачем вам нужно использовать report_id?
  2. Для чего его хранить в вашей таблице Users?
  3. Кнопка Copy будет сохранять изменения в базе данных перед перенаправлением на вторую форму?

Если 3. является false, не использовать запрос SQL, как вы потеряете изменения, вы должны получить значения полей вместо этого. Если 3. - true, вам просто нужно будет запросить таблицу, чтобы заполнить вторую форму.

Я понимаю, что вам просто нужно получить значения из формы, чтобы заполнить другую форму, чтобы вы могли просто передавать значения в URL-адресе. Как вы сказали, у вас может быть какая-то проблема в зависимости от ваших значений (специальные символы). Тем не менее, отметим, что:

  1. Чтобы передать запятой в URL, заключите значение элемента с обратной косой черты (например \45,9\).
  2. Вы не можете передать параметр с двоеточием (:) в URL. Решение могло бы заменить его другим символом, если это возможно.

Другим решением является использование apex collection для хранения ценностей.

Ваш Save кнопка может, например, запустить процесс, как следующее (конечно, использовать собственные имена элементов):

APEX_COLLECTION.CREATE_OR_TRUNCATE_COLLECTION('MY_COLLECTION'); 
APEX_COLLECTION.ADD_MEMBER(
     p_collection_name => 'MY_COLLECTION' 
     p_c001   => :P1_NAME, 
     p_c002   => :P1_ADDRESS1, 
     p_c003   => :P1_ADDRESS2, 
     p_c004   => :P1_CARTYPE, 
     p_c005   => :P1_MODEL, 
     p_n001   => :P1_ZIPCODE, 
     p_d001   => SYSDATE 
); 

Тогда в вашей второй форме, вы можете основывать свои ценности запись на запрос SQL, чтобы получить правильное значение. Пример для P2_NAME:

SELECT c001 from APEX_COLLECTIONS WHERE COLLECTION_NAME = 'MY_COLLECTION'; 
+0

спасибо за ваш ответ. В отделе у нас есть несколько старых людей, которые просто будут использовать двоеточие без обратной косой черты, если бы только я делал отчет, я бы не стал задавать этот вопрос, а его отдел использовал многие сотрудники. – JamesT

+0

Решение, о котором я думал, состоит в том, чтобы иметь процесс с запросами типа SELECT NAME, DOB INTO: NAME,: DOB FROM записи WHERE rec_id =: rec_id' и 'CONDITION' для процесса (' When Button Pressed') кнопка будет кнопкой 'copy'. В копии 'button' в' Set These Items' будет 'p2_record_id', а' With These Values' будет '& p2_record_id'. Я думаю, что это будет сделано, это запустить «процесс» и использовать «record_id» из текущей просматриваемой формы и использовать ее для получения информации на странице формы переадресации. К сожалению, я не могу заставить это работать. – JamesT

+0

Если вы хотите использовать запятую или символы двоеточия, вам не нужно просить людей выполнять работу по экранированию/замене символов! Вы можете просто переработать значения перед их передачей в URL. Что касается коллекций apex, это работает как временные таблицы, факт состоит в том, что вы не можете использовать временные таблицы в вершине, поскольку это может привести к конфликтам сеанса (сеанс apex и сеанс базы данных). Вместо этого вы можете использовать простую таблицу, но я рекомендую вам использовать коллекции apex. Просто прочитайте документацию и попробуйте несколько примеров, это очень просто. Вы также можете использовать Google для «примера коллекции apex». – Yann39

Смежные вопросы