You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

XML响应中金额符号未导出(仅导出绝对值)的技术求助

Tally XML导出带符号金额的配置修正

原XML请求导出的金额均为绝对值,无正负符号,问题出在金额字段的取值和配置上。以下是修正方案:

问题原因

当前配置中使用$AMOUNT获取金额,该字段返回的是凭证金额的绝对值,不包含借贷方向对应的符号;同时集合中也未声明获取带符号的金额字段。

修正步骤

  1. 修改金额字段的取值:将CA_AMOUNT字段的<SET>值从$AMOUNT替换为$LedgerAmount,该字段会根据 ledger 在凭证中的借贷方向返回带符号的金额。
  2. 更新集合的原生方法:在CA_VOUCHERCOLLECTION的<NATIVEMETHOD>列表中添加LedgerAmount,确保Tally能正确提取该字段数据。

修改后的完整XML

<ENVELOPE>
    <HEADER>
        <VERSION>1</VERSION>
        <TALLYREQUEST>EXPORT</TALLYREQUEST>
        <TYPE>DATA</TYPE>
        <ID>CA_VOUCHER</ID>
    </HEADER>
    <BODY>
        <DESC>
            <STATICVARIABLES>
                <SVEXPORTFORMAT>$$SysName:xml</SVEXPORTFORMAT>
                <SVCURRENTCOMPANY>COMPANY NAME</SVCURRENTCOMPANY>
                <SVFROMDATE TYPE="Date">01-01-2023</SVFROMDATE>
                <SVTODATE TYPE="Date">31-12-2023</SVTODATE>
            </STATICVARIABLES>
            <TDL>
                <TDLMESSAGE>
                    <REPORT ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <FORM>CA_VOUCHER</FORM>
                    </REPORT>
                    <FORM ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <PART>CA_VOUCHER</PART>
                        <XMLTAG>Vouchers.LIST</XMLTAG>
                    </FORM>
                    <PART ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <LINE>CA_VOUCHER</LINE>
                        <REPEAT>CA_VOUCHER:CA_VOUCHERCOLLECTION</REPEAT>
                        <SCROLLED>Vertical</SCROLLED>
                    </PART>
                    <LINE ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHER">
                        <FIELDS>CA_DATE,CA_VOUCHERTYPENAME,CA_VOUCHERNUMBER,CA_AMOUNT</FIELDS>
                        <XMLTAG>VOUCHER</XMLTAG>
                    </LINE>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_DATE">
                        <SET>$Date</SET>
                        <XMLTAG>DATE</XMLTAG>
                    </FIELD>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHERTYPENAME">
                        <SET>$VOUCHERTYPENAME</SET>
                        <XMLTAG>VOUCHERTYPENAME</XMLTAG>
                    </FIELD>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHERNUMBER">
                        <SET>$VoucherNumber</SET>
                        <XMLTAG>VOUCHERNUMBER</XMLTAG>
                    </FIELD>
                    <FIELD ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_AMOUNT">
                        <SET>$LedgerAmount</SET>
                        <XMLTAG>AMOUNT</XMLTAG>
                    </FIELD>
                    <COLLECTION ISMODIFY="NO" ISFIXED="NO" ISINITIALIZE="NO" ISOPTION="NO" ISINTERNAL="NO" NAME="CA_VOUCHERCOLLECTION">
                        <TYPE> Vouchers : Ledger</TYPE>
                        <Childof>LEDGER NAME</Childof>
                        <BELONGSTO>Yes</BELONGSTO>
                        <NATIVEMETHOD>DATE</NATIVEMETHOD>
                        <NATIVEMETHOD>VOUCHERTYPENAME</NATIVEMETHOD>
                        <NATIVEMETHOD>VOUCHERNUMBER</NATIVEMETHOD>
                        <NATIVEMETHOD>AMOUNT</NATIVEMETHOD>
                        <NATIVEMETHOD>LedgerAmount</NATIVEMETHOD>
                    </COLLECTION>
                </TDLMESSAGE>
            </TDL>
        </DESC>
    </BODY>
</ENVELOPE>

补充说明

  • $LedgerAmount的符号规则:通常借方发生额为正数,贷方发生额为负数(或反之,取决于Tally的账套配置),但会始终保留符号以区分借贷方向。
  • 如果需要自定义符号规则(比如销售凭证统一为正,采购为负),可以结合$VoucherTypeName做条件判断,例如:
    <SET>$$If: $VoucherTypeName = "Sales" Then $AMOUNT Else -$AMOUNT</SET>
    

内容的提问来源于stack exchange,提问作者Ammar Haider

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.14 00:05:04