• 如何在K3 WISE BOS集成开发工具中自定义字段过滤条件


    1.结论

    对于输入过滤条件后BOS报“列名不正确”的过滤条件,要在列名前增加x2标识

    无效的过滤

    FNumber in (002,003,004,005,011,020)

    正确的过滤

    x2.FNumber in (002,003,004,005,011,020)

    2.完全可以不看的探索过程

    有客户需要我们在WISE中增加新单据,其中有个基础资料字段需要根据客户的的需求进行过滤。

    我想这不是很简单的嘛,甚至WISE BOS的文档中直接都有操作方式。

    4.3.2 字段属性

    每种字段类型都有一些属性需要设置,通过设置属性满足来满足实际的业务需要。

    属性

    说明

    适用范围

    过滤

    设置基础资料类型的过滤条件,用途是在F7或者F8的时候通过您所设置的条件去过滤掉一些不符合条件的数据,而这个属性框里面需要维护的是用代码写的条件,以基础资料是部门代码为例,如果我需要过滤出部门代码属于某一类型部门的数据,那么我可以在过滤属性栏写下:FDProperty = 1070,那么在录入单据时,该字段F7出来的数据一定都是属于1070类型的部门代码。您也可以在后台数据库中执行以下SQL将属性模板表中记录的过滤字段FFilter的数据调出来参考着看看:SELECT FFilter,* from ICClassTableInfo

    [基础资料]

    以上引用内容来自K3V14.0BOS用户手册

    用户需要的是对一个类型为部门的基础资料字段过滤,让用户只能选择总部的部门。部门本身并没有标识表明是否为单据体,和客户讨论之后得出了总部部门的列表。

    实际在数据库里部门的结构如下

    看上去,只要在对应字段的过滤属性填下

    FNumber in (002,003,004,005,011,020)
    

    就行。然而,报错了!

    既然列名不明确,那我就明确一下列名试试,部门对应的表为t_Department,那我就改成

    t_Department.FNumber in (002,003,004,005,011,020)

    依然报错,这次提示信息为“无法绑定由多个部分组成的标识符”,我将t_Department改为a/b/x均无法通过

    好吧,看下文档上的蛛丝马迹。根据上面引用的文档,我去ICClassTableInfo表查了过滤属性FFilter,发现其中有一条Filter为

    x2.FItemID<>GetFldValue(FDepartmentID,0)

    怀着尝试一下的心态,我将原来的过滤条件改为

    x2.FNumber in (002,003,004,005,011,020)

    BOS没有报错,保存,运行,OK!

     

    个人认为是由于wise的数据结构是吧所有字段的过滤条件都至于同一张表单数据表中,导致过滤时选择列明不明确,所以需要在之前增加标识,但是尝试了一下x1,x3,都报“无法绑定由多个部分组成的标识符”,个人猜测是金蝶本身把当前基础资料的标识符设置为了x2,具体细节还得慢慢探索才行。

  • 相关阅读:
    【从零开始学Java笔记】学生管理系统
    【从零开始学Java笔记】关键字super和this
    【从零开始学Java笔记】关键字Static
    【从零开始学Java笔记】关键字final
    【从零开始学Java笔记】关键字abstract
    循环结构
    switch选择结构
    if条件语句
    位运算
    Eclipse 报错The method xxx of type must override a superclass method、Description Resource Path Location Type Java compiler level does not match the version of the installed Java project facet
  • 原文地址:https://www.cnblogs.com/mirageJ/p/7413046.html
Copyright © 2020-2023  润新知