电脑技术学习

Oracle数据库开发经验浅谈

dn001
  ----有块EBOP_CABLE_ACCOUNT,下有SPECIFICATION数据项,当一进入该模块时,就将SPECIFICATION项在数据库中存储的值动态显示出来,先在Form4.5中建立一个PRCEDURE,命名为DYN_LIST:

  然后在FORM的WHEN-NEW

  -FORM-INSTANCE触发子中加入一行:

  DYN_LIST;

  ----这样一进入该FMX,就会动态刷新该列表。除此之外,SPECIFICATION数据项改为列表项。

  ----④ 当显示多条记录且数据项特别多时,如何组织录入及显示界面:

  ---- PRN代码及设备代码在画布1(CONTENT型)上,其它数据项在画布2(STACK型)上,所有数据项为一个表的列或一个块的数据项。在拉动水平滚动条时或用TAB或敲回车键时,将看到全部数据项。这种排布方法适用于数据项特别多又想显示多条记录时用。主要制作顺序为:先建立两个画布,画布1(CONTENT型),画布2(STACK型),然后建立块,选画布时用画布1,这样所有项都显示在画布1上,然后选中除PRN代码及设备代码之外的所有数据项,选TOOLS菜单下的PROPERTIES选项,将这些数据项的CANVAS属性选为画布2(STACK型),然后调整整体位置就可以了。

  ----⑤ 如何在FORM的受限触发子中提交保存数据

  ----在FORM中很多触发子是不能用COMMIT WORK语句的,当你在该触发子中使用了UPDATE,DELETE等操作并想立即存盘时,就需要COMMIT WORK语句了。首先在服务器端建立DB_SQL_COMMIT这个过程。

  ----然后在FORM中该触发子中调用过程DB_SQL_COMMIT;就可以了,当然你可以根据自己需要将该过程加入参数,这样通过参数可以得到执行DML语句的权限。

  ----⑥ 如何在FORM中实现某数据项自动按记录序号加一操作

  ----设块名为VO,要操作的数据项为VO_ID,在该块中建立块级触发子WHEN-CREATE- RECORD,加入如下代码:

  :VO_ID:=:System.Trigger_Record;

  ----这样每当生成新记录时VO_ID就会自动加一了。

  ----⑦ 如何在一个FORM中调用另一个FORM,或在一个块中调用另一个块时显示特定的记录有时用户会要求在调用另一个FORM时,只显示相关的记录,举例如下,在一个FORM的块中有一个按钮,在按钮触发子中加入如下代码:

  

DECLARE

  PM

  PARAMLIST;

  BEGIN

  PM:=GET_PARAMETER_LIST('PM');

  IF NOT ID_NULL(PM) THEN

  DESTROY_PARAMETER_LIST('PM');

  END IF;

  PM:=CREATE_PARAMETER_LIST('PM');

  ......................

  ADD_PARAMETER(PM,'THE_WHERE',

  TEXT_PARAMETER,'EM_NAME=''EM4''

  AND EM_PROJECT_NAME=''支架预制''');

  OPEN_FORM('PAYMENT',ACTIVATE,SESSION,PM);

  END;