0
PX.Objects.AR.ARStatementPrintグラフの詳細デリゲートメソッドをオーバーライドしたい。ここデータビューのデリゲートメソッドをオーバーライド
は方法
protected virtual IEnumerable details()
{
ARSetup setup = ARSetup.Current;
PrintParameters header = Filter.Current;
List<DetailsResult> result = new List<DetailsResult>();
if (header == null)
yield break;
GL.Company company = PXSelect<GL.Company>.Select(this);
foreach (PXResult<ARStatement, Customer> it in PXSelectJoin<ARStatement,
InnerJoin<Customer, On<Customer.bAccountID, Equal<ARStatement.statementCustomerID>>>,
Where<ARStatement.statementDate, Equal<Required<ARStatement.statementDate>>,
And<ARStatement.statementCycleId, Equal<Required<ARStatement.statementCycleId>>>>,
OrderBy<Asc<ARStatement.statementCustomerID, Asc<ARStatement.curyID>>>>
.Select(this, header.StatementDate, header.StatementCycleId))
{
DetailsResult res = new DetailsResult();
ARStatement st = it;
Customer cust = it;
res.Copy(st, cust);
if (setup?.ConsolidatedStatement != true && st.BranchID != header.BranchID)
continue;
if (Filter.Current.Action == 0 &&
header.ShowAll != true &&
(st.DontPrint == true || st.Printed == true))
continue;
if ((Filter.Current.Action == 1 || Filter.Current.Action == 2) &&
header.ShowAll != true &&
(st.DontEmail == true || st.Emailed == true))
continue;
if (cust.PrintCuryStatements == true)
{
if (Filter.Current.CuryStatements != true)
continue;
DetailsResult last = result.Count > 0 ? result[result.Count - 1] : null;
if (last?.CustomerID == res.CustomerID && last?.CuryID == res.CuryID)
{
last.Append(res);
}
else
{
result.Add(res);
}
}
else
{
if (Filter.Current.CuryStatements == true)
continue;
res.ResetToBaseCury(company.BaseCuryID);
DetailsResult last = result.Count > 0 ? result[result.Count - 1] : null;
if (last?.CustomerID == res.CustomerID)
{
last.Append(res);
}
else
{
result.Add(res);
}
}
}
foreach (var item in result)
{
var located = Details.Cache.Locate(item);
if (located != null)
{
yield return located;
}
else
{
Details.Cache.SetStatus(item, PXEntryStatus.Held);
yield return item;
}
}
Details.Cache.IsDirty = false;
}
それは別のフィールドによって注文されたので、イムは特に変化にforeachのselect文を望むです。
foreach (PXResult<ARStatement, Customer> it in PXSelectJoin<ARStatement,
InnerJoin<Customer, On<Customer.bAccountID, Equal<ARStatement.statementCustomerID>>>,
Where<ARStatement.statementDate, Equal<Required<ARStatement.statementDate>>,
And<ARStatement.statementCycleId, Equal<Required<ARStatement.statementCycleId>>>>,
OrderBy<Asc<ARStatement.statementCustomerID, Asc<ARStatement.curyID>>>>
.Select(this, header.StatementDate, header.StatementCycleId))
{
アイブ
[PXOverride]
保護された仮想のIEnumerable詳細を試みた()
{
しかし運、それはこのメソッドをオーバーライドすることができますか?
これを試してみるとエラーが発生しますか?またはオーバーライドとして接続していないだけですか? – Brendan