




已阅读5页,还剩14页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第十六章INPUT语句介绍INPUT语句语法,及用于修改省缺属性的OPTION语句。往数据库输入信息的两个基本步聚是:l l把信息输入到程序变量中l l把程序变量的值插入到数据库中对应上面两个骤,INFORMIX-4GL有两个语句来处理这些信息传输: INPUT语句和INSERT语句。这章主要讲INPUT语句,在另一章再讲INSERT语句。INPUT语句用于通过屏幕从用户处取得信息,并传给程序变量。INPUT语句用于:l l 初始化程序变量为缺省的NULL值l l 把程序控制权转给用户l l 若Form文件有DEFAULT属性则显示缺省值l l 让用户在Form的域中输入信息l l 在用户离开域时自动把信息传给程序变量l l 等待用户输完数据的信息INPUT语句为我们作了许多工作,在用INPUT语句之前,必须满足以下几点要求:l l 必须有打开并显示的Forml l 数据输入的每个域必须有相应的程序变量相对应Form实例:DATABASE storesSCREEN size 24 by 80CUSTOMER FORMNumber:f000First Name:f001Last Name:f002Company:f003Address:f004f005City:f006State:a0Zip Code:f007Telephone:f008ENDTABLEScustomerATTRIBUTESf000 = customer.customer_num;f001 = customer.fname;f002 = customer.lname;f003 = pany;f004 = customer.address1;f005 = customer.address2;f006 = customer.city;a0 = customer.state;f007 = customer.zipcode;f008 = customer.phone;END定义变量的方法是在DEFINE后跟记录名,记录名用于指示记录中的变量组。上图中的第一个例子在gr_customer记录中列出了所有变量名,这种方法有两个好处:l l不必查看表就可以知道记录中有多少变量l l若表结构改变了,不必一定要改程序(只要重编译程序以识别对表的修改)当用RECORD LIKE语法时必须清楚数据库结构,如上图第二个例子,gr_customer记录包括与customer表中十个字段相应的十个变量。当用LIKE保留字隐式定义记录时,必须在DEFINE之前写明DATABASE语句,由它告诉DEFINE语句到哪儿找相应的数据类型。在执行INPUT语句时满足下面的要求:l l Form要打开并显示l l 定义好程序记录变量l l 数据库中要有放置输入值的表INPUT语句用于从Form接收信息给程序变量,根据需要及程序结构,INPUT语句有不同的使用方法。上图例子中的INPUT语法为:INPUT程序变量列表 FROM域列表列出的程序变量必须是在INFORMIX-4GL的模块中定义过,域列表来自Form文件中ATTRIBUTES区域。对于列在INPUT语句中的程序变量,必须与FORM中的域一致,且顺序也必须一致。光标将按域列表的次序移动。用INPUT输入比较好,因为它可以比较清楚地显示输入域且光标可以按域移动,而且可以限制哪些域允许输入。例如:只想输入fname、lname和company域,就可以用下面的方法:INPUTgr_customer.fname,gr_customer.lname,gr_pany FROMfname,lname,company在用户从域中移走光标时,INPUT语句把数据从Form放到相应的程序变量中。一旦INPUT语句把程序控制权交给用户后,在用户输入完要让程序继续运行。INFORM1X-4GL提供了三种交还控制权的方法。l l 缺省条件在Form的最后一个域输入完数据后按RETURN键,将自动让程序继续运行。如在上图中,在输入完客户电话号后按RETURN,程序将继续运转INPUT语句后面的代码。l l ACCEPT键若用户这次不想输入电话号码怎么办?还有别的方法离开INPUT语句吗?回答是肯定的。若用户按ACCEPT键(缺省为ESC键)程序将继续执行下一行代码。l l INTERRUPT键第三种退出INPUT语句的方法是按INTERRUPT键。当按INTERRUPT键后,程序立即处理END INPUT语句后面的语句,INPUT中的任何子句都将被跳过,它用于中断INPUT语句。程序实例:globals “cust_main.4gl”function cust_menu()open window w_cust at 3,3 with 15 rows,65 cilumns attribute(border)display form custformmenu “CUSTOMER”command “Query” “Search for a customer.”Call dummy()command “Next” “Go to next customer.”Call dummy()command “Add” “Add a new customer.”Call input_cust()command “Exit” “Exit to Main Menu.”Exit menuend menuclose window w_custend functionfunction input_cust()inputgr_customer.fname,gr_customer.lname,gr_pany,gr_customer.address1,gr_customer.address2,gr_customer.city,gr_customer.state,gr_customer.zipcode,gr_customer.phonefromfname,lname,company,address1,address2,city,state,zipcode,phoneend functionfunction dummy()error “Function not yet implemented.”end function若不想用ESC键作为ACCEPT键,可用OPTION语句改变。如上图例子中,ACCEPT键被改成了F1。到最后一个域后从INPUT语句退出的缺省条件,会把用户搞糊涂,若在移到最后一个域之前出了错,就不能回到前面去修改了。这样操作起来很麻烦,用户不得不通过UPDATE语句改正错误。缺省的条件可通过在程序的OPTION部分中加入INPUT WRAP改变,加入它之后可以把光标移回到第一个域,而不是跳转到INPUT语句的后面执行。用BY NAME的INPUT语句语法如下:INPUT BY NAME程序变量.*其中程序变量是在INFORMIX-4GL模块中定义的记录变量。用上图中的语句必须使gr_customer记录中的变量名与Form中的域一致,光标依据DEFINE语句中的顺序在域中移动。如上图例子中,将按customer表的字段顺序移动。INFORMIX-4GL要检查记录中的变量是否与Form域相匹配。带BY NAME和THRU的INPUT语句的语法是:INPUT BY NAME程序变量 THRU 程序变量其中程序变量必须是记录元素。上图例子中的gr_customer记录中命名的变量必须同Form域列表相同,用INPUT的这种方法可以在用BY NAME语法的同时指定输入域。程序实例:Modul 1 cust_globs.4gldatabase storesglobalsdefine gr_customer record like customer.*end globalsModule 2 cust_main.4glglobals “cust_globs.4gl”maincall prog_init()call main_menu()end mainfunction prog_init()open form custform fron “custform”end functionfunction main_menu()menu “MAIN MENU”command “Customer” “Go to the CUSTOMER menu.”call cust_menu()command “Orders” “Add a new order.”call dummy()command “Exit” “Exit to o.s.”end menuend functionfunction cust_menu()open window w_cust at 3,3 with 15 rows,65 columns attribute(border)display form custformmenu “CUSTOMER”command “Query” “Search for a customer.”call dummy()command “Next” “Go to next customer.”call dummy()command “Add” “Add a new customer.”call input_cust()command “Exit” “Exit to Main Menu.”exit menuend menuclose window
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025湖南省肿瘤医院高层次人才公开招聘44人考前自测高频考点模拟试题有答案详解
- 2025年湖南长沙水业集团有限公司春季校园招聘24人模拟试卷及完整答案详解1套
- 2025年宁夏医科大学自主公开招聘模拟试卷及答案详解(名师系列)
- 2025年甘肃庆阳华池县事业单位选调工作人员考前自测高频考点模拟试题及完整答案详解
- 2025北京林业大学附属实验小学招聘1人考前自测高频考点模拟试题及答案详解(历年真题)
- 小学安全培训情况总结课件
- 广汽丰田员工安全培训课件
- 广汉安全员培训时间课件
- 2025江苏南京交通职业技术学院招聘12人模拟试卷及答案详解(典优)
- 山西省【中职专业高考】2025年中职高考对口升学(理论考试)真题卷【土木建筑大类】模拟练习
- 肿瘤疗效评估新标准mRECIST标准
- 网络热梗是否融入现实生活
- 乐乐课堂版奥数三年级
- 口腔疾病的预防与治疗措施
- 汽车机械基础 课件 绪论
- 客车检车员-中国铁路兰州局集团有限公司编
- 胖东来收银管理制度
- 中医护理操作并发症预防及处理
- 《混凝土结构耐久性电化学修复技术规程》
- 产后骨盆修复培训课件
- 桥式起重机Q2练习测试题附答案
评论
0/150
提交评论