说明
Form调用Form是我们经常回遇到的问题。可以使用Form提供的API来实现。在Form的API中提供了如下几个api实现form调用。
|-call_form
|-new_form
|-open_form
call_form打开一个新的form。不过保持父form的状态。形式如下:
CALL_FORM(formmodule_name VARCHAR2,display NUMBER, query_mode NUMBER, paramlist_name VARCHAR2);
参数说明:
ormmodule_name:form的名字。
display:调用之前是否隐藏
query_mode:是否允许用户在新的form上进行增删改查的操作。
parameterList_name:form的参数。Parameterlist对象。
new_form直接替换掉应用程序中的当前的form。
NEW_FORM(formmodule_name CHAR,rollback_mode NUMBER,query_mode NUMBER,parameterList_name CHAR);
其中formmodule_name是必须的参数。其他参数可选。
formmodule_name:指具体的form名字,有路径时需要加上。
rollback_mode:表示form在没有提交后是否回滚。包含三个可选值:TO_SAVEPOINT、NO_ROLLBACK、FULL_ROLLBACK。
query_mode:是否允许用户在新的form上进行增删改查的操作。
parameterList_name:form的参数。Parameterlist对象。
new_form还有其他的重载形式。不过参数的含义均相同!
open_form同时打开多个form在同一个应用中。形式如下:
OPEN_FORM(formmodule_name VARCHAR2,activate_mode NUMBER,session_mode NUMBER, paramlist_id PARAMLIST);
参数说明:
formmodule_name与paramlist_id和上面两个procedure一样。
activate_mode:设置焦点,使窗口激活。
session_mode:是否和父form分享session。
三个的区别在于call_form打开一个form,但是父form还在存在,new_form是新开一个form,原来的form就不存在了,open_form则是父form和子form一同存在应用中。
举例
declare pl_id paramlist; begin pl_id := Get_Parameter_List('plReport'); IF NOT Id_Null(pl_id) THEN Destroy_Parameter_List( pl_id ); END IF; pl_id := Create_Parameter_List('plReport'); Add_Parameter(pl_id,'P_ORGANIZATION_ID',TEXT_PARAMETER,:PARAMETER.P_ORGANIZATION_ID); Add_Parameter(pl_id,'P_STOCK',TEXT_PARAMETER,:PARAMETER.P_STOCK); Add_parameter(pl_id,'P_REPORT_SERVER',text_parameter,v_server); IF :GTINVCP.RAD_GRP = 1 THEN call_form (:PARAMETER.P_PROG_PATH||'FORM//GTOEFHQK1_HL.fmx', HIDE, DO_REPLACE,NO_QUERY_ONLY,pl_id); ELSIF :GTINVCP.RAD_GRP = 2 THEN call_form (:PARAMETER.P_PROG_PATH||'FORM//GTOEFHQK2_HL.fmx', HIDE, DO_REPLACE,NO_QUERY_ONLY,pl_id); END IF; exception when others then null; end;
说明:
申明部分:
pl_id paramlist; 申明一个paramlist类型的对象,用于传递参数。
创建参数
pl_id := Get_Parameter_List('plReport'); IF NOT Id_Null(pl_id) THEN Destroy_Parameter_List( pl_id ); END IF; pl_id := Create_Parameter_List('plReport');
创建在各paramlist对象。
赋值
Add_Parameter(pl_id,'P_ORGANIZATION_ID',TEXT_PARAMETER,:PARAMETER.P_ORGANIZATION_ID); Add_Parameter(pl_id,'P_STOCK',TEXT_PARAMETER,:PARAMETER.P_STOCK); Add_parameter(pl_id,'P_REPORT_SERVER',text_parameter,v_server);
将form需要的参数添加到paramlist对象中
调用
IF :GTINVCP.RAD_GRP = 1 THEN call_form (:PARAMETER.P_PROG_PATH||'FORM//GTOEFHQK1_HL.fmx', HIDE, DO_REPLACE,NO_QUERY_ONLY,pl_id); ELSIF :GTINVCP.RAD_GRP = 2 THEN call_form (:PARAMETER.P_PROG_PATH||'FORM//GTOEFHQK2_HL.fmx', HIDE, DO_REPLACE,NO_QUERY_ONLY,pl_id); END IF;
这里使用call_form调用,当子form退出的时候,返回到父form。
相关推荐
这在开发GUI应用程序时尤为常见,例如一个窗体(Form1)打开另一个窗体(Form2),然后Form2执行某些操作并返回结果给Form1,或者调用Form1中的方法。这个过程可以通过多种方式实现,其中一种常见且灵活的方法是使用...
本文将根据提供的标题、描述、标签以及部分内容,详细介绍如何在C#的一个窗体中调用另一个窗体的方法,并探讨其中涉及的技术细节。 ### C#中在一个窗体里调用另一个窗体的方法 #### 1. 创建并初始化窗体 在C#中,...
### Form2调用Form1控件的解决方案 #### 背景与问题描述 在Windows Forms应用程序开发过程中,经常会遇到需要在不同的窗体之间进行交互的情况。例如,当用户在`Form1`上的一个按钮(假设为`Button1`)被点击时,会...
在C#编程中,"form调用form"指的是在一个窗体(Form)中启动或与另一个窗体进行交互的操作。这种技术通常用于构建多窗体应用程序,其中不同的窗体负责不同的功能区域。以下是对这个主题的详细解释: 1. **窗体间的...
在C#编程环境中,"form调用"是指创建和管理Windows Forms的应用程序。Windows Forms(简称WinForms)是.NET Framework提供的一种用户界面开发工具,它允许开发者构建具有丰富图形界面的桌面应用程序。在这个主题中,...
本文将详细讲解如何通过一个窗体(Form1)来关闭另一个窗体(Form2),以及实现这一功能所涉及的关键知识点。 首先,我们需要理解Windows Forms的基本结构。Windows Forms是.NET Framework提供的一种用于构建桌面...
- 定义DLL的接口,通常是在一个接口单元(Interface Unit)中声明你的FORM类以及相关的函数和方法。 2. **暴露FORM到DLL接口**: - 在接口单元中,公开FORM类。例如,你可以声明一个类如`TMyFormClass : TForm`,...
在进行FORM调用REPORT之前,确保已经安装了Oracle Forms和Oracle Reports服务器,并且正确配置了相应的数据库连接和环境变量。 2. **创建Report**: 在Oracle Reports Builder中,根据需求设计报表。这包括选择...
压缩包中的`WSTest`可能是一个测试项目或测试文件,用于验证服务创建、Form调用和Web调用功能是否正常工作。这可能包括测试用例、模拟数据以及验证服务操作结果的代码。 5. **安全性与性能考虑**: 在实际应用中...
C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现图形嵌入form的panel中 C#调用Matlab画图,实现...
在C#编程中,Form1和Form2之间的数据传递是一个常见的需求,特别是在开发Windows桌面应用程序时。本主题将深入探讨如何在两个独立的窗体之间有效地传递数据,以实现Form1的TextBox控件值传递到Form2,以及Form2的...
最后,`SAP SCRIPT FORM.doc`很可能是一个基础教程,涵盖了Scriptform的基本概念和创建过程,包括如何定义形式、添加元素、设置布局以及调用函数模块等。 总的来说,这个学习例子将带你逐步了解SAP Scriptform的...
2. **在Form1中调用Form2**: 在Form1中,我们可以创建一个按钮(Button),双击按钮以生成点击事件处理程序。在代码编辑器中,添加以下代码: ```csharp private void button1_Click(object sender, EventArgs e) {...
本文举例介绍了从Oracle的FORM中调用REPORT的实用技巧。
首先,在一个Form中声明一个静态的公共变量,然后在另一个Form中可以直接访问这个变量来读写数据。例如: ```csharp // 在Form1中声明公共变量 public static string sharedValue; // 在Form2中访问并修改这个变量...
在Oracle E-Business Suite (EBS) 中,Form开发是一个核心部分,用于构建企业级的业务应用程序。在实际应用中,往往需要根据不同用户或部门的需求进行定制化,以提高工作效率和用户体验。"ORACLE ebs FORM开发中form...
- **Show方法:** 一个Form可以通过`Form.Show`方法来显示另一个Form。例如,如果要从Form1调用Form2,可以在Form1的某个事件处理程序中写入`Form2.Show`,这样当触发该事件时,Form2将被显示出来。 - **Hide方法...
在Windows Forms(Winform)应用程序开发中,有时我们需要在不同的项目之间进行交互,例如在一个类库项目或Winform项目中打开另一个Winform项目的窗体。这通常涉及到项目间的引用和对象实例化。以下是一个详细的过程...
生成的图像文件被加载到一个`PictureBox`控件中,从而在Windows Form上显示出来。 在程序关闭时,通过`Dispose()`方法清理R引擎实例,释放资源。 总的来说,这个过程展示了如何在C#的Windows Form应用中嵌入R绘图...
在提供的示例代码中,可以看到一个简单的登录表单: ```html <form name="login" method=post> 用户名: <input type=text name="userName" size=20><br> 密码: <input type=password name="passWord" size=21><br...