INPUT指令
说明:
1. 当程序执行到INPUT指令时,会将控制权交给用户,让用户输入数据。
2. 用户输入完字段的数据,会将数据回传给程序中的变量接收。
3. 只要执行到INPUT的指令,程序会将每个字段Default为NULL。
反之不需要将每个字段的值都变为NULL的话,需添加(WITHOUT DEFAULTS)
范例(cxrq005):
1、首先在MAIN函数前定义客制变量,用来接收用户数据;
#add-point:自定義模組變數-客製(Module Variable) name="global.variable_customerization"
TYPE type_g_input RECORD
xrsduc010 STRING,
xrsduc010_desc STRING,
xrsduc010_desc_1 STRING
END RECORD
DEFINE g_input type_g_input
#end add-point
以上这些变量,均对应规格上的控件代号进行定义;
2、在cxrq005 _ui_dialog()函数中的DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)领域下自定义INPUT;
DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)
#add-point:input段落 name="ui_dialog.input"
INPUT g_input.xrsduc010 FROM xrsduc010 ATTRIBUTES(WITHOUT DEFAULTS)
ON ACTION controlp INFIELD xrsduc010
INITIALIZE g_qryparam.* TO NULL
LET g_qryparam.state = 'c' #c-多选,i-单选
LET g_qryparam.reqry = FALSE
LET g_qryparam.default1 = g_input.xrsduc010 #給予default值
LET g_qryparam.arg1 = g_site
CALL cq_pmab001_2() #呼叫開窗
DISPLAY g_qryparam.return1 TO xrsduc010 #將開窗取得的值回傳到變數
#DISPLAY g_qryparam.return2 TO xrsduc010_desc
#DISPLAY g_qryparam.return3 TO xrsduc010_desc_1
END INPUT
#end add-point
如有多个控件的输入控制权需要交给用户来输入,依次在INPUT指令中输入接收数据的变量和控件代号即可。
CONSTRUCT指令
此指令可让用户在画面上输入查询条件(通称Query By Example;QBE),以取得用户的查询范围数据。用户的查询数据会组成一串WHERE指令(参下页批注),并置入设定好的变量中。若使用者未输入任何条件,即按下『确定』离开CONSTRUCT,系统也会自动于此变量中补入『1=1』
范例同上:
1、同上;
接收WHERE指令的变量最好使用STRING类型;
2、在cxrq005 _ui_dialog()函数中的DIALOG ATTRIBUTES(UNBUFFERED,FIELD ORDER FORM)领域下自定义CONSTRUCT:
#add-point:construct段落 name="ui_dialog.construct"
CONSTRUCT BY NAME g_input.xrsduc010 ON xrsduc010
ON ACTION controlp INFIELD xrsduc010
INITIALIZE g_qryparam.* TO NULL
LET g_qryparam.state = 'c'
LET g_qryparam.reqry = FALSE
LET g_qryparam.default1 = g_input.xrsduc010 #給予default值
LET g_qryparam.arg1 = g_site
CALL cq_pmab001_2() #呼叫開窗
DISPLAY g_qryparam.return1 TO xrsduc010 #將開窗取得的值回傳到變數
#DISPLAY g_qryparam.return2 TO xrsduc010_desc
#DISPLAY g_qryparam.return3 TO xrsduc010_desc_1
NEXT FIELD xrsduc010
END CONSTRUCT
#end add-point
①域名和变量名称相同时: CONSTRUCT BY NAME char_variable ON column_list
反之:CONSTRUCT char_variable ON column_list FROM field_list
说明:
char_variable为接取用户输入数据的字符串变量(建议以STRING格式变量接取)
column_list为对应到表格(TABLE)的域名清单(逗号隔开)
field_list为画面(WINDOW或是FORM)上的字段代码清单(逗号隔开)
注:INPUT的数据输入后,其值是分散于个变量中,若要以INPUT指令来接取用户所输入的查询条件,则必需以一连串复杂的字符串组合指令来组出查询指令所需要的WHERE条件。而CONSTRUCT的优点在:系统会自动判别用户输入条件并组合,后续只要将之与SELECT等指令组合即可,可降低设计的复杂度。