电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

BOS常用表达式整理

来源:金蝶云社区作者:金蝶2024-09-232

BOS常用表达式整理

# 【文本类型】 假设有文本字段F_Text,值为“abcd-xyz” 1. 文本不为空: F_Text <>null and F_Text <>"" and F_Text <>" " 2. 文本是否包含某值: F_Text.find("某值")>=0 find函数可以获取到“某值”在文本中的位置,返回的是第几位,从0开始,-1表示不存在,示例如下: - F_Text是否包含*,F_Text.find("*"),结果为-1 - F_Text是否包含-,F_Text.find("-"),结果为 4 1. 切片函数实现对文本的截取: F_Text[n:m],从n+1到第m位 - 截取第二到四位: F_Text[1:4],结果为"bcd" - 截取字段前四位: F_Text[:4],结果为"abcd" - 截取字段后三位: F_Text[-3:],结果为"xyz" - 取“c”之后的数据:F_Text[F_Text.find("c")+1:] 9. 文本拆分: F_Text.split("-"),可将文本拆分成多个部分 - F_Text.split("-"),结果为["abcd","xyz"] - 取分割后的第一部分:F_Text.split("-")[0],结果为"abcd" - 取分割后的第二部分:F_Text.split("-")[1],结果为"xyz" - 取分割后的最后一部分:F_Text.split("-")[-1],结果为"xyz" 11. 去空格: F_Text.strip()。 - 去掉字符a: F_Text.strip("a"),结果为"bcd-xyz" # 【多语言文本】 假设多语言文本字段的标识为F_TPQJ_MulLangText,绑定实体属性F_TPQJ_MulLangTextSTSX 1. 获取当前语言的值,直接取标识F_TPQJ_MulLangText 2. 获取指定语言的值,以英文为例, filter(lambda x:x.Key=1033,FBillHead.ActiveObject['F_TPQJ_MulLangTextSTSX'])[0].Value 其他语言,可以将语言代码替换为对应语言的代码,比如中文为2052,其他小语种,可以自行百度查询。 表达式拆解: - FBillHead.ActiveObject['F_TPQJ_MulLangTextSTSX'] ![image.webp](/download/01008ce9acf894044171a91fc59925166c8d.webp) - filter(lambda x: x.Key=1033, FBillHead.ActiveObject['F_TPQJ_MulLangTextSTSX']) ![image.webp](/download/0100ca457fb7ee80488a8932c340b1a1d94f.webp) - filter(lambda x: x.Key=1033, FBillHead.ActiveObject['F_TPQJ_MulLangTextSTSX'])[0] ![image.webp](/download/010000729b2623814b348272b188a3797d36.webp) # 【日期】 假设日期字段标识为FDate,另有创建日期FCreateDate 1. 日期不为空:FDate<>null 2. 日期字段格式化:FDate.ToString("yyyy-MM-dd HH:mm:ss"),注意大小写(MM为月份,mm为分钟;HH为24小时制,hh为12小时制) 日期字段存储的是一个日期类型的字符串,并不是我们常见看到的,因此需要格式化。 本身的日期: ![image.webp](/download/010093475cec56a84bfc9594c69c56e8ca10.webp)![image.webp](/download/01004e60e3d609fc4cf59b00f6309cd400e0.webp) 格式化之后: ![image.webp](/download/010070b29df400524369acafefac7142266d.webp)![image.webp](/download/0100087d08c14fe1491699da3e1a85a20658.webp) 2. 取日期的年月: - 方案一:FDate.Year、FDate.Month - 方案二:FDate.ToString("yyyy")、FDate.ToString("MM") 1. 日期比较: - 两个日期直接比较:FDate>FCreateDate - 日期字段和固定日期比较:FDate.ToString("yyyy-MM-dd")>"2023-05-06" 1. 当前日期: - 短日期:@currentshortdate - 长日期:@currentlongdate 1. 日期计算: - 加n小时FDate.AddHours(n) - 加n天FDate.AddDays(n) - 加n个月FDate.AddMonths(n) - 加n年FDate.AddYears(n) - n可以是负数,对应减n天、减n月、减n年等。 1. 日期间隔计算: - 间隔小时:(FDate -FCreateDate).TotalHours - 间隔天:(FDate -FCreateDate).Days - 间隔月:(FDate.Year - FCreateDate.Year) * 12 + (FDate.Month - FCreateDate.Month) - 日期和固定时间做加减:(datetime("2023-11-13")-FDate).Days即可,需要把固定日期转换为日期格式(如datetime("2023-11-13")) 1. 获取日期是星期几:str(int(FDate.DayOfWeek)) 2. 获取日期当月最后一天:FDate.AddDays(1-float((FDate.ToString("dd")))).AddMonths(+1).AddDays(-1).ToString("yyyy-MM-dd")。参考:[https://vip.kingdee.com/article/23320?productLineId=1](https://vip.kingdee.com/article/23320?productLineId=1) # 【基础资料】 以物料为例,标识为FMaterialId、其中有属性“基本单位”(也是基础资料)标识为FBaseUnitId,有属性规格型号,标识为FSpecification,物料中有分组,标识为FMaterialGroup 取值参考: 1. 基础资料不为空:FMaterialId<>null 2. 基础资料的内码:FMaterialId.Id 3. 基础资料的编码:FMaterialId.FNumber 4. 基础资料的名称:FMaterialId.FName 5. 基础资料的属性:FMaterialId.FSpecification 6. 基础资料的基础资料的编码:FMaterialId.FBaseUnitId.Number 7. 基础资料的基础资料的名称:FMaterialId.FBaseUnitId.Name.ToString() 8. 基础资料的分组内码:FMaterialId.FMaterialGroup.Id 9. 基础资料的分组编码:FMaterialId.FMaterialGroup.Number 10. 基础资料的分组名称:FMaterialId.FMaterialGroup.Name.ToString() 给基础资料赋值可参考: 1. 使用其他基础资料赋值:FMaterialId=F_TPQJ_Base(F_TPQJ_Base是和FMaterialId同样基础资料类型的基础资料字段) 1. 使用内码赋值:FMaterialId=12345,(12345为基础资料的内码) 1. 使用编码赋值:GETPKVALUE(目标字段、匹配值),目标字段是被赋值的基础资料字段,匹配值为编码。 - 使用编码内容赋值:FMaterialId=GETPKVALUE('FMaterialId','1.01.001') - 使用其他字段作为编码赋值:FMaterialId=GETPKVALUE('FMaterialId',F_Text) # 【辅助资料】 假设辅助资料的标识为F_TPQJ_Assistant,物料中也有辅助资料FMaterialId.F_TPQJ_Assistant 1. 辅助资料不为空:F_TPQJ_Assistant<>null 2. 辅助资料的内码:F_TPQJ_Assistant.Id 3. 辅助资料的编码:F_TPQJ_Assistant.FNumber 4. 辅助资料的名称:F_TPQJ_Assistant.FDataValue 5. 基础资料中的辅助资料的内码:FMaterialId.F_TPQJ_Assistant.Id 6. 基础资料中的辅助资料的编码:FMaterialId.F_TPQJ_Assistant.Number 7. 基础资料中的辅助资料的名称:FMaterialId.F_TPQJ_Assistant.Name.ToString() 给辅助资料赋值可以参考给基础

BOS常用表达式整理

# 【文本类型】假设有文本字段F_Text,值为“abcd-xyz”1. 文本不为空: F_Text <>null and F_Text <>"" and F_Text <>" "2. ...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信