本书内容以 Microsoft Visual FoxPro 6.0~9.0为主,深入、全面地剖析了Visual FoxPro的各种解决方案和开发技巧。使读者在了解如何做的同时,知道为什么这样做,是帮助您尽快上手的最佳图书。本书剖析了Visual FoxPro 6.0--9.0中附带的近200个程序范例。这些程序范例都是由微软公司Visual FoxPro开发团队编写的,代码简洁,逻辑性、实用性和可重构性都很强,读者可以很容易地将其应用到自己的应用程序中。同时,这些范例涉及到程序开发的各个方面,如项目、数据库、表单、工具栏、基本类、菜单、编程、报表、ActiveX控件和WindowsAPI,以及VisualFoxPr08.0/9.0的新增功能等。本书对这些范例以及范例所涉及到的技术进行了深入分析和阐释,使读者在了解到如何做的同时,知道为什么这样做。\r\n 本书可作为广大Visual FoxPro爱好者和程序开发人员的必备参考书。
第1章 项目 1\r\n1.1 跟踪项目管理器中的动作 1\r\n1.1.1 示例演示 1\r\n1.1.2 项目对象的分层结构 1\r\n1.1.3 Projects集合 3\r\n1.1.4 Project对象 3\r\n1.1.5 ProjectHook对象 6\r\n1.1.6 Project对象和ProjectHook对象的交互 8\r\n1.1.7 解读示例 8\r\n第2章 数据库 10\r\n2.1 使用数据库事件 10\r\n2.1.1 示例演示 10\r\n2.1.2 数据库事件简介 11\r\n2.1.3 获取表单或程序文件所在目录的完整路径名称 13\r\n2.1.4 打开、关闭数据库设计 14\r\n2.1.5 数据库事件设置 14\r\n2.2 程序化地检查表属性 15\r\n2.2.1 示例演示 15\r\n2.2.2 获取表的信息 16\r\n2.2.3 获取字段的信息 17\r\n2.2.4 获取索引的信息 18\r\n2.2.5 使用PADL( )、PADR( )和PADC( )函数进行字符填充 19\r\n2.3 为字段创建一个默认惟一ID值 19\r\n2.3.1 示例演示 19\r\n2.3.2 Visual FoxPro的存储过程 20\r\n2.3.3 为字段指定默认值 21\r\n2.4 在运行时刻排序 21\r\n2.4.1 示例演示 22\r\n2.4.2 指定索引的排序方式(升序或降序) 22\r\n2.4.3 为表格的列标头指定动作 23\r\n2.5 使用 BINTOC( ) 创建小尺寸索引 23\r\n2.5.1 示例演示 23\r\n2.5.2 转换整数到二进制格式 24\r\n2.5.3 创建二进制索引 24\r\n2.6 索引表达式 25\r\n2.6.1 示例演示 25\r\n2.6.2 字符型字段与数值型字段的排序规则 26\r\n2.7 嵌套事务处理 27\r\n2.7.1 示例演示 27\r\n2.7.2 使用事务处理更新数据的优点 27\r\n2.7.3 控制事务处理的命令 28\r\n2.7.4 事务处理的规则 29\r\n2.7.5 嵌套事务处理 30\r\n2.8 视图/查询--按指定的国家选择客户 31\r\n2.8.1 示例演示 31\r\n2.8.2 创建参数化视图 31\r\n2.9 视图/查询--从左外连接选择记录 33\r\n2.9.1 示例演示 33\r\n2.9.2 创建左外连接查询 33\r\n2.10 视图/查询--从右外连接选择记录 35\r\n2.10.1 示例演示 35\r\n2.10.2 创建右外连接查询 35\r\n2.11 视图/查询--从完全外连接选择记录 36\r\n2.11.1 示例演示 36\r\n2.11.2 创建完全外连接查询 36\r\n2.12 视图/查询--从内连接选择记录 37\r\n2.12.1 示例演示 37\r\n2.12.2 创建内连接查询 37\r\n2.13 从内连接和外连接选择记录 38\r\n2.13.1 示例演示 38\r\n2.13.2 创建从内连接和外连接选择记录的查询 38\r\n2.14 从嵌套连接选择记录 39\r\n2.14.1 示例演示 39\r\n2.14.2 创建从嵌套连接选择记录的查询 40\r\n2.15 选择10种销售最差的产品 40\r\n2.15.1 示例演示 40\r\n2.15.2 创建选择10种销售最差的产品的查询 41\r\n2.16 选择10种销售最好的产品 43\r\n2.16.1 示例演示 43\r\n2.16.2 创建选择10种销售最好的产品的查询 43\r\n2.17 以交互方式建立SELECT语句 44\r\n2.17.1 示例演示 44\r\n2.17.2 “以交互方式建立SELECT语句”表单设计 44\r\n第3章 表单 48\r\n3.1 从表单返回一个值 48\r\n3.1.1 示例演示 48\r\n3.1.2 建立调用表单 48\r\n3.1.3 建立被调用的模式表单 49\r\n3.2 建立一个SDI表单 49\r\n3.2.1 示例演示 49\r\n3.2.2 建立SDI表单 50\r\n3.2.3 将其他表单显示在SDI表单中 50\r\n3.2.4 在SDI表单中加入工具栏 51\r\n3.2.5 在SDI表单中加入菜单 51\r\n3.3 建立一个查询示例表单 56\r\n3.3.1 示例演示 56\r\n3.3.2 筛选记录命令SET FILTER TO 57\r\n3.3.3 查询条件录入设计 57\r\n3.3.4 执行查询设计 58\r\n3.3.5 查看当前工作区的筛选条件 59\r\n3.3.6 清除筛选条件 60\r\n3.4 建立透明表单 60\r\n3.4.1 示例演示 60\r\n3.4.2 分层窗口 61\r\n3.4.3 SetWindowLong( )函数 61\r\n3.4.4 SetLayeredWindowAttributes( )函数 62\r\n3.4.5 设置表单为分层窗口 62\r\n3.4.6 调整表单的透明度 62\r\n3.5 对象间的引用方法 63\r\n3.5.1 示例演示 63\r\n3.5.2 建立表单集 63\r\n3.5.3 对象的引用方式--直接引用和相对引用 64\r\n3.5.4 表单集中表单间的对象引用 65\r\n3.5.5 独立表单间的对象引用 65\r\n3.6 运行表单的多个实例 66\r\n3.6.1 示例演示 67\r\n3.6.2 什么是私有数据工作期 67\r\n3.6.3 私有数据工作期与数据环境和工作区的关系 67\r\n3.6.4 建立表单的私有数据工作期 68\r\n3.6.5 使用多个表单实例更新数据 69\r\n3.6.6 运行表单的多个实例 69\r\n3.7 在表单上提供 What's this 帮助 70\r\n3.7.1 示例演示 70\r\n3.7.2 WinHelp帮助文件 70\r\n3.7.3 建立RichText格式文档 71\r\n3.7.4 创建帮助文件 73\r\n3.7.5 建立What's this表单 75\r\n3.7.6 使用表单的WhatsThisMode方法启动What's this模式 75\r\n3.7.7 使用控件的ShowWhatsThis方法显示指定帮助信息 76\r\n3.8 在表单之间传递参数 76\r\n3.8.1 示例演示 76\r\n3.8.2 向被调用表单传递参数 77\r\n3.8.3 在表单中接收参数值和向调用表单返回值 78\r\n3.9 在图像控件中显示图片 78\r\n3.9.1 示例演示 79\r\n3.9.2 在列表框控件中显示文件列表 79\r\n3.9.3 在图像控件中显示图片 80\r\n3.10 表单制图--在表单上画线条和形状 81\r\n3.10.1 示例演示 81\r\n3.10.2 Visual FoxPro中的图形方法 81\r\n3.10.3 Visual FoxPro中的图形属性 85\r\n3.10.4 fdToolBar类设计 87\r\n3.10.5 frmFD类设计 93\r\n3.10.6 在表单集中包含fdmain.scx表单和工具栏 95\r\n3.11 表单制图--在表单上绘制公式图形 96\r\n3.11.1 示例演示 96\r\n3.11.2 选择图形公式 96\r\n3.11.3 绘制极坐标图形引擎PGraph.prg 97\r\n3.11.4 在调整“图形窗口”大小后重绘图形 98\r\n3.12 表单制图--在表单上显示线形动画 99\r\n3.12.1 示例演示 99\r\n3.12.2 动画的实现原理 100\r\n3.12.3 实时显示用户所画线条的形状 101\r\n3.13 数据录入--建立单个表数据录入表单 103\r\n3.13.1 示例演示 104\r\n3.13.2 新增记录 104\r\n3.13.3 删除记录 104\r\n3.13.4 过滤掉已添加删除标记的记录 105\r\n3.14 数据录入--建立一对多数据录入表单 105\r\n3.14.1 示例演示 106\r\n3.14.2 在数据环境中建立一对多关系 106\r\n3.14.3 使用表格控件建立一对多关系 107\r\n3.14.4 新增和删除父表中的记录 107\r\n3.14.5 新增和删除子表中的记录 108\r\n第4章 控件 110\r\n4.1 在文本框中进行格式化输入和验证数据的有效性 110\r\n4.1.1 示例演示 110\r\n4.1.2 文本框的输入、输出格式控制 111\r\n4.1.3 文本框的数据验证设计 113\r\n4.1.4 在文本框中程序化的选择文本 113\r\n4.1.5 在文本框中接收用户口令 113\r\n4.1.6 文本框的日期输入控制 114\r\n4.1.7 设置文本框的数据类型 116\r\n4.2 编辑框--编辑备注字段或文本文件 116\r\n4.2.1 示例演示 117\r\n4.2.2 绑定编辑框数据源到备注字段 117\r\n4.2.3 在编辑框中编辑文本文件 117\r\n4.3 编辑框--程序化地操纵文本 120\r\n4.3.1 示例演示 120\r\n4.3.2 在编辑框中查找指定文本 121\r\n4.3.3 格式化文本控制 124\r\n4.3.4 编辑框中的字符、单词、段落计数 125\r\n4.4 命令按钮设计选项 126\r\n4.4.1 示例演示 127\r\n4.4.2 命令按钮的常用设置 127\r\n4.4.3 命令按钮组的常用设置 128\r\n4.4.4 命令按钮组的对象引用方法 129\r\n4.4.5 默认按钮和取消按钮设计 129\r\n4.5 选项按钮--提供给用户一个多项选择 130\r\n4.5.1 示例演示 130\r\n4.5.2 选项按钮组的数据类型设置 130\r\n4.5.3 设置不具有默认选定按钮的选项按钮组 132\r\n4.6 选项按钮--在用户选择按钮时改变页面 133\r\n4.6.1 示例演示 133\r\n4.6.2 建立图形选项按钮 133\r\n4.6.3 使用程序化方法激活页框中的页面 135\r\n4.6.4 使用MESSAGEBOX( )函数提供模式化对话框 135\r\n4.7 复选框设计选项 136\r\n4.7.1 示例演示 136\r\n4.7.2 复选框的有效值 137\r\n4.7.3 复选框的外观设置 137\r\n4.7.4 绑定复选框到数据源 137\r\n4.8 列表框--交互式地添加数据项到列表框中 138\r\n4.8.1 示例演示 138\r\n4.8.2 列表框的基本属性 138\r\n4.8.3 添加数据项到列表框中 140\r\n4.8.4 从列表框中移除数据项 141\r\n4.9 列表框--使用各种数据源填充列表框 141\r\n4.9.1 示例演示 141\r\n4.9.2 使用AddItem方法填充列表框 142\r\n4.9.3 使用字符串值填充列表框 142\r\n4.9.4 使用表中的数据填充列表框 142\r\n4.9.5 使用SQL SELECT语句生成的临时表填充列表框 142\r\n4.9.6 使用查询结果填充列表框 143\r\n4.9.7 使用数组填充列表框 143\r\n4.9.8 使用字段填充列表框 144\r\n4.9.9 使用文件、文件夹名称填充列表框 144\r\n4.9.10 使用表结构填充列表框 145\r\n4.9.11 使用弹出式菜单填充列表框 145\r\n4.9.12 使用集合对象填充列表框 149\r\n4.10 列表框--列表框数据项排序 150\r\n4.10.1 示例演示 150\r\n4.10.2 通过拖放移动数据项的位置 150\r\n4.10.3 按字母顺序排列数据项 150\r\n4.11 列表框--在列表框中显示多个列 150\r\n4.11.1 示例演示 150\r\n4.11.2 在列表框中显示多列 150\r\n4.11.3 指定列间的分割线 151\r\n4.12 列表框--在列表框中选择多个数据项 152\r\n4.12.1 示例演示 152\r\n4.12.2 在列表框中选择多个数据项 152\r\n4.13 列表框--选择并打开多个文件 152\r\n4.13.1 示例演示 153\r\n4.13.2 在列表框中显示文件 153\r\n4.13.3 打开多个文件 153\r\n4.14 列表框--在列表中显示图片 153\r\n4.14.1 示例演示 153\r\n4.14.2 为列表框数据项添加图片 154\r\n4.15 列表框--在列表框之间移动数据项 155\r\n4.15.1 示例演示 155\r\n4.15.2 拖放操作涉及的属性、事件与方法 156\r\n4.15.3 在表单启动时填充列表框 157\r\n4.15.4 通过双击移动数据项 157\r\n4.15.5 从一个列表框移动所有数据项到另一个列表框 157\r\n4.15.6 从一个列表框移动选定数据项到另一个列表框 158\r\n4.15.7 从一个列表框拖放数据项到另一个列表框 158\r\n4.16 列表框--Treeview/列表框拖放 159\r\n4.16.1 示例演示 159\r\n4.16.2 OLE拖放模式 160\r\n4.16.3 DataObject对象 161\r\n4.16.4 拖放数据 162\r\n4.16.5 拖动源设计 165\r\n4.16.6 放落目标设计 166\r\n4.17 组合框--向组合框添加新数据项 168\r\n4.17.1 示例演示 168\r\n4.17.2 添加用户文本到组合框下拉列表中 168\r\n4.17.3 在组合框中输入一个值 169\r\n4.17.4 从下拉列表中选择一个数据项 169\r\n4.17.5 为递增查找输入部分值 169\r\n4.18 组合框--允许用户选择列表值 170\r\n4.18.1 示例演示 170\r\n4.18.2 通过组合框或列表框将其他表中的值保存到当前表的字段中 171\r\n4.19 计时器--显示一个系统时钟 171\r\n4.19.1 示例演示 172\r\n4.19.2 计时器控件 172\r\n4.19.3 Clock类 172\r\n4.20 计时器--显示一个跑表 173\r\n4.20.1 示例演示 173\r\n4.20.2 StopWatch类 173\r\n4.20.3 Swatch.scx表单 174\r\n4.21 计时器--按指定的时间间隔执行命令 175\r\n4.21.1 示例演示 175\r\n4.21.2 表单说明 175\r\n4.22 表格--在表格中显示控件 176\r\n4.22.1 示例演示 176\r\n4.22.2 指定表格列中所使用的控件 176\r\n4.23 表格--显示一个关系的子记录 177\r\n4.23.1 示例演示 177\r\n4.23.2 ChildOrder、LinkMaster和RelationalExpr属性 177\r\n4.23.3 本节示例中的一对多关系 178\r\n4.24 表格--在列中显示计算后的值 179\r\n4.24.1 示例演示 179\r\n4.24.2 为表格列的ControlSource属性指定一个计算表达式 179\r\n4.25 表格--动态格式化表格列 180\r\n4.25.1 示例演示 180\r\n4.25.2 表格列的动态属性 181\r\n4.25.3 IIF( )函数和ICASE( )函数 181\r\n4.25.4 本节示例表格中的动态属性设置 182\r\n4.26 页框--显示无选项卡的各个页面 183\r\n4.26.1 示例演示 183\r\n4.26.2 取消页框的选项卡显示 183\r\n4.26.3 激活无选项卡的页面 184\r\n4.27 页框--在运行时刻改变选项卡的数目 184\r\n4.27.1 示例演示 184\r\n4.27.2 在运行时刻改变页框的选项卡数目 185\r\n4.28 常规--热点跟踪和悬停效果 186\r\n4.28.1 示例演示 186\r\n4.28.2 实现控件的热点跟踪和悬停效果 186\r\n4.28.3 更好地控制控件的动态效果 187\r\n4.29 常规--允许用户拖放控件 187\r\n4.29.1 示例演示 187\r\n4.29.2 手动拖放 188\r\n4.29.3 自动拖放 188\r\n4.30 常规--在运行时刻调整和重新定位控件 189\r\n4.30.1 示例演示 189\r\n4.30.2 Resizable类 189\r\n4.30.3 在表单中使用Resizable类 191\r\n第5章 工具栏 192\r\n5.1 改变字体属性 192\r\n5.1.1 示例演示 192\r\n5.1.2 创建一个工具栏类 192\r\n5.1.3 为表单添加工具栏 193\r\n5.1.4 为表单控件交互的工具栏设计方法 194\r\n5.2 使菜单项和工具栏按钮协同工作 195\r\n5.2.1 示例演示 195\r\n5.2.2 工具栏设计 195\r\n5.2.3 与工具栏协同工作的菜单设计 196\r\n5.3 使用新类型的工具栏 196\r\n5.3.1 示例演示 196\r\n5.3.2 为控件设置热点跟踪效果 197\r\n5.3.3 通过工具栏中的控件显示快捷菜单 197\r\n第6章 菜单 200\r\n6.1 在运行时刻添加菜单项 200\r\n6.1.1 示例演示 200\r\n6.1.2 一般菜单系统的组成 201\r\n6.1.3 使用菜单设计器建立一般菜单 201\r\n6.1.4 使用命令建立一般菜单 206\r\n6.2 废止一个菜单项或在菜单项旁边显示一个复选标记 211\r\n6.2.1 示例演示 211\r\n6.2.2 在表单启动时加载菜单 211\r\n6.2.3 废止和启用菜单项 212\r\n6.2.4 为菜单项添加和清除标记 212\r\n6.3 添加个性化菜单 212\r\n6.3.1 示例演示 212\r\n6.3.2 建立MRU型菜单 212\r\n6.4 向SDI表单添加菜单 214\r\n6.4.1 示例演示 215\r\n6.4.2 建立SDI表单 215\r\n6.4.3 将菜单加入到SDI表单中 215\r\n6.5 显示快捷菜单 218\r\n6.5.1 示例演示 218\r\n6.5.2 使用菜单设计器建立快捷菜单 219\r\n6.5.3 使用命令建立快捷菜单 223\r\n6.6 创建动态快捷菜单 223\r\n6.6.1 示例演示 223\r\n6.6.2 MenuLib类 224\r\n6.6.3 建立动态快捷菜单 225\r\n第7章 基本类 227\r\n7.1 处理常用窗口任务 227\r\n7.1.1 示例演示 227\r\n7.1.2 _WindowHandler类 228\r\n7.1.3 随机生成窗口 229\r\n7.1.4 层叠窗口 230\r\n7.1.5 重排所有窗口 230\r\n7.2 处理数据冲突 230\r\n7.2.1 示例演示 230\r\n7.2.2 _Conflicts类 231\r\n7.2.3 Visual FoxPro的缓冲技术 231\r\n7.2.4 缓冲模式下的数据更新 232\r\n7.3 处理应用程序环境任务 237\r\n7.3.1 示例演示 238\r\n7.3.2 使用_SysToolbars类隐藏/显示系统工具栏 238\r\n7.3.3 使用_ObjectState类保存/恢复对象的属性设置 239\r\n7.3.4 使用_DataSession类处理数据更新操作 240\r\n7.3.5 使用_TraceAwareTimer类处理数据更新操作 241\r\n7.4 以图表形式实时显示记录 242\r\n7.4.1 示例演示 243\r\n7.4.2 使用_GraphByRecord类显示图表 243\r\n7.4.3 Microsoft Graph简介 244\r\n7.4.4 将Microsoft Graph嵌入到通用字段中 247\r\n7.4.5 在表单中显示图表 248\r\n7.4.6 打印图表 250\r\n7.5 对简单表单使用编辑按钮 251\r\n7.5.1 示例演示 251\r\n7.5.2 PicFormBtns类 251\r\n7.6 对复杂表单使用编辑按钮 256\r\n7.6.1 示例演示 256\r\n7.6.2 PicBtns类 257\r\n7.7 给应用程序添加加密 258\r\n7.7.1 示例演示 258\r\n7.7.2 _CryptAPI类 258\r\n7.7.3 使用_CryptAPI类加密/解密字符串 260\r\n7.7.4 使用_CryptAPI类加密/解密文件 260\r\n7.7.5 使用_CryptAPI类加密/解密数据表中的字段 261\r\n7.7.6 使用_CryptAPI类进行文件签名 262\r\n7.8 检索项目位置和名称 263\r\n7.8.1 示例演示 263\r\n7.8.2 _Folder类 263\r\n7.9 建立突出显示控件效果 265\r\n7.9.1 示例演示 265\r\n7.9.2 _MouseOverfx类 266\r\n7.9.3 使用_MouseOverfx类为控件添加突出显示效果 266\r\n7.10 建立一个Visual FoxPro网页浏览器 266\r\n7.10.1 示例演示 266\r\n7.10.2 _WebBrowser4类 267\r\n7.10.3 建立网页浏览器 271\r\n7.11 扩展SetAll( )方法 272\r\n7.11.1 示例演示 272\r\n7.11.2 使用SetAll( )方法和_SetAllX类设置多个对象的属性 273\r\n7.12 从数据表和报表文件生成HTML 274\r\n7.12.1 示例演示 274\r\n7.12.2 GenHtml.prg 274\r\n7.12.3 使用_Dbf2Html类输出数据表到HTML中 275\r\n7.12.4 使用_Frx2Html类转换报表为HTML 277\r\n7.13 使用_PoolManager类简化类的调用过程 277\r\n7.13.1 示例演示 277\r\n7.13.2 _PoolManager类 278\r\n7.13.3 使用对象池管理对象 279\r\n7.14 使用Microsoft Agent为应用程序添加动画助手 281\r\n7.14.1 示例演示 281\r\n7.14.2 Microsoft Agent简介 281\r\n7.14.3 安装Microsoft Agent 282\r\n7.14.4 Microsoft Agent控件 282\r\n7.14.5 _Agent类 287\r\n7.14.6 使用_Agent类装载角色 289\r\n7.14.7 使用_Agent类开始/停止播放动画 289\r\n7.14.8 使用_Agent类进行语音输出 289\r\n7.15 使用进度条 289\r\n7.15.1 示例演示 289\r\n7.15.2 使用_Thermometer类实现进度条 290\r\n7.16 使用数组处理器 291\r\n7.16.1 示例演示 291\r\n7.16.2 使用_ArrayLib类进行数组操作 291\r\n7.17 使用通用应用程序对话框 292\r\n7.17.1 示例演示 292\r\n7.17.2 使用_Login类建立登录对话框 292\r\n7.17.3 使用_Splash类建立欢迎窗口 294\r\n7.17.4 使用_AboutBox类建立“关于”对话框 294\r\n7.17.5 使用_Keywords类建立“关键字”对话框 295\r\n7.17.6 使用_LocateItem类建立“定位项目”对话框 295\r\n7.18 使用规则表达式查找匹配字符串 296\r\n7.18.1 示例演示 296\r\n7.18.2 什么是规则表达式 297\r\n7.18.3 Visual FoxPro的规则表达式 297\r\n7.18.4 使用_RegExp类执行规则表达式 299\r\n7.19 添加导航到表单中 300\r\n7.19.1 示例演示 300\r\n7.19.2 _Nav2Buttons类和_Nav2PicButtons类 300\r\n7.19.3 _Nav4Buttons类和_Nav4PicButtons类 301\r\n7.19.4 使用_TableNav类进行记录导航 301\r\n7.19.5 使用_GotoButton类进行记录定位 302\r\n7.20 添加各种表单按钮 302\r\n7.20.1 示例演示 302\r\n7.20.2 使用_cmdLaunch类启动应用程序 303\r\n7.20.3 使用_cmdOk类释放表单 303\r\n7.20.4 使用_cmdRunForm类运行表单 304\r\n7.20.5 使用_ShellExecute类执行非Visual FoxPro程序 304\r\n7.20.6 使用_cmdCancel类释放表单 305\r\n7.20.7 使用_cmdRunReport类输出报表 305\r\n7.20.8 使用_MailBtn类发送邮件 306\r\n7.20.9 使用HTML Help Workshop建立上下文相关HTML帮助 307\r\n7.20.10 使用_cmdHelp类打开指定的帮助主题 313\r\n7.21 添加数据绑定日历 313\r\n7.21.1 示例演示 313\r\n7.21.2 使用_oleCalendar类进行日期设置 314\r\n7.22 添加数据查询到表单中 315\r\n7.22.1 示例演示 315\r\n7.22.2 使用_FindButton类和_FindNextButtons类进行数据查询 315\r\n7.22.3 使用_LocateButton类调用“查找”对话框 317\r\n7.23 添加数据查找组合框 318\r\n7.23.1 示例演示 318\r\n7.23.2 使用_cboDistinctValues类进行数据查询 318\r\n7.24 添加数据排序和筛选到表单中 319\r\n7.24.1 示例演示 319\r\n7.24.2 使用_SortButton类调用“排序”对话框 320\r\n7.24.3 使用_FilterButton类调用筛选对话框 320\r\n7.24.4 使用_FilterExpr类建立筛选表达式对话框 321\r\n7.24.5 使用_FilterDialog类建立筛选表达式对话框 321\r\n7.24.6 使用_NavMenu类建立导航快捷菜单 322\r\n7.24.7 使用_NavToolbarClass类调用“导航”工具栏 322\r\n7.25 添加网页超级链接到表单中 323\r\n7.25.1 示例演示 323\r\n7.25.2 使用_HyperlinkLabel、_HyperlinkImage、_HyperlinkCommandButton\r\n类导航到指定URL 323\r\n7.25.3 使用_URLComboBox类导航到指定URL 324\r\n7.26 显示数据报表输出选项 324\r\n7.26.1 示例演示 324\r\n7.26.2 使用_OutputDialog类进行多种格式的报表输出 325\r\n7.26.3 使用_ShowText类建立文本查看器 325\r\n7.27 向对象添加快捷菜单 326\r\n7.27.1 示例演示 326\r\n7.27.2 使用_ShortcutMenu类建立快捷菜单 326\r\n7.28 应用程序错误处理 328\r\n7.28.1 示例演示 328\r\n7.28.2 使用_Error类进行错误处理 329\r\n7.29 Windows徽标信息 330\r\n7.29.1 示例演示 330\r\n7.29.2 Windows徽标计划 330\r\n7.29.3 使用_CommonFolder类获取系统文件夹的位置 331\r\n7.29.4 使用_SysMetrics类获取系统信息 333\r\n7.29.5 使用_UserPriv类获取用户的存取权限 334\r\n7.30 执行Word、Excel和Graph的自动化操作 335\r\n7.30.1 示例演示 335\r\n7.30.2 使用_XTab类生成交叉表 336\r\n7.30.3 使用MailMerge类实现邮件合并 338\r\n7.30.4 使用PivotTable类实现数据透视表 339\r\n7.30.5 使用AutoGraph类生成图表 340\r\n第8章 编程 343\r\n8.1 Access/Assign方法的功能 343\r\n8.1.1 示例演示 343\r\n8.1.2 创建Access和Assign方法 344\r\n8.1.3 使用Assign方法验证数据的有效性 344\r\n8.1.4 使用Access方法动态建立对象 345\r\n8.1.5 使用This_Access方法动态建立属性 346\r\n8.1.6 通过Access/Assign方法使用数组来模拟集合支持 346\r\n8.2 OLE拖放的数据格式 348\r\n8.2.1 示例演示 348\r\n8.2.2 获取OLE拖放时可用的数据格式 348\r\n8.3 实现OLE拖放 350\r\n8.3.1 示例演示 350\r\n8.3.2 拖放列表框中数据项到表单中 350\r\n8.3.3 拖放文本到文本框中 352\r\n8.3.4 从Windows资源管理器中拖放文件到列表框中 353\r\n8.3.5 拖动表单中的对象到一个新位置 354\r\n第9章 报表 355\r\n9.1 按目录格式打印报表 355\r\n9.1.1 示例演示 355\r\n9.1.2 建立报表的数据环境 356\r\n9.1.3 为报表添加标题栏 356\r\n9.1.4 为报表建立文字环绕和交换图片显示位置效果 357\r\n9.2 按帐务型打印报表细节带区 362\r\n9.2.1 示例演示 362\r\n9.2.2 报表的变量设置 363\r\n9.2.3 为矩形指定打印条件 363\r\n9.3 打印客户邮件标签 364\r\n9.3.1 示例演示 364\r\n9.3.2 设置标签的分栏打印 365\r\n9.4 打印数据字典信息 365\r\n9.4.1 示例演示 365\r\n9.4.2 使用命令动态建立报表 366\r\n9.5 打印一个货物清单 369\r\n9.5.1 示例演示 369\r\n9.5.2 使用视图作为报表的数据源 370\r\n9.5.3 建立报表的数据分组 374\r\n9.6 在报表中打印一个总计的百分比 375\r\n9.6.1 示例演示 375\r\n9.6.2 使用数据分组求小计 376\r\n9.6.3 显示百分比 377\r\n9.7 使用条件表达式设置信息显示格式 377\r\n9.7.1 示例演示 377\r\n9.7.2 指定域控件的打印条件 378\r\n第10章 ActiveX 379\r\n10.1 发送电子邮件 379\r\n10.1.1 示例演示 379\r\n10.1.2 使用_MailBtn类发送邮件 379\r\n10.1.3 MAPI控件简介 379\r\n10.1.4 Microsoft MAPI Session控件的属性和方法 380\r\n10.1.5 MAPI Messages控件的属性和方法 380\r\n10.1.6 发送带附件的电子邮件 382\r\n10.2 使用RichText控件 384\r\n10.2.1 示例演示 384\r\n10.2.2 Rich TextBox控件的属性 385\r\n10.2.3 Rich TextBox控件的事件 386\r\n10.2.4 Rich TextBox控件的方法 386\r\n10.2.5 Rich TextBox控件示例 388\r\n10.3 使用Slider控件和StatusBar控件 389\r\n10.3.1 示例演示 389\r\n10.3.2 Slider控件的属性和事件 389\r\n10.3.3 StatusBar控件的属性 390\r\n10.3.4 StatusBar控件的事件和方法 392\r\n10.3.5 Slider和StatusBar控件示例 392\r\n10.4 实现项目的分层显示 393\r\n10.4.1 示例演示 393\r\n10.4.2 TreeView控件的属性 393\r\n10.4.3 Nodes集合的属性和方法 395\r\n10.4.4 TreeView控件的事件 396\r\n10.4.5 TreeView控件示例 396\r\n10.5 在TreeView控件中添加和删除项目 398\r\n10.5.1 示例演示 398\r\n10.5.2 在TreeView控件中新增节点 398\r\n10.5.3 在TreeView控件中删除节点 399\r\n10.5.4 保存/恢复TreeView控件中的节点信息 399\r\n10.5.5 以编程方式选定TreeView控件中的节点 401\r\n10.6 显示系统信息 401\r\n10.6.1 示例演示 401\r\n10.6.2 SysInfo控件属性 401\r\n10.6.3 SysInfo控件的事件 402\r\n10.6.4 SysInfo控件示例 403\r\n10.7 在ActiveX控件中播放AVI文件 404\r\n10.7.1 示例演示 405\r\n10.7.2 Multimedia控件的属性 405\r\n10.7.3 Multimedia控件的事件 408\r\n10.7.4 Multimedia控件示例 408\r\n10.8 自定义“打开”对话框 411\r\n10.8.1 示例演示 411\r\n10.8.2 Common Dialog控件的属性和方法 411\r\n10.8.3 Common Dialog控件示例 413\r\n10.9 按季度打印产品销售定单 414\r\n10.9.1 示例演示 414\r\n10.9.2 在表单中显示图表 414\r\n10.9.3 在报表中打印图表 417\r\n10.10 操作图形的显示特征 418\r\n10.10.1 示例演示 418\r\n10.10.2 指定图形的类型 418\r\n10.10.3 为图表指定标题和图例 419\r\n10.11 在表单中刷新图表 419\r\n10.11.1 示例演示 419\r\n10.11.2 动态刷新图表 419\r\n10.12 在表单中自动调用Microsoft Word文档 420\r\n10.12.1 示例演示 420\r\n10.12.2 向表单中嵌入OLE对象 421\r\n10.12.3 建立OLE对象 421\r\n10.13 自动调用Microsoft Excel电子表格 423\r\n10.13.1 示例演示 423\r\n10.13.2 生成Excel电子表格 423\r\n10.13.3 使用Excel的Chart对象生成图表 427\r\n10.14 自动调用Microsoft Word和Excel 427\r\n10.14.1 示例演示 427\r\n10.14.2 从Excel复制图表到Word中 428\r\n10.14.3 Word常用命令 429\r\n第11章 Windows API 433\r\n11.1 使用需要结构的API函数 433\r\n11.1.1 示例演示 433\r\n11.1.2 从结构中获取数据 433\r\n11.1.3 建立API函数所需要的结构 435\r\n11.2 使用需要指向数组的API函数 436\r\n11.2.1 示例演示 436\r\n11.2.2 获取Windows的外观颜色 436\r\n11.2.3 设置Windows的外观颜色 437\r\n11.3 使用MCI命令播放多媒体文件 438\r\n11.3.1 示例演示 438\r\n11.3.2 进行多媒体播放的API函数 439\r\n11.3.3 打开多媒体文件 440\r\n11.3.4 播放多媒体文件 442\r\n11.4 获取版本信息 442\r\n11.4.1 示例演示 442\r\n11.4.2 使用AGETFILEVERSION( )函数获取文件的资源信息 443\r\n11.5 读取和写入VFP的注册表值 445\r\n11.5.1 示例演示 445\r\n11.5.2 使用FoxReg类操作注册表 445\r\n11.6 读取ODBC的注册表值 448\r\n11.6.1 示例演示 448\r\n11.6.2 使用ODBCReg类获取注册表中的ODBC信息 448\r\n11.7 从Windows注册表获取应用程序信息 449\r\n11.7.1 示例演示 450\r\n11.7.2 使用FileReg类获取注册表中的文件信息 450\r\n11.8 查看类型库信息 451\r\n11.8.1 示例演示 451\r\n11.8.2 使用_TypeLib类读取类型库信息 451\r\n第12章 Visual FoxPro 8.0的新增功能 452\r\n12.1 使用BINDEVENTS( )、RAISEEVENTS( )和AEVENTS( ) 452\r\n12.1.1 示例演示 452\r\n12.1.2 事件绑定 452\r\n12.1.3 检测事件绑定数目 453\r\n12.1.4 解除事件绑定 454\r\n12.1.5 使用代码引发一个事件 455\r\n12.2 结构化异常处理 455\r\n12.2.1 示例演示 455\r\n12.2.2 TRY...CATCH...FINALLY命令 456\r\n12.2.3 Exception对象 458\r\n12.2.4 TRY...CATCH结构的嵌套处理 459\r\n12.2.5 使用THROW [eUserExpression] 459\r\n12.2.6 FINALLY子句 460\r\n12.2.7 TRY…CATCH…FINALLY块中的命令限制 461\r\n12.2.8 ON ERROR错误处理与结构化异常处理的区别 461\r\n12.3 使用COMARRAY( )函数和强类型数组 462\r\n12.3.1 示例演示 462\r\n12.3.2 如何创建自动服务程序 463\r\n12.3.3 编译自动服务程序 465\r\n12.3.4 注册自动服务程序 466\r\n12.3.5 使用自动服务程序 467\r\n12.4 从一个数据表中恢复表单的属性设置 468\r\n12.4.1 示例演示 468\r\n12.4.2 保存表单的属性设置到一个数据表中 468\r\n12.4.3 从一个数据表中恢复表单的属性设置 469\r\n12.5 Windows XP主题支持 469\r\n12.5.1 示例演示 469\r\n12.5.2 在应用程序级设置Windows XP主题效果 470\r\n12.5.3 在表单和控件级设置Windows XP主题效果 470\r\n12.6 建立不规则形状窗口 470\r\n12.6.1 示例演示 471\r\n12.6.2 建立不规则窗口的原理 471\r\n12.6.3 建立不规则窗口示例 471\r\n12.7 系统托盘图标示例 472\r\n12.7.1 示例演示 472\r\n12.7.2 Systray类简介 473\r\n12.7.3 Systray类的属性、方法和事件 473\r\n12.7.4 基本的系统托盘设置 476\r\n12.7.5 在系统托盘中添加图标动画 476\r\n12.7.6 在系统托盘中使用气球提示 477\r\n12.7.7 使用数字标记和文本定义菜单 477\r\n12.7.8 使用菜单文件(MPR)定义菜单 478\r\n12.7.9 通过ShowMenu( )方法指定显示的菜单 479\r\n12.7.10 图标的双击事件处理 480\r\n12.8 控制MSN Messenger 481\r\n12.8.1 示例演示 481\r\n12.8.2 Messenger注册 481\r\n12.8.3 Messenger注销 481\r\n12.8.4 获取Messenger中的联系人信息 481\r\n12.8.5 打开与指定联系人的对话窗口 482\r\n12.8.6 打开MSN Messenger窗口 482\r\n12.8.7 打开邮件窗口 482\r\n12.8.8 发送文件 482\r\n12.8.9 获得当前MSN Messenger设置 482\r\n12.8.10 使用Windows Scripting Host向活动窗口发送指令 483\r\n12.9 表格的突出显示、自动适应列宽和图像列标头 485\r\n12.9.1 示例演示 485\r\n12.9.2 表格行的突出显示设置 486\r\n12.9.3 自适应列宽设置 486\r\n12.9.4 锁定表格列 486\r\n12.9.5 为列标头指定一个图像文件 487\r\n12.10 使用成员类 487\r\n12.10.1 示例演示 487\r\n12.10.2 成员类简介 488\r\n12.10.3 成员类示例 488\r\n12.11 使用CursorAdapter管理数据访问 491\r\n12.11.1 示例演示 491\r\n12.11.2 CursorAdapter对象的属性 491\r\n12.11.3 CursorAdapter对象的方法 495\r\n12.11.4 CursorAdapter对象的事件 497\r\n12.11.5 使用本地数据源 500\r\n12.11.6 使用ODBC数据源 504\r\n12.11.7 使用ADO数据源 506\r\n12.12 使用XMLAdapter类加载和生成XML 514\r\n12.12.1 示例演示 515\r\n12.12.2 XMLAdapter简介 515\r\n12.12.3 XMLAdapter对象的属性 516\r\n12.12.4 XMLAdapter对象的方法 519\r\n12.12.5 XMLAdapter对象的Tables集合 521\r\n12.12.6 转换XML到临时表 523\r\n12.12.7 转换XML架构中的数据类型 525\r\n12.12.8 转换临时表为XML 526\r\n12.12.9 在XMLAdapter中使用Diffgrams 527\r\n12.13 从XML Dataset建立临时表 529\r\n12.13.1 示例演示 529\r\n12.13.2 加载XML到临时表中 530\r\n12.13.3 控制数据绑定 530\r\n12.13.4 使用XMLAdapter生成XML DiffGrams 530\r\n12.14 VFP/VB.NET XML Web服务示例 531\r\n12.14.1 Web服务的架构 531\r\n12.14.2 建立COM服务程序 532\r\n12.14.3 安装Internet信息服务(IIS)并建立虚拟目录 533\r\n12.14.4 创建并发布Web服务 535\r\n12.14.5 使用Web服务 536\r\n12.14.6 分发Web服务 538\r\n第13章 Visual FoxPro 9.0的新增功能 540\r\n13.1 典型的多细节带区报表 540\r\n13.1.1 示例演示 540\r\n13.1.2 报表数据环境中的一对多关系 541\r\n13.1.3 在表单使用一对多关系显示多个子表的内容 543\r\n13.1.4 报表的驱动别名与目标别名 545\r\n13.1.5 建立多细节带区报表 546\r\n13.2 包含计算的多细节带区报表 550\r\n13.2.1 示例演示 550\r\n13.2.2 报表变量和计算字段的作用域 551\r\n13.2.3 建立包含计算的多细节带区报表 551\r\n13.3 使用ReportListener进行动态格式化 555\r\n13.3.1 示例演示 555\r\n13.3.2 Visual FoxPro 9.0报表的对象支持架构 556\r\n13.3.3 ReportListener对象的属性、事件和方法 560\r\n13.3.4 Visual FoxPro报表定义文件(FRX)的结构 572\r\n13.3.5 在报表定义文件的USER字段中加入指令 581\r\n13.3.6 建立ReportListener派生类 583\r\n13.4 使用GDI+建立柱形图表 587\r\n13.4.1 示例演示 588\r\n13.4.2 ReportListener的GDI+支持 588\r\n13.4.3 GDI Plus API封装基础类库 591\r\n13.4.4 使用GDI+在表单中绘图 612\r\n13.4.5 使用GDI+在报表中绘图 613\r\n13.5 使用ReportListener进行HTML、XML和TIFF输出 620\r\n13.5.1 示例演示 620\r\n13.5.2 XmlListener类 622\r\n13.5.3 HtmlListener类 625\r\n13.5.4 报表输出应用程序ReportOutput.app 625\r\n13.5.5 使用ReportOutput.app输出报表到HTML文件中 628\r\n13.5.6 使用ReportOutput.app输出报表到XML文件中 628\r\n13.5.7 使用ReportListener的OutputPage方法输出报表到TIFF文件中 629\r\n13.6 使用ReportListener同时进行多种输出 630\r\n13.6.1 示例演示 630\r\n13.6.2 同时进行多种输出 630\r\n13.7 添加一个自定义报表预览容器到表单中 631\r\n13.7.1 示例演示 631\r\n13.7.2 表单设计 632\r\n13.7.3 在表单的形状对象oPreviewContainer中显示报表 633\r\n13.7.4 “上一页”和“下一页”按钮设计 633\r\n13.7.5 重绘显示在表单中的报表 634\r\n13.7.6 关闭报表预览 634\r\n13.7.7 建立可调整报表显示比例的预览表单 634\r\n13.8 控制报表的预览窗口 638\r\n13.8.1 示例演示 638\r\n13.8.2 报表预览应用程序接口和报表预览程序 639\r\n13.8.3 定制Visual FoxPro默认的报表预览程序 644\r\n13.8.4 解读示例 645\r\n13.9 可停靠的图片查看器 646\r\n13.9.1 示例演示 646\r\n13.9.2 Visual FoxPro 9.0对可停靠表单的操作支持 647\r\n13.9.3 Image控件的PictureVal属性 650\r\n13.9.4 示例表单的界面设计 651\r\n13.9.5 添加图像文件到数据表的Blob型字段中及图像显示设置 651\r\n13.9.6 表单停靠后的界面切换设计 652\r\n13.9.7 在Grid(表格)中使用Image控件 653\r\n13.10 锚定控件 655\r\n13.10.1 示例演示 655\r\n13.10.2 控件的Anchor属性 655\r\n13.10.3 使用Anchor Editor(锚定编辑器)设置Anchor属性 656\r\n13.10.4 该示例中控件的Anchor属性设置 657\r\n13.11 多边形功能 658\r\n13.11.1 示例演示 658\r\n13.11.2 PolyPoints属性 658\r\n13.11.3 LineSlant属性 660\r\n13.11.4 控件的旋转设置 661\r\n13.12 对损坏的备注字段进行扫描 662\r\n13.12.1 示例演示 662\r\n13.12.2 递归调用 662\r\n13.12.3 Visual FoxPro的文件结构 663\r\n13.12.4 示例中的扫描设计 664\r\n13.13 绑定Windows消息事件 666\r\n13.13.1 示例演示 666\r\n13.13.2 BINDEVENT( )函数的新功能 667\r\n13.13.3 示例中的BINDEVENT( )函数应用 668\r\n13.14 FoxCode菜单脚本 670\r\n13.14.1 示例演示 670\r\n13.14.2 IntelliSense表的结构 672\r\n13.14.3 编辑IntelliSense表中的记录 673\r\n13.14.4 建立IntelliSense脚本 674\r\n13.14.5 FoxCode对象 675\r\n13.14.6 MenuHit脚本 676\r\n13.14.7 MenuContext脚本 678\r\n13.15 代码范围分析器的性能分析外接程序 680\r\n13.15.1 示例演示 680\r\n13.15.2 CovperfAddinfs.scx外接程序的功能 682\r\n13.16 二进制转换 683\r\n13.16.1 示例演示 683\r\n13.16.2 数值转换为二进制字符串的原理 683\r\n13.16.3 BINTOC( )函数 684\r\n13.16.4 CTOBIN ( )函数 686\r\n13.17 Fox媒体播放器 687\r\n13.17.1 示例演示 688\r\n13.17.2 Windows Media Player控件 688\r\n13.17.3 建立媒体播放器 690\r\n13.18 控制按钮的标题和图片位置 691\r\n13.18.1 示例演示 691\r\n13.18.2 命令按钮、选项按钮和复选框标题的换行显示 692\r\n13.18.3 指定图片在控件中的位置、边距和间距 693第1章 项目 \r\n 1.1 跟踪项目管理器中的动作 \r\n 1.1.1 示例演示 \r\n 1.1.2 项目对象的分层结构 \r\n 1.1.3 Projects集合 \r\n 1.1.4 Project对象 \r\n 1.1.5 ProjectHook对象 \r\n 1.1.6 Project对象和ProjectHook对象的交互 \r\n 1.1.7 解读示例 \r\n第2章 数据库 \r\n 2.1 使用数据库事件 \r\n 2.1.1 示例演示 \r\n 2.1.2 数据库事件简介 \r\n 2.1.3 获取表单或程序文件所在目录的完整路径名称 \r\n 2.1.4 打开、关闭数据库设计 \r\n 2.1.5 数据库事件设置 \r\n 2.2 程序化地检查表属性 \r\n 2.2.1 示例演示 \r\n 2.2.2 获取表的信息 \r\n 2.2.3 获取字段的信息 \r\n 2.2.4 获取索引的信息 \r\n 2.2.5 使用PADL()、PADR()和PADC()函数进行字符填充 \r\n 2.3 为字段创建一个默认惟一ID值 \r\n 2.3.1 示例演示 \r\n 2.3.2 Visual FoxPro的存储过程 \r\n 2.3.3 为字段指定默认值 \r\n 2.4 在运行时刻排序 \r\n 2.4.1 示例演示 \r\n 2.4.2 指定索引的排序方式(升序或降序) \r\n 2.4.3 为表格的列标头指定动作 \r\n 2.5 使用 BINTOC()创建小尺寸索引 \r\n 2.5.1 示例演示 \r\n 2.5.2 转换整数到二进制格式 \r\n 2.5.3 创建二进制索引 \r\n 2.6 索引表达式 \r\n 2.6.1 示例演示 \r\n 2.6.2 字符型字段与数值型字段的排序规则 \r\n 2.7 嵌套事务处理 \r\n 2.7.1 示例演示 \r\n 2.7.2 使用事务处理更新数据的优点 \r\n 2.7.3 控制事务处理的命令 \r\n 2.7.4 事务处理的规则 \r\n 2.7.5 嵌套事务处理 \r\n 2.8 视图/查询--按指定的国家选择客户 \r\n 2.8.1 示例演示 \r\n 2.8.2 创建参数化视图 \r\n 2.9 视图/查询--从左外连接选择记录 \r\n 2.9.1 示例演示 \r\n 2.9.2 创建左外连接查询 \r\n 2.10 视图/查询--从右外连接选择记录 \r\n 2.10.1 示例演示 \r\n 2.10.2 创建右外连接查询 \r\n 2.11 视图/查询--从完全外连接选择记录 \r\n 2.11.1 示例演示 \r\n 2.11.2 创建完全外连接查询 \r\n 2.12 视图/查询--从内连接选择记录 \r\n 2.12.1 示例演示 \r\n 2.12.2 创建内连接查询 \r\n 2.13 从内连接和外连接选择记录 \r\n 2.13.1 示例演示 \r\n 2.13.2 创建从内连接和外连接选择记录的查询 \r\n 2.14 从嵌套连接选择记录 \r\n 2.14.1 示例演示 \r\n 2.14.2 创建从嵌套连接选择记录的查询 \r\n 2.15 选择10种销售最差的产品 \r\n 2.15.1 示例演示 \r\n 2.15.2 创建选择10种销售最差的产品的查询 \r\n 2.16 选择10种销售最好的产品 \r\n 2.16.1 示例演示 \r\n 2.16.2 创建选择10种销售最好的产品的查询 \r\n 2.17 以交互方式建立SELECT语句 \r\n 2.17.1 示例演示 \r\n 2.17.2 “以交互方式建立SELECT语句”表单设计\r\n第3章 表单\r\n第4章 控件\r\n第5章 工具栏\r\n第6章 菜单\r\n第7章 基本类\r\n第8章 编程\r\n第9章 报表\r\n第10章 ActiveX\r\n第11章 Windows API\r\n第12章 Visual FoxPro 8.0的新增功能\r\n第13章 Visual FoxPro 9.0的新增功能
无封面