授课 -16 图书系统表单制作

17
1 茂茂茂茂茂茂茂茂 授授 -16 授授 授授授授 书统 16.1 茂茂茂 茂茂 16.2 茂茂茂 茂茂 16.3 茂茂茂 茂茂茂茂 16.4 茂茂茂茂茂 茂茂 授授授授授授授授授 授授 授授授授授授授授 授授授授授授授授授授授授授授授 书统 ,。

description

授课 -16 图书系统表单制作. 本课通过讲授几个图书系统表单制作的实例,提高同学们解决实际问题的能力。. 16.1 办理借书表单 16.2 办理还书表单 16.3 查看借书情况表单 16.4 成批录入图书表单. 16.1 办理借书表单. 【 学习目标 】 办理借书表单的制作 【 关键方法 】 SQL-SELECT 命令的应用. 【 任务 】 设计制作“办理借书”表单 【 解决任务 】 1. 设计思路 在“项目 TS” 中创建表单(用表单设计器),以 TSJS 为名保存。 - PowerPoint PPT Presentation

Transcript of 授课 -16 图书系统表单制作

Page 1: 授课 -16     图书系统表单制作

1茂名职业技术学院

授课 -16 图书系统表单制作

16.1 办理借书表单

16.2 办理还书表单

16.3 查看借书情况表单

16.4 成批录入图书表单

本课通过讲授几个图书系统表单制作的实例,提高同学们解决实际问题的能力。

Page 2: 授课 -16     图书系统表单制作

2茂名职业技术学院

16.1 16.1 办理借书表单办理借书表单

【学习目标】 办理借书表单的制作

【关键方法】 SQL-SELECT 命令的应用

Page 3: 授课 -16     图书系统表单制作

3茂名职业技术学院

【任务】 设计制作“办理借书”表单 【解决任务】 1. 设计思路

在“项目 TS” 中创建表单(用表单设计器),以 TSJS 为名保存。 设置表单 TSJS 相关的属性,使其成为在顶层表单中,运行时居中。 按图 6A 所示,在表单 TSJS 中添加两个“表格”控件,并将左表中放入 DZB 的姓名、证号两字段,右表中放入 TSB 的编码、书名、作者、数量四字段。设置表格的只读属性。 按图 6A 所示,在表单中用数据 环境施放“证号”、“编码”两个 字段。添加施放“确认借书”、 “退出”两个按钮。最后,施放 一些标签,用以表明表单的标 题和提示办理借书的方法。 运行中的表单, 见图 6A 。

图 6A

Page 4: 授课 -16     图书系统表单制作

4茂名职业技术学院

2. 属性设置( 1 )表单 Form1 的属性 AutoCenter 为 .T.

ShowWindow 为 1— 在顶层表单中( 2 )表格 Grid1 、 Grid2 的属性

ReadOnly 为 .T.

其它一些属性按图 6A 自行设置。3. 事件代码 ( 1 )表格 Grid1 、 Grid2 的 AfterRowColChange

添加: THISFORM.REFRESH

Page 5: 授课 -16     图书系统表单制作

5茂名职业技术学院

( 2 ) “确认借书”按钮的 Click

ZHH=ALLT(THISFORM.TXT 证号 .VALUE)

BMM=ALLT(THISFORM.TXT 编码 .VALUE)

SELE DIST 数量 FROM TSK!TSB WHER 编码 =BMM INTO ARRA TSL

SELE COUNT(*) FROM TSK!JYB WHER 证号 =ZHH AND 还书日期 ={ } GROUP BY 证号 INTO ARRA JSL

JSR=DATE()

SELE MIN( 借书日期 ) FROM TSK!JYB WHER 证号 =ZHH AND 还书日期 ={ } GROUP BY 证号 INTO ARRA JSR

DO CASE

CASE TSL(1) =0

MESSAGEBOX(' 对不起 , 因为该书已借完 ,'+CHR(13)+CHR(13)+' 无法为您办理 , 请原谅 !',64,' 提示 ')

