星空套打方案实体动态字段应用原创
金蝶云社区-大脸哥
大脸哥
3人赞赏了该文章 270次浏览 未经作者许可,禁止转载编辑于2022年11月09日 11:43:13

举例背景:单据打印时物料编码与客户物料编码不同,当然可以通过启用客户物料对应表来实现打印客户物料编码,但是当一个单据有多个物料且有的启用客户物料,有的没有启用客户物料时,就会出现打印空白的现象。如果把其他的物料一并放到客户物料对应表中维护一来比较麻烦,二来用户嫌麻烦有抵触心理。


使用字体动态字段需要星空v7.7以上版本。

  1. 打开套打方案切换到数据源选项卡,右击明细信息,增加实体动态字段。

    image.png

  2. 新增行,动态字段标识自定义,等下套打方案里需要引用,表达式填写一下。image.png

  3. 最后在套打方案单元格属性里选择动态字段,字段标示为上一步自定义的值。

    image.png

  • 示例表达式:

  1. 如果后两位全为数字则打印"TEST-"+物料名称后两位,如果后3位全是数字则打印"TEST-"+物料名称后3位

  2. "TEST-"+FMaterialId.FName[-3:] if FMaterialId.FName[-3:].isalnum() else "TEST-"+FMaterialId.FName[-2:]

  3. 两个表达式等效,效果为判断物料名称如果是以“AB”开头,则打印结果为“TEST” + 物料名称的第3-6位字符,如果是以X开头的话,则打印“TT”+ 物料名称的最后三位,否则直接打印物料名称。

    "TEST" + FMaterialId.FName[3:6] if FMaterialId.FName[:2] == "AB" else ( "TT" + FMaterialId.FName[-3:] if FMaterialId.FName[:1] == "X" else FMaterialId.FName)

    "TEST" + FMaterialId.FName[3:6] if FMaterialId.FName.startswith("AB",0,2) else ( "TT" + FMaterialId.FName[-3:] if FMaterialId.FName.startswith("X",0,1) else FMaterialId.FName)





赞 3