毕业设计(论文)-C++个人通讯簿管理系统.doc_第1页
毕业设计(论文)-C++个人通讯簿管理系统.doc_第2页
毕业设计(论文)-C++个人通讯簿管理系统.doc_第3页
毕业设计(论文)-C++个人通讯簿管理系统.doc_第4页
毕业设计(论文)-C++个人通讯簿管理系统.doc_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

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

文档简介

个人通讯簿管理系统目 录一、引言 2二、个人通讯薄管理系统 3(一)、 系统功能 3(二)、 设计关键步骤 3(三)、 系统结构 3三、开发工具介绍 4(一)、C+ Builder 4(二)、Database Desktop 4(三) 、C+ Builder中的数据连接控件TTable、TQuery与TDataSource控件4四、数据库设计 5(一)、数据表设计 5(二)、建立数据表 5五、系统设计 6(一)、数据管理模块 6(二)、系统主窗体 6(三)、系统登陆模块 10(四)、修改密码模块 11(五)、查询模块 131、单目查询模块 132、过滤查询模块 13(六)、打印模块 15(七)、使用剪贴板编辑数据 15(八)、系统信息模块 17六、总结 18七、参考文献 18个人通讯薄管理系统摘要:本文给出了简易个人通讯薄管理系统的构思、设计与较详实的实现步骤,并在具体程序实现中尽可能地完善该设计作为一个管理信息系统应有的功能。本系统已能基本上实现数据的收集、录入、编辑,数据库的管理、查询及报表的输出等功能,同时在界面上也进行了一定的美化,经实际测试已经基本可以满足个人通讯资料管理的要求。关键词:C+ Builder、Database Desktop,TTable控件、TQuery控件和TDataSource控件。一、引言以往人们在记录数据时往往借助于纸和笔,再将做好的记录按时间、类别装订成册,再将不同用途的数据分类存放,久而久之就成了一个资料库。如果说数据的收集、抄写很困难的话,那么在资料繁多的库中进行数据的查找和维护将更加让人往而却步。所幸的是随着计算机的产生并最终广泛应用在人们的日常生活中,人们开始思考是否能借助计算机的海量存储及高速运算帮助人来管理数据,经过人们不断的努力,管理信息系统出现了并日趋成熟。它有三个关键因素:人、计算机和数据。首先决策者来指定方案怎样处理数据,而计算机按照这个方案来帮助决策者管理数据,还能进一步的对数据进行分析、整理并将结果反馈给决策者以更好地决策。这样就使人从繁重的体力劳动中解放出来,投入更多的精力到决策上面去。这就是管理信息系统发展的方向。本管理系统旨在帮助用户借助计算机的海量存储和高速运算系统、高效地管理个人通讯资料,将用户从已往的手工纸笔录入、修改、誊抄中解放出来。虽然该系统的设计是为了管理用户的通讯记录,但因为按照管理信息系统(MIS)对数据管理的功能需求进行设计,本系统已经体现出了一定的通用性,而这也正是本毕业设计所要达到的目的以点代面地展示管理信息系统的功能特点。二、个人通讯薄管理系统本个人通讯薄管理系统是一个较简单但功能齐全的单机数据管理系统。本设计只用到了两个数据表(主操作表仅一个),用户可以添加、删除、修改通讯薄中的记录,也可以进行复合查询与资料打印输出。在该系统中主要应用的数据库连接控件是TTable。(一)、系统功能本系统包含以下功能:1、 通讯信息的录入与修改2、 通讯信息的复合查询(分为单目查询与过滤查询)3、 系统登陆密码的管理4、 通讯信息的打印(二)、设计关键步骤本设计中的关键步骤如下:1、利用Database Desktop 应用程序创建和编辑数据表2、系统登陆界面的设计和登陆密码的管理3、查询功能的实现4、利用QReport 组件定制报表进行打印输出5、系统截面的设计(三)、系统结构本系统的核心窗体是MianForm,在该窗体显示前先显示登陆窗体LoginForm,用户需要在该窗体中输入登陆密码才能正常使用个人通讯薄管理系统。本系统设计为单机数据库管理系统,但是为了更集中的管理数据连接、控制组件,特建立一个本地数据模块DM来统一管理以上组件。在主窗体中,通过标准Win32菜单选项来调用其他窗体来分别实现数据查询、打印和修改密码的功能,系统还提供了两个关于窗体分别对设计和设计者给出了介绍。本系统在界面上也通过TImage控件进行了一定的美化,下面是本系统的结构图:系统登陆界面LoginForm主窗体MainForm关于窗体AboutMeForm AboutMeFrom AboutMeFormDesignForm数据模块 DM 单目查询 SearchForm过滤查询 FilterForm打印 QuickAllForm密码管理 PSForm三、开发工具介绍(一)、C+ BuilderC+ Builder 由著名的Borland公司开发,是Windows环境下功能最强大的C+开发环境,它全面实现ANSI C+标准,提供了自己的扩展,并且兼容PC计算机上的两种最常用的C+编译器,即Borland C+和Visual C+。C+ Builder最显著的特点是它实现了C+语言完全可视化开发,将C+的面向对象和可视化紧密地结合起来,提供了一个功能强大、开发效率高的集成开发环境。自版本5开始,C+ Builder 能够运用Microsoft ActiveX Data Obiect(ADO)及OLE DB驱动程序,配合C+ Builder各项便利的数据库感知组件,访问传统关系数据库及非关系数据库。凭借其强大的功能和学习门槛低的特性,目前C+ Builder已经成为设计数据库程序的最佳利器之一。(二)、Database DesktopDatabase Desktop是C+ Builder提供的数据库管理工具。使用Database Desktop可以建立数据表格的结构、修改数据表格的结构、完成数据的输入以及其他对数据的操作,是建立数据库应用程序过程中常用的工具。它相对与其他外部数据库系统的优点是因为它可以和C+ Builder数据连接控件(TTable与TQuery等)无缝结合,不需要再通过BDE Administrator设置数据库别名。这在设计小型数据库管理系统时尤其方便,本设计就选用它存储数据。(三)、C+ Builder中的数据连接控件TTable、TQuery与TDataSource控件开发数据库应用程序必须建立应用程序与数据库之间的联系,C+ Builder组件板上的数据连接组件(Data Access及BDE),提供了这中联系方法,它们通过数据库引擎访问数据库并提供用户以接口来进行与数据库的交互。其中最重要的三个控件是TTable、TQuery与TDataSource控件,它们的功能简要介绍如下表:控件名称功能简介Table通过BDE从一个数据库表格中取得数据并通过TDataSource控件将数据传递给一个或多个数据控制组件。而且,将从数据控制组件处得到的消息通过BDE传递给数据库。从而实现程序和数据库的交互。Query和Table不同,它是通过BDE,应用SQL语句从一个数据库表格中取得数据并通过TDataSource控件将数据传递给一个或多个数据控制组件。而且,应用SQL语句从数据控制组件处得到的信息通过BDE传递给数据库。可以说它和Table控件的功能一样,只是方法不同。DataSource从Table和Query等数据库连接组件中解析出数据库表格中的数据并传递给数据控制组件如本设计中主要用到的TDBGrid控件显示出来。简言之就是联系数据连接组件和数据控制组件的纽带。四、数据库设计设计数据库应用程序的第一步就是确定需要那些类型的数据,通常这是整个设计过程中最难、最费时的一个步骤。数据库设计的好坏,直接影响应用程序后续开发或成的难易,以及系统的运行与维护,不过本系统的数据库非常简单只设计两个数据表。(一)、数据表设计考虑到当前通讯记录的普遍特点,我们认为一个联系者应该具有下列的通讯信息:Name 用来记录姓名Sex 用来记录性别WorkTel 用来记录办公电话MobileTel 用来记录移动电话Address 用来记录住址City 用来记录所在城市Email 用来记录电子邮箱地址Comment 用来记录该联系者的其他信息Group 用来记录该联系者和用户的关系,比如是好友还是同事同时考虑到一个个人通讯薄管理系统应该加一个身份验证功能,只有合法用户才能查看涉及个人隐私的通讯资料。当该系统支持多用户管理时应该设计成针对不用的用户名设定不同的密码,进入系统后调用不同的通讯记录。但这里为了简单只设计了一个用户,所以将用户名省略了,只有一列密码项“PS 用来记录管理密码最后结合系统功能考虑是否需要给各表各列加验证条件。这里因为联系者姓名做为其唯一标识并设计到单目查询,所以需要将该列设为主键并不允许其为空。考虑到在后面的过滤查询中调用的是TTable控件的OnFilterRecord事件,所以就不需要将Group列设为第二索引,最后将密码表的PS列也按照Name列设计。(二)、建立数据表设计好数据表的基本结构后,我们打开C+ Builder自带的Database Desktop工具,通过其File菜单下的New|Table选项新分别建立Address表与Login表如下所示:Address.db字段名称类型大小主索引说明CordAutoincrement*为了使Name项可重复NameAlpha8*选中Required Field,非空SexAlpha2WorkTelAlpha11MobileTelAlpha11AddressAlpha30EmailAlpha20CityAlpha12CommentAlpha30GroupAlpha4Login.db字段名称类型大小主索引说明PSAlpha6*选中Required Field,非空五、系统设计本系统采用模块化设计思想,每一个模块包含在一个窗体中,共分为MainForm、DM、LoginForm、PSForm、SearchForm、FilterForm、QuickAllForm、DesignForm和AboutMeForm,分别表示系统主窗体模块、数据管理模块、登陆模块、管理密码修改模块、单目查询模块、过滤查询模块、打印模块和两个系统信息模块。下面分别就各核心功能实现给出介绍:(一)、数据管理模块该模块应该在系统主窗体建立后创建,但因为以后各模块都需要用到该模块中的数据连接控件,所以将该模块的设计步骤写在前面。设计该模块是为了集中控制数据,也为了在多个模块间共享数据,以及维护代码的方便。选择File菜单的New|Data Module选项在主窗体所在工程中加入一个数据模块,将其命名为DM。在其中加入1个TQuery控件(命名为LoginQuery)、1个TTable控件(ConnectTabel)与1个TDataSource(DataSource1),设置以上3个控件的属性如下表:DM窗体总各主要控件属性表控件名称属性属性值LoginQueryDatabaseNameAddressConnectTabelDatabaseNameAddressTableNameAddress.dbDataSource1DataSetConnectTabel(二)、系统主窗体通过C+ Builder的File菜单的New|Application选项新建一个工程,将该工程包含的窗体Form1命名为MainForm,在其中加入1个TControlBat控件、1个TToolBar控件、1个TMainMenu控件和两个TPanel控件。通过MainMenu1右键菜单Menu Designer选项,建立如下结构菜单:Caption = “文件”(Name = File)Caption = “修改密码”(Name = ChangePS)Caption = “-”(Name = N3)Caption = “打印”(Name = Print)Caption = “-”(Name = N2)Caption = “退出”(Name = Exit)Caption = “编辑”(Name = Edit)Caption = “剪切”(Name = Cut)Caption = “复制”(Name = Copy)Caption = “粘贴”(Name = Plaster)Caption = “选项”(Name = Options)Caption = “查询记录”(Name = Search)Caption = “单目查询”(Name = SingleSearch)Caption = “过滤查询”(Name = TermSearch)Caption = “关于”(Name = About)Caption = “本设计”(Name = Design)Caption = “-”(Name = N1)Caption = “关于我”(Name = AboutMe)上面的结构中,每一行代表一个菜单项,缩进的部分是菜单下拉后的内容,即子菜单。括号中的内容是菜单项的属性。在Panel1中加入TDBGird和TDBNavigator两个数据控制控件。在Panel2中加入8个TTabel控件、1个TDBRadioGroup控件(命名为Sex)、5个TDBEdit控件(分别命名为NameEdt、Tel1Edt、Tel2Edt、EmailEdt和AddEdt)、2个TDBComboBox控件(分别命名为CityEdt和GroupEdt)、TDBMemo控件(MemoEdt)、1个TGroupBox控件和4个TBitBtn控件(分别命名为EditBtn、InsertBtn、DeleteBtn和ReBtn),设置其中关键控件属性如下表:MainForm窗体中各控件属性表控件名称属性属性值MainFormCaption个人通讯薄管理系统DBGrid1DataSourceDM-DataSource1DBNavigator1DataSourceDM-DataSource1NameEdtDataSourceDM-DataSource1DataFieldNameTel1EdtDataSourceDM-DataSource1DataFieldWorkTelTel2EdtDataSourceDM-DataSource1DataFieldMobileTelEmailEdtDataSourceDM-DataSource1DataFieldEmailAddEdtDataSourceDM-DataSource1DataFieldAddressSexDataSourceDM-DataSource1DataFieldSexItems女男CityEdtDataSourceDM-DataSource1DataFieldCityItemsA城B城C城D城GroupEdtDataSourceDM-DataSource1DataFieldGroupItems家人好友同事业务其他MemoEdtDataSourceDM-DataSource1DataFieldCommentEditBtnCaption编辑模式InsertBtnCaption插入记录DeleteBtnCaption删除记录ReBtnCaption更新记录这里DBGird1我们只希望它显示出数据表中Name列的内容,这需要通过右键菜单的Columns Editor命令,打开列编辑器,再通过右键菜单的Add New命令加入一列,将其Field Name属性设为Name,并将其Title-Caption属性设置为“联系人”,这样DBGrid1控件在显示数据库中的数据时将只显示Name列里的内容。要对数据表中的数据进行编辑首先要打开数据表,我们选择了在窗体初始化方法(OnCreate)中进行打开数据表的操作,在窗体关闭方法(OnDestroy)中关闭数据表:DM-ConnectTabel-Open(); /打开数据表 DM-DataSource1-AutoEdit =false;/时用户不能在数据感知控件中输入信息/-if(DM-ConnectTabel-Active) DM-ConnectTabel-Close(); /关闭数据表/-如上所述,数据表打开后用户是不能对数据表中记录进行更新的,为了让TTable控件处于修改状态,可以调用其Edit方法。这可以通过为EditBtn按钮填加OnClick方法实现,代码如下:InsertBtn-Enabled =!DM-DataSource1-AutoEdit; DeleteBtn-Enabled =!DM-DataSource1-AutoEdit; ReBtn-Enabled =!DM-DataSource1-AutoEdit; if(!DM-DataSource1-AutoEdit) DM-DataSource1-AutoEdit =true; EditBtn-Caption =只读模式; else DM-DataSource1-AutoEdit =false; EditBtn-Caption =编辑模式; /-上述代码用于切换当前TTable控件的状态。系统运行时,由于TTable控件被设置成为只读状态,这时InsertBtn、DeleteBtn与ReBtn按钮被禁止,每次点击EditBtn按钮后TTable控件就在“编辑”与“只读”状态中进行切换,而且在编辑状态下以上功能按钮为可用。向数据表中插入记录可以调用TTable控件的Insert方法,该方法会将新增记录加入到当前记录的后面,实现InertBtn按钮的OnClick方法如下:if(NameEdt-Text =) /保证Name主键不为空 Application-MessageBox(必须输入联系者姓名,错误,MB_OK); else if(GroupEdt-Text =) /保证Group列不为空 Application-MessageBox(必须确定联系者的关系,错误,MB_OK); else DM-ConnectTabel-Insert(); /插入记录到当前记录之后/-删除数据表中的记录只需要将指针移到待删除的记录上,然后调用TTable控件的Delete方法就可以实现,双击DeleteBtn按钮加入如下方法:if(DM-ConnectTabel-Eof !=true) /首先判断当前数据表中是否还有记录 if(MessageDlg(确认要删除该记录么?,mtInformation, TMsgDlgButtons()mbOK ConnectTabel-Delete();/删除当前记录 else Application-MessageBox(通讯薄中已没有记录,系统信息,MB_OK); return;/-由于以上操作都是在内存中进行,对数据表的更新操作并没有真正写入数据表中。当一切更新完毕需要调用TTable控件的Post方法来真正按照用户的操作更新数据表,为此我们为ReBtn按钮填加OnClick方法如下:if(NameEdt-Text =)|(GroupEdt-Text =) /判断Name、Group项是否为空 Application-MessageBox(不能向通讯薄中填加空信息,错误,MB_OK); return; else if(Tel1Edt-Text=&Tel2Edt-Text=&EmailEdt-Text=) Application-MessageBox(该联系者的信息太少,系统信息,MB_OK); return; else if(DM-ConnectTabel-State !=dsBrowse) DM-ConnectTabel-Post(); /更新数据库 /-通过上面的设计,用户就可以通过主窗体对后台的Address.db数据表进行浏览、填加、删除以及更新等操作了,这里并没有填加什么复杂的代码,主要是利用了C+ Builder强大的数据库编程功能。最终设计效果如下图:(三)、系统登陆模块考虑到通讯资料属于个人隐私,我们设计了该登陆窗体,需要用户输入正确的登陆密码才能正常使用该系统。新建一个窗体,将其命名为LoginForm。在其中加入2个TImage控件用来美化界面,再加入1个TEdit控件(PSEdt)和1个TSpeedBotton控件(OKBtn)。由于所加控件较简单所以只用将PSEdt的PasswordChar属性值设为*用于隐藏显示密码。按照前面的方法创建OKBtn按钮的OnClick事件响应函数用于核对用户输入与Login.db表中的密码是否相同,代码如下:if(PSEdt-Text=) /判断用户是否正确输入密码 Application-MessageBox(请输入管理密码,错误,MB_OK); return; else DM-LoginQuery-SQL-Clear(); /关闭TQuery控件用于接收新的SQL语句 DM-LoginQuery-Close(); AnsiString queryString =Select * from Login where PS=; queryString+=; queryString+=PSEdt-Text; queryString+=; try DM-LoginQuery-SQL-Add(queryString); /更新SQL语句 DM-LoginQuery-ExecSQL(); DM-LoginQuery-Active =true; /验证用户密码正确性 catch(EDBEngineError &E) Application-MessageBox(不能查询数据表,错误,MB_OK); return; if(DM-LoginQuery-RecordCount=0) Application-MessageBox(密码不正确,错误,MB_OK); return; else DM-LoginQuery-Close(); Application-MessageBox(欢迎使用个人通讯薄,欢迎,MB_OK); Close(); /-这里为了使用户可以在PSEdt中输完密码后可以通过直接按键盘上的Enter键进入主窗体,我们实现了PSEdt控件的KeyDown事件响应函数,该方法下后面的查询模块和修改密码模块中也有用到,以后不再复述。实现代码如下:if(Key =VK_MENU) /提示用户不要企图用Alt+F4组合键跳过登陆窗体 Application-MessageBox(请不要试图用非法手段进入本系统,警告,MB_OK); return; else if(Key=VK_RETURN) /实现热键 OKBtnClick(Sender); /-(四)、修改密码模块该模块允许在正确输入登陆密码的情况下更改登陆密码。验证密码部分仍用登陆窗体的验证方法。新建一个窗体,命名为PSForm,在其中加入1个TImage控件,3个TLabel控件、3个TEdit控件(分别命名为OldPSEdt、PSEdt和CPSEdt)与2个TSpeedButton控件(OKBtn与CancelBtn),设置以上关键控件属性如下表:PSForm窗体中各控件属性表控件名称属性属性值PSFormCaption密码管理ColorclBtnHighlightOldPSEdtPasswordChar*PSEdtPasswordChar*CPSEdtPasswordChar*创建OKBtn按钮的OnClick事件响应函数,该函数先验证用户当前输入的密码是否正确,如果正确就用用户输入的新密码更新数据库,代码如下:if(PSEdt-Text != CPSEdt-Text) / 验证两次输入新密码是否相同 Application-MessageBox(新密码确认错误,请重新输入,错误,MB_OK); PSEdt-Text=; CPSEdt-Text=; CPSEdt-Enabled = false; return; else / 按照登陆窗体的方法验证当前密码 DM-LoginQuery-SQL-Clear(); DM-LoginQuery-Close(); AnsiString queryString =Select * from Login where PS=; queryString+=; queryString+=OldPSEdt-Text; queryString+=; try DM-LoginQuery-SQL-Add(queryString); DM-LoginQuery-RequestLive = true; DM-LoginQuery-ExecSQL(); DM-LoginQuery-Active =true;if(DM-LoginQuery-RecordCount=0) Application-MessageBox(原密码不正确,错误,MB_OK); return; OldPSEdt-Text=; PSEdt-Text=; CPSEdt-Text=; PSEdt-Enabled=false; CPSEdt-Enabled=false; return; else /如果当前密码正确,则修改密码 DM-LoginQuery-Edit(); DM-LoginQuery-FieldValuesPS = PSEdt-Text; DM-LoginQuery-Post(); DM-LoginQuery-Close(); Application-MessageBox(修改密码成功,系统提示,MB_OK); catch(EDBEngineError &E) Application-MessageBox(不能查询数据表,错误,MB_OK); return; /-这里关键一步是将LoginQuery控件的RequestLive属性值设为ture,只有这样才能将查询到的记录属性从只读改成可编辑的。设计界面如下图:(五)、查询模块1、单目查询模块该模块利用TTable控件的Locate方法实现快速查找数据的功能,该方法的说明如下:Virtual bool_fastcall Locate(const System:AnsiString KeyFields,const System:Variant &KeyValues, Db:TlocateOptions Options);其中KeyFields参数表示要进行查找的字段名称,KeyValues参数表示查找的字段值,TlocateOptions参数表示查找的类型,该参数可以有以下两种选择:loCaseInsensitive和loPartialKey分别表示“查找数据时不区分大小写”和“找出符合字段部分值的最接近数据”,即模糊查询。本系统我们就选用这个方法。新建一窗体,将其命名为SearchForm,在其中加入2个TIamge控件美化界面、1个TEdit控件(SearchEdt)与1个TSpeedButton控件(SearchBtn),这里只需创建后者的OnClick事件响应函数来实现查询功能即可,具体代码如下:if(SearchEdt-Text =) /判断是否正确输入待查询的联系人姓名 Application-MessageBox(请输入要查询人的姓名,系统信息,MB_OK); return; else TLocateOptions Opts; /调用Locate方法进行模糊查询 OptsConnectTabel-Locate(Name,SearchEdt-Text,Opts) Application-MessageBox(查询成功完成,系统信息,MB_OK); return; else Application-MessageBox(没有找到符合条件的记录,错误,MB_OK); return; /-这里仅能通过联系者的姓名或者姓来进行查询,而联系人中同名的情况势必会出现,这就需要我们能够将相同名字的人筛选出来。同时在记录联系人信息的时候每个联系人都有一条Group信息,记录着该联系人和用户的关系。很多时候我们希望能够将联系人分组浏览,而这也需要将相同Group值的人筛选出来,以上两个需求因为功能相同,所以我们将其合并设计为下面的过滤查询。2、过滤查询模块鉴于上面的介绍和系统的可操作性,我们选择了Name(姓名)、Sex(性别)和Group(类别)作为筛选项,=(相等)和!=(不等)作为筛选条件。这里遵照管理信息系统将用户的参与减到最少的要求,将上述两部分放到两个列表框中让用户选择,最后用户输入筛选值,将这三部分的信息收集起来,通过TTable控件的Filtered属性值(当该属性值为true时,在TDBGrid控件中看到的记录都是经过筛选后符合查找条件的记录)引发OnFilterRecord方法来实现过滤查询。新建一窗体,将其命名为FilterForm,在其中加入1个TTable控件(Table1)、1个TDataSource控件(DataSource1)、1个TDBGrid控件、1个TImage控件、2个TComboBox控件(ChooseBox与TermBox)、1个TEdit控件(TermEdt)和2个TSpeedButton控件(FilterBtn与CancelBtn),设置其中关键控件属性如下表:FilterForm窗体中各控件属性表控件名称属性属性值Table1DatabaseNameAddressTableNameAddress.dbDataSource1DataSetTable1DBGrid1DataSourceDataSource1TermBoxItems=!=之所以为该窗体填加专用的数据库连接控件Table1和DataSource1控件是因为在由TMainMenu控件创建的菜单引发的窗体在设置数据模块中TTable控件Filtered属性从而引发其OnFilterRecord方法时会出错,这是由系统引起的,解决的方法有两个:将查询窗体放在主窗体中或者按照本设计采用的方法以达到系统整体形式的统一。为了收集筛选项与筛选值,我们为该窗体创建2个字符串变量,在窗体的头文件中的Public域中加入AnsiString myfield,myval的声明,接下来创建FilterBtn按钮的OnClick事件响应函数以引发Table1的OnFilterRecord方法,代码如下:myfield = ChooseBox-Text; /记录筛选项 myval = TermEdt-Text; /记录筛选值Table1-Filtered = true; /引发过滤函数/-为实现真正的过滤查询我们创建Table1控件的OnFilterRecord方法,代码如下:switch(TermBox-ItemIndex) /判断筛选条件 /利用布尔值参数判断表中数据是否符合筛选值 case 0: Accept=Table1-FieldValuesmyfield = myval; break; case 1: Accept=Table1-FieldValuesmyfield != myval; break

温馨提示

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

评论

0/150

提交评论