pb中是使用ula one.doc_第1页
pb中是使用ula one.doc_第2页
pb中是使用ula one.doc_第3页
pb中是使用ula one.doc_第4页
pb中是使用ula one.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

PB中使用FORMULA ONEJane_sun应陶清所请,我将以一个例子来详细说明F1的用法,以补充前文所述,此例为电力企业停电申请票的上报审批过程,内含过程权限控制,每一权限只能修改F1报表的一个部分,且有做图功能,采用PB6.5和F16所编,下面将详细说明:1 建一张申请票的F1文件作为模板,如下图:为实现权限控制,将I1:P38的单元格设上保护,使右半边报表不可写:1)、选中单元格,鼠标右键FORMAT CELLS:PROTECTION下的LOCKED前打勾。2)、FORMAT菜单下SHEET项的PROTECTION前打勾,这句很重要,否则上句不起作用。2 库中建一停电申请票表DFSTDSQP:LRSJ录入时间TDSJ停电时间LRDW录入单位GLDW管理单位TDSB停电设备GZNR工作内容KGSJ开工时间WGSJ完工时间GZR工作人ZTM状态码SQPNR申请票内容IMAGE类型 3 在PB窗口中插入F1控件:在POWERBUILDER的窗口中点中OLE图标: 会出现“插入对象”对话框,选择insert control 标签项(如下图),在对象列表中选择 Vci Formula One Workbook,按确定键后,选好插入位置点击鼠标,即加入了一个名为ole_1的OLE对象,在其上用鼠标右键选中OCX Properties项,在Show标签下可将Row Heading和Column Heading项取消选中,将Tabs的值由Bottom改为Off(如下图),加入的OLE对象就是一个没有行头、列头及标签的空白表格。4 读模板的内容至控件:declare instance variables:BLOB vcf_formdeclare global variables: string gs_ztm,gs_lrdw,gs_gldwdatetime gd_lrsj,gd_tdsj在窗口的OPEN事件中写脚本:datetime sjint fhstring ls_dwmcem_1.text=string(gd_tdsj,yyyy年mm月dd日hh:mm)selectblob SQPNR into :vcf_form from DFS_TDSQPwhere LRSJ=:gd_lrsj and LRDW=:gs_lrdwusing sqlca;/取出库中申请票内容if isnull(vcf_form) thenole_1.object.Read(模板.vts, ref fh)/把模板读入OLE控件ole_1.object.setactivecell(21,2)ole_1.object.Entry=string(gd_tdsj,mm月dd日hh时mm分至)/填入计划停电时间ole_1.object.setactivecell(4,3)select ZZ_DWMC into :ls_dwmc from B04 where ZZ_DWBM=:gs_lrdw;ole_1.object.Entry=ls_dwmc/填入计划停电单位ole_1.object.setactivecell(4,6)ole_1.object.Entry=xm/填入姓名elseif fileexists(c:book1.vts) thenfiledelete(c:book1.vts)end iffh=fileopen(c:book1.vts,streammode!,write!)/建一临时文件if fh-1 thenfilewrite(fh,vcf_form)/把库中的库中申请票内容写入临时文件fileclose(fh)ole_1.object.Read(c:book1.vts, ref fh)/把临时文件内容读入控件elseMessageBox(错误提示, 打开文件操作错误!)close(this)returnend ifEND IFCHOOSE CASE qxCASE lr/权限为二级单位录入时只能录入左半边的报表ole_1.object.selection=A1:G38ole_1.object.setprotection(false,false)/将A1:G38的单元格置为可写,其余不可。ole_1.object.enableprotection=trueole_1.object.selection=C4/光标停在C4单元格处CASE glCASE zdCASE zbEND CHOOSE5 鼠标右键双击OLE_1控件可直接编辑报表,填入内容至可写的单元格内,可以采用F1的画图工具对报表进行简单的做图。6 将已修改的控件内容写入数据库:int fhOLEobject book;string filename=c:book1.vtsbook=ole_1.objectbook.Write(filename, 12)/将控件内容写入临时文件fh=fileopen( filename, StreamMode!)IF fh-1 THENFileRead(fh, vcf_form)/将临时文件内容写入BLOB变量FileClose(fh)ELSE RETURN 0END IFif len(vcf_form )0 then UPDATEBLOB DFS_TDSQP set SQPNR=:vcf_form where LRSJ=:gd_lrsj and LRDW=:gs_lrdwusing sqlca;/将BLOB变量内容写入库中IF SQLca.sqlcode=0 THENCOMMIT using sqlca;/MessageBox(提示, 完成对数据库的申请票存储操作!)ELSEROLLBACK using sqlca;MessageBox(提示, 申请票存储操作失败!)RETURN 0END IFend ifgd_tdsj=datetime(date(left(em_1.text,4)+-+mid(em_1.text,7,2)+-+mid(em_1.text,11,2),& time(mid(em_1.text,15,5)+:00)update DFS_TDSQP set TDSJ=:gd_tdsj , ZTM=:ztm_wfwhere LRSJ=:gd_lrsj and LRDW=:gs_lrdwusing sqlca;/保存录入时间和录入单位的值IF SQLca.sqlcode=0 THENCOMMIT using sqlca;MessageBox(提示, 完成对数据库的存储操作!)return 1ELSEROLLBACK using sqlca;MessageBox(提示, 停电时间存储操作失败!)RETURN 0END IF7、打印控件内

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论