⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 文章.txt

📁 这是图书租借管理系统,但没有编译,还存在一点问题,请大家来帮忙解决一下
💻 TXT
📖 第 1 页 / 共 4 页
字号:
    表单的ShowWindow属性设置为l—InTop-LevelForm。表单的数据源book.dbf、per—
  son.dbf和图书分类表.dbf的属性Exclusive=.T.。
    .  表单llcx--Init过程代码
    public llfs,khllfs,tscxfs,c,khxmcx
    llfs=””
    khllfs=””
    tscxfs=””
    c=0    ·
    khxmcx=””
    thisform.pageframe1.page1.gridl.recordsource=""
    thisform.pageframe1.page2.gridl.recordsource=""
    thisform.pageframe1.page3.gridl.recordsource=""。
    thisform,pageframe1.page4.gridl.recofdsourcee=""
    1.页面1所包含的控件、控件属性及相应代码
    页面1(图书信息浏览)包含1个标签、1个选项组控件、1个表格控件和2个命令按钮
  控件。其中表格控件包含10列,即属性ColumnCount=10。在设置表格控件属性时,将每
  列的标题Caption依次设为:“图书流水号”、“ISBN”、“名称”、“分类”、“出版社”、“单价”、
  “复本数量”、“押金”、“日租金”、“日罚金”。表单运行时页面1效果如图4.15所示。
    .  控件Commandl(浏览)——单击事件(C1ick)过程代码
    d。case ss确定排序方式。
    case thisform.pageframel.pagel.optiongroupl.optionl.value‘1
    llfs=”book.图书流水号”
    case thisform.pageframel.pagel.optlongroupl.option2.value:1
    llfs+”book.图书名称,book.图书流水号”
    case thisform.pageframel.pagel.optiongroupl.option3.value’1
    llfs=”book.图书分类,book.图书流水号”
    c9se thisform.pageframel.pagel.optiongroupl.option4.value:1
    llfs=”book.出版社,book.图书流水号”
    endcase
    SELECT *;
    PRGHtszj! book;
    ORDER BY &llfs;
    INTO CURSOR tsll
    thisform.pageframel.pagel.gridl.recordSource=”tell',
    thisform.refresh
    ·  控件Command2(返回)——单击事件(Click)过程代码
    thisform.release
    2.页面2所包含的控件、控件属性及相应代码
    页面2<客户信息浏览)包含1个标签、1个选项组控件、1个表格控件和2个命令按钮
控件。其中表格控件包含7列,即属性C。1umnCount=7。设置表格控件属性时,将每列的
标题CapUon依次设为:“客户编号”、“姓名”、“身份证号”、“住宅电话”、“手机”、“住址”、“租
金累计”。表单运行时页面2效果如图4.16所示。
    圈4.16  1lcy.scx运行时页面2效果
    ·  控件Commandl(浏览)——单击事件(Click)过程代码
    docase ss确定排序方式
    case thisform.pageframel.page2.optiongroupl.optionl.value:1

    khllfs=”person.客户编号”
    case thisform.pageframel.page2.optiongroupl.option2.value=1
    khllfs=”person.客户姓名,person.客户编号”
    case thisform.pagerramel.page2.optiongroupl.option3.value=1
    khllfs=”person.租金累计desc',
    endcase
    SELECT *;
    FROM tszi!person;
    ORDERⅢ&khllfs;
    INT0 CURSORkhll
    thisform.pageframel.page2.gridl.recordSource=”khll',
    thisform.refresh
    ·  控件Command2(返回)--单击事件(Click)过程代码
    thisform.release
    3.页面3所包含的控件、控件属性及相应代码
    页面3(图书信息查询)包含3个标签、1个选项组控件、1个文本框控件、1个组合框控
件、1个表格控件和2个命令按钮控件。
    文本框Textl和组合框Combol的Enabled属性设为.F.。在本页面中,如果选择“按
图书名称查询”,那么文本框Textl可用,允许输入图书名称;如果选择“按图书分类查询”,
那么组合框Comb01可用,允许选择图书所属类别。
    表单中表格控件包含10列,即属性ColumnCount=10。将每列的标题Caption依次设
