




已阅读5页,还剩21页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第四章:PB编程1、MessageBox、Open、close、run函数:P89Int choosenumChoosenum=Messagebox( “测试”,”确认后可进入系统,是否确认?”,question!,YesNo!,2)If choosenum=1 then Open(w_main)Else /Returnrun(C:WINDOWSsystem32calc.exe) /打开计算器close(this) / /关掉窗口End if2、运算符:P91int a,b,cboolean da=2;b=6;c=10d=not(ab)and(b50w_yang.title=从1加到50的总和为+string(sum)5、rand(n)和randomize(n):P85i=rand(10)w_yang.title=string(i)randomize(0) /这句有无对程序影响很大,有可以在多次运行程序时生成不同的序列6、嵌入式SQL语句的使用:P100/代码加入某个窗体的clicked事件中/嵌入式SQL语句:select(针对student表,程序中必须同数据库相连才可以操作数据库)int s1string s2,s3s1=2select name,sex into :s2,:s3 from student where id=:s1;sle_1.text=s2;sle_2.text=s3;7、使用SQL语句修改基本表的结构1)使用ADD子句增加新列,一般需写出数据类型。alter table course add c_kind char(20);2) 使用drop子句删除完整性约束条件,ASA数据库不可以删除属性列。alter table course drop c1; /c1表示表中对年龄的默认值定义/在PB画板中可以删除、插入字段3)使用modify子句修改列的原定义,这个定义主要用于加宽列的宽度。尽管有些数据库允许对列名和数据类型进行修改,但是一般不允许这么做,以免丢失原表中的数据。alter table course modify c_hour char(30); /此句运行有误 26第五章:应用程序对象 application1、应用对象的Open事件:P114connect; If sqlca.sqlcode=0 thenMessagebox(“OK”,”数据库连接成功”) ElseMessagebox(“错误”,”数据库连接失败!原因可能是:”+sqlca.sqlerrtext)End ifOpen(w_yang1)2、应用对象的Idle事件:P114方法一:/先在应用对象的Open事件中打开一个窗体w_yangOpen(w_yang)/再在w_yang的clicked事件中加入代码:Idle(1)/在应用对象的idle事件中加入代码:w_yang.title=”好好学习,天天向上”方法二:可以省略程序Open(w_yang),而直接run/preview窗体,结果相同。3、事务对象的使用:P117/下面的代码放入应用对象的Open事件中Transaction Test_trans /声明事务对象Test_trans=create transaction /创建事务对象类型的对象实例/ Profile fam_odbc_profileTest_trans.DBMS = ODBCTest_trans.AutoCommit = FalseTest_trans.DBParm = ConnectString=DSN=fam_odbc;UID=;PWD=connect using Test_trans;If Test_trans.sqlcode=0 then Messagebox(OK,数据库连接成功)Else Messagebox(错误,数据库连接失败!原因可能是:+sqlca.sqlerrtext)End ifOpen(w_yang1)第六章:用户界面 窗口与菜单设计1、窗口的Open事件:P127/ Profile fam_odbc_profile /建立数据库的连接SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=fam_odbc;UID=;PWD=connect;If SQLCA.sqlcode=0 then Messagebox(OK,数据库连接成功)Else Messagebox(错误,数据库连接失败!原因可能是:+sqlca.sqlerrtext)End if /设置窗口和控件的属性w_yang.visible=truesle_1.visible=False2、clicked事件:P127String keyenterKeyenter=”0鼠标左键n 2鼠标左右键同时n 4shift+鼠标左键n 8ctrl+鼠标左键n”Messagebox(“clicked”+string(flags),keyenter)sle_1.text=string(xpos) /把xpos的数值输出sle_2.text=string(ypos)3、Key事件:P127If Keyflags=0 then If key=KeyF2! Then Messagebox(测试,按下的是F2键) Elseif key=KeyF1! Then Messagebox(测试,按下的是F1键) else Messagebox(测试,按下的不是F1、F2、Shift、Ctrl键中的其中之一) End if Elseif Keyflags=1 then Messagebox(测试,至少按下了Shift键)Elseif Keyflags=2 then Messagebox(测试,至少按下了Ctrl键)/Elseif Keyflags=3 then/Messagebox(测试,至少按下了Shift+Ctrl键) /这种情况实际不容易操作End ifSt_1.Text=String(KeyFlags) /此处不宜用单行编辑框,光标问题4、OpenWithParm函数:P129/建立两个窗口w_yang和w_yang1,其中w_yang中放置一个单行编辑框sle_1/在w_yang窗口中的clicked事件中加入代码:OpenWithParm(w_yang1,sle_1.text) /sle_1.text是第一个窗口向第二个窗口传递的参数/在w_yang1窗口中的clicked事件中加入代码:W_yang1.title=Message.stringParm5、close函数:P130/关闭本窗口,把代码加入clicked事件中Close(this) /或者close(w_yang) 6、CloseWithReturn函数:P130/建立两个窗口w_yang和w_yang1(此窗口的类型一定为response!),其中w_yang中放置/一个单行编辑框sle_1/在w_yang窗口中的Open事件中加入代码:Open(w_yang1)/在w_yang的clicked事件中加入代码:sle_1.text=Message.stringParm/在w_yang1窗口中的clicked事件中加入代码:closewithreturn(this,w_widow1.title) /sle_1.text是w_yang1窗口向w_yang窗口返回的参数7、hide函数和show函数:P130/在w_yang窗口的clicked事件中Open(w_yang1)/在w_yang1的clicked事件中W_yang.hide() /隐藏窗口/在w_yang1的rbuttondown事件中W_yang.show() /显示窗口8、move函数和resize函数:P131/在w_yang窗口的clicked事件中this.move(5,5)/在w_yang的rbuttondown事件中this.resize(1000,1000)9、菜单设计加速键、快捷键、窗口中动态关联菜单设计菜单如图:1) 加速键:两种设计方法(&File或File(&F)顶层菜单:File,AIT+F起效;子菜单:Open、Close,当菜单被打开时直接O、C起效;2) 快捷键:顶层菜单:不能设计快捷键;子菜单:直接在属性窗口中设置,常CTRL+X,在菜单不打开时有效。3)检验菜单是否起作用的程序:messagebox(问候,早晨好,同学们);4)窗口中动态关联菜单:w_widow.changeMenu(m_main)10、检验两个日期型数据大小的代码:(前章的)/把下列代码加入一个窗体(带有sle_1的单行文本编辑框)的clicked事件中date s1,s2int bs1=2010-03-23s2=2010-10-03b=DaysAfter(s1,s2)sle_1.text=string(b)if b0 thenmessagebox(结论,s1在s2的前面,s1小)elsemessagebox(结论,s1在s2的后面,s1大)end if11、存储过程:是SQL Server服务器上的一组预先编写好的并且编译过的SQL语句组。它是一种程序过程,可以接受参数,返回状态值和参数值。编写和使用存储过程可以提高SQL Server服务器的工作性能和工作效率。在SQL Server中系统存储了大量的存储过程。1)例如:在企业管理器中(在course表中):CREATE PROCEDURE dbo.check_infoid integer=1 ASselect c_id,c_name,c_hourfrom course where c_id=id;GO在查询分析器中可以运行这个存储过程:exec check_info id=2可以看到结果:2 高等数学 62 2)在PB程序中运行这个存储过程12、触发器:是一种特殊的存储过程。主要功能是监视用户对数据的修改。如果针对一个数据表创建了触发器,则当数据被修改时,SQL Server便使用触发器自动执行,以便对数据的修改采用一些适当的措施,从而保证数据的完整性和安全性。1)在企业管理器中(在course表中):(触发器较复杂,故仅仅看一个简单例子)CREATE TRIGGER my_Trigger ON dbo.course FOR INSERT, UPDATE, DELETE ASprint 这是我的第一个触发器!在查询分析器中可以输入触发语句从而触发这个触发器:update courseset c_id=5 where c_id=4可以看到消息:这是我的第一个触发器!2)在PB程序中运行这个触发器第七章:窗口控件1、单行编辑框的方法和事件:1)setfocus()方法:将输入焦点放置在控件上sle_1.setfocus() /将此代码放在窗口的Open事件中2)getfocus()事件:当光标移动到单行编辑器上时触发,常初始化text的值sle_2.text= /清空text的值3)Modified事件当控件内容修改之后触发,一般用于检查输入的文本;用鼠标单击其他控件时才触发这个事件(点击窗口空白区域不触发)。If len(sle_1.text)6 then Messagebox(“出错”,”数据长度不足6位,请核实。”)End if2、标签控件的标签页上的控件的使用,如:编辑框控件tab_1.tabpage_2.sle_1.text=欢迎使用 /可以在窗口的Open事件中3、列表框的方法和事件:1)方法:可以在窗口的clicked事件中实验lb_1.additem(投资账户) /加入某项目lb_1.insertitem(投资账户3,1)lb_1.deleteitem(1)sle_1.text=string(lb_1.totalitems() /求项目总数2)事件:selectionchanged()、doubleclickedst_1.text=this.selecteditem() /代码可以加入到事件selectionchangedthis.deleteitem(index) /代码可以加入到事件doubleclicked4、单选按钮在rb_1的clicked事件中加入代码:parent.backcolor=rgb(255,0,0)在rb_2的clicked事件中加入代码:parent.backcolor=rgb(0,255,0)5、家庭理财系统的部分窗体设计及其部分功能代码1)w_about窗体的设计:确定按钮的clicked事件中加入的代码:close(parent)2) w_member家庭成员信息管理:个命令按钮中单击事件中的代码此处略去。3) w_szrec主要指定账户的流水账(1) 在w_szren的open事件脚本中设置掩码编辑框em_1和em_2中的缺省值脚本date rq1,rq2rq2=today()rq1=RelativeDate(rq2,-3)em_rq1.text=string(rq1,yyyy/mm/dd)em_rq2.text=string(rq2,yyyy/mm/dd)(2) cb_jzh的clicked事件用来打开窗口w_jzh:open(w_jzh)(3) cb_zhzh的clicked事件用来打开窗口w_zhzh:open(w_zhzh)(4) dw_1的doubleclicked事件中对数据窗口控件中记录进行修改,这个功能在w_xgrec中实现,此时要在不同窗口中传递记录的信息,故应创建一个全局的结构体变量s_szrec。一个全局的结构可以在不同工作区中进行复制。在dw_1的doubleclicked事件中加入如下代码:s_szrec rec1 /创建一个结构的实例变量/* 省略 */openwithparm(w_xgrec,rec1)4) w_zhzh主要用来实现两个账户之间的转账功能(1) 不同工作区的界面设计不可以复制。(2) 金额掩码编辑框的maskdatatype属性值为numericmask!.(3) W_zhzh的open事件中主要是完成一些初始化工作,如日期初始化为当前日期,将数据库中所有账户名称赋给转出、转入账户等。具体略去。(4) 在cb_zhzh的clicked事件中实现转账功能,代码如下:string zhch,zhru,jsr /zhch:转出帐户名;zhru:转入帐户名;jsr:经手人姓名decimal jine,jine1,zcye,zcyue,zrye,zryue /jine:转帐金额;zcye:转出帐户的前期余额;zcyue:/转帐后转出帐户的余额string zzrq /zzrq:转帐日期zzrq = em_rq.textif ddlb_zhch.text= then/判断转出帐户是否为空messagebox(注意,请选择转出帐户输入!)ddlb_zhch.setfocus()/将输入焦点放在转出帐户选择的下拉列表控件上else zhch = ddlb_zhch.textend ifif ddlb_zhr.text= then/处理转入帐户messagebox(注意,请选择转入帐户!)ddlb_zhr.setfocus()else zhru = ddlb_zhr.textend ifif double(em_je.text) = 0 then/处理转帐金额messagebox(注意,转帐金额为0无意义,请输入一个非零的转帐金额)else jine = double(em_je.text)/将非0的转帐金额转换为数值型jine1 = -jineend ifif ddlb_ren.text = then/处理经手人信息messagebox(注意,请选择一个经手人!)elsejsr = ddlb_ren.textend ifselect yue into :zcye from zhh/从帐户信息表zhh中将转出帐户的余额取出,赋值给zcyewhere mc = :zhch;if sqlca.sqlcode 0 then/数据库操作是否成功及其处理messagebox(抱歉,不成功,错误原因可能是+sqlca.sqlerrtext)return -1end ifzcyue = zcye - jine /计算转帐后转出帐户的余额select yue into :zrye from zhh/从帐户信息表zhh中将转入帐户的余额取出,赋值给zryewhere mc = :zhru;if sqlca.sqlcode 0 thenmessagebox(抱歉,不成功,错误原因可能是+sqlca.sqlerrtext)return -1end ifzryue = zrye + jine / /计算转帐后转入帐户的余额insert into szrec(rq,zh,qqye,szlx,szxm,jine,yue,reny,sm)values(:zzrq,:zhch,:zcye,转帐转出,转帐,:jine,:zcyue,:jsr,转出到+:zhru);/向收支记录表中插入一行发生在转出帐户上的转出记录if sqlca.sqlcode 0 thenmessagebox(抱歉,帐务转出不成功,错误原因可能是+sqlca.sqlerrtext)return -1end ifupdate zhhset yue = :zcyuewhere mc = :zhch;/修改帐户信息表中转出帐户的余额insert into szrec(rq,zh,qqye,szlx,szxm,jine,yue,reny,sm)values(:zzrq,:zhru,:zrye,转帐转入,转帐,:jine1,:zryue,:jsr,从+:zhch+转入);/向收支记录表中插入一行发生在转入帐户上的转入记录if sqlca.sqlcode 0 thenmessagebox(抱歉,帐务转出不成功,错误原因可能是+sqlca.sqlerrtext)return -1end ifupdate zhhset yue = :zryuewhere mc = :zhru;/修改帐户信息表中转入帐户的余额messagebox(,转帐成功!)ddlb_zhch.text = ddlb_zhr.text = ddlb_ren.text = em_je.text = 5) w_jzh主要用来输入和处理在某个账户上发生的收支记录(1) w_jzh的open事件主要完成一些初始化的功能,略去。(2) cb_ok的clicked事件,主要用于收支记载功能的实现:string zhh,szlx,szxm,jsr,smdecimal jine,qqye,yestring rqrq = em_rq.textif ddlb_zhh.text= then/判断帐户是否为空messagebox(注意,请先选择一个帐户!)ddlb_zhh.setfocus()/将输入焦点放在帐户选择的下拉列表控件上else zhh = ddlb_zhh.textend ifif ddlb_szlx.text= then/判断收支类型是否为空messagebox(注意,必须选择收支类型!)ddlb_szlx.setfocus()/将输入焦点放在转出帐户选择的下拉列表控件上else szlx = ddlb_szlx.textend ifif ddlb_szxm.text= then/判断收支项目是否为空messagebox(注意,请选择一个收支类型!)ddlb_szxm.setfocus()/将输入焦点放在收支项目选择的下拉列表控件上else szxm = ddlb_szxm.textend ifif ddlb_ren.text= then/判断经手人是否为空messagebox(注意,请选择经手人!)ddlb_ren.setfocus()/将输入焦点放在经手人选择的下拉列表控件上else jsr = ddlb_ren.textend ifif double(em_je.text)=0 then/判断发生金额是否为0messagebox(注意,金额为0 无意义,请重新输入金额!)em_je.setfocus()/将输入焦点放在掩码编辑框em_je控件上else jine = double(em_je.text)end ifselect yue into :qqye from zhhwhere mc = :zhh;if sqlca.sqlcode 0 then/数据库操作是否成功及其处理messagebox(抱歉,不成功,错误原因可能是+sqlca.sqlerrtext)return -1end ifif szlx = 支出 thenjine = -jineend ifye = qqye + jineinsert into szrec(rq,zh,qqye,szlx,szxm,jine,yue,reny,sm)values(:rq,:zhh,:qqye,:szlx,:szxm,:jine,:ye,:jsr,:sle_sm.text);if sqlca.sqlcode 0 then/数据库操作是否成功及其处理messagebox(抱歉,收支记录录入不成功,错误原因可能是+sqlca.sqlerrtext)return -1end ifupdate zhhset yue = :yewhere mc = :zhh;if sqlca.sqlcode 0 then/数据库操作是否成功及其处理messagebox(抱歉,修改帐户余额不成功,错误原因可能是+sqlca.sqlerrtext)return -1elsemessagebox(,记录成功!)end ifddlb_zhh.text = ddlb_szlx.text = ddlb_szxm.text = ddlb_ren.text = em_je.text = sle_sm.text = 6) w_xgrec主要用来对w_szrec的数据窗口控件中选中的某条收支记录信息进行修改。(1)对日期、收支项目、辅助说明信息的修改可以直接修改。(2)当修改的信息为金额时,则属于同一个账户的发生在该记录之后的记录的当前余额和余额也要相应调整,涉及账户的余额也要调增,处理比较复杂。(3)w_xgrec的定义变量的视口中定义两个结构体的实例变量:s_szrec rec_old,rec_new(4)w_xgrec的open事件主要进行一些与本窗口功能有关的初始化工作:处理从父窗口传递来的消息。/以下代码将参数的值作为窗体控件的初值rec_old=message.Powerobjectparmsle_zhh.text = rec_old.zhsle_szlx.text = rec_old.szlxsle_szxm.text = rec_old.szxmsle_je.text = string(rec_old.jine)sle_ren.text = rec_old.renymle_sm.text = rec_old.smem_rq.text = string(rec_old.rq,yyyymmdd)rec_new = rec_oldcb_xg.enabled = true(5)每个编辑框的losefocus事件主要是将用户修改过的信息记录下来:如sle_ren的这个事件中代码:rec_new.reny = sle_ren.text(6)cb_xg的clicked事件,实现修改收支记录的功能。if rec_old = rec_new thenmessagebox(注意,没有做任何修改!)elseif (rec_new.rq rec_old.rq) or (rec_new.szxm rec_old.szxm) or &(rec_new.reny rec_old.reny) or (rec_new.sm rec_old.sm) thenupdate szrecset rq = :rec_new.rq, szxm = :rec_new.szxm, reny = :rec_new.reny, sm = :rec_new.sm where id = :rec_new.id; if sqlca.sqlcode 0 thenmessagebox(错误,数据库更新不成功,可能的原因是:n+sqlca.sqlerrtext)end ifend ifif rec_new.zh rec_old.zh thenmessagebox(注意,帐户计错的情况可做如下处理n1.在两个帐户之间直接执行一个转帐操作n2.将本条记录的金额改为0后重新记录)end ifif rec_new.szlx rec_old.szlx thenmessagebox(注意,收支类型错误的情况可做如下处理n直接将本条记录的金额改为0后重新记录)end ifif rec_new.jine rec_old.jine then update szrec set jine = :rec_new.jine, yue = qqye + :rec_new.jinewhere id = :rec_new.id;if sqlca.sqlcode 0 thenmessagebox(错误,数据库更新不成功,可能的原因是:n+sqlca.sqlerrtext)end ifupdate szrecset qqye = qqye + :rec_new.qqye - :rec_old.qqye, yue = yue + :rec_new.qqye - :rec_old.qqyewhere zh = :rec_old.zh and id :rec_old.id;if sqlca.sqlcode 0 thenmessagebox(错误,数据库更新不成功,可能的原因是:n+sqlca.sqlerrtext)end ifend ifend ifthis.enabled = false6、加入图片到记录中:可以在数据库中储存图片文件的具体路径,这样就像把图片文件储存到数据库中一样。1)界面设计:在数据库中建立一个表:shi_yan,他有2个字段:id,integer;image char(40);两个记录如下:其中image中存放具体的文件及路径。在相片的地方放置图片控件P_1;(可以先加载一个图片后调节其控件合适的大小,然后删除图片)2)则在查询按钮中加入的代码如下:string image1select shi_yan.image into :image1from shi_yan where shi_yan.id=:sle_1.text; /可见SQL语句具有对数据类型自动转换的能力:id是整形,sle_1.text是字符串型/检验SQL语句是否执行成功的语句/If sqlca.sqlcode=0 then/ Messagebox(OK,成功!)/Else/ Messagebox(错误,失败!原因可能是:+sqlca.sqlerrtext)/End ifp_1.picturename=image1 /注意:JPEG图形文件的后缀名是JPG。7、下拉列表框:)可以在属性窗口中添加选项,但是不能在此属性窗口中进行删除某项目。)可以在程序中添加选项,或者删除静态添加的某项目:/ddlb_1.additem(法国)/添加项目,添加的顺序与显示顺序相反/ddlb_1.additem(德国)ddlb_1.deleteitem(1) /删除项目,删除的顺序与静态设置项目的顺序相反第八章:数据窗口对象1、Quick Select数据源不妨选择contact的三个字段:id(整型)、street、zip(char型)1)、字段排序默认升序;2)、检索条件:对id可以设置为10和40,可以分为两行输入(回车可以转换行),这两行条件之间的关系为or;如果在第2个条件加and,则此时两行的条件实际为:10id10;7)、定义计算列:选择compute标签,同样选择contact表,在computer选项卡中输入(或选择)函数cos(x),再将x更改为对应字段contact.id。生成的SQL语句如下:SELECT contact.id, contact.street, contact.zip, cos(contact.id) FROM contact 8)、去除查询结果中的重复值:从菜单Design/Distinct。3、Query数据源:1)它的数据源是查询对象而不是表,这个数据源与SQL select数据源功能完全相同;2)定义数据源之前必须先建立查询对象,创建方法是File New Database标签 Query对象,再按照向导操作即可。4、Stored Procedure数据源1)Stored Procedure是一组经过编译和优化的执行数据库操作的SQL语句,它的执行速度很快。2)要调用存储过程必须先定义它,然后执行,用完后删除;具体语句如下:定义:create procedure ; 执行:execute procedure; 删除:drop procedure;例子:(打开数据库画板,在Isql session选项卡中)CREATE PROCEDURE dbo.sp_contacts_id integer=1 ASselect id,street,zipfrom contact where id=s_id;运行后可以生成存储过程:sp_contact;执行:exec sp_contact s_id=2;但执行时(使用时也这样)说contact表没有发现;3) 在示例数据库中可以选择存储:sp_customer_list,这个存储的定义如下:create procedure DBA.sp_customer_list()result(id integer,company_name char(35) /定义结果集begin select id,company_name from customer end4)如果自己定义结果集(用sp_customer_list),则可以是两个变量,并且类型、长度应该和存储过程中列对应。如:a long B string;5、列扩展属性视图:通过定义列的扩展属性可以定义列的有效性规则,就可以在用户移动输入焦点时发现输入数据是否有效。有效性规则实际是一个逻辑表达式,当值为真时数据有效,否则数据无效,系统可以给出相应的提示信息。1) 如果没有列扩展属性图,则由菜单:ViewColumn Specification打开。具体可以在示例数据库中选择表Employee的某些字段。6、数据窗口中的控件:1)按钮控件:可以是命令按钮和图像按钮,这些控件可以提高开发进度,节约系统资源。可以加在标题区或细节区。(1)General标签页中的Suppress Event复选框,如果选中则只执行Action下拉列表框中指定的动作,不会触发数据窗口控件的ButtonClicking和ButtonClicked事件。(2)Action下拉列表框指定了当用户单击按钮时完成的操作,此操作可以用户自定义也可以选择系统预定义的操作。l ageNext:跳转到下一页。l Sort:打开Specify Sort columns对话框设置排序条件,数据窗口的数据按指定方式排序。l Appnd Row:在数据窗口的最后一行后面增加一行l SaveRowsAs:用户选择路径、文件名、文件类型后将数据窗口中的数据保存到指定文件中。一般保存为记事本文件。2)静态文本对象:作为数据窗口的标题或者说明其他控件的作用和意义。3)数据列:是数据窗口中最常见、最重要的控件,一般放置在数据窗口的细节区。不过增加的列时只能增加创建数据窗口对象过程中在定义数据源时选择的列。4)计算域:让用户自行选择数据列或相关系统函数进行计算,计算域没有存放在数据库中。(1)添加计算域的方法:参考书中的步骤,计算域一般放在细节区。(2)系统预定义的计算域:PB提供了5种系统预定义的计算域,分别是平均值、统计计数器、累计求和、页码、当前系统日期。l 平均值、统计计数器、累计求和的添加方法:在细节区选择一个数据列,然后在下拉工具栏或Insertcontrols选择计算域的名字,则计算域会添加到数据窗口对象的汇总区。如:对ID列进行求均值。l 页码、当前系统日期的添加方法:方法同上边类似,比较常见的放置位置是页码放置在数据窗口的脚注区,当前系统日期放置在标题区。7、数据列的编辑风格和显示风格:1)数据列的编辑风格:在列的属性窗口中的Edit选项卡中。(1)单选按钮:数据的某一列只能从一组互斥的值中选择一个时可以使用这个按钮。在细节区中选中某列,然后在其属性窗口中进行相应设置。(2)复选框风格:2)数据列的显示格式: 指定数据窗口对象中列的显示格式。显示格式与列一起被存储,作为一种定义表示如何把列数据显示给用户。它是在列的属性窗口的Format标签页中进行设置的。在细节区选中某列后在属性窗口的Format标签页中进行设置。(1)字符串类型:n 如,可以将某个字符串类型的列的显示格式定义为: BLUE-n 表示以兰色显示字符串,前三个字符显示完后显示一个减号(-),再显示三个字符后显示一个减号,再显示7个字符,如超过7个,截断至第7个字符。(2)数字类型:n 如定义某列显示格式为: BLUE#,#.00;RED-#,#.00;BLACK0;NULLn 表示当该列为正数时,兰色显示,精确到小数点后两位,小数点前每3位数以逗号分隔;若为负数,红色显示,以负号开头,其它同正数;当该列为0时,以黑色显示数字0;若为空值,用NULL表示。 (3)日期型:具体可以选中示例数据库中的表employee中的某些字段(有日期型)n 格式定义:日期格式;日期为空的格式 n 例如可以设置某日期型(date)的列的显示格式为: yyyy年mm月dd日第九章:数据窗口控件1、添加数据窗口对象控件,及其函数setTrans( ) 、setTransObject( )、retrieve( )窗体设计如下:1) 窗体的Open事件中代码如下:(先在dw_1的dataobject中关联一个数据窗口对象d_employee)/ Profile EAS Demo DB V9SQLCA.DBMS = ODBCSQLCA.AutoCommit = FalseSQLCA.DBParm = ConnectString=DSN=EAS Demo DB V9;UID=dba;PWD=sqlconnect;/dw_1.setTrans(sqlca)dw_1.setTransObject(sqlca)dw_1.retrieve()2) 在cb_1的clicked事件中加入代码:dw_1.DataObject=d_contact/dw_1.setTrans(sqlca)dw_1.setTransObject(sqlca)dw_1.retrieve()3) (即课本P254的内容)对cb_2设计关联一个数据窗口对象:d_customer,并且在设计数据窗口对象时定义其检索参数:id1 number,与数据源中字段id号对应;city1 string ,与city对应;这样在cb_2的clicked事件中加入代码:dw_1.DataObject=d_customer/dw_1.setTrans(sqlca)dw_1.setTransObject(sqlca)/dw_1.retrieve() /函数中没有检索参数,此时系统会打开一个指定检索参数的对话框,要/求输入检索参数值/dw_1.retrieve(200) /函数中有检索参数,但是个数少了,系统会提示出错信息/dw_1.retrieve(200,yang) /检索参数刚好一一对应,但只有第一
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年反射疗法师3级高分题库含答案详解【模拟题】
- 光大银行通化市东昌区2025秋招无领导小组面试案例库
- 2025年北京门头沟区教育系统事业单位面向应届生招聘教师41人笔试备考题库带答案详解
- 2025年环境影响评价工程师之环境影响评价相关法律法规过关检测试卷带答案详解(黄金题型)
- 中国人事报刊社2024年公开招聘工作人员笔试高频难、易错点备考题库带答案详解
- 中信银行威海市环翠区2025秋招面试典型题目及参考答案
- 华夏银行贵阳市云岩区2025秋招面试典型题目及参考答案
- 光大银行济宁市兖州区2025秋招数据分析师笔试题及答案
- 光大银行无锡市宜兴市2025秋招笔试价值观测评题专练及答案
- 招商银行西安市未央区2025秋招群面模拟题及高分话术
- 【高分复习笔记】高廷耀《水污染控制工程》(第4版)(上册)笔记和课后习题(含考研真题)详解
- 福建福州地铁集团有限公司招聘笔试冲刺题2025
- 银行职业介绍课件
- 沐足行业严禁黄赌毒承诺书
- 医院与慈善机构捐赠协议
- 自建房屋地基施工合同
- 精神科意外事件防-噎食
- 2024年度吉林省高校教师资格证之高等教育学考试题库
- 初级招采人员《招标采购专业实务》历年考试真题题库(含答案)
- 道德与法治部编版(2024)版七年级初一上册2.1认识自己教学课件01
- 农村房产继承给子女协议书
评论
0/150
提交评论