YStudio Y++

筛选类 / 筛选UI类

Y++ / YStudio 开发文档 · 一点滴

类对象支持库(不是扁平命令)。路径:支持库 → 扩展类库 → 组件扩展 / 数据表格筛选。

类型名必须写完整「筛选类 / 筛选UI类」。声明时自动创建,一般无需再调 创建*。

硬约束

  1. 逻辑对象类型名「筛选类」;界面控制器「筛选UI类」。
  2. 须先 筛选类.绑定 数据表格,再设条件;UI 类再绑定到筛选类。
  3. 方法调用必须带括号。
  4. 表头 ▼ 须 数据表格.置表头筛选(真) 且已绑定。

快速开始

筛选类 filt
筛选UI类 ui
filt.绑定(数据表格1)
ui.绑定(filt)
filt.筛选(0, "关键词")

筛选UI类/创建

共 1 条。

创建筛选UI

  • 签名:通用 创建筛选UI()
  • 说明:创建筛选 UI 控制器(一般直接写「筛选UI类 ui」即可)。

筛选类/创建

共 1 条。

创建筛选

  • 签名:通用 创建筛选()
  • 说明:显式创建一个数据表格筛选对象(一般直接写「筛选类 filt」即可,声明时自动创建)。

筛选UI类/方法

共 12 条。

绑定

  • 签名:无 绑定(筛选类 对象)
  • 说明:绑定到已创建的筛选类实例(共享同一数据表格)。
  • 参数一│筛选类 对象: 如 filt。

置按钮宽

  • 签名:无 置按钮宽(整数 宽度)
  • 说明:设置 A/B/C 列头区 ▼ 按钮宽度(像素,最小 8)。
  • 参数一│整数 宽度: 像素。

置激活色

  • 签名:无 置激活色(整数 颜色)
  • 说明:列已筛选时 ▼ 按钮背景色(ARGB,如 0xFF0078D7)。
  • 参数一│整数 颜色: ARGB。

置使用内置菜单

  • 签名:无 置使用内置菜单(逻辑 开启)
  • 说明:真=使用内置 UI(默认 Excel 面板,或 置使用面板(假) 后的旧菜单);假=仅用 加入菜单项 定义的自定义菜单。
  • 参数一│逻辑 开启: 真/假。

置使用面板

  • 签名:无 置使用面板(逻辑 开启)
  • 说明:真(默认)=▼ 打开 Excel 式统一筛选面板(排序/文本/勾选/清除集中一窗);假=旧式下拉菜单。自定义菜单开启时本项无效。
  • 参数一│逻辑 开启: 真/假。

清空菜单

  • 签名:无 清空菜单()
  • 说明:清除自定义菜单项并关闭内置菜单。

加入菜单项

  • 签名:无 加入菜单项(整数 命令, 文本 标签, [文本 运算符], [文本 值])
  • 说明:自定义 ▼ 弹出菜单项;点击时对当前列执行 置列筛选。
  • 参数一│整数 命令: 菜单 ID。
  • 参数二│文本 标签: 显示文字。
  • 参数三│[文本 运算符]: 包含/等于/非空等。
  • 参数四│[文本 值]: 与运算符配合。

置菜单背景色

  • 签名:无 置菜单背景色(整数 颜色)
  • 说明:▼ 弹出菜单背景色(ARGB,默认 0xFF2B2B2B)。
  • 参数一│整数 颜色: ARGB。

置菜单文字色

  • 签名:无 置菜单文字色(整数 颜色)
  • 说明:▼ 弹出菜单文字色(ARGB)。
  • 参数一│整数 颜色: ARGB。

置菜单悬停背景色

  • 签名:无 置菜单悬停背景色(整数 颜色)
  • 说明:▼ 弹出菜单项悬停背景色(ARGB)。
  • 参数一│整数 颜色: ARGB。

置菜单悬停文字色

  • 签名:无 置菜单悬停文字色(整数 颜色)
  • 说明:▼ 弹出菜单项悬停文字色(ARGB)。
  • 参数一│整数 颜色: ARGB。

加入菜单分割线

  • 签名:无 加入菜单分割线()
  • 说明:在自定义菜单中加入分割线。

筛选类/方法

共 48 条。

绑定

  • 签名:无 绑定(组件名 表格名)
  • 说明:绑定到窗体上的数据表格组件(直接写设计器中的组件名,无需引号)。
  • 参数一│组件名 表格名: 如 数据表格1。

设置筛选

  • 签名:无 设置筛选([整数 列])
  • 说明:Excel 式「启用自动筛选」:为指定列在 A/B/C 列头区显示 ▼(不立即筛数据)。省略列参数时,对当前选区内的列批量启用。多选单元格时可用 取区域列索引() 循环调用。须 数据表格.置表头筛选(真) 且已绑定。表头文字在单元格中,与 ▼ 无关。
  • 参数一│[整数 列]: 0 起列索引;省略=当前选区列范围。

取筛选头行

  • 签名:整数 取筛选头行()
  • 说明:返回 ▼ 所在标题行的逻辑行号(0 起);未设置时 -1。

置筛选头行

  • 签名:无 置筛选头行(整数 行)
  • 说明:指定 ▼ 标题行逻辑行号(0 起)。数据区从该行下一行起算;筛选值列表亦从此行以下采集。一般框选后 设置筛选() 会自动设置,仅在标题不在选区时用。
  • 参数一│整数 行: 0 起逻辑行。

取列运算符

  • 签名:文本 取列运算符(整数 列)
  • 说明:返回指定列当前筛选运算符:包含/等于/为空/非空;无规则时空文本。
  • 参数一│整数 列: 0 起。

取列筛选值

  • 签名:文本 取列筛选值(整数 列)
  • 说明:返回指定列当前筛选比较值;为空/非空时通常为空文本。
  • 参数一│整数 列: 0 起。

取已设置筛选列

  • 签名:通用 取已设置筛选列()
  • 说明:返回已显示 ▼ 的列索引数组(0 起,升序)。等同遍历 列可筛选。

取条件列

  • 签名:通用 取条件列()
  • 说明:返回已设置筛选条件(非仅 ▼)的列索引数组。

取列唯一值

  • 签名:文本数组 取列唯一值(整数 列, [整数 最大行], [整数 最大个数])
  • 说明:返回该列数据区(标题行以下)去重值列表,供自定义筛选 UI。默认最多扫描 10000 行、返回 500 个值。
  • 参数一│整数 列: 0 起。
  • 参数二│[整数 最大行]: 扫描行数上限。
  • 参数三│[整数 最大个数]: 返回值个数上限。

置列筛选值列表

  • 签名:无 置列筛选值列表(整数 列, 文本数组 值列表)
  • 说明:多值 OR 筛选:单元格等于列表中任一项则显示。空列表=本列全部隐藏。列表含全部去重值等效于清除该列筛选。
  • 参数一│整数 列: 0 起。
  • 参数二│文本数组 值列表: 要保留的单元格值。

取列筛选值列表

  • 签名:文本数组 取列筛选值列表(整数 列)
  • 说明:返回当前多值/等于筛选的有效值列表;无规则时为空数组。
  • 参数一│整数 列: 0 起。

清除并取消

  • 签名:无 清除并取消([文本 区域])
  • 说明:同时清除筛选条件并移除 ▼。无参=当前选区列;选区空则清除全部。文本=区域;整数=单列。
  • 参数一│[文本 区域]: 省略则用当前框选。

取区域列索引

  • 签名:通用 取区域列索引()
  • 说明:返回当前选区涉及的列索引数组(0 起,去重升序)。用于框选「姓名|班级|…」等单元格后批量 设置筛选。

取消筛选列

  • 签名:无 取消筛选列(整数 列)
  • 说明:移除指定列的表头 ▼ 按钮(不清除该列已有筛选条件)。建议改用 取消筛选(列) 或 取消筛选(区域)。
  • 参数一│整数 列: 0 起列索引。

取消筛选

  • 签名:无 取消筛选([文本 区域])
  • 说明:移除 ▼ 按钮(不清除筛选条件)。无参=当前选区列;文本=区域如 A1:E1 或 A1:E1,C3:D5;整数=单列(同 取消筛选列)。
  • 参数一│[文本 区域]: 省略则用当前框选列。

取选中区域

  • 签名:文本 取选中区域()
  • 说明:返回绑定表格当前选区 A1 表示法。连续选区如 A1:E1;Ctrl 多选不连续时为 A1:E1,C3:D5。等同 数据表格.取选中区域()。

是否已筛选

  • 签名:逻辑 是否已筛选([文本 区域])
  • 说明:选区列中是否至少有一列已设置 ▼。无参=当前选区;可传区域或 filt.取选中区域()。
  • 参数一│[文本 区域]: 省略则用当前框选。

取筛选状态

  • 签名:整数 取筛选状态([文本 区域])
  • 说明:返回 0=均未设置 ▼,1=全部已设置,2=部分已设置(选区列混合状态)。
  • 参数一│[文本 区域]: 省略则用当前框选。

清除筛选按钮

  • 签名:无 清除筛选按钮()
  • 说明:移除所有列的表头 ▼ 按钮(不清除筛选条件)。

列可筛选

  • 签名:逻辑 列可筛选(整数 列)
  • 说明:返回指定列是否已启用表头 ▼ 按钮。
  • 参数一│整数 列: 0 起列索引。

筛选

  • 签名:无 筛选(整数 列, [文本 值=""])
  • 说明:快捷列筛选(推荐)。仅写列 → 非空;写列+值 → 包含该值。修改后自动刷新表格。
  • 参数一│整数 列: 0 起列索引。
  • 参数二│[文本 值=”“]: 省略则筛选「非空」。

置列筛选

  • 签名:无 置列筛选(整数 列, [文本 运算符或值], [文本 值=""])
  • 说明:完整列筛选。仅列→非空;列+文本→若文本为运算符(包含/等于/为空/非空)则用之,否则视为「包含」的比较值;三参数为 运算符+值。修改后自动刷新。
  • 参数一│整数 列: 0 起列索引。
  • 参数二│[文本 运算符或值]: 省略→非空;写值→默认包含;写运算符→见说明。
  • 参数三│[文本 值=”“]: 与运算符配合使用。

重置

  • 签名:无 重置()
  • 说明:清除全部筛选与排序并刷新(等同同时 清除筛选() + 清除排序())。

排序

  • 签名:无 排序(整数 列)
  • 说明:按列排序视图(稳定排序,不移动逻辑行数据)。同列再次调用切换升/降序。
  • 参数一│整数 列: 0 起列索引。

置排序

  • 签名:无 置排序(整数 列, [逻辑 升序=真])
  • 说明:按指定列与方向排序视图;不改动稀疏单元格存储的逻辑行号。
  • 参数一│整数 列: 0 起列索引。
  • 参数二│[逻辑 升序=真]: 真=升序,假=降序。

追加排序

  • 签名:无 追加排序(整数 列, [逻辑 升序=真])
  • 说明:追加次级排序键(多列排序);已有同列则更新方向。面板中 Ctrl+点击升序/降序等效。
  • 参数一│整数 列: 0 起列索引。
  • 参数二│[逻辑 升序=真]: 真=升序,假=降序。

清除排序

  • 签名:无 清除排序()
  • 说明:清除排序状态;若仍有筛选则保留筛选视图,否则恢复默认行序。

取排序列

  • 签名:整数 取排序列()
  • 说明:返回当前排序列索引;未排序返回 -1。

是否升序

  • 签名:逻辑 是否升序()
  • 说明:当前排序是否为升序;未排序时返回真。

有排序

  • 签名:逻辑 有排序()
  • 说明:是否已设置列排序。

取排序级数

  • 签名:整数 取排序级数()
  • 说明:返回当前排序键数量(多列排序时 >1)。

取列排序方向

  • 签名:整数 取列排序方向(整数 列)
  • 说明:返回指定列排序方向:1=升序,0=降序,-1=未参与排序。
  • 参数一│整数 列: 0 起列索引。

列已排序

  • 签名:逻辑 列已排序(整数 列)
  • 说明:指定列是否参与当前排序(多列排序时可为次级键)。
  • 参数一│整数 列: 0 起列索引。

解绑

  • 签名:无 解绑()
  • 说明:解除与数据表格的绑定。

清除列筛选

  • 签名:无 清除列筛选([整数 列=-1])
  • 说明:清除指定列筛选;省略列参数则清除全部。
  • 参数一│[整数 列=-1]: 0 起列索引;省略=清除全部。

清除筛选

  • 签名:无 清除筛选()
  • 说明:清除所有列的筛选条件并刷新。

取可见行数

  • 签名:整数 取可见行数()
  • 说明:返回当前筛选条件下可见的逻辑行数。

取总行数

  • 签名:整数 取总行数()
  • 说明:返回绑定表格的逻辑总行数(不受筛选影响)。

取隐藏行数

  • 签名:整数 取隐藏行数()
  • 说明:返回被筛选隐藏的逻辑行数(取总行数 - 取可见行数)。

是否已绑定

  • 签名:逻辑 是否已绑定()
  • 说明:返回是否已成功绑定到数据表格。

是否有筛选

  • 签名:逻辑 是否有筛选()
  • 说明:返回是否设置了至少一条列筛选规则。

行是否可见

  • 签名:逻辑 行是否可见(整数 行)
  • 说明:判断指定逻辑行在当前筛选条件下是否可见。
  • 参数一│整数 行: 0 起逻辑行索引。

列已筛选

  • 签名:逻辑 列已筛选(整数 列)
  • 说明:返回指定列是否已设置筛选条件。
  • 参数一│整数 列: 0 起列索引。

取逻辑行

  • 签名:整数 取逻辑行(整数 视图行)
  • 说明:将筛选后的视图行号转换为逻辑行号(置单元格 等 API 使用逻辑行)。
  • 参数一│整数 视图行: 0 起,表格上看到的行号。

取视图行

  • 签名:整数 取视图行(整数 逻辑行)
  • 说明:将逻辑行号转换为当前筛选下的视图行号;隐藏行返回 -1。
  • 参数一│整数 逻辑行: 0 起逻辑行索引。

取绑定名

  • 签名:文本 取绑定名()
  • 说明:返回当前绑定的数据表格组件名;未绑定返回空文本。

取筛选列数

  • 签名:整数 取筛选列数()
  • 说明:返回当前设置了筛选条件的列数。

刷新

  • 签名:无 刷新()
  • 说明:手动刷新表格(一般无需调用;筛选/清除后已自动刷新)。

易错对照

错误 正确
未绑定就筛选 先 filt.绑定(表格)
类型写成「筛选」 必须「筛选类」/「筛选UI类」
表头无 ▼ 置表头筛选(真) + 设置筛选/绑定

相关

数据表格 · 对象类