Plsql PL/SQL和Oracle Forms Builder

Plsql PL/SQL和Oracle Forms Builder,plsql,oracle10g,plsqldeveloper,oracleforms,Plsql,Oracle10g,Plsqldeveloper,Oracleforms,所以我需要为学校准备这个项目,但我只能使用oracle forms builder 我正在尝试执行一个简单的查询,并根据从查询中获得的内容为表单对象赋值,但我的表单项显示为未声明。有人知道我如何修改表单属性吗?这个程序上的这个用户界面很糟糕,所以如果我能在PL/SQL中实现,那么通过向导来实现它是我真正想要避免的事情 以下是我所拥有的: 仍在努力寻找有效的解决方案 我对代码做了一些修改: DECLARE pmrn patient.p_mrn%TYPE; var_ptuple pa

所以我需要为学校准备这个项目,但我只能使用oracle forms builder

我正在尝试执行一个简单的查询,并根据从查询中获得的内容为表单对象赋值,但我的表单项显示为未声明。有人知道我如何修改表单属性吗?这个程序上的这个用户界面很糟糕,所以如果我能在PL/SQL中实现,那么通过向导来实现它是我真正想要避免的事情

以下是我所拥有的: 仍在努力寻找有效的解决方案

我对代码做了一些修改:

DECLARE
    pmrn patient.p_mrn%TYPE;
    var_ptuple patient%ROWTYPE;
BEGIN
    pmrn := NAME_IN('MRN_FIELD');
    SELECT * INTO var_ptuple from patient WHERE patient.p_mrn = pmrn;
    :PATIENT_BLOCK.FNAME := var_ptuple.p_fname;
    :PATIENT_BLOCK.LNAME := var_ptuple.p_lname;
END;

使用数据块上的where并不真正适合这些目的,因为我希望根据用户输入检索数据。即,用户需要输入正确的用户ID才能查看其记录

表单项在PL/SQL表单中可以称为绑定变量,例如

pmrn := :PATIENT_BLOCK.MRN_FIELD;
:PATIENT_BLOCK.FNAME := var_ptuple.p_fname;
等等


但是,请注意,您可能不需要编写所有这些代码。只需将块源设置为表并对其执行查询-表单将为您加载记录。

表单项在表单PL/SQL中可以称为绑定变量,例如

pmrn := :PATIENT_BLOCK.MRN_FIELD;
:PATIENT_BLOCK.FNAME := var_ptuple.p_fname;
等等


但是,请注意,您可能不需要编写所有这些代码。只需将块源设置为表并在其上执行查询-表单将为您加载记录。

那么我可以编写这样的查询吗?选择p_fname,plname from patient where patient.p_mrn=:patient_BLOCK.mrn_字段我试图禁止访问用户没有必要信息(如ID号和密码等)的记录。基于GUI的设置似乎不提供这些功能。GUI只是用来进行布局的。表单的功能强大,并由对象属性释放。有时您确实需要编写一些PL/SQL,但对于这类事情,它不是必需的。例如,如果要确保用户只看到某些记录,可以在块的
DEFAULT\u WHERE
属性中放置一个谓词(如果子句应该是动态的,甚至可以通过编程方式设置).我对代码做了一点修改,但我仍然不清楚如何访问表单对象并将数据放入其中和/或从中检索数据。如果我能做到这一点,我应该可以为这个项目。语法对于您所建议的是正确的,但是运行表单并没有达到我期望的效果。具体地说,它没有任何作用。我希望用户能够将其ID输入“MRN_字段”,获取表单中的值,将其用于DB查询,并从记录中获取信息并将其放入表单中进行输出。不管它是否有效!不管它是什么,我都不喜欢使用按下回车键的触发器。我只是把它绑在一个按钮上,它就像一个符咒。非常感谢!是的,避免使用“键”触发器——它们只在您需要特定于某些键盘键的事情发生时才有用。最好挂起通用事件的触发器,例如“WHEN-NEW-FORM-INSTANCE”(在窗体第一次打开时运行某些内容)或“WHEN-BUTTON-PRESSED”(在按钮被按下时运行某些内容,而不管按钮是如何按下的,例如鼠标或键盘),那么我可以这样写一个查询吗?选择p_fname,plname from patient where patient.p_mrn=:patient_BLOCK.mrn_字段我试图禁止访问用户没有必要信息(如ID号和密码等)的记录。基于GUI的设置似乎不提供这些功能。GUI只是用来进行布局的。表单的功能强大,并由对象属性释放。有时您确实需要编写一些PL/SQL,但对于这类事情,它不是必需的。例如,如果要确保用户只看到某些记录,可以在块的
DEFAULT\u WHERE
属性中放置一个谓词(如果子句应该是动态的,甚至可以通过编程方式设置).我对代码做了一点修改,但我仍然不清楚如何访问表单对象并将数据放入其中和/或从中检索数据。如果我能做到这一点,我应该可以为这个项目。语法对于您所建议的是正确的,但是运行表单并没有达到我期望的效果。具体地说,它没有任何作用。我希望用户能够将其ID输入“MRN_字段”,获取表单中的值,将其用于DB查询,并从记录中获取信息并将其放入表单中进行输出。不管它是否有效!不管它是什么,我都不喜欢使用按下回车键的触发器。我只是把它绑在一个按钮上,它就像一个符咒。非常感谢!是的,避免使用“键”触发器——它们只在您需要特定于某些键盘键的事情发生时才有用。最好挂起通用事件的触发器,例如“WHEN-NEW-FORM-INSTANCE”(在窗体第一次打开时运行某项操作)或“WHEN-BUTTON-PRESSED”(在按钮按下时运行某项操作,而不管按钮是如何按下的,例如鼠标或键盘)