我正在尝试创建一个GI,以检索带有每个关联子帐户值的总帐帐户列表。我查看了数据库,找到了GroupMask列,该列将Account表和Sub表联系在一起,并具有一点关系,但是我不知道如何将它们加入GI。我可以使用另一个分辨率表来链接两个实体吗?
答案 0 :(得分:0)
我在标准Acumatica中唯一找到的是屏幕GL403000(按子帐户逐个帐户)。此屏幕是对历史总帐数据的查询。尽管我可能是错的,但我相信帐户和子帐户被定义为单独的实体,然后一起使用时便成为合法的组合。例如,子帐户可能映射到部门,库存帐户可能映射到项目。发给部门的材料将导致帐户和子帐户的可报告组合。这意味着您必须查找帐户/子帐户的历史使用情况才能获得列表。 GL403000似乎正在这样做。
我不能肯定地说这是正确的,但是请查看是否可以从以下位置找到所需的内容:
GL.Account-> GL.GLHistory-> GL.Sub
通过AccountID将帐户加入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,然后再加入GLHistoryByPeriod。 AH继承自GLHistory。
答案 1 :(得分:0)
帐户和子帐户实体是单独的实体,彼此之间没有关系。 GroupMask
字段与他们的关系无关,与访问限制有关。请更正您的问题并解释您真正需要什么?请注意,帐户和子帐户仅在某些交易或历史实体的范围内关联,例如总帐事务(GLTran
),AR / AP文档(ARRegister
,APRegister
)以及许多其他人。
答案 2 :(得分:0)
如前所述,帐户和子帐户之间没有直接链接。如果您仍然希望它们之间具有某种联系,请考虑添加自定义列。在执行此操作之前,请先回答以下问题:
以此类推。然后,您可以构建自定义程序包,该程序包将为关系商店提供答案。