acumatica - 加入账户到子账户
问题描述
我正在尝试创建一个 GI 来检索具有每个关联子帐户值的 GL 帐户列表。我查看了数据库,发现 GroupMask 列将 Account 和 Sub 表与一些关系联系在一起,但我不知道如何将它们加入 GI。我可以使用另一个分辨率表来链接这两个实体吗?
解决方案
我在标准 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。
推荐阅读
- php - 如何正确获取特定大会的所有注册信息?
- python-3.x - 使用熊猫数据框或其他任何python 3将(列表)列表添加到csv
- pandas - 用 pandas 读取 csv 并指定列名
- java - 如果我每次都将一个新对象传递给一个方法,这是一种不好的做法,因为我分配了这么多可能不会使用的新对象?
- sql - 如何以字符串格式编写 SQL 命令
- github - 如何比较 GitHub 中的两个目录?
- javascript - 悬停时 JS 事件的 Refato 提示
- emacs - 循环软包裹的视觉线条
- ionic-framework - 重命名离子项目中的选项卡标题
- asp.net-mvc - 如何使用 mvc 在视图中将多个模型数据显示到单个 Html 表中