.版本 2.支持库 iext.程序集 程序集1.子程序 _启动子程序, 整数型, , 请在本子程序中放置易模块初始化代码_临时子程序 () ' 在初始化代码执行完毕后调用测试代码返回 (0) ' 可以根据您的需要返回任意数值.子程序 _临时子程序' 本名称子程序用作测试程序用,仅在开发及调试环境中有效,编译发布程序前将被系统自动清空,请将所有用作测试的临时代码放在本子程序中。 注意不要修改本子程序的名称、参数及返回值类型。.子程序 超级列表框排序, 整数型, 公开, 返回排序时间,选中后排序还选中,必须项目数值不为0 没有默认为1.参数 对象, 超级列表框.参数 列索引, 整数型, , 索引值从 0 开始。.参数 类型, 整数型, 可空, 0=数值;1=文本;2=日期时间;3=逻辑.参数 区分大小写, 逻辑型, 可空, 真为区分,默认为真.参数 排序方式, 逻辑型, 可空, 真为小到大,默认为真.局部变量 排序时间, 整数型.局部变量 排序变量, 文本型, , "0".局部变量 序号数组, 整数型, , "0".局部变量 表项数值, 整数型, , "0".局部变量 变量, 整数型.局部变量 数据, 文本型.局部变量 列数, 整数型.局部变量 行数, 整数型.局部变量 单元数, 整数型.局部变量 选中项, 整数型排序时间 = 取启动时间 ()类型 = 选择 (类型 ≥ 0 且 类型 ≤ 3, 类型, 1)区分大小写 = 选择 (是否为空 (区分大小写), 真, 区分大小写)排序方式 = 选择 (是否为空 (排序方式), 真, 排序方式).如果真 (对象.现行选中项 ≠ -1) .如果真 (对象.取表项数值 (对象.现行选中项) = 0) 对象.置表项数值 (对象.现行选中项, 1) .如果真结束 选中项 = 对象.取表项数值 (对象.现行选中项).如果真结束.计次循环首 (对象.取表项数 (), 变量) 数据 = 删首尾空 (对象.取标题 (变量 - 1, 列索引)) .如果 (类型 ≠ 3) 单元数 = 二分查找 (排序变量, 数据, 类型, 区分大小写) 插入成员 (排序变量, 单元数, 数据) 插入成员 (序号数组, 单元数, 变量 - 1) 插入成员 (表项数值, 单元数, 对象.取表项数值 (变量 - 1)) .否则 插入成员 (序号数组, 选择 (数据 = “假”, 变量, 1), 变量 - 1) 插入成员 (表项数值, 选择 (数据 = “假”, 变量, 1), 对象.取表项数值 (变量 - 1)) .如果结束.计次循环尾 ()列数 = 对象.取列数 ()行数 = 取数组成员数 (序号数组)单元数 = 行数 × 列数重定义数组 (排序变量, 假, 单元数).计次循环首 (单元数, 变量) 排序变量 [变量] = 对象.取标题 (序号数组 [取绝对值 (选择 (排序方式, -1, 行数) - (变量 - 1) \ 列数)], (变量 - 1) % 列数).计次循环尾 ().计次循环首 (单元数, 变量) 对象.置标题 ((变量 - 1) \ 列数, (变量 - 1) % 列数, 排序变量 [变量]) 对象.置表项数值 ((变量 - 1) \ 列数, 表项数值 [取绝对值 (选择 (排序方式, -1, 行数) - (变量 - 1) \ 列数)]).计次循环尾 ().如果真 (选中项 ≠ 0) .计次循环首 (对象.取表项数 (), 变量) .如果真 (对象.取表项数值 (变量 - 1) = 选中项) 对象.现行选中项 = 变量 - 1 对象.保证显示 (变量 - 1) 跳出循环 () .如果真结束 .计次循环尾 ().如果真结束返回 (取启动时间 () - 排序时间).子程序 二分查找, 整数型.参数 数组, 文本型, 数组.参数 待查, 文本型.参数 类型, 整数型.参数 区分大小写, 逻辑型.局部变量 K, 整数型.局部变量 M, 整数型.局部变量 J, 整数型.局部变量 数值A, 双精度小数型.局部变量 数值B, 双精度小数型.局部变量 文本, 文本型K = 1M = 取数组成员数 (数组).如果真 (M = 0) 返回 (1).如果真结束.判断开始 (类型 = 0) 数值A = 到数值 (待查) .如果真 (数值A ≥ 到数值 (数组 [M])) 返回 (M + 1) .如果真结束 .如果真 (数值A ≤ 到数值 (数组 [1])) 返回 (1) .如果真结束 .判断循环首 (K < M - 1) J = (K + M) \ 2 数值B = 到数值 (数组 [J]) .如果真 (数值A = 数值B) K = J 跳出循环 () .如果真结束 .如果 (数值A < 数值B) M = J .否则 K = J .如果结束 .判断循环尾 ().判断 (类型 = 1) .如果真 (文本比较 (待查, 数组 [M], 区分大小写) ≥ 0) 返回 (M + 1) .如果真结束 .如果真 (文本比较 (待查, 数组 [1], 区分大小写) ≤ 0) 返回 (1) .如果真结束 .判断循环首 (K < M - 1) J = (K + M) \ 2 .如果真 (文本比较 (待查, 数组 [J], 区分大小写) = 0) K = J 跳出循环 () .如果真结束 .如果 (文本比较 (待查, 数组 [J], 区分大小写) < 0) M = J .否则 K = J .如果结束 .判断循环尾 ().判断 (类型 = 2) 数值A = 取字节集数据 (到字节集 (到时间 (待查)), #双精度小数型) .如果真 (数值A ≥ 取字节集数据 (到字节集 (到时间 (数组 [M])), #双精度小数型)) 返回 (M + 1) .如果真结束 .如果真 (数值A ≤ 取字节集数据 (到字节集 (到时间 (数组 [1])), #双精度小数型)) 返回 (1) .如果真结束 .判断循环首 (K < M - 1) J = (K + M) \ 2 数值B = 取字节集数据 (到字节集 (到时间 (数组 [J])), #双精度小数型) .如果真 (数值A = 数值B) K = J 跳出循环 () .如果真结束 .如果 (数值A < 数值B) M = J .否则 K = J .如果结束 .判断循环尾 ().默认.判断结束返回 (K + 1)
.版本 2.程序集 窗口程序集1.程序集变量 变量, 文本型.子程序 _超级列表框1_表头被单击.参数 被单击列索引, 整数型.如果真 (被单击列索引 = 0) .如果 (标签1.标题 = “1”) ' 处理表和图标对应 () 超级列表框排序 (超级列表框1, 0, 1, 真, 真) ' 重新排列图标 () 标签1.标题 = “2” .否则 ' 处理表和图标对应 () 超级列表框排序 (超级列表框1, 0, 1, 真, 假) ' 重新排列图标 () 标签1.标题 = “1” .如果结束.如果真结束.如果真 (被单击列索引 = 1) .如果 (标签1.标题 = “1”) ' 处理表和图标对应 () 超级列表框排序 (超级列表框1, 1, 1, 真, 真) ' 重新排列图标 () 标签1.标题 = “2” .否则 ' 处理表和图标对应 () 超级列表框排序 (超级列表框1, 1, 1, 真, 假) ' 重新排列图标 () 标签1.标题 = “1” .如果结束.如果真结束.如果真 (被单击列索引 = 2) .如果 (标签1.标题 = “1”) ' 处理表和图标对应 () 超级列表框排序 (超级列表框1, 2, 1, 真, 真) ' 重新排列图标 () 标签1.标题 = “2” .否则 ' 处理表和图标对应 () 超级列表框排序 (超级列表框1, 2, 1, 真, 假) ' 重新排列图标 () 标签1.标题 = “1” .如果结束.如果真结束