为;“图书流水号”、“ISBN”、“名称”、“分类”、“出版社”、“单价”、“复本数量”、“押金”、“日租
金”、“日罚金”。表单运行时页面3效果如图4.17所示。
    圈4.17  llex.scx行时页面3效果
  .  选项组控件Optiongroupl--事件InteractiveChange过程代码
  docase &&确定排序方式

    case thisform.pagefr~e1.page3.optiongroupl.optionl.value’1
    tscxfs=”book.图书名称”
    case thisform.pageframel.page3.optiongroupl.option2.value’1
    tscxfs=”book.图书分类”
    endcase
    iftscxfs=”book.图书名称”
    thisform.pageframel.page3.textl.enabled:.t.
    thisform,pageframel.page3.text/.setfocus
    thisform,pageframel.page3.comb01.enabled:.f.
    c=1
    endif
    if tscxfs=”book.图书分类”
    thisform.pageframe1.page3.comb01.enabled=t.
    thisform.pageframe1.page3.comb01.setfocus
    thisform.pageframe1.page3.textl.enabled:.f.
    c=2
    endf
    ·  控件Commandl(查询)——单击事件(Click)过程代码
    if c=1
    SELECT *;
    FROM tszj! book;
    WHEREBook.图书名称=allt(thisform.pageframel.page3.textl.value);
    ORDER BY Book.图书流水号;
    INTO CURSOR tscx
    endif
    if c=2
    SELECT‘;
    FROM tszj! book;
    WHERE Book.图书分类=allt(thisform.pageframel.page3.comb01.value);
    ORDER9YBook.图书流水号;
    INTOCURSOR tscx
    endif
    if reccount()=0
    messagebox(”没有查询到相关信息”,0,”提示!”)
    endif
    thisform,pageframel.Page3.gridl.recordSource=”tscx”
    thisform.refresh
    4.页面4所包含的控件、控件属性及相应代码
    页面4(客户信息查询)包含1个标签、1个文本框控件、1个表格控件和2个命令按钮控件。
    其中表格控件包含7列,即属性C。lumnCollrlt=7。将每列的标题Captlon依次设为:
  “客户编号”、“姓名”、“身份证号”、“住宅电话”、“手机”、“住址”、“租金累计”。在页面文本框

中,如果输入客户姓名,单击“查询”按钮,就可以查询该用户的相关信息。表单运行时页面
4效果如图4.18所示。
    图4.18  1lex.sex运行时页面4效果
    ·  控件Commandl(查询)--单击事件(Click)过程代码
    kbxmcx=alit(thisform.pageframel.page4.textl.value)
    SELECT *;
    FROM tsxj! persons
    WHEREPerson.客户姓名:khxmcx;
    ORDERBYPerson.客户编号;
    INTO CURSOR khcx
    if reccount()=0
    messagebox(”没有查询到相关信息”,o,”提示!”)
    endif
    thisform.pageframel.page4.gridl.recordSource’”khcx”
    thisform.refresh
4.3.7  租借管理
    租借管理表单zjgl.SCX位于默认路径的forms文件夹中。这一表单完成对图书租借、
归还及查询功能。借书时,系统检查复本数量,如果复本数量为零,不能租借;如果出租成
功,复本数量减1;还书时,如果还书成功,复本数量加1;查询时,可以查询书被谁借去了?
谁借了什么书。表单zjgl.SCX的ShowWindow属性设为2—AsTop—LevelForm。
    表单运行效果如图4.19所示。
    单击表单的“借书管理”、“还书管理”和“租借查询”按钮控件,可以运行如下表单:
    ·  借书管理表单jsgl.SCX
    ·  还书管理表单hsgll.sex
    ·  租借查询表单zjcx.sc

    图4.19  zjgl.scx运行效果
    1.借书管理
    借书管理由表单jsgl.SCX负责,该表单位于默认路径的forms文件夹中。
    该表单的数据源为数据表book.dbf(图书表)、租借表.dbf(租借表)和person.dbf(客户
    表)。book.dbf(图书表)和租借表.dbf(租借表)的属性BufferModeOverride=3,3个表的
    属性Exclusive=.T
    ·  本表单包含7个标签、2个组合框控件、5个文本框控件和4个命令按钮控件,其中2个
    组合框控件和5个文本框控件的属性Enabled=.F.。
    表单中“选择客户”和“请选择图书”对应两个组合框Comb01和Comb02,它们的属性
    设置如图4.20和图4.2l所示。其余控件是将数据源租借表.dbf中的部分字段拖至表单
    中形成的。
    图4.20  Combol属性设置    图4.21  Comb02属性设置