CASE JSL(1) >=5

MESSAGEBOX(' 对不起 , 因为您借书已有 5 本 ,'+CHR(13)+CHR(13)+' 按规定无法为您办理 , 请原谅 !',64,' 提示 ')

Page 6: 授课 -16     图书系统表单制作

6茂名职业技术学院

CASE DATE()-JSR(1) >91

MESSAGEBOX(' 对不起 , 因为您借的书有的超出 91 天未还 ,'+CHR(13)+CHR(13)+' 按规定无法为您办理 , 请原谅 !',64,' 提示 ')

OTHE

X=MESSAGEBOX(' 确认读者 [&ZHH.] 所借图书的编码是 :&BMM. 吗 ?',1+32,' 提示 ')

IF X=1

INSE INTO JYB( 证号 , 编码 , 借书日期 ) VALUES (ZHH,BMM,DATE())

UPDA TSB SET 数量 = 数量 -1 WHER 编码 =BMM

MESSAGEBOX(' 已办理成功 !',64,' 提示 ')

ELSE

MESSAGEBOX(' 此项借书操作已取消 !',64,' 提示 ')

ENDI

ENDC

thisform.refresh

Page 7: 授课 -16     图书系统表单制作

7茂名职业技术学院

16.2 16.2 办理还书表单办理还书表单

【学习目标】 办理还书表单的制作

【关键方法】 视图的制作 SQL-UPDATE 命令的应用

Page 8: 授课 -16     图书系统表单制作

8茂名职业技术学院

【任务】 设计制作“办理还书”表单 【解决任务】 1. 设计思路

在“项目 TS” 中创建表单(用表单设计器),以 TSHS 为名保存。 设置表单 TSJS 相关的属性,使其成为在顶层表单中,运行时居中。 按图 6B 所示,在表单 TSHS 中添加一个“表格”控件,并将表中放入视图HSV 的证号、姓名、编码、书名、借书日期、还书日期等字段。设置表格的只读属性。 按图 6B 所示,在表单中用数据 环境施放“证号”、“编码”等四 字段。添加施放“确认还书”、 “退出”两个按钮。最后,施放 一些标签,用以表明表单的标 题和提示办理还书的方法。 运行中的表单, 见图 6B 。

图 6B

Page 9: 授课 -16     图书系统表单制作

9茂名职业技术学院

2. 属性设置( 1 )表单 Form1 的属性 AutoCenter 为 .T.

ShowWindow 为 1— 在顶层表单中( 2 )表格 Grid1 的属性

ReadOnly 为 .T.

其它一些属性按图 6B 自行设置。3. 事件代码 ( 1 )表格 Grid1 的 AfterRowColChange

添加: THISFORM.REFRESH

Page 10: 授课 -16     图书系统表单制作

10茂名职业技术学院

( 2 ) “确认还书”按钮的 ClickIF THISFORM.TXT 还书日期 .VALUE={ }

ZHH=ALLT(THISFORM.TXT 证号 .VALUE)

BMM=ALLT(THISFORM.TXT 编码 .VALUE)

X=MESSAGEBOX(' 确认读者 [&ZHH.] 还的图书编码是 :&BMM. 吗 ?',1+32,' 提示 ')

IF X=1

UPDA TSK!HSV SET 还书日期 =DATE() WHER 编码 =BMM AND 证号 =ZHH

UPDA TSK!TSB SET 数量 = 数量 +1 WHER 编码 =BMM

MESSAGEBOX(' 已办理成功 !',64,' 提示 ')

ELSE

MESSAGEBOX(' 已取消 !',64,' 提示 ')

ENDI

ELSE

MESSAGEBOX(' 该书已归还 !',64,' 提示 ')

ENDI

thisform.refresh

Page 11: 授课 -16     图书系统表单制作

11茂名职业技术学院

16.3 16.3 查看借书情况表单查看借书情况表单

【学习目标】 查看借书情况表单的制作

【关键方法】 一对多表单向导的使用

Page 12: 授课 -16     图书系统表单制作

12茂名职业技术学院

【任务】 设计制作“查看借书情况”表单 【解决任务】 设计制作

在“项目 TS” 中创建表单(用一对多表单向导),完成后,以 TSKJ 为名保存。 按图 6C 所示,在使用表单向导制作过程中,父表为 DZB ,并选用表中的证号、姓名、部门、电话等字段;子表为 JSV 视图,并选用表中的编码、书名、作者、出版社、单价、借书日期、还书日期、书号等字段。 按图 6C 所示,进行表单的 重新布局和美化工作。

运行中的表单, 见图 6C 。

图 6C

Page 13: 授课 -16     图书系统表单制作

13茂名职业技术学院

16.4 16.4 成批录入图书表单成批录入图书表单

【学习目标】 成批录入图书表单的制作

【关键方法】 VFP 应用程序的编写

Page 14: 授课 -16     图书系统表单制作

14茂名职业技术学院

【任务】 设计制作“成批录入图书”表单 【解决任务】 可将电子表格的图书数据成批录入到数据库 ,提高工作效率。 1. 设计思路

在“项目 TS” 中创建表单(用表单设计器),以 TSPL 为名保存。 设置表单 TSPL 相关的属性,使其成为在顶层表单中,运行时居中。 按图 6D 所示,在表单 TSPL 中添加一个“列表框”控件。 按图 6D 所示,在表单中施放 “转换和导入”、 “退出”两个 按钮。施放 一些标签,用以 表明表单的标 题和提示操作 方法。

运行中的表单, 见图 6D 。图 6D

Page 15: 授课 -16     图书系统表单制作

15茂名职业技术学院

2. 属性设置 表单 Form1 的属性 AutoCenter 为 .T.

ShowWindow 为 1— 在顶层表单中 其它一些属性按图 6D 自行设置。3. 事件代码 ( 1 )列表框 LIST1 的 INIT 事件代码 :

LIST1 INIT:

PUBL KB

public arl[ 1]

=ADIR(arl,"tsb*.XLS")

=ASORT(arl)

thisform.list1.Rowsourcetype=5

thisform.list1.Rowsource="arl"

( 2 )列表框 LIST1 的 CLICK 事件代码 :

KB=THIS.VALUE

Page 16: 授课 -16     图书系统表单制作

16茂名职业技术学院

( 3 ) “转换和导入”按钮的 Click 事件代码

KBB=ALLT(KB)

KBX=KBB+' TYPE XL5'

SELE E

USE TSB

COPY STRU TO YTSB

USE

SELE F

USE YTSB

APPE FROM &KBX

DELE RECO 1

PACK

BROW NOAP NODE NOED

USE

X=MESSAGEBOX(' 你已将表 : &KBB. 电子表的数据成功转换 !'+CHR(13)+CHR(13)+;

' 你确认将表 : &KBB. 数据添加到本系统的表 [TSB] 中吗 ?',1+32,' 提示 ')

IF X=1

SELE E

USE TSB

SELE F

USE YTSB

GO TOP

Page 17: 授课 -16     图书系统表单制作

17茂名职业技术学院

DO WHIL !EOF()

SCAT TO BA

SELE E

LOCA FOR 书号 =BA(2)

IF FOUND()

REPL 数量 WITH 数量 +F. 数量 ELSE

INSE INTO TSK!TSB FROM ARRA BA

ENDI

SELE F

SKIP

ENDD

DELE ALL

PACK

USE

SELE E

USE

X1=MESSAGEBOX(' 你已将表 : &KBB. 数据成功添加到本系统的表 [TSB] 中了 !'+CHR(13)+CHR(13)+;

' 想浏览一下吗 ?',1+32,' 提示 ')

IF X1=1

USE TSB

BROW NOAP NODE NOED

USE

ENDI

ELSE

MESSAGEBOX(' 取消本次添加操作 !',64,' 提示 ')

ENDI- 结束 -