受注伝票でグリッドフッターを文書化します。製品の可用性を表示します。オポチュニティ製品グリッドで同じことを行うにはどのようにオポチュニティ製品のグリッドフッターに製品の可用性を表示する方法は?
? さらに、簡単なグリッド列の代わりにフッター に表示するように強制しますか?そのような属性はありますか?
返信いただきありがとうございます。
受注伝票でグリッドフッターを文書化します。製品の可用性を表示します。オポチュニティ製品グリッドで同じことを行うにはどのようにオポチュニティ製品のグリッドフッターに製品の可用性を表示する方法は?
? さらに、簡単なグリッド列の代わりにフッター に表示するように強制しますか?そのような属性はありますか?
返信いただきありがとうございます。
我々は受注に比べると、販売注文ラインがAvailabilty_FieldSelecting
中にLSSOLineからその値を取得します。ページ上のワイヤーアップはStatusField="Availability"
でタブに表示されます。バインドされていない拡張フィールドを追加し、フィールド内で値の塗りつぶしを選択することで同様のことを行うことができます。別の方法としてはを継承するLSCROpportunityProducts
クラスを実装することがあります。これはLSSoLine
(より良い解決策です)に似ています。これを単純にして、フィールドにテキストを表示することに重点を置くために、私は拡張フィールドと機会のために拡張グラフで選択する単純なフィールドを使用します。
(1) DAC拡張において、(MyAvailabilityは、例えばフィールドである)結合していないフィールドを作成する:
[PXTable(typeof(CROpportunityProducts.cROpportunityID), typeof(CROpportunityProducts.cROpportunityProductID), IsOptional = true)]
[Serializable]
public class CROpportunityProductsMyExtension : PXCacheExtension<CROpportunityProducts>
{
#region MyAvailability
public abstract class myAvailability : PX.Data.IBqlField
{
}
protected string _MyAvailability;
[PXString(IsUnicode = true)]
[PXUIField(DisplayName = "Product Availability", Enabled = false)]
public virtual string MyAvailability
{
get
{
return this._MyAvailability;
}
set
{
this._MyAvailability = value;
}
}
#endregion
}
(2)機会製品タブ、ワイヤアップ新しいフィールドとしてグリッドステータス値は、プロパティStatusField
を設定します。この値を追加するとを追加したときに次のようになります変更されたページのニーズ(プロジェクトの画面のカスタマイズが必要です - >アクション編集ASPXとあなたのSTATUSFIELDと価値に貼り付けるProductsGridを探します):
<px:PXGrid ID="ProductsGrid" SkinID="Details" runat="server" Width="100%"
Height="500px" DataSourceID="ds" ActionsPosition="Top" BorderWidth="0px"
SyncPosition="true" StatusField="MyAvailability">
(3)今グラフ拡張フィールドを移入:
編集:Current<>
の使用は、常にUIに正しい現在強調表示された行が含まれていません。 PXFieldSelectingEventArgs.Row
に基づいてRequired<>
に切り替えられ、結果は[商品]タブの複数の行に対して正しく表示されます。
public class CROpportunityMaintMyExtension : PXGraphExtension<OpportunityMaint>
{
public virtual void CROpportunityProducts_MyAvailability_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
var row = (CROpportunityProducts) e.Row;
if (row == null)
{
e.ReturnValue = string.Empty;
return;
}
INLocationStatus locationStatus = PXSelectGroupBy<INLocationStatus,
Where<INLocationStatus.inventoryID, Equal<Required<CROpportunityProducts.inventoryID>>,
And2<Where<INLocationStatus.subItemID, Equal<Required<CROpportunityProducts.subItemID>>,
Or<Not<FeatureInstalled<PX.Objects.CS.FeaturesSet.subItem>>>>,
And<Where<INLocationStatus.siteID, Equal<Required<CROpportunityProducts.siteID>>,
Or<Required<CROpportunityProducts.siteID>, IsNull>>>>>,
Aggregate<Sum<INLocationStatus.qtyOnHand, Sum<INLocationStatus.qtyAvail>>>
>.Select(sender.Graph, row.InventoryID, row.SubItemID, row.SiteID, row.SiteID);
// Need to convert to transaction UOM... (this is always base units)
decimal? qtyOnHand = locationStatus?.QtyOnHand;
decimal? qtyAvail = locationStatus?.QtyAvail;
e.ReturnValue = $"Qty On hand = {qtyOnHand.GetValueOrDefault()} ; Qty Avail = {qtyAvail.GetValueOrDefault()}";
}
}
結果:
機会製品グリッド?このグリッドはどこですか?どのエントリ? –
組織>顧客管理>作業領域>入力>機会(既存のCR304000を開くには新規/新規開始)>製品タブ – Brendan