0

我想在表单中创建一个复制按钮,但是这个按钮需要使用 sql 语句来工作,就像

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

我将通过一个示例对此进行更多解释。

如果在报告中我有一个用户列表,并且当您单击其中一个用户时,它会将您带到一个表单。在此表单中,您可以退出save,在哪里save button,它们将是另一个名为 的按钮copy,此按钮将使用上面的内容,并将根据(正在查看/编辑表单中的当前报告)sql复制表单上的信息。SOMEreport_id

copy button重定向到一个表单页面,并将呈现它来自该 sql 语句的信息。

我想使用 sql 语句,因为在

action when button clicked

with these values它说冒号、逗号显示不在这些值中,例如 address_1、car_type 和其他数据类型内容,因此,我确实想这样做。我确实尝试过,但我不断得到这404 error page就是为什么我想尝试 sql 方式。

请问我怎么能这样做?

编辑为我的想法添加图像,我认为可以解决这个问题 在此处输入图像描述

上图显示了我的COPY按钮。如您所见,我的项目和价值观是order_id 在此处输入图像描述

上图显示了PROCESSES运行 sql 查询的位置,condition它是副本button

我认为这将起作用的方式是,当您单击复制按钮时,sql 查询将运行并使用当前order_idform获取 sql 中的所有信息并将其显示在表单字段中。

在此处输入图像描述

4

2 回答 2

0

我找到了解决方案。我的查询确实有效,而且我尝试这样做的方式是正确的。问题是在领域。我有database column错误的源类型。我需要将其设置为Static Assignment(Value equals source attribute)并且来源用于only when current value in session state is null

于 2013-10-01T10:03:13.777 回答
0

这不是很清楚。

  1. 为什么需要使用report_id
  2. 将它存储在您的Users表中的目的是什么?
  3. Copy按钮是否会在重定向到第二个表单之前保存对数据库的更改?

如果3.false请不要使用 SQL 查询,因为您将丢失更改,您应该获取字段值。如果3.true,您只需要查询您的表格来填写您的第二个表格。

我的理解是你只需要从一个表单中获取值来填写另一个表单,所以你可以简单地在 URL 中传递值。正如您所说,根据您的值(特殊字符),您可能会遇到一些问题。但是,请注意:

  1. 要在 URL 中传递逗号,请用反斜杠将项目值括起来(例如\45,9\)。
  2. :您不能在 URL 中传递带有冒号 ( ) 的参数。如果可能的话,一个解决方案是用另一个字符替换它。

另一种解决方案是使用顶点集合来存储您的值。

例如,您的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';
于 2013-09-25T08:39:35.920 回答