数据库设计完整流程_第1页
数据库设计完整流程_第2页
数据库设计完整流程_第3页
数据库设计完整流程_第4页
数据库设计完整流程_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

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

文档简介

...wd......wd......wd...目录实验一软件分析3一、功能说明3二、E-R图3三、逻辑表格5四、任务6实验二创立工程及数据库6一、创立工程6二、创立数据库6三、创立表并设定索引6四、建设表之间的关系8五、任务9实验三数据可视化操作9一、添加记录9二、修改记录12三、删除记录12四、任务12实验四使用命令操作数据库12一、数据库及表操作12二、任务15实验五表单设计15一、表单分析15二、使用向导创立表单16三、使用表单设计器修改表单19四、完成其他表单23实验六编写代码28一、创立系统主程序28二、编写登录表单的代码29三、编写主表单程序代码30四、编写管理员管理代码34五、提示信息添加代码36六、编写管理信息代码37七、今日提醒代码编写39八、编写部门管理代码41九、员工管理代码编写45十、使菜单和工具栏与表单关联45十一、任务46实验七设计报表46一、为报表准备数据46二、设计报表47三、操作注意51四、运行表单51五、任务51实验八编译发布52一、软件的编译52二、制作安装盘52三、任务56实验九分析及优化56实验一软件分析请从网站下载例如程序,分析软件的功能并列出,并从中抽象出实体,画出软件的E-R图并进展数据库逻辑设计,画出数据库逻辑设计表格。参考如下:功能说明系统登录控制:要求填写用户名及密码,并进展了3次连续错误后系统退出功能。部门编码设置:主要是用来设置部门的层级关系。部门信息设置:局部的根本信息,如地址、等。员工信息管理:管理企业内部员工的信息,还可以设置生日提醒。提醒设置功能:可以通过设置信息及接收用户及时间,当被设置的用户登录时显示给用户。今日提醒功能:根据提醒设置,显示相应信息。系统设置:修改使用软件的单位信息。密码修改功能:修改用户的密码。E-R图首先是进展实体的抽象,通过系统登录功能及用户密码修改功能,我们可以抽象出“用户〞实体,通过部门编码及部门信息管理功能,可以抽象出“部门〞实体,通过员工信息管理可得到“员工〞实体,通过提醒功能及今日提醒功能可以抽象出“提醒〞实体,最后就是系统根本信息,可以得到“系统〞实体。部门信息部门信息员工信息提醒信息包含提醒1nn1实体之间关系有E-R图提醒信息提醒信息编码员工编号提醒类别提醒内容提醒日期提醒实体用户信息用户信息用户名密码姓名用户信息实体的E-R图部门信息部门信息编号上层编号单位名称单位地址。。。部门信息实体的E-R图员工信息员工信息编号姓名生日。。。员工信息实体的E-R图系统信息系统信息企业名称显示提醒系统信息实体的E-R图逻辑表格通过上面的E-R图,我们已经确立了实体,现在我们要进一步把实体及属性更完善,进展数据库的逻辑设计提醒信息字段名字段类型宽度可否为空默认值说明Warnid自动编号4主索引emplyid整型4否0普通索引当为0时代表发给所有用户Wtype整型4不同的数值代表不同类型showdate日期型8显示日期msg字符型200显示的信息用户信息字段名字段类型宽度可否为空默认值说明uname字符型20否主索引,用户名upwd字符型20否0密码truename字符型8真实姓名部门信息字段名字段类型宽度可否为空默认值说明ID自动4主索引,编号TopID整型4上层编号DPName字符50单位名称DPAddr字符100单位地址DPPhone字符30单位DPPerson字符8单位联系人员工信息字段名字段类型宽度可否为空默认值说明ID自动4编号,主索引uname字符8姓名usex字符2性别birthday日期8生日DPID整型4所属部门ISMsg逻辑1是否生日提醒上面的字符可以进展相应的增加或删减,关键在于想实现的功能。任务仔细分析软件本身,并可以进展相应改良,完成软件分析任务。把个人设计的软件也进展上述的过程,完成数据库概念设计及逻辑设计。实验二创立工程及数据库创立工程在硬盘的相应目录下建设自己的工程文件夹,并在文件夹下建设data和doc两个文件夹分别用来存放数据文件及开发文档。翻开VFP8.0,建设工程文件,命名为EPUser〔可任意,为了后面方便表达〕。创立数据库在工程管理器中新建一个数据库EPData,并保存在Data文件夹中。创立表并设定索引在EPData数据库下创立新表warning。表设计器如下:在warnid上建设主索引,在emplyid上建设普通索引。依照上边的方法建设其他数据表。最终如下:建设表之间的关系选中Epdata数据库,单击修改翻开数据库设计器把主表的主索引拖至从表的普通索引上建设关系任务完成企业员工管理软件的工程创立及数据库、数据库表的创立,并建设相应关系。完成自主设计的软件的数据库、数据库表的创立工作。实验三数据可视化操作添加记录翻开实验二创立的工程,并翻开epdata数据库的设计器。双击Depart和employ表之间的关系线,翻开关系设定窗口。选择“referentialintegrity〞选项,并选择插入规则,选择级连项,实现两表之间的“相对完整性〞,确定退出窗体。在工程管理器中选择depart表,并选择“浏览〞,翻开浏览窗口,在“显示〞菜单中选择“追加模式〞,在表中添加两条数据,如以下列图,在这里我们可以看到“聊城大学〞这个部门的topid为0而“教育传播技术学院〞的topid为“聊城大学〞的id,通过这种方式实现部门间的级别管理,这种方式在开发中经常使用。关闭depart表,再翻开employ表,使用上述方式添加数据,当我们在Dpid中添加了一个depart表中未出现的ID值时,会出现如下错误,而输入的值为正确的,则会被确认,从这里我们可以看到完整性检查的作用。建设一个与employ构造一样的表employ1,在表中添加一些数据。在翻开employ表,选择“表〞菜单中的追加记录,如以下列图,点击来源后面的浏览按钮,找到employ1表,并设置选项,选中除自动编号以外的所有字段,确定后,查看employ表中是否添加了employ1中的数据。修改记录翻开一个添加了数据的表格,然后使用“显示〞菜单中的“编辑〞实现对数据的修改,不再演示,大家也可以设置表之间的关系,看一下更新规则的作用。删除记录翻开一个有数据的表格,点击记录左侧的小矩形,这样记录便被逻辑删除进展物理删除,翻开“表〞菜单,选择彻底删除,便可以实现“物理删除〞任务在我们建设的表中添加适量数据,以方便后续操作。实验四使用命令操作数据库数据库及表操作创立数据库:CreateDataBasestumanage创立表:Createtableclasses(cidIAutoIncprimarykey,classnamec(20))

CreateTablestudent(stuidc(10)primarykey,stunamec(10),sexc(2)checksex=’男’orsex=’女’error“此数据只能为男或女〞default‘男’,classidI,foreignkeyclassidtagclassidreferencesclasses)修改表构造:ALTERTABLEclassesaddteacherc(6)ALTERTABLEclassesalterteacherc(8)ALTERTABLEclassesrenameteachertomanagerALTERTABLEclassesdropmanager在当前工作期中翻开要使用的表:USEclasses或selectclasses插入数据:insertintoclasses(classname)values(‘2004级1班’)insertintoclasses(classname)values(‘2004级2班’)insertintoclasses(classname)values(‘2004级3班’)浏览数据:browse或display或list,会发现使用display时只显示第一条记录,这时需要使用范围语句displayall,大家可以使用条件语句看一下结果。查看当前记录各信息:?recno()&&显示当前记录号?Bof() &&查看记录指针是否在最前Eof() &&查看记录指针是否在最后skip-1 &&使记录指针向前滚动一条?recno()

?Bof()

?Eof()

gototop &&使记录指针移到顶端

?recno()

?Bof()

?Eof()条件定位:locateforcid=2?recno()在学生表中插入数据:INSERTintostudent(stuid,stuname,sex,classid)values('20040101','zhang','男',1)INSERTintostudent(stuid,stuname,sex,classid)values('20040102','wang','女',2)修改学生数据:updatestudentsetclassid=3wherestuid=’20040101删除学生记录:

DELETEFROMstudentwherestuid='20040101'LIST恢复被逻辑删除的记录:RECALLall再执行上面的删除命令后使用Pack命令,把记录从磁盘彻底删除。执行查询:select*fromstudentselectstuid,stunamefromstudent向学生表中多插入几条记录selectdistinctsexfromstudentselectsexas性别fromstudentselect*fromstudentwherestuid=’20040101select*fromstudentwherestuidin(‘20040101’,’20040102SELECT*fromstudentwherestunamelike'w%'SELECT*fromstudentwherestunamelike'w_'SELECT*fromstudentwherestunamelike'__a%'selectcount(*)as学生总数fromstudentSELECTA.*,B.classnamefromstudentA,classesBwhereA.classid=B.cidSELECTA.*,B.classnamefromstudentAinnerjoinclassesBonA.classid=B.cidSELECTA.*,B.classnamefromstudentArightouterjoinclassesBonA.classid=B.cidSELECT*fromstudentorderbystuiddescSELECTtop1*fromstudentorderbystuiddescSelectcount(*)asstucount,classidfromstudentgroupbyclassidSelect*fromstudentintocursortest删除表:droptablestudentdroptableclasses删除数据库:

CLOSEALLDELETEDATABASEstumanage任务使用上面的命令在员工管理数据库表的添加一些记录实验五表单设计表单分析根据实验一中的工程功能分析,我们需要创立以下几个表单。局部信息管理表单:实现对局部信息的添加、修改、删除等管理员工信息管理表单:实现对员工信息的添加、修改、删除等管理管理员管理表单:实现对管理员的添加、删除等管理当前用户密码修改表单:修改当前用户的密码和真实姓名信息提示表单:当启动软件时显示提示信息提示信息设置表单:设置提示信息登录表单系统设置表单关于表单使用向导创立表单翻开员工管理工程,这里需要注意的是,VFP软件有可能对中文目录支持不太好,如果出现类似问题,请把工程放在一个英文目录中。在工程管理器中选择文档〔documents〕,选择表单,并新建。选择使用向导,这里有两项,一项为哪一项表单向导,另一个是一对多表单向导,可以看出我们也可以使用向导产生基于两个表的表单。选择使用到的表字段,这里实现管理员管理的表单,所以选择Manager表中的所有字段。选择表单样式,使用默认即可。选择排序字段,这里也可以不选择。最后一步,设置表单标题并设置保存,在工程文件夹下建设forms文件夹,并把表单保存在内。最终效果如下:在我们的创立的数据库中,部门表与员工表之间存在一对多关系,使用向导自己建设一个一对多的表单。使用表单设计器修改表单使用向导生成的表单有时不能满足我们的需要,这时,我们需要使用表单设计器来完善表单的设计。下面我们来修改一下上面的表单。选择我们刚刚创立的表单,进展修改下面是表单设计器,同时会翻开表单控件面板和属性面板选择表格控件,并在表单中单击,把控件添加到表单中。使用表格生成器来使表格与数据表之间绑定。选择显示的字段。设置显示样式修改表格字段显示的标题。点击OK完成修改,关闭设计器并保存修改,使用工程管理器运行表单查看最终效果。对于由向导生成的控件,可以通过属性面板进展修改,如改变标题显示(caption)。通过上述方式,多加测试,掌握表单设计的根本方法。完成其他表单部门信息管理:这里要用到一个Activex控件,方法是,翻开“工具〞菜单,选项中选择控件面板,找到如以下列图的控件:后从控件面板中选择如下:就可以看到我们选择的组件,拖放到表单中就可以了。员工信息管理登录表单管理员管理表单用户密码修改表单提示信息管理表单提示信息添加表单,这里用了一个时间控件,如TreeView控件一样,自行添加进来即可。提示信息显示表单实验六编写代码本实验分三次完成,主要实现程序的所有代码,了解程序开发过程及代码开发技巧。创立系统主程序主程序是所编写程序的入口,主要设置运行环境、定义变量、常量,然后调用其他表单,本程序文件保存为main.prg。CLEARCLEARALL*把系统菜单隐藏掉SETSYSMENUoff*程序运行时不允许使用ESC键退出SETESCAPEOFF*关闭命令显示SETTALKOFF*覆盖时不要确认SETSAFETYOFF*设置时间格式,使用四位显示年代SETCENTURYonSETDATEYMD*定义一个公共变量,保存当前用户信息PUBLICcuruser*调用登录表单DOFORMforms\login*进入事务处理,当执行cleanevents时完毕READevents*当完毕循环时执行退出quit编写登录表单的代码翻开实验五中已经制作的Login表单,修改控件相应属性。控件属性值组合框NameunameRowsourcemanager.unameRowsourcetype6-fieldsStyle2-dropdownlist文本框NameUpwdPasswordchar*表单AutocenterTrueBorderstyle2-固定对话框ClosbleFCaption用户登录controlboxFMaxButtonFMinButtonFNameFrmloginShowwindow作为顶层表单Windowtyp模式选中表单,附属性面板中找到init事件,添加如下代码:*定义一个公共变量来保存登录次数PUBLIClogincountlogincount=0双击登录按钮,翻开按钮的click事件:IFALLTRIM(thisform.uname.Value)==""then MESSAGEBOX("没有选择用户名!!")ELSE LOCATEFORuname=ALLTRIM(thisform.uname.value) IFALLTRIM(thisform.upwd.Value)=ALLTRIM(upwd)then curuser=thisform.uname.value thisform.Release DOFORMforms\main return ELSE logincount=logincount+1 IFlogincount<3then thisform.upwd.Value="" thisform.upwd.SetFocus MESSAGEBOX("您的密码输入错误,请重新输入!!",16,"错误") ELSE MESSAGEBOX("对不起,错误次数已达3次,不能进入系统!!",16,"报歉") thisform.Release CLEAREVENTS CLOSEALL quit endif endifENDIF为退出添加click事件:thisform.ReleaseCLEAREVENTSquit编写主表单程序代码主表单主要是起到调用其他表单的作用,在这里我们添加一个菜单和一个工具栏,从而了解如何创立表单与工具栏,以及如何在程序中使用它们。创立主表单,保存为main,设置属性如下:控件属性值表单AutocenterTrueCaption企业员工管理系统Height600Width600MDIformTNameFrmmainShowwindow作为顶层表单Windowtyp模式创立菜单,在工程管理器中选择“其他〞选项卡,选中菜单,新建:选择Menu,先制作如图的菜单然后选择菜单“显示->常规选项〞选中“顶层表单〞,设计表单时要注意的问题是,需要生成,而且每一次改动后都需要生成,否则使用的菜单是未生成前的菜单。“菜单->生成菜单〞:好了,下面我们把菜单参加到主表单中去。翻开主表单,添加“init〞事件:DOmenu\main.mprWITHthis*这里的菜单地址,请根据自己的保存位置确定。这里保存到menu文件件下了。可以运行主表单看一下效果了。下面制作工具栏,选择“类〞选项卡,新建类:从ToolBar类继承制作自己的工具栏,添加按钮,图片资源可以从FTP得到。设置Showwindow属性值为“在顶层表单中〞。因为工具栏是与表单一级的对象,所以表单中不能容纳工具栏,所以需要建设一个表单集来放置表单与工具栏,翻开主表单,使用“表单〞菜单中的“新建表单集〞建设表单集对象,这时我们使用代码的方式把工具栏参加到主表单中去,设置表单集的init事件。PUBLICisCreateToolbarisCreateToolbar=0再在Activate事件中添加如下代码:IFisCreateToolbar=0 isCreateToolbar=1*加载类 SETCLASSLIBTOlib\myclass *使用类创立对象 this.AddObject("tool1","mytoolbar") this.tool1.show*把工具栏停放在表单的上部this.tool1.dock(0)endif这时运行主表单,效果如下:编写管理员管理代码控件属性值表格NamegmanagerEnabledFalseRecordsourceManager表单BufferMode1Caption操作员管理NamefrmmanagerShowwindow在顶层表单中翻开表单的数据环境,选择manager表。设置其属性。buffermodeOveride:2,Exlusive:True添加按钮的click事件:thisform.gManager.Enabled=.T.APPENDBLANKGObottomthisform.gManager.coLUMN1.text1.SetFocusthisform.Refresh修改按钮的click事件:thisform.gManager.Enabled=.t.保存按钮的click事件:YN=MESSAGEBOX("确定保存",4+32,"企业员工管理系统")IFYN=6then IFTABLEUPDATE(.f.)=.f.then MESSAGEBOX("保存出错") ELSE thisform.Refresh ENDIFENDIFthisform.gmanager.Enabled=.f.取消按钮的click事件:IFMESSAGEBOX("确认取消",4+32,"企业员工管理系统")==6then TABLEREVERT(.f.)ENDIFthisform.gmanager.Enabled=.f.thisform.Refresh删除按钮的click事件:IFMESSAGEBOX("确定删除",32+4,"企业员工管理系统")==6then SELECTmanager DELETE thisform.gmanager.RecordSource=null PACK thisform.gmanager.RecordSource="manager" IFEOF() SKIP-1 ELSE IFBOF() SKIP ENDIF ENDIF thisform.Refreshendif提示信息添加代码控件属性值DateandtimerpickerNamemsgdate文本域namemsgcontent保存按钮click事件:SETDATEYMDSETCENTURYonmdate=TTOD(thisform.msgdate._value)mcontent=ALLTRIM(thisform.msgcontent.Value)IFEMPTY(mdate).and.EMPTY(mcontent)then MESSAGEBOX("时间和内容都不能为空") returnENDIFIFMESSAGEBOX("确定保存",4+32,"企业员工管理系统")=6 INSERTINTOwarning(emplyid,wtype,showdate,msg)values(0,0,mdate,mcontent) MESSAGEBOX("提示信息已经添加到数据库中",64,"企业员工管理系统") thisform.Releaseendif取消按钮click事件:thisform.Release编写管理信息代码此窗体的代码与管理员管理代码类似,所以可以很容易实现。控件属性值表格NamegmsgEnabledFalseRecordsourceManagerMousePointer1-Arrow表单BufferMode1Caption操作员管理NameFrmmsgShowwindow在顶层表单中翻开表单的数据环境,选择waring表。设置其属性。buffermodeOveride:2,Exlusive:True添加按钮onclick事件:DOFORMforms/setmsgThisform.refresh修改按钮的onclick事件:IFMESSAGEBOX("确定保存修改信息",4+32,"企业员工管理系统")=6then IFTABLEUPDATE(.f.)=.f.then MESSAGEBOX("保存出错,请检查") ELSE thisform.Refresh ENDifENDIFthisform.gmsg.Enabled=.f.取消按钮的onclick事件:IFMESSAGEBOX("确认取消",4+32,"企业员工管理系统")==6then TABLEREVERT(.f.)ENDIFthisform.gmanager.Enabled=.f.thisform.Refresh删除按钮的click事件:IFMESSAGEBOX("确定删除",32+4,"企业员工管理系统")==6then SELECTwaring DELETE thisform.gmanager.RecordSource=null PACK thisform.gmanager.RecordSource="waring" IFEOF() SKIP-1 ELSE IFBOF() SKIP ENDIF ENDIF thisform.Refreshendif今日提醒代码编写控件属性值文本框Namemsgreadonlytrue多项选择框Nameisstart表单BufferMode1Caption今日提醒NameFrmtodayShowwindow在顶层表单中Windowtype1-模式标签Namelmsg表单init事件:PUBLICi,inumi=0inum=0SELECTwarningCOUNTFORshowdate=DATE()toinumIFinum<1then thisform.msg.Value="没有本日提醒" thisform.lmsg.caption="没有提醒"ELSE SELECTwarning SETFILTERTOshowdate=DATE() gotop i=1 thisform.msg.ControlSource="warning.msg" thisform.lmsg.caption="共有"+ALLTRIM(STR(inum))+"条提醒,第"+ALLTRIM(STR(i))+"条提醒" thisform.Refreshendif下一条按钮单击事件:SELECTwarningIF.not.EOF() SKIP i=i+1 thisform.lmsg.Caption="共有"+ALLTRIM(STR(inum))+"条提醒,第"+ALLTRIM(STR(i))+"条提醒"ENDIFthisform.Refresh确定按钮onclick事件:IFthisform.isstart.Value=1 UPDATEsysSETisstart=.f.ENDIFthisform.release编写部门管理代码部门管理表单使用了一个ActiveX控件,如果想非常细致的了解此控件的使用方法,请参考FTP上给出的资料。控件属性值树型NamedepartTreeStyle7名称文本框NameEnamecontrolSourcedpname地址文本框NameEaddrcontrolSourcedpaddr文本框NameEphonecontrolSourcedpphone联系人文本框NameEpersoncontrolSourceDpperson表单BufferMode1Caption部门信息管理NameFrmdepartShowwindow在顶层表单中Windowtype1-模式同样要设置表单对应的depart表格的属性:buffermodeOveride:2,Exlusive:True首先我们给表单添加init事件:PUBLICisedit 定义一个变量来标识当前操作是添加还是修改PUBLICdpid 保存当前部门编码SELECTdepartGOtopthisform.ename.Value=dpnamethisform.eaddr.Value=dpaddrthisform.ephone.Value=dpphonethisform.eperson.Value=dppersonthisform.eaddr.Enabled=.f.thisform.ename.Enabled=.f.thisform.eperson.Enabled=.f.thisform.ephone.Enabled=.f.thisform.Refresh给树形控件添加init事件this.Nodes.ClearSCANIFtopid==0Node=this.nodes.add(,1,"D"+ALLTRIM(STR(id)),ALLTRIM(dpname),,)*参加根节点ELSENode=this.nodes.add("D"+ALLTRIM(STR(topid)),4,"D"+ALLTRIM(STR(id)),ALLTRIM(dpname),,)ENDIFENDSCAN树形控件的onclick事件:SELECTdepartLOCATEFORid=VAL(SUBSTR(this.selectedItem.Key,2))dpid=idthisform.ename.Value=dpnamethisform.eaddr.Value=dpaddrthisform.ephone.Value=dpphonethisform.eperson.Value=dpperson添加按钮onclick事件:thisform.ename.Value=""thisform.eaddr.Value=""thisform.ephone.Value=""thisform.eperson.Value=""thisform.eaddr.Enabled=.t.thisform.ename.Enabled=.t.thisform.eperson.Enabled=.t.thisform.ephone.Enabled=.t.isedit="add"thisform.Refresh删除按钮onclick事件:IFMESSAGEBOX("确认要删除所选部门信息",4+32,"企业员工管理系统")==6then DELETEFROMdepartWHEREid=dpid PACK thisform.departtree.Init thisform.Refresh ENDif修改按钮onclick事件:thisform.eaddr.Enabled=.t.thisform.ename.Enabled=.t.thisform.eperson.Enabled=.t.thisform.ephone.Enabled=.t.isedit="mod"取消按钮onclick事件:thisform.ename.Value=dpnamethisform.eaddr.Value=dpaddrthisform.ephone.Value=dpphonethisform.eperson.Value=dppersonthisform.eaddr.Enabled=.f.thisform.ename.Enabled=.f.thisform.eperson.Enabled=.f.thisform.ephone.Enabled=.f.保存按钮onclick事件:IFMESSAGEBOX("确认要保存修改后的信息吗",4+32,"企业员工管理系统")==6then IFisedit="mod"then ename=ALLTRIM(thisform.ename.value) eaddr=ALLTRIM(thisform.eaddr.value) ephone=ALLTRIM(thisform.ephone.value) eperson=ALLTRIM(thisform.eperson.value) UPDATEdepartSETdpname=ename,dpaddr=eaddr,dpphone=ephone,dpperson=epersonWHEREid=dpid ENDIF IFisedit="add"then INSERTINTOdepart(topid,dpname,dpaddr,dpphone,dpperson)values(dpid,thisform.ename.Value,thisform.eaddr.Value,thisform.ephone.Value,thisform.eperson.Value) endifENDIFthisform.eaddr.Enabled=.f.thisform.ename.Enabled=.f.thisform.eperson.Enabled=.f.thisform.ephone.Enabled=.f.thisform.departtree.Initthisform.Refresh员工管理代码编写员工管理代码请参考部门管理代码和管理员管理代码来完成。使菜单和工具栏与表单关联到这里,把目前编写的表单和主表单统一起来,使菜单项及工具栏按钮可以响应事件,翻开菜单,修改相应项,如提示信息管理下有子项,所以设置为Submenu,单击Edit进展修改如下使用doform表单名称〔注意表单路径〕,来调用表单,其他相应修改。翻开工具栏,为工具栏上的按钮添加代码,如doformforms/depart来完成工具栏的代码添加。任务把实验指导书中未给出的代码补齐,完成整个程序的代码编写。实验七设计报表为报表准备数据新建一个本地视图,如以下列图所示,把Depart表和Employ表参加到视图中来,并设置显示的字段。设计报表新建报表翻开报表设计器在报表菜单中翻开标题总结对话框选择相应选项,这里Newpage选项是为了让标题区和总结区在单独页中显示在标题带区中添加以下标签控件,并输入文字在pageheader带区中添加以下控件,标签控件中显示“聊城大学教育传播技术学院企业员工管理系统〞,在后面添加一个域控件,显示Date(),下边添加几个矩形框,并改变其背风光,并使用标签控件在其上添加相应文字。为报表添加数据环境,与表单添加数据环境一样。需要注意的是需要选择视图选项来显示视图对象。在detail区添加域控件及矩形控件,注意上边框要移出带区的上边,而带区下边框与要矩形下边框刚好一致,这样才会出来最终效果,如果与效果不一致,也可以重新调整此处。在pagefooter区添加如下文字及直线最终效果如下:操作注意字体与矩形背景颜色可以使用“格式〞菜单中的相应选项进展设置。在操作多个对

温馨提示

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

最新文档

评论

0/150

提交评论