如何从Tally导出员工及员工组为XML格式?过滤失效问题求助
Tally XML导出员工过滤失效的解决方法
你的XML请求中过滤条件失效,核心原因是TDL公式里布尔类型条件的写法错误——原代码给NO添加了双引号,导致条件判断无法匹配到有效数据。
修正后的XML请求代码
<ENVELOPE> <HEADER> <VERSION>1</VERSION> <TALLYREQUEST>Export</TALLYREQUEST> <TYPE>Collection</TYPE> <ID>CostCenters</ID> </HEADER> <BODY> <DESC> <STATICVARIABLES> <SVEXPORTFORMAT>SysName:XML</SVEXPORTFORMAT> </STATICVARIABLES> <TDL> <TDLMESSAGE> <COLLECTION ISMODIFY="No" ISFIXED="No" ISINITIALIZE="No" ISOPTION="No" ISINTERNAL="No" NAME="CostCenters"> <TYPE>CostCenter</TYPE> <NATIVEMETHOD>*</NATIVEMETHOD> <FILTERS>filter</FILTERS> </COLLECTION> <SYSTEM TYPE="Formulae" NAME="filter">ISEMPLOYEEGROUP = NO</SYSTEM> </TDLMESSAGE> </TDL> </DESC> </BODY> </ENVELOPE>
等效简化写法
你也可以用取反逻辑简化条件,效果完全一致:
<SYSTEM TYPE="Formulae" NAME="filter">NOT ISEMPLOYEEGROUP</SYSTEM>
原因说明
Tally的TDL语法中,布尔类型属性(如ISEMPLOYEEGROUP)与YES/NO比较时,不需要添加引号。原代码里的ISEMPLOYEEGROUP="NO"会被当作字符串匹配,而非布尔值判断,因此无法筛选出目标数据。
内容的提问来源于stack exchange,提问作者Sevymol Sebastian
相关产品推荐
相关产品推荐