表单运行效果如图4.22所示。
·  表单--init过程代码
thisform.comb01.enabled=T.
thisform.comb01.setfocus
·  表单--load过程代码


    图4.22 jsgl.SCX运行效果
  sele租借表
  setmultilocks on &&允许尝试锁定一组记录
  ·  控件Comb01——InteractlveChange过程代码
  thisform.comb02.enabled=.t.
  thisform.comb02.setfocus
  ·  控件Comb02——InteractlveChange过程代码
  sele book
  lcca for isbn:thisform.comb02.value
  ifbook.复本数量=0
  messagebox(”对不起,这种书已经没有复本,稍后再借!重新选择”,o,”提示·)
  this.value=""
  this.enabled=.f.
  thisform.combo1.setfocus
  else
    thisform.commandl.enabled:.t.
  endif
  sele租借表
  ·  控件Commandl(借阅)——单击事件(C1ick)过程代码
  append blank
  thisform.refresh
  **客户编号和ISBN通过选择获得,不需要输入操作
  thisform.txt客户编号.value=thlsform.comb01.value
  thisform.txtisbn.value=thisform.comb02.value
  thlsform.combnl.enabled=f.
  thisform.comb02.enabled=f.
  thisform.txt预借天数.enabled=t.
  thisform.txt预借天数.setfocus


  thisform.txt借期.enabled=.t.
  thisform.txt预付金额.enabled=t.
  thisform.commandl,enabled=.f.
  thisform.command2.enabled=.t.
  thisform.command3.enabled=.t.
  thisform.command4.enabled=.f.
  .  控件Command2(保存)——单击事件(C1ick)过程代码
  =tableupdate(.t.)
  thisform.commandl.enabled=.f.
  thisform.command2.enabled=.f.
  thisform.command3.enabled=.f.
  thisform.command4.enabled=.t.
  thisform.comb01.enabled=.t.
  thisform.txt预借天数.enabled=.f.
  thisform.txt借期.enabled=.f.
  thisform.txt预付金额.enabled=.f.
  sele book
  replbook.复本数量withbook.复本数量—1
  sele租借表
  ·  控件Command3(恢复)——单击事件(Click)过程代码
  =tablerevert(.t.)
  thisform.commandl.enabled=f
  thisform.command2.enabled=f.
  thisform.command3.enabled=f.
  thisform.command4.enabled=t.
  thisform.comb01.enabled=t
  thisform.txt预借天数.enabled=f
  thisform.txt借期.enabled=f.
  thisform.txt预付金额.enabled=f.
  .  控件Command4(返回)——单击事件(Click)过程代码
  ??CHR(7)
  result=messagebox(”是否退出?”,4十48十256,”信息窗口”)
  if result=6
    usedata\租借表excl
    set excl On
    pack
    set excl Off

    USe
    thisform.release
    endif
    2.还书管理
    还书管理由表单hsgll.sex负责,该表单位于默认路径的forms文件夹中。
    该表单的数据源为数据表book.db{(图书表)、租借表.dbf(租借表)和person.dbf(客
户表)。book.dbf(图书表)和租借表.dbf(租借表)的属性BufferModeOverride=3,3个表
的属性ExclUSlVe=.T一本表单包含12个标签、2个组合框控件、10个文本框控件和4个
命令按钮控件,其中2个组合框控件和5个文本框控件的属性Enabled=.F.。表单中“选
择客户”和“请选择图书”对应两个组合框Comb01和Comb02,它们的属性设置如图4.20
和图4.21所示。其余控件是将数据源租借表.dbf表中的部分字段拖至表单中形成的。
    表单运行后,只需选择客户、图书,然后输入还期。此时单击“保存”按钮,系统将自动计
算出各项费用,显示应退还用户的剩余金额或用户应补交的金额,同时会将book.dbf(图书
表)表中“复本数量”增1、为person.dbf(客户表)中当前客户完成租金累计(租金累计可以
用于后续的业务统计)。表单运行效果如图4.23所示。
    图4.23 hsgll.scx运行效果
  ·  表单——load过程代码
  sele租借表
  setmultilocksmSS允许尝试锁定一组记录
  ·  控件Combo]  InteractiveChange过程代码
  thisform.combo2.enabled=t.
  thisform.combo2.setfocus
  .  控件Comb02  InteractiveChange过程代码
  sele租借表
  locatefor客户编号=thisform.comb01.value.and;
  isbn=thisform.comb02.value.and.还期={}&&查找租借记录
  if eof()=t.
  messagebox(”没有相关记录,重新选择”,0,’提示!,
  endif


thisform.refresh
thisform.combo1.enabled=.t.
thisform.combo2.enabled=.t.
thisform.txt还期.enabled=.t.
thisform.txt还期.setfocus

thisform.command1.enabled=.f.
thisform.command2.enabled=.t.
thisform.command3.enabled=.t.
thisform.command4.enabled=.f.

控件command1(调出资料)——单击事件(click)过程代码
thisform.combo1.enabled=.t.
thisform.combo1.setfocus
控件command2(保存)——单击事件(click)过程代码

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -