6.0~9.0 解决方案与范例大全
2
目 录
前 言 ······································ 22
1.阅读程序范例是学习编程的最好方法 ························································································ 22
2.本书所选程序范例的特点 ······································································································· 22
最经典的 Visual FoxPro 代码 ··························································································· 22
最关键、最新技术的程序范例 ························································································· 22
最全面的程序范例 ········································································································ 22
3.阅读本书程序范例的建议 ······································································································· 23
第 1 章 项目 ···································· 24
1.1 跟踪项目管理器中的动作 ······································································································ 24
1.1.1 示例演示 ·················································································································· 24
1.1.1 项目对象的分层结构 ··································································································· 25
1.1.2 Projects 集合 ·············································································································· 26
1.1.3 Project 对象················································································································ 26
1.1.4 ProjectHook 对象 ········································································································· 29
1.1.5 Project 对象和 ProjectHook 对象的交互 ············································································· 31
1.1.7 解读示例 ·················································································································· 31
第 2 章 数据库 ··································· 33
2.1 使用数据库事件 ·················································································································· 33
2.1.1 示例演示 ·················································································································· 33
2.1.2 数据库事件简介 ········································································································· 34
2.1.3 获取表单或程序文件所在目录的完整路径名称 ·································································· 36
2.1.4 打开、关闭数据库设计 ································································································ 37
2.1.5 数据库事件设置 ········································································································· 37
2.2 程序化地检查表属性 ············································································································ 38
2.2.1 示例演示 ·················································································································· 39
2.2.2 获取表的信息 ············································································································ 39
2.2.3 获取字段的信息 ········································································································· 40
2.2.4 获取索引的信息 ········································································································· 41
2.2.5 使用 PADL( )、PADR( )和 PADC( )函数进行字符填充 ························································· 42
2.3 为字段创建一个默认惟一 ID 值 ······························································································· 43
2.3.1 示例演示 ·················································································································· 43
2.3.2 Visual FoxPro 的存储过程 ······························································································ 44
2.3.3 为字段指定默认值 ······································································································ 44
2.4 在运行时刻排序 ·················································································································· 45
2.4.1 示例演示 ·················································································································· 45
2.4.2 指定索引的排序方式(升序或降序) ·············································································· 46
2.4.3 为表格的列标头指定动作 ····························································································· 47
2.5 使用 BINTOC( ) 创建小尺寸索引 ··························································································· 48
2.5.1 示例演示 ·················································································································· 48
2.5.2 转换整数到二进制格式 ································································································ 49
版权所有:张洪举, http://blog.csdn.net/zhanghongju
3
2.5.3 创建二进制索引 ········································································································· 50
2.6 索引表达式 ························································································································ 51
2.6.1 示例演示 ·················································································································· 51
2.6.2 字符型字段与数值型字段的排序规则 ·············································································· 51
2.7 嵌套事务处理 ····················································································································· 52
2.7.1 示例演示 ·················································································································· 53
2.7.2 使用事务处理更新数据的优点 ······················································································· 53
2.7.3 控制事务处理的命令 ··································································································· 54
2.7.4 事务处理的规则 ········································································································· 55
2.7.5 嵌套事务处理 ············································································································ 56
2.8 视图/查询—按指定的国家选择客户 ························································································· 56
2.8.1 示例演示 ·················································································································· 57
2.8.2 创建参数化视图 ········································································································· 57
2.9 视图/查询—从左外连接选择记录 ···························································································· 59
2.9.1 示例演示 ·················································································································· 60
2.9.2 创建左外连接查询 ······································································································ 60
2.10 视图/查询—从右外连接选择记录 ··························································································· 61
2.10.1 示例演示················································································································· 62
2.10.2 创建右外连接查询····································································································· 62
2.11 视图/查询—从完全外连接选择记录 ························································································ 63
2.11.1 示例演示 ················································································································· 63
2.11.2 创建完全外连接查询 ·································································································· 64
2.12 视图/查询—从内连接选择记录 ······························································································ 64
2.12.1 示例演示················································································································· 65
2.12.2 创建内连接查询········································································································ 65
2.13 从内连接和外连接选择记录 ·································································································· 66
2.13.1 示例演示················································································································· 66
2.13.2 创建从内连接和外连接选择记录的查询·········································································· 67
2.14 从嵌套连接选择记录 ··········································································································· 67
2.14.1 示例演示················································································································· 68
2.14.2 创建从嵌套连接选择记录的查询··················································································· 68
2.15 选择 10 种销售最差的产品 ··································································································· 69
2.15.1 示例演示················································································································· 69
2.15.2 创建选择 10 种销售最差的产品的查询 ··········································································· 70
2.16 选择 10 种销售最好的产品 ··································································································· 72
2.16.1 示例演示················································································································· 73
2.16.2 创建选择 10 种销售最好的产品的查询 ··········································································· 73
2.17 以交互方式建立 SELECT 语句 ······························································································ 73
2.17.1 示例演示················································································································· 74
2.17.2 “以交互方式建立 SELECT 语句”表单设计 ··································································· 74
第 3 章 表单 ···································· 79
3.1 从表单返回一个值 ··············································································································· 79
6.0~9.0 解决方案与范例大全
4
3.1.1 示例演示 ·················································································································· 79
3.1.2 建立调用表单 ············································································································ 80
3.1.3 建立被调用的模式表单 ································································································ 80
3.2 建立一个 SDI 表单 ··············································································································· 81
3.2.1 示例演示 ·················································································································· 81
3.2.2 建立 SDI 表单 ············································································································ 82
3.2.3 将其他表单显示在 SDI 表单中 ······················································································· 82
3.2.3 在 SDI 表单中加入工具栏 ····························································································· 83
3.2.4 在 SDI 表单中加入菜单 ································································································ 84
3.3 建立一个查询示例表单 ········································································································· 88
3.3.1 示例演示 ·················································································································· 89
3.3.2 筛选记录命令 SET FILTER TO ······················································································· 90
3.3.3 查询条件录入设计 ······································································································ 90
3.3.4 执行查询设计 ············································································································ 91
3.3.5 查看当前工作区的筛选条件 ·························································································· 93
3.3.6 清除筛选条件 ············································································································ 93
3.4 建立透明表单 ····················································································································· 93
3.4.1 示例演示 ·················································································································· 94
3.4.2 分层窗口 ·················································································································· 94
3.4.3 SetWindowLong( )函数 ·································································································· 95
3.4.4 SetLayeredWindowAttributes( )函数 ·················································································· 96
3.4.5 设置表单为分层窗口 ··································································································· 96
3.4.6 调整表单的透明度 ······································································································ 97
3.5 对象间的引用方法 ··············································································································· 97
3.5.1 示例演示 ·················································································································· 98
3.5.2 建立表单集 ··············································································································· 98
3.5.3 对象的引用方式—直接引用和相对引用 ··········································································· 99
3.5.4 表单集中表单间的对象引用 ························································································· 100
3.5.5 独立表单间的对象引用 ······························································································· 101
3.6 运行表单的多个实例 ··········································································································· 102
3.6.1 示例演示 ················································································································· 102
3.6.2 什么是私有数据工作期 ······························································································· 103
3.6.3 私有数据工作期与数据环境和工作区的关系 ···································································· 103
3.6.4 建立表单的私有数据工作期 ························································································· 104
3.6.5 使用多个表单实例更新数据 ························································································· 105
3.6.6 运行表单的多个实例 ·································································································· 106
3.7 在表单上提供 What's this 帮助 ······························································································ 106
3.7.1 示例演示 ················································································································· 107
3.7.2 WinHelp 帮助文件 ······································································································ 107
3.7.3 建立 RichText 格式文档 ······························································································· 108
3.7.4 创建帮助文件 ··········································································································· 111
3.7.5 建立 What’s this 表单 ·································································································· 113
版权所有:张洪举, http://blog.csdn.net/zhanghongju
5
3.7.6 使用表单的 WhatsThisMode 方法启动 What’s this 模式 ······················································· 114
3.7.7 使用控件的 ShowWhatsThis 方法显示指定帮助信息 ··························································· 114
3.8 在表单之间传递参数 ··········································································································· 115
3.8.1 示例演示 ················································································································· 115
3.8.2 向被调用表单传递参数 ······························································································· 116
3.8.3 在表单中接收参数值和向调用表单返回值 ······································································· 117
3.9 在图像控件中显示图片 ········································································································ 118
3.9.1 示例演示 ················································································································· 119
3.9.2 在列表框控件中显示文件列表 ······················································································ 119
3.9.3 在图像控件中显示图片 ······························································································· 120
3.10 表单制图—在表单上画线条和形状 ························································································ 121
3.10.1 示例演示················································································································ 122
3.10.2 Visual FoxPro 中的图形方法 ························································································ 122
3.10.3 Visual FoxPro 中的图形属性 ························································································ 125
3.10.4 fdToolBar 类设计 ······································································································ 127
3.10.5 frmFD 类设计 ·········································································································· 134
3.10.6 在表单集中包含 fdmain.scx 表单和工具栏 ······································································ 135
3.11 表单制图—在表单上绘制公式图形 ························································································ 136
3.11.1 示例演示 ················································································································ 136
3.11.2 选择图形公式 ·········································································································· 137
3.11.3 绘制极坐标图形引擎 PGraph.prg ·················································································· 138
3.11.4 在调整“图形窗口”大小后重绘图形 ············································································ 139
3.12 表单制图—在表单上显示线形动画 ························································································ 140
3.12.1 示例演示················································································································ 140
3.12.2 动画的实现原理······································································································· 141
3.12.3 实时显示用户所画线条的形状····················································································· 142
3.13 数据录入—建立单个表数据录入表单 ····················································································· 145
3.13.1 示例演示················································································································ 146
3.13.2 新增记录················································································································ 146
3.13.3 删除记录················································································································ 146
3.13.4 过滤掉已添加删除标记的记录····················································································· 147
3.14 数据录入—建立一对多数据录入表单 ····················································································· 148
3.14.1 示例演示················································································································ 148
3.14.2 在数据环境中建立一对多关系····················································································· 149
3.14.3 使用表格控件建立一对多关系····················································································· 150
3.14.4 新增和删除父表中的记录··························································································· 151
3.14.5 新增和删除子表中的记录··························································································· 152
第 4 章 控件 ···································· 154
4.1 在文本框中进行格式化输入和验证数据的有效性 ······································································· 154
4.1.1 示例演示 ················································································································· 154
4.1.2 文本框的输入、输出格式控制 ······················································································ 155
4.1.3 文本框的数据验证设计 ······························································································· 157