我正在试图弄清楚如何通过Axapta 2012表格中的SQL获取主要帐户的当前余额。
有谁知道怎么做?
答案 0 :(得分:1)
表getBalance
的方法MainAccount
似乎是一个很好的起点。不幸的是,此方法使用类LedgerBalanceMainAccountAmounts
来计算余额。我认为在SQL中重新创建该类的逻辑是非常困难的。
根据您的要求,一种替代方法可能是在x ++中编写一个函数,将getBalance
方法的结果写入新表,然后您可以使用SQL查询该新表。
但我建议您研究开箱即用的选项来分析主要客户数据,例如管理记者或商务智能。
答案 1 :(得分:0)
感谢。但我已经找到了解决方案。
在解决方案的另一个论坛上发表我的帖子。
https://community.dynamics.com/ax/f/33/p/268863/762367#762367
基本上我想要的是具有通过 - >定义的结构的主要帐户ID。 "传统财务报告" - > " Rowdefinition" - > "结构设计师"。
有了这些帐户ID,我就进入了 [DIMENSIONATTRIBUTEVALUECOMBINATION]然后进入 [GENERALJOURNALACCOUNTENTRY]并进入[GENERALJOURNALENTRY]获得 "记录"在指定的时间范围内。
然后我将这些交易加起来以获得账户余额。
WITH mainaccs(recid, PARENTRECID,[Name]) AS (
SELECT RecId,
PARENTRECID,
[Name]
FROM [LEDGERROWDEFLINE]
where PARENTRECID = 0
UNION ALL
SELECT cur.RecId,
cur.PARENTRECID,
cur.[Name]
FROM [LEDGERROWDEFLINE] cur, mainaccs
WHERE cur.PARENTRECID = mainaccs.recid
)
SELECT
ma.MAINACCOUNTID,
Sum(gjae.TRANSACTIONCURRENCYAMOUNT) amount
FROM mainaccs maccs
inner join [MAINACCOUNT] ma on ma.MainaccountId = maccs.Name
inner join [DIMENSIONATTRIBUTEVALUECOMBINATION] davc on ma.RECID = davc.MAINACCOUNT
inner join [GENERALJOURNALACCOUNTENTRY] gjae on gjae.LEDGERACCOUNT = davc.DISPLAYVALUE
inner join [GENERALJOURNALENTRY] gje on gje.RecId = gjae.GENERALJOURNALENTRY
where YEAR(gje.ACCOUNTINGDATE) = 2017
group by ma.MAINACCOUNTID
order by ma.MAINACCOUNTID