VF中控制EXCEL的常用操作_第1页
VF中控制EXCEL的常用操作_第2页
VF中控制EXCEL的常用操作_第3页
VF中控制EXCEL的常用操作_第4页
VF中控制EXCEL的常用操作_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

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

文档简介

VFVF 中控制中控制 EXCELEXCEL 的常用操作的常用操作 myexcel createobject excel application 创建一个对象 myexcel visible t 可见 bookexcel myexcel workbooks add bookexcel myexcel workbooks open C Documents and Settings Administrator 桌面 学习 dd xls 打开指定文件 nrows bookexcel worksheets sheet1 打开工作表 UsedRange nrows UsedRange 返回工作表中可使用的区域 UsedRange 表的 属性 usedrange columns count 计算共几列 r usedrange rows count 汇总行 c usedrange columns count 汇总列 with myexcel application sheets sheet3 select sheets add 添加一个工作表 ActiveSheet Name ddddd 重命名表 endwith myexcel Worksheets sheet1 Activate 选择表为当前工作表 myexcel cells 1 1 value sss 1 1 处的值为 myexcel activesheet columns 2 columnwidth 15 第 2 列的列宽设 myexcel activesheet rows 2 rowheight 50 设第 2 行的行高 myexcel activesheet rows 2 insert 第 2 行前插入一行 myexcel activesheet columns 2 insert 第 2 列前插入一列 myexcel activesheet Cells 1 1 Font size 25 设置 1 1 的字体大小 myexcel activesheet Cells 1 1 Font name 黑体 设置字体 myexcel activesheet Cells 1 1 clear 清除内容 myexcel activesheet range A1 C2 select 选择区域 myexcel selection merge 选择区域合并单元格 myexcel Range a1 Formula sum b2 b3 b4 b5 在 A1 中键入一个公式 myexcel range a1 ClearContents myexcel activesheet Columns A B Select 整列选中 myexcel Selection NumberFormatLocal 设置选中的区域为字符型数 据 myexcel activesheet rows 1 select myexcel Selection EntireRow Delete 删除选中的行 myexcel Selection columns 1 Delete 删除第几的列 myexcel workbooks close 关闭工作区 myexcel workbooks close f 关闭工作区不提示保存 myexcel quit excel 生成一个表并显示可用的 sheets oExcel CREATE Excel Application oExcel Workbooks ADD FOR EACH oMyVar IN oExcel sheets oMyVar name NEXT oMyVar 在在 VFPVFP 中控制中控制 ExcelExcel 的小小经验集的小小经验集 获取工作表名称 在以下示例中 创建了一个 microsoft excel 实例 添加了一个新的工作簿 使用 foreach 语句显示工作簿中每个工作表的名称 此示例要求在运行示例的 机器上正确安装 microsoft excel oExcel CREATE Excel Application oExcel Workbooks ADD FOR EACH oMyVar IN oExcel sheets oMyVar name NEXT oMyVar Excel 报表巧生成 巧让 FoxPro 数据生成 Excel 报表 Visual FoxPro 是应用广泛的前台数据库开发平台之一 因此在我们日常工作 中时常会遇到 DBF 数据文件 然而随着办公自动化的普及 越来越多的时候需 要将 DBF 文件转化为 Excel 电子文档 常用转化方法是在 FoxPro 中用 Copy 命 令进行格式转化或直接用 Excel 打开 DBF 文件 这两种方式虽然都能达到目的 却不能得到格式规范 可以直接打印输出的报表 且输出的 Excel 文件中 无 法对数据类型进行有效转换 极易出现数据统计错误 有没有更好的方法呢 这里有一个更加通用的方法 在 VFP 中调用 Excel 可以由 DBF 文件直接生成 格式如下图所示一样复杂的 Excel 报表 如图 1 Excel 报表 具体过程如下 编辑推荐文章 新鲜接触 Excel 2000 XP Excel 2000 公式应用的几条经验 Excel 2000 函数应用之信息函数 假设我们要将表 Agcallop dbf 文件输出为 Excel 格式文档 报表形如图 1 所示 为使通用性更强 页面采用 A4 纸横向输出 默认字体为宋体 10 号 页 脚处添加页号 部分程序代码如下 m outfilename putfile 输出结果 agcallop xls 取导出文件名称 ef CREATEOBJECT Excel application 调用 Excel 程序 ef Workbooks add 添加工作簿 ef Worksheets sheet1 Activate 激活第一个工作表 ef visible t 显示 Excel 界面 ef Cells Select 选择整张表 ef Selection Font Size 10 设置整表默认字体大小为 10 select 0 use agcallop 选择被导出的表 num reccount 求导出总记录数 go top i 5 ef range F1 K1 Select 选择标题栏所在单元格 ef Selection Merge 合并单元格 with ef range F1 设置标题及字体属性 value 客户服务部业务代表工作量情况统计表 Font Name 黑体 Font size 18 endwith ef Rows 2 RowHeight 1 0 035 设置第二行高度为 1cm ef range H2 O2 Select 选定统计条件栏所在单元格 ef Selection Merge 合并单元格 ef range H2 Font size 10 ef range H2 HorizontalAlignment 4 设置内容对齐方式为右对齐 3 为居中 2 为右对齐 ef range H2 value 统计时间 dtoc date 打印日期 dtoc date ef Rows 3 4 Select with ef Selection HorizontalAlignment 3 设置 3 4 行为水平对齐 VerticalAlignment 2 垂直居中 NumberFormatLocal 设置 3 4 行为字符型内容 endwith ef Range A3 A4 Select ef Selection Merge 纵向合并第一列 3 4 行 ef Range A3 value 工号 设置第一列标题内容 ef Columns A Select 整列选择 ef Selection HorizontalAlignment 3 水平居中 ef Columns A B Select ef Selection NumberFormatLocal 设置 A B 列为字符型内容 ef Range B3 B4 Select ef Selection Merge 纵向合并第二列 3 4 行 ef Range B3 value 姓名 设置第二列标题内容 ef Columns B Select 整列选择 ef Selection HorizontalAlignment 3 水平居中 ef Range C3 E3 Select 横向合并第三行 C E 列 ef Selection Merge ef Range C3 value 话务总量 第三行大标题为 话务总量 的列 ef Range C4 value 电话呼入量 话务总量 下第 1 个小标题 电话呼入量 ef Range D4 value 电话呼出量 话务总量 下第 2 个小标题 电话呼出量 ef Range E4 value 合 计 话务总量 下第 3 个小标题 合计 ef Range F3 H3 Select ef Selection Merge ef Range F3 value 话务总时间 ef Range F4 value 呼入时间 ef Range G4 value 呼出时间 ef Range H4 value 合 计 ef Range I3 K3 Select ef Selection Merge ef Range I3 value 单个话务平均时间 ef Range I4 value 呼入时间 ef Range J4 value 呼出时间 ef Range K4 value 合 计 ef Range L3 L4 Select ef Selection Merge ef Range L3 value 累计工作时间 ef Range M3 M4 Select ef Selection Merge ef Range M3 value 无效时间 ef Range N3 N4 Select ef Selection Merge ef Range N3 value 录入量 ef Range O3 O4 Select ef Selection Merge ef Range O3 value 有效时间比 接下来通过 scan 语句 依次为每一行每一列单元格赋值 为了获得更好的打印 效果 还需进行页面设置 如标题行 页面居中 横向排版等 还可以加边框 线 以上程序在 VFP 6 Excel 2000 Windows 2000 下调试通过 实际应用中可根据 需要对各项参数设置进行相应调整 FOX 控制 EXCL 文件另存为 DBF EXCL 后台运行 fil Thisform List1 Value 其值为一个包含路径的文件名 eole CREATEOBJECT Excel application eole Workbooks Open fil 打开文件 eole Selection AutoFilter 关闭 如果无则打开 自动筛选 eole Range A1 F1000 Select 选中从第 1 行到 1000 行的前 6 列数据 另 存后只有这些数据 asfil STRTRAN UPPER STRTRAN fil SUBSTR fil 1 RAT fil c window s desktop cphz XLS dbf 要保存的文件名 IF FILE asfil DELETE FILE asfil ENDIF eole ActiveWorkbook SaveAs asfil 8 另存为 DBF eole ActiveWorkbook saved t 不保存当前 EXCL 表 eole Workbooks close 关闭表 eole quit 退出 EXCL RELEASE eole 释放变量 虽然用 APPEND FROM tx xls TYPE XL8 可以更简单的追加数据 但有时会导致 程序非法错误退出 不知是不是因为非法字符 而且还有一定的限制 实用的 VFP 与 EXCEL 交互编程 邹益民 摘要 本文介绍了几种实用的 VFP 与 EXCEL 交互编程的方法与实例 将 VFP 强 大的数据处理功能与 EXCEL 优异的制表功能有机地结合起来 大大增强了软件 的应用效果 关键词 VFP EXCEL DDE OLE 交互编程 Some Cross Programming Methods Between VFP and EXCEL Zou yiming Gansu Lanzhou Section of Instruments Lanzhou Petrochemical Staff College Abstract The author introduces us in this paper some practical methods and instance of cross programming between VFP and EXCEL It extremely improves their performances by combining VFP s data processing functions with EXCEL s excellent tabulation functions Key Words VFP EXCEL OLE DDE Cross Programming VFP Visual Foxpro 是一种关系型数据库管理系统 由于其强大的数据处理能 力及良好的兼容性 使其成为数据库应用程序开发人员的强有力工具 而 EXECL 则是一种优秀的电子表格处理软件 在兼容性 操作界面 公式运算 图表等方面有着独到的优势 上述两种软件在各自的应用领域均得到广泛的应 用 同时上述两种软件还具有良好的交互编程能力 为两者相辅相成 取长补 短奠定了良好的基础 本文将结合具体实例介绍几种 VFP 与 EXCEL 交互编程的方法 每种方法虽然实 现手段各异 但功能相仿 其功能可简述如下 VFP 数据表 学生成绩 表 DBF 中含 学生姓名 语文 数学 等字段 示例 程序将从 EXCEL 工作簿 VFP 交互 XLS 之工作表 查询 中用书签 课程名 指定的单元取得欲查询的课程名称 然后在数据表 学生成绩表 DBF 中自动 搜索 以找到该门课程不及格的同学名单 最后传送至原 EXCEL 工作薄形成新 的工作表单 同时 新工作表还将以该课程名命名 下列程序均在 VFP5 0 与 EXCEL97 中调试通过 因篇幅所限 程序中的错误处 理部分略去 一 EXECL 驱动 VFP EXECL 内置的 VBA 语言 Visual Basic For Application 为 EXECL 功能的扩 展提供了便利的手段 用户可使用该语言直接驱动 VFP 完成数据检索等功能 程序首先生成一个 VFP 对象 然后用 VFP 的 DoCmd 方法执行 VFP 摸索命令串 其摸索结果再借助于 VFP 的 DateToClip 方法拷贝至剪切板 最后 VBA 将其粘贴 至工作表的正确位置 Sub FoxTest Dim oFox As Object Dim SLesson As String Dim SCommand As String Set oFox CreateObject VisualFoxPro Application 启动 VFP 生成 VFP 对象 Sheets 查询 Select SLesson Range 课程名 在名为 课程名 的单元格中得到欲查询的课 程名称 Sheets Add 产生新的工作表单 ActiveSheet Name Slesson 指定工作表单的名称与课程名称相同 SCommand SELECT 学号 语文 数学 FROM d vfp 学生成绩表 WHERE SLesson 60 INTO CURSOR TEMP 形成 VFP 查询命令串 oFox DoCmd Scommand 执行 VFP 命令串 oFox DataToClip temp 3 将搜索结果以文本方式拷贝至剪切板 Range a1 a1 Select 指向拷贝目标区域左上角单元 ActiveSheet Paste 粘贴搜索结果 End Sub 为便于使用 作者在 EXECL 中自制了一名为 搜索 的工具栏及一名为 开始 搜索 的按钮 并将上述宏程序段与自制按钮相关联 按下此按钮即可运行程 序并在 EXCEL 中得到要求的数据 制作工具栏及按钮的方法如下 1 选 工具 自定义 菜单 出现自定义对话框 2 选择 工具栏 页框 然后按下 新建 按钮 3 在工具栏对话框中输入 搜索 作为新建工具栏的名称 4 选择 命令 页框 在 类别 列表中选 宏 在 命令 列表中选 自 定义按钮 并将其拖放至新建的 搜索 工具栏 5 按下 更新所选内容 按钮 首先在 命名 栏中填入按钮名称 开始搜索 然后选择 指定宏 在随后出现的 指定宏 列表中选择上述宏程序 FoxTest 即可实现为该宏指定一个工具栏按钮 二 VFP 使用 OLE 功能驱动 EXECL OLE Object Linking and Embedding 对象链接与嵌入 是 WINDOWS 应用程序 间相互传递和共享数据的一种有效方法 VFP 借助于 OLE 不仅可共享其它应用 程序的数据 而且还能以对象方式直接控制其它应用程序的运行 从而进一步 扩展 VFP 的功能 VFP 支持直接在程序中创建 使用和控制 OLE 对象 实现 OLE 自动化 作为 OLE 客户 VFP 与作为 OLE 服务器的 EXCEL 具有良好的编程接口 下述程序段用 OLE 方式实现所要求的功能 程序首先生成一个 EXCEL 的 OLE 对象 OleApp 以便对其进行操作 然后利用 OLE 功能从 EXCEL 表单中获取欲查询的课程名 并控制 EXCEL 生成新的工作表 VFP 的查询结果仍然使用剪切板的方式传递至 EXCEL 工作表 OleApp CREATEOBJECT Excel Application 打开 EXCEL 产生 OLE 对象 OleApp Application Caption VFP 交互编程 指定标题栏名称 OleApp Application Visible T 置 EXCEL 可见 OleApp Application WorkBooks Open d vfp VFP 交互 xls 打开 EXCEL 工作簿 DO WHILE T WITH OleApp Application nAnswer MESSAGEBOX 开始搜索 32 4 搜索指定数据 产生信息框 IF NOT nAnswer 6 如按下 Yes 按钮 则开始搜索 反之退出 EXIT ENDIF Sheets 查询 Select 选择 查询 工作表单 SLesson OleApp Application Range 课程名 Value 得到欲查询的课 程名称 Sheets Add 新建一工作表单 ActiveSheet Name Slesson 指定工作表单的名称 SCommand SELECT 学号 语文 数学 FROM d vfp 学生成绩表 WHERE ALLTrim SLesson 160 判断是否为汉字 hz substr chzchr i 2 c for j 1 to 26 这个 FOR 循环很有意思 if substr hz 1 2 substrc pycode j 2 c chr 96 j j 27 endif endfor cpychr cpychr lower c i i 1 改变 I 值来控制 第一次使用 else cpychr cpychr lower substr chzchr i 1 如果不是汉字 返回原来的码 endif endfor thisform edit1 value cpychr thisform refresh selectselect 查询的输出问题查询的输出问题 select 的输出方向一般有 到临时表 sele from biao into cursor 临时表 名 到数组 sele from biao into array 数组名 不要带括号 到表 sele from baio into table 表名 INTOINTO 或或 TOTO 子句指定输出选项 它确定 SQL SELECT 语句存储或发送最终查询 结果的位置 更多的信息 请参见 SELECT SQL 命令 INTOINTO 或或 TOTO 子句的详细语法如下 INTO StorageDestination TO DisplayDestination 参数参数 INTO StorageDestination 存储查询结果到数组 临时表或表 注意 注意 如果不包含 INTO 子句 则默认在 浏览 窗口中显示查询结果 要直接将查询结果定向 到打印机或一个文件 请使用 TO 子句 下表描述了使用 INTO 子句可以存储查询结果的位置 StorageDestination说明说明 ARRAY ArrayName 在一个内存变量数组中存储查询结果 注意 注意 如果查询选择了 0 条记录 则不创建数组 CURSOR CursorName NOFILTER READWRITE 在一个临时表中存储查询结果 注意 注意 如果指定了一个已打开表的名称 Visual FoxPro 将产生 一条错误信息 SELECT 执行之后 临时表保持打开并 为活动 而且除非您指定了 READWRITE 选项 否则 它是只读的 关闭该临时表时 它将被删除 通过指定 SORTWORK 临时表可以作为磁盘或卷标上的一个临 时文件存在 NOFILTER 创建一个可以用于以后查询的临时表 注意 注意 包含 NOFILTER 会降低查询的性能 因为它将在磁盘 上创建一个临时表 关闭临时表时 从磁盘上删除临时 表 READWRITE 指定临时表为可修改 如果源表或表 中使用了自动增量 auto incrementing 由 READWRITE 创建的临时表不继承该设置 使用 READWRITE 子句可以在临时表上创建多个结构索 引 TABLE TableName DATABASE DatabaseName NAME LongTableName 在一张表中存储查询结果 警告 警告 如果指定的表是打开的 且 SET SAFETY 设置为 OFF 则 Visual FoxPro 改写该表 并不警告 如果没有指定扩展名 则 Visual FoxPro 给表一 个 dbf 扩展名 执行之后 SELECT 表保持打开 和活动 DATABASE DatabaseName 指定一个数据库 您可 以将表添加到其中 NAME LongTableName 为表指定一个长名 长名可 以包含最多 128 个字符 并且可以用来在数据库 中代替短文件名 TO DisplayDestination 发送查询结果到一个文件 打印机 Visual FoxPro 主窗口或活动的用户自定义窗 口 注意 注意 如果在相同的查询中也包含了 INTO 子句 Visual FoxPro 将忽略 TO 子句 下表描述了使用 TO 子句可以将查询结果发送到的位置 DisplayDestination说明说明 FILE FileName ADDITIVE 指定一个 ASCII 文本文件 可以直接将查询结果定 向到它 ADDITIVE 将查询输出追加到 FileName 指定的文本 文件的现有内容 PRINTER PROMPT 直接将查询定向到打印机 PROMPT 在打印开始前显示打印机对话框 可以在该 对话框中调整打印机设置 可以调整的打印机设置由 当前安装的打印机驱动程序确定 SCREEN 直接将查询输出定向到 Visual FoxPro 主窗口或活 动的用户自定义窗口 TreeViewTreeView 和和 ListViewListView 的使用方法的使用方法 下面的文章是关于 TreeView 和 ListView 的使用方法 TREEVIEW 控件应用详解 TreeView 控件是在 VFP 的数据处理中很有用的一个 ActiveX 控件 但是 VFP 的帮助中却没有相关的说明 为帮助大家对这一控件有一个详细的了解 现将 TreeView 控件应用详解如下 一 概述 TreeView 控件显示 Node 对象的分层列表 每个 Node 对象均由一个标 签和一个可选的位图组成 TreeView 一般用于显示文档标题 索引入口 磁盘 上的文件和目录 或能被有效地分层显示的其它种类信息 创建了 TreeView 控件之后 可以通过设置属性与调用方法对各 Node 对象进行操作 这些操作 包括添加 删除 对齐和其它操作 可以编程展开与折回 Node 对象来显示或 隐藏所有子节点 Collapse Expand 和 NodeClick 三个事件也提供编程功能 Node 对象使用 Root Parent Child FirstSibling Next Previous 和 LastSibling 属性 在代码中可通过检索对 Node 对象的引用 从而在树上定位 也可以使用键盘 定位 UP ARROW 键和 DOWN ARROW 键向下循环穿过所有展开的 Node 对象 从 左到右 从上到下地选择 Node 对象 若在树的底部 选择便跳回树的顶部 必要时滚动窗口 RIGHT ARROW 键和 LEFT ARROW 键也穿过所有展开的 Node 对象 但是如果选择了未展开的 Node 之后再按 RIGHT ARROW 键 该 Node 便 展开 第二次按该键 选择将移向下一个 Node 相反 若扩展的 Node 有焦点 这时再按 LEFT ARROW 键 该 Node 便折回 如果按下 ANSI 字符集 中的键 焦点将跳转至以那个字母开头的最近的 Node 后续的按该键的动作将使选择向 下循环 穿过以那个字母开头的所有展开节点 控件的外观有八种可用的替换样式 它们是文本 位图 直线和 号 的组合 Node 对象可以任一种组合出现 TreeView 控件使用由 ImageList 属性指定的 ImageList 控件 来存储显 示于 Node 对象的位图和图标 任何时刻 TreeView 控件只能使用一个 ImageList 这意味着 当 TreeView 控件的 Style 属性被设置成显示图象的 样式时 TreeView 控件中每一项的旁边都有一个同样大小的图象 发行注意 TreeView 控件是 COMCTL32 OCX 文件中的一组 ActiveX 控件的 一部分 为了在应用程序中使用 TreeView 控件 必须将 COMCTL32 OCX 文件 添加到工程中 在发行应用程序时 要在用户的 Microsoft Windows System 或 System32 目录中安装 COMCTL32 OCX 文件 二 常用属性 1 Nodes 属性返回对 TreeView 控件的 Node 对象的集合的引用 语法 object Nodes object 所在处代表一个对象表达式 其值是 应用于 列表中的一个对象 说明 可以使用标准的集合方法 例如 Add 和 Remove 方法 操作 Node 对象 可以按其索引或存储在 Key 属性中的唯一键来访问集合中的每个元素 2 Style 属性返回或设置图形类型 图象 文本 号 直线 以及出 现在 TreeView 控件中每一 Node 对象上的文本的类型 语法 object Style number Style 语法包含下面部分 部分 描述 object 对象表达式 其值是 应用于 列表中的一个对象 number 指定图形类型的整数 请参阅 设置值 中的描述 设置值 number 的设置值是 设置值 描述 0 仅为文本 1 图象和文本 2 号和文本 3 号 图象和文本 4 直线和文本 5 直线 图象和文本 6 直线 号和文本 7 缺省 直线 号 图象和文本 说明 若 Style 属性设置为包含直线的值 则 LineStyle 属性就确定了 直线的外观 如果 Style 属性设置为不含直线的值 则 LineStyle 属性将被 忽略 3 Sorted 属性返回或设置一值 此值确定 Node 对象的子节点是否按字 母顺序排列 返回或设置一值 此值确定 TreeView 控件的根层节点是否按字 母顺序排列 语法 object Sorted boolean Sorted 属性语法包含下面部分 部分 描述 object 对象表达式 其值是 应用于 列表中的一个对象 boolean 布尔表达式 表示 Node 对象是否已被排序如 设置值 中描述 boolean 的设置值是 设置值 描述 True Node 对象根据它们的 Text 属性按字母顺序排列 其 Text 属性由 数字开始的 Node 对象也作为字符串排序 第一个数字确定在排序中的初始位 置 后面的数字确定以后的排序 False Node 对象不排序 说明 Sorted 属性有两种用法 第一 在 TreeView 控件的根 顶 层排列 Node 对象 第二 对任何单个 Node 对象的立即子节点排序 例如 下面的代 码是对 TreeView 控件的根节点排序 TreeView1 Sorted True 顶层 Node 对象被排序 下面的例子表示创建 Node 对象时如何设置 Sorted 属性 Dim nodX As Node Set nodX TreeView1 Nodes Add Parent Node nodX Sorted True 设置 Sorted 属性为 True 仅对当前 Nodes 集合排序 在 TreeView 控件中添 加新的 Node 对象时 必须再次设置 Sorted 属性为 True 以便对添加的 Node 对象排列 三 常用方法 1 Add 方法在 Treeview 控件的 Nodes 集合中添加一个 Node 对象 语法 object Add relative relationship key text image selectedimage Add 方法的语法包含下面部分 部分 描述 object 必需的 对象表达式 其值是 应用于 列表中的一个对象 relative 可选的 已存在的 Node 对象的索引号或键值 新节点与已 存在的节点间的关系 可在下一个参数 relationship 中找到 relationship 可选的 指定的 Node 对象的相对位置 如设置值中所述 key 可选的 唯一的字符串 可用于用 Item 方法检索 Node text 必需的 在 Node 中出现的字符串 image 可选的 在关联的 ImageList 控件中的图象的索引 selectedimage 可选的 在关联的 ImageList 控件中的图象的索引 在 Node 被选中时显示 设置值 relationship 的设置值是 常数 值 描述 tvwFirst 0 首的节点 该 Node 和在 relative 中被命名的节点 位于同一层 并位于所有同层节点之前 tvwLast 1 最后的节点 该 Node 和在 relative 中被命名的节 点位于同一层 并位于所有同层节点之后 任何连续地添加的节点可能位于最 后添加的节点之后 tvwNext 2 缺省 下一个节点 该 Node 位于在 relative 中 被命名的节点之后 tvwPrevious 3 前一个节点 该 Node 位于在 relative 中被命名的 节点之前 tvwChild 4 缺省 子节点 该 Node 成为在 relative 中被命 名的节点的子节点 注意如果在 relative 中没有被命名的 Node 对象 则新节点被放在节点顶层 的最后位置 说明 Nodes 集合是一个基于 1 的集合 在添加 Node 对象时 它被指派一个索引号 该索引号被存储在 Node 对象的 Index 属性中 这个最新成员的 Index 属性值就是 Node 集合的 Count 属性 的值 因为 Add 方法返回对新建立的 Node 对象的引用 所以使用这个引用来设置新 Node 的属性十分方便 2 GetVisibleCount 方法返回固定在 TreeView 控件的内部区域的 Node 对象的个数 语法 object GetVisibleCount object 所在处代表一个对象表达式 其值是 应用于 列表中的一个对象 说明 Node 对象的个数取决于在一个窗口中能固定多少行 总的行数取决于 控件的高度和 Font 对象的 Size 属性 该计数包括列表底部的只能看到一局 部的项 可以使用 GetVisibleCount 属性确保可视的最小行数 这样可以精确地访问一 个层 如果最小行数是不可视的 可以用 Height 属性重新设置 TreeView 的 大小 四 常用事件 NodeClick 事件在一个 Node 对象被单击时 这个事件便发生 语法 Private Sub object NodeClick ByVal node As Node NodeClick 事件的语法包含下面部分 部分 描述 object 对象表达式 其值是 应用于 列表中的一个对象 node 对被点取的 Node 对象的引用 说明 在单击节点对象之外的 TreeView 控件的任何部位 标准的 Click 事件发生 当单击某个特定的 Node 对象时 NodeClick 事件发生 NodeClick 事件也返 回对特定的 Node 对象的引用 在下一步操作之前 这个引用可用来使这个 Node 对象可用 NodeClick 事件发生在标准的 Click 事件之前 listview 控件可有 4 种不同的视图显示方法 跟 资源管理器 里的 查看 方式相似 1 无图标 2 小图标 3 列表 4 报表式 使用哪种视图 可由该控件的 view 属性设置控制 其中 报表 视图用来显示记录数据很适合 listview 控件包括 listItem 对象和 ColumnHeader 对象 本人简单理解为 listItem 对象看成数据行 ColumnHeader 对象看成列标 题 listItem 对象 行 有两部分 一部分是图标和简要描述的文本 第 1 列 另一部分是前者的子项文本信息 第 2 列 第 3 列 而 listItems 即是对 listItem 对象集合 所有行 的引用 故此 listItems 1 可以表示为第 1 行 listitems 1 text 返回第 1 行第 1 列的文本值 listitems 1 subItem 1 返回第 1 行第 2 列的文本值 控件常用属性 1 view 属性 该属性有 4 个值可设定 1 小图标视图显示 2 列表 3 报表 0 无图标 默认 2 AllowColumnReorder 属性 值设置 t 时 用户可以用鼠标选中 1 列拖至其他地方进行重新排列 3 Checkboxes 属性 设置为 t 时 每一行数据前将显示一复选框 4 FlatScrollBar 属性 设置为 f 时控件将显示滚动条 5 FullRowSelect 属性 设置为 t 时可以整行地选择数据 6 GridLines 属性 设置为 t 时控件将显示网格线 只作用于 报表 视图 7 HideColumnHeaders 属性 设置为 f 时 列标题可视 反之则不可视 8 HotTracking 属性 设置为 t 时 鼠标所在行将以高亮度显示 9 Icons SmallIcons 属性 两者设置 listview 控件视图相关联的 ImageList 控件中的图片 Icons 指明视图为大图标时的关联 SmallIcons 指明视图为小图标时的关联 10 LabelWrap 属性 设置为 t 时 文本标签超出列宽时可换行 11 SelectedItem 属性 返回对所选 ListItem 对象 行 的引用 12 Sorted 属性 当值为 t 时 列表按字母排序 13 Picture 属性 指定控件的背景图片 此属性在控件自带属性设置框里设置 控件常用方法程序 1 Add 方法 添加 listItem 对象 行 到控件中 语法格式 控件 ListItems 集合 add index key text icon smallIcon 2 FindItem 方法 查找并返回对控件中 listItem 对象的引用 语法格式 控件名 FindItem string value index match 新建一表单 在表单里拖出一个 ListView 控件和一个 ImageList 控件 选中 ListView 控件 单击右键 选择 ListViewCtrl Properties 在 General 页面框中选中下列复选框 LabelWrap 文本可换行 Checkboxes 显示复选框 FullRowSelect 整行选定 清除 FlatScrollBar 的选定 控件将显示滚动条 控件 name 属性 ListView view1 ImageList Image1 在表单的 Init 事件中加入下列代码 将 ImageList 控件图片赋予 Listview 控件 thisform view1 Icons thisform Image1 object thisform view1 smallIcons thisform Image1 object 在 listview 控件 init 事件中加入下列代码 初始化 ListView 控件 设置显示为报表视图 this view 3 添加和设置列标 store this ColumnHeaders Add l11 序号 this Width 7 to clm1 store this ColumnHeaders Add l12 物资编号 this width 4 to clm2 store this ColumnHeaders Add l13 存货名称 this Width 4 to clm3 store this ColumnHeaders Add l14 规格 this width 4 to clm4 store this ColumnHeaders Add l15 计量单位 this Width 8 to clm5 store this ColumnHeaders Add l16 请购数量 this width 4 to clm6 store this ColumnHeaders Add l17 使用日期 this Width 4 to clm7 store this ColumnHeaders Add l18 请购用途 this width 4 to clm8 this hottracking t 鼠标停留行高亮度显示 将数据表添加到 listview 控件中显示 新建一表单方法程序 refresh grid 可随时调用刷新数据 在其中加入下列代码 L1 thisform view1 L1 listItems clear 清除数据 sele 请购表 scan 添加 listItem 对象第 1 列图标和文本 控件 ListItems 集合 add index key text icon smallIcon store L1 listItems Add 序号 1 to bbb 添加第 2 3 列文本 store alltrim 物资编号 to bbb subitems 1 store alltrim 存货名称 to bbb subitems 2 store alltrim 规格 to bbb subitems 3 store alltrim 计量单位 to bbb subitems 4 store 请购数量 to bbb subitems 5 store 使用日期 to bbb subitems 6 store alltrim 请购用途 to bbb subitems 7 endscan 注 若字段值为 null 时 添加时将出现错误提示 请自行设置用函数加以判别 为 null 时可以空值添加 如何返回选定值 L1 thisform view1 L1 selectedItem text 返回选定行第 1 列文本值 L1 selectedItem index 返回选定行的位置 L1 listItems x subItems y 返回第 x 行 第 y 1 列文本值 如何用用命令设置复选框状态 thisform view1 listItems x checked t 第 x 行复选框选定 选定复选框时发生的事件 itemcheck LPARAMETERS item if item checked t 判定当复选框选中 要执行的语句 else 要执行的语句 endif 清除所有数据 thisform view1 listItems clear 清除选定行 L1 thisform view1 L1 listitems remove L1 selectedItem index 得知所有行的总数 L1 listitems count 图象列表控件图象列表控件 ImageListImageList 图象列表控件 ImageList 是一个存储 Image 图象 的数组 可以保存许多图象 以共其他控件使用 所 以它必须和其他控件或应用相结合 才能表现出强大的功能 ImageList 控件有 3 个属性页 General 页 Images 页和 Color 页 1 General 属性页中 设置图象的大小可以通过单击单选按钮来实现 如果选取了 Custom 自定义 可以在 Height 和 Width 框中输入需要的大小 如果已经插入了图象 那么 Height 和 Width 的大小将由已插入的图象的大小决定 2 Images 属性页 单击 Insert Picture 插入图片 出现选择图片的对话框 可以从中选取相应的图 象到图象列表控件中 当添加图象后 其中 Image Count 框的值增 1 可以单击 Remove Picture 移去图 片 当前图片移去后 Image Count 框的值减 1 3 利用 ADD 方法给 ImageList 增加图象 可以使用以下语句向名为 ImageList1 的 ListImages 集合中增加图象 thisform imagelist1 listimages add rocker loadpicture 图象位置及全名要加扩展名 4 ImageList 属性 name 属性 跟其他控件的 name 属性是一样的 主要用来区分不同的 imagelist 控件 imageheight 属性和 imagewidth 属性 用来控制 imagelist 控件中图象的大小 注 不同尺寸的图象可 以增加到一个 imagelist 控件中 但是他们反映出来的仍然是具有同样的大小 这取决于第一个加入

温馨提示

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

评论

0/150

提交评论