首页 > 解决方案 > 加入账户到子账户

问题描述

我正在尝试创建一个 GI 来检索具有每个关联子帐户值的 GL 帐户列表。我查看了数据库,发现 GroupMask 列将 Account 和 Sub 表与一些关系联系在一起,但我不知道如何将它们加入 GI。我可以使用另一个分辨率表来链接这两个实体吗?

标签: acumatica

解决方案


我在标准 Acumatica 中找到的唯一内容是屏幕 GL403000(子帐户帐户)。此屏幕是对历史总帐数据的查询。虽然我可能错了,但我相信帐户和子帐户被定义为单独的实体,然后在一起使用时成为合法的组合。例如,子帐户可能映射到部门,而库存帐户可能映射到项目。发给部门的材料将导致账户和子账户的可报告组合。这意味着您必须查找帐户/子帐户的历史使用情况才能获取列表。这就是 GL403000 似乎正在做的事情。

我不能肯定地告诉你这是正确的,但看看你是否能找到你需要的东西:

GL.Account -> GL.GLHistory -> GL.Sub

通过 AccountID 将 Account 加入 GLHistory,通过 SubID 将 GLHistory 加入 Sub。您将希望将结果聚合到唯一的组合或按时间段过滤。

GL403000 背后的实际代码是:

PXSelectBase<GLHistoryByPeriod> cmd = new PXSelectJoinGroupBy<GLHistoryByPeriod,
                InnerJoin<Account,
                        On<GLHistoryByPeriod.accountID, Equal<Account.accountID>, And<Match<Account, Current<AccessInfo.userName>>>>,
                InnerJoin<Sub,
                        On<GLHistoryByPeriod.subID, Equal<Sub.subID>, And<Match<Sub, Current<AccessInfo.userName>>>>,
                LeftJoin<GLHistory, On<GLHistoryByPeriod.accountID, Equal<GLHistory.accountID>,
                        And<GLHistoryByPeriod.ledgerID, Equal<GLHistory.ledgerID>,
                        And<GLHistoryByPeriod.branchID, Equal<GLHistory.branchID>,
                        And<GLHistoryByPeriod.subID, Equal<GLHistory.subID>,
                        And<GLHistoryByPeriod.finPeriodID, Equal<GLHistory.finPeriodID>>>>>>,
                LeftJoin<AH, On<GLHistoryByPeriod.ledgerID, Equal<AH.ledgerID>,
                        And<GLHistoryByPeriod.branchID, Equal<AH.branchID>,
                        And<GLHistoryByPeriod.accountID, Equal<AH.accountID>,
                        And<GLHistoryByPeriod.subID, Equal<AH.subID>,
                        And<GLHistoryByPeriod.lastActivityPeriod, Equal<AH.finPeriodID>>>>>>>>>>,
                Where<GLHistoryByPeriod.ledgerID, Equal<Current<GLHistoryEnqFilter.ledgerID>>,
                        And<GLHistoryByPeriod.accountID, Equal<Current<GLHistoryEnqFilter.accountID>>,
                        And<GLHistoryByPeriod.finPeriodID, Equal<Current<GLHistoryEnqFilter.finPeriodID>>,
                        And<
                            Where2<
                                    Where<Account.accountID,NotEqual<Current<GLSetup.ytdNetIncAccountID>>,And<Where<Account.type, Equal<AccountType.asset>, 
                                        Or<Account.type, Equal<AccountType.liability>>>>>,
                            Or<Where<GLHistoryByPeriod.lastActivityPeriod, GreaterEqual<Required<GLHistoryByPeriod.lastActivityPeriod>>,
                                And<Where<Account.type, Equal<AccountType.expense>, 
                                Or<Account.type, Equal<AccountType.income>,
                                Or<Account.accountID,Equal<Current<GLSetup.ytdNetIncAccountID>>>>>>>>>>>>>,
                Aggregate<
                        Sum<AH.finYtdBalance,
                        Sum<AH.tranYtdBalance,
                        Sum<AH.curyFinYtdBalance,
                        Sum<AH.curyTranYtdBalance,
                        Sum<GLHistory.finPtdDebit,
                        Sum<GLHistory.tranPtdDebit,
                        Sum<GLHistory.finPtdCredit,
                        Sum<GLHistory.tranPtdCredit,
                        Sum<GLHistory.finBegBalance,
                        Sum<GLHistory.tranBegBalance,
                        Sum<GLHistory.finYtdBalance,
                        Sum<GLHistory.tranYtdBalance,
                        Sum<GLHistory.curyFinBegBalance,
                        Sum<GLHistory.curyTranBegBalance,
                        Sum<GLHistory.curyFinYtdBalance,
                        Sum<GLHistory.curyTranYtdBalance,
                        Sum<GLHistory.curyFinPtdCredit,
                        Sum<GLHistory.curyTranPtdCredit,
                        Sum<GLHistory.curyFinPtdDebit,
                        Sum<GLHistory.curyTranPtdDebit,
                        GroupBy<GLHistoryByPeriod.ledgerID,
                        GroupBy<GLHistoryByPeriod.accountID,
                        GroupBy<GLHistoryByPeriod.subID>>>>>>>>>>>>>>>>>>>>>>>>>(this);

如您所见,它将 Account 加入到 GLHistoryByPeriod,然后将 Sub 加入到 GLHistoryByPeriod。AH 继承自 GLHistory。


推荐阅读