河南中泰食品添加剂:含有树形分支的表格控件( vsFlex7.ocx)示例

来源:百度文库 编辑:偶看新闻 时间:2024/04/27 09:56:21

以下为实现该效果的完整代码:

*-- 程序功能:创建一个含有树形分支的表格
* 作者:红虎(honghoo.net)
* 日期:2002.8.3
*-- 所需控件 vsFlex7.ocx
* 调试环境:vfp7+pwin98se

With thisform.VSFlexGrid
.Subtotal(0) && 清除表格汇总
.Cols = 5 && 设置列数
.Rows = 1 + 5^4 && 设置行数 注:从第零行开始
.FixedRows = 1 && 设置固定行数 (第零行)
.FixedCols = 1 && 设置固定列数 (第零列)
.ColWidth(0) = 0 && 设置第一列的宽度为零
.Clear && 清除表格中的数据。

.AllowUserResizing = 1 && flexResizeColumns 只允许调整列宽
.OutlineBar = 1 && 左边树型的样式,显示分层数和线条
.OutlineCol = 0 && 在哪列显示分层
.MergeCells= 7 && flexMergeOutline 合并方式

*-- 设定标题行的四个标题
.TextMatrix(0, 1) = "第一层"
.TextMatrix(0, 2) = "第二层"
.TextMatrix(0, 3) = "第三层"
.TextMatrix(0, 4) = "显示数据"

LOCAL a,b,c,d,r
STORE 0 TO a,b,c,d,r
*-- 设置三层循环,加载数据
r = 0
FOR a=1 TO 5
FOR b=1 TO 5
FOR c=1 TO 5
FOR d=1 TO 5
r = r + 1
.TextMatrix(r,1) = "a" + ALLTRIM(STR(a))
.TextMatrix(r,2) = "a" + ALLTRIM(STR(a)) + "b" + ALLTRIM(STR(b))
.TextMatrix(r,3) = "a" + ALLTRIM(STR(a)) + "b" + ALLTRIM(STR(b)) + "c" + ALLTRIM(STR(c))
.TextMatrix(r,4) = ""
ENDFOR
ENDFOR
ENDFOR
ENDFOR
*-- 进行数据汇总,但是不汇总!第一个参数就是不统计,只是为了显示树
* 第二个参数是列数,后面是前景,背景色,以及是否用粗体
.Subtotal(0, 1,,, RGB(255,0,0), RGB(255, 255, 255), .T.)
.Subtotal(0, 2,,, RGB(128, 128, 128), RGB(0, 255, 0), .T.)
.Subtotal(0, 3,,, RGB(128, 128, 200), RGB(255, 255, 255), .T.)
EndWith