当前位置: 代码迷 >> PB >> 请问下:OpenSheetWithParm()函数的 windowtype
  详细解决方案

请问下:OpenSheetWithParm()函数的 windowtype

热度:34   发布时间:2016-04-29 08:29:35.0
请教下:OpenSheetWithParm()函数的 windowtype
都有哪些,分别有什么作用
我这有个例子,不过我看不懂这个 style2
OpenSheetWithParm(w_import_company_storage_all,"style2", ParentWindow,0,Layered!)

------解决方案--------------------
举例
第一个:
window mywx
//w_work_moban mywx
opensheetwithparm(mywx,1,"w_work_moban",w_00mainsheet,8,original!)
意义:定义一个窗体变量mywx,其类型为w_work_moban,给此窗体赋参数1
第二个:
opensheetwithparm(w_work_moban,1,w_00mainsheet,8,original!)
意义:打开w_work_moban窗体,并给此窗体赋参数1

两者区别:前者每次单击都打开一个w_work_moban实例,后者第二次点击时激活上次打开窗体。
//-------------------------------
你的w_import_company_storage_all是一个窗体,"style2", 是窗体string参数
------解决方案--------------------
OpenSheetWithParm(w_import_company_storage_all,"style2", ParentWindow,0,Layered!)

w_import_company_storage_all为一个窗口变量,非MDI类型。
"style2" 指定了你打开的实际窗口。这个窗口必须是w_import_company_storage_all同名的窗口或者是w_import_company_storage_all变量的类型的派生窗口。
parentwindow 代指 MDI窗口 
0 是打开的child窗口在MDI窗口上菜单中的位置
Layered!是窗口的排列显示类型



------解决方案--------------------
OpenSheetWithParm ( sheetrefvar, parameter {, windowtype }, mdiframe
{, position {, arrangeopen } } )
参数windowtype为可选参数,如果带上该参数,则参数所处位置为第3个参数,而你的示例
OpenSheetWithParm(w_import_company_storage_all,"style2", ParentWindow,0,Layered!)
中,"style2"是第2个参数,所以它肯定是 parameter 参数
------解决方案--------------------
OpenSheetWithParm ( sheetrefvar, parameter {, windowtype }, mdiframe
{, position {, arrangeopen } } )
显示而言,{, windowtype }可有可无,parameter必须有,因此,"style2"是参数。
我测试过两种情况。
------解决方案--------------------
这么来说吧
假设你的pbl中存在窗口对象w_mdi_win
则,通过在菜单中,使用
C/C++ code
① opensheetwithparm(w_mdi_win, "style2", parentwindow, 0 , Layered!)//表示打开并实例化mdi窗口w_mdi_win,并传入参数"style2"
------解决方案--------------------
上述打开方法②基本上是不被使用的
想限制mdi子窗口只能被打开一个,则用①,不限制打开个数则用②
一般都是使用②
------解决方案--------------------
③window lw
pensheetwithparm(lw, "style2", "w_mdi_win", parentwindow, 0 , Layered!)
//表示打开mdi窗口w_mdi_win,并传入参数"style2"
如果我想利用这种形式打开,并要控制其打开窗口。
比如,第一次传参数"1",第二次"2",第三次"3",那么是打开三个实例,如果第四位仍传入"1",希望激活第一次打开的窗口,有什么办法?
------解决方案--------------------
GetActiveSheet ( )
GetNextSheet ( )
遍历所有mdi子窗口
至于如何判断该窗口接收的参数是什么,你自己想办法