Pop Value is not updating in custom screen grid - acumatica

we have requirement to update the selected value in pop up screen in custom screen grid.
can anyone help me on this.
Thanks.

I have worked on the same functionality in other projects. The below code will help you. Please let me know if you get any issues.
Action Button Code
public PXAction<SOAmazonSetup> GetSchema;
[PXButton]
[PXUIField(DisplayName = SOMessages.getSchema, MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select, Enabled = true)]
protected virtual IEnumerable getSchema(PXAdapter adapter)
{
if (setupview.Current != null)
{
if (schemaView.AskExt() == WebDialogResult.OK && !string.IsNullOrEmpty(schemaView.Current.AmazonOrderID))
{
bool isgetSchema = true;
SOSchemaFileDetails objSchemaFileDetails = PXSelectJoin<SOSchemaFileDetails, InnerJoin<SOAmazonSetup, On<SOSchemaFileDetails.integrationID,
Equal<SOAmazonSetup.integrationID>>>, Where<SOAmazonSetup.integrationID, Equal<Current<SOAmazonSetup.integrationID>>>>.Select(this);
if (objSchemaFileDetails != null)
{
if (msgView.Ask(schemaView.Current, SOMessages.getSchema, SOMessages.warningMsg, MessageButtons.YesNo, MessageIcon.Warning) == WebDialogResult.No)
{
isgetSchema = false;
}
}
if (isgetSchema)
{
// get needed information in local variables
string sAmazonOrderID = schemaView.Current.AmazonOrderID;
string sIntegrationID = setupview.Current.IntegrationID;
PXLongOperation.StartOperation(this, delegate ()
{
//Create Instance
SOAmazonSetupMaint setupGraph = PXGraph.CreateInstance<SOAmazonSetupMaint>();
setupGraph.setupview.Current = setupGraph.setupview.Search<SOAmazonSetup.integrationID>(sIntegrationID);
SOHelper.GetSchemaFromAmazon(setupGraph, clientOrder, sAmazonOrderID);
DynamicSchema.ReloadSchema(setupGraph, sIntegrationID);
});
}
}
else
{
throw new Exception(SOMessages.AmwOrderCannotbeEmpty);
}
}
return adapter.Get();
}
SmartPanel code:
<px:PXSmartPanel ID="AMpnlGetSchema" runat="server" Caption="Get Schema"
CaptionVisible="true" DesignView="Hidden" LoadOnDemand="true" Key="schemaView" CreateOnDemand="false" AutoCallBack-Enabled="true"
AutoCallBack-Target="formGetSchema" AutoCallBack-Command="Refresh" CallBackMode-CommitChanges="True" CallBackMode-PostData="Page"
AcceptButtonID="btnOK" Width=" 250px">
<px:PXFormView ID="AMformGetSchema" runat="server" DataSourceID="ds" Style="z-index: 100" Width="100%" CaptionVisible="False"
DataMember="schemaView">
<ContentStyle BackColor="Transparent" BorderStyle="None" />
<Template>
<px:PXLayoutRule ID="AMPXLayoutRuleAmazonAPISettings" StartColumn="true" runat="server" ControlSize="M" />
<px:PXTextEdit CommitChanges="True" runat="server" ID="AMCstPXTextEditAmazonOrderID" DataField="AmazonOrderID"></px:PXTextEdit>
</Template>
</px:PXFormView>
<px:PXPanel ID="AMpnlOK" runat="server" SkinID="Buttons">
<px:PXButton ID="btnOK" runat="server" DialogResult="OK" Text="OK">
<AutoCallBack Target="formGetSchema" Command="Save" />
</px:PXButton>
</px:PXPanel>
</px:PXSmartPanel>

Related

How to make PXAction and PXUIFieldAttribute.SetEnabled Work

I do not know why my code is not working or something might be missing.
I am trying to do is use PXAction to disable as specific field, when I compile and run this it my browser would just load into infinity.
Thank you guys!
Here is my code
DAC:
#region RadnomTest
[PXDBString(20, IsUnicode = true)]
[PXUIField(DisplayName = "Random Test")]
public virtual string RadnomTest { get; set; }
public abstract class radnomTest : BqlString.Field<radnomTest> { }
#endregion
GRAPH
#region Toggle Readonly
public PXAction<ClientProfileNames> ReadonlyToggle;
[PXButton(CommitChanges = true)]
[PXUIField(DisplayName = "Toggle Read-only")]
protected virtual void readonlyToggle(Events.RowSelected<ClientProfileNames> e)
{
var row = e.Row;
PXUIFieldAttribute.SetEnabled<ClientProfileNames.radnomTest>(e.Cache, row, true);
Actions.PressSave();
}
#endregion
PAGE
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" PrimaryView="ClinetInfosMain" TypeName="OnlyForTesting.Graph.Profile.ClientProfileNamesMaint">
<CallbackCommands>
</CallbackCommands>
</px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
<px:PXFormView ID="form" runat="server" DataSourceID="ds" Style="z-index: 100" Width="100%" DataMember="ClinetInfosMain" TabIndex="2900">
<Template>
<px:PXLayoutRule runat="server" StartRow="True" StartColumn="True"/>
<px:PXTextEdit ID="edRadnomTest" runat="server" AlreadyLocalized="False" DataField="RadnomTest" IsClientControl="True">
</px:PXTextEdit>
</Template>
<AutoSize Container="Window" Enabled="True" MinHeight="200" />
</px:PXFormView>
</asp:Content>
Field state should be set from the RowSelected event, and not as the result of an action such a button click.
If you need to set the enabled status based on the value of another field, I would recommend checking the PXUIEnabled attribute which will let you handle this in a declarative fashion: https://asiablog.acumatica.com/2016/11/pxuienabled-and-pxuirequired-attributes.html

MultiSelect Dropdown in Acumtica

I have some problems with the fact that when I select a value in the dropbox, or rather steel a checkmark, then it is automatically reset.
[Serializable]
public class KNRWCSAttributeExt : PXCacheExtension<CSAttribute>
{
public static bool IsActive() => true;
#region UsrSchemaField
[PXDBString(512, InputMask = "", IsUnicode = true)]
[PXUIField(DisplayName = "Multi Schema Field")]
//[PXUIVisible(typeof(Where<PX.CS.CSAttribute.controlType, Equal<CSAttribute.AttrType.giSelector>>))]
[PXStringList(new string[] {null}, new string[] {""}, ExclusiveValues = false)]
public virtual string UsrSchemaField { get; set; }
public abstract class usrSchemaField : PX.Data.BQL.BqlString.Field<usrSchemaField>
{
}
#endregion
}
I assume that this is due to the fact that the event is triggered again and the array is filled over and over again. With the usual examples that are already described on stackoverflow it works, but my code does not work
Tell me please how I can get data into DropDown once so that I can then select and the value is not reset.
public class KNRWCSAttributeMaintExt : PXGraphExtension<CSAttributeMaint>
{
public static bool IsActive() => true;
protected virtual void _(Events.RowSelected<CSAttribute> e)
{
if (e.Row == null)
{
return;
}
var el = e.Row as CSAttribute;
if (el.ControlType == CSAttribute.GISelector)
{
if (!string.IsNullOrEmpty(e.Row.ObjectName as string))
{
Type objType = System.Web.Compilation.PXBuildManager.GetType(e.Row.ObjectName, true);
PXCache objCache = Base.Caches[objType];
var fields = objCache.Fields
.Where(f => objCache.GetBqlField(f) != null ||
f.EndsWith("_Attributes", StringComparison.OrdinalIgnoreCase))
.Where(f => !objCache.GetAttributesReadonly(f).OfType<PXDBTimestampAttribute>().Any())
.Where(f => !string.IsNullOrEmpty((objCache.GetStateExt(null, f) as PXFieldState)?.ViewName))
.Where(f => f != "CreatedByID" && f != "LastModifiedByID")
.ToArray();
PXStringListAttribute.SetList<KNRWCSAttributeExt.usrSchemaField>(e.Cache, e.Row, fields, fields);
}
}
}
}
View
<asp:Content ID="cont2" ContentPlaceHolderID="phF" runat="Server">
<px:PXFormView ID="form" runat="server" DataSourceID="ds" Style="z-index: 100" Width="100%" DataMember="Attributes" Caption="Attribute Summary">
<Template>
<px:PXLayoutRule runat="server" StartColumn="True" ControlSize="M" LabelsWidth="SM" />
<px:PXSelector ID="edAttributeID" runat="server" DataField="AttributeID" AutoRefresh="True" DataSourceID="ds">
<GridProperties FastFilterFields="description" />
</px:PXSelector>
<px:PXTextEdit ID="edDescription" runat="server" AllowNull="False" DataField="Description" />
<px:PXDropDown CommitChanges="True" ID="edControlType" runat="server" AllowNull="False" DataField="ControlType" />
<px:PXCheckBox ID="chkIsInternal" runat="server" DataField="IsInternal" />
<px:PXCheckBox ID="chkContainsPersonalData" runat="server" DataField="ContainsPersonalData" />
<px:PXTextEdit ID="edEntryMask" runat="server" DataField="EntryMask" />
<px:PXTextEdit ID="edRegExp" runat="server" DataField="RegExp" />
<px:PXSelector ID="SchemaObject" runat="server" DataField="ObjectName" AutoRefresh="True" CommitChanges="true" />
<px:PXDropDown ID="SchemaField" runat="server" DataField="FieldName" AutoRefresh="True" CommitChanges="True" />
<px:PXDropDown ID="edRegExpMultiSelect" runat="server" AllowMultiSelect="true" DataField="UsrSchemaField" CommitChanges="True"/>
</Template>
</px:PXFormView>
</asp:Content>
Having the field value disappear just means that the custom field was not correctly implemented. When the system can't select/persist a record or a field it disappears when control focus is lost.
The DAC field type appears to be wrong. Usually string list uses small codes of about 2 or 3 letters string with fixed size:
[PXDBString(3, IsFixed = true)]
Since you are setting the list dynamically you don't need to define null string values in the DAC:
[PXStringList]
You need to make sure that your event is always providing the expected code values. This can be checked by removing the conditions and using constants for the SetList method call:
https://stackoverflow.com/a/38089639/7376238
Maybe you missed some steps like creating the field in the database table. You can test with an unbound PXString field instead of a PXDBString like in this example to see if that's the issue:
https://stackoverflow.com/a/49907964/7376238
Thanks for the help, I solved the problem by replacing "e.Row" with "null" in this line
before:
PXStringListAttribute.SetList<KNRWCSAttributeExt.usrSchemaField>(e.Cache, e.Row, fields, fields);
after:
PXStringListAttribute.SetList<KNRWCSAttributeExt.usrSchemaField>(e.Cache, null, fields, fields);

Smart panel reopen when press OK

I have a smart panel, when i press OK button then panel close and reopen again. what am i doing wrng?
Please find my popup panel OK C# and popup html below.
// Popup open code.
public PXAction<MyDAC> openPopup;
[PXUIField(DisplayName = "Add", MapEnableRights = PXCacheRights.Select)]
//[PXInsertButton]
protected virtual IEnumerable OpenPopup(PXAdapter adapter) {
if(CauseSmartPanel.AskExt() == WebDialogResult.OK) {
}
return adapter.Get();
}
public PXAction<MyDAC> addEditOK;
[PXUIField(DisplayName = "", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select, Visible = false)]
public virtual IEnumerable AddEditOK(PXAdapter adapter) {
return adapter.Get();
}
<px:PXSmartPanel ID="pnlSmartCause" runat="server" CaptionVisible="True" Caption="My Smart Panel"
Style="position: static" LoadOnDemand="True" Key="CauseSmartPanel" AutoCallBack-Target="frmMyCommand"
AutoCallBack-Command="Refresh" DesignView="Content">
<px:PXFormView ID="frmMyCommand" runat="server" SkinID="Transparent" DataMember="CauseSmartPanel" DataSourceID="ds" EmailingGraph="">
<Template>
<px:PXLayoutRule runat="server" StartRow="true" ControlSize="M" LabelsWidth="SM" StartColumn="True" />
<px:PXSelector ID="edCauseId" CommitChanges="true" runat="server" AlreadyLocalized="False" DataField="CauseId" AutoRefresh="true">
</px:PXSelector>
<px:PXLayoutRule runat="server" StartRow="true" ControlSize="XM" LabelsWidth="SM" StartColumn="True" />
<px:PXRichTextEdit ID="edDesc" runat="server" AlreadyLocalized="False" DataField="Description">
</px:PXRichTextEdit>
<px:PXLayoutRule runat="server" StartRow="true" StartColumn="True" ControlSize="SM" LabelsWidth="M"></px:PXLayoutRule>
<px:PXSelector ID="edEditedBy" runat="server" AlreadyLocalized="False" DataField="EditedBy" AutoRefresh="true">
</px:PXSelector>
<px:PXPanel ID="PXPanel1" runat="server" SkinID="Buttons">
<px:PXButton ID="btnMyCommandOK" CommandSourceID="ds" CommandName="AddEditOK" SyncVisible="false" Text="OK" DialogResult="OK" runat="server"></px:PXButton>
<px:PXButton ID="btnMyCommandCancel" runat="server" DialogResult="Cancel" Text="Cancel" />
</px:PXPanel>
</Template>
</px:PXFormView>
</px:PXSmartPanel>
No idea why your popup is loading a second time, but perhaps as a workaround, you could consider checking whether the user has already provided an answer to the popup.
This is done by using the Answer property on the view. In your case, it might be something like this:
if (CauseSmartPanel.View.Answer == WebDialogResult.None)
{
if(CauseSmartPanel.AskExt() == WebDialogResult.OK) {
}
}

Unable to display image in form view

I have unbound field and assigning file id to it, I even tried assign URL also but that is not working, please have a look at below design and code, please let me know where am doing a mistake.
<px:PXFormView runat="server" ID="frmImage2" DataSourceID="ds" DataMember="IconImage" SkinID="Preview">
<Template>
<px:PXLayoutRule ID="PXLayoutRule18" runat="server" StartColumn="true" />
<px:PXImageUploader runat="server" DataField="UsrKWJMThumbnailURL" AllowUpload="false" DataMember="IconImage" SuppressLabel="True" ID="imgViewImage12" Height="150px" Width="150px" />
</Template>
</px:PXFormView>
public PXSelect<AMProdItem> IconImage;
public virtual void iconImage()
{
foreach (AMProdItem item in Base.ProdItemRecords.Select())
{
AMProdItemExt extItems = item.GetExtension<AMProdItemExt>();
if (extItems != null)
{
if (extItems.UsrKWJMSerialNbr != null)
{
InfoSmartSearch.InfoINItemLotSerialImage infoItemLotSerialImg = PXSelectReadonly<InfoSmartSearch.InfoINItemLotSerialImage, Where<InfoSmartSearch.InfoINItemLotSerialImage.lotSerialNbr, Equal<Required<InfoSmartSearch.InfoINItemLotSerialImage.lotSerialNbr>>>>.Select(Base, extItems.UsrKWJMSerialNbr);
if (infoItemLotSerialImg != null)
{
if (!string.IsNullOrEmpty(infoItemLotSerialImg.UsrIconImageUrl))
{
NoteDoc noteDoc = PXSelectReadonly<NoteDoc, Where<NoteDoc.noteID, Equal<Required<NoteDoc.noteID>>>>.Select(Base, infoItemLotSerialImg.NoteID);
if (noteDoc != null)
{
UploadFile uploadFile = PXSelectReadonly<UploadFile, Where<UploadFile.fileID, Equal<Required<UploadFile.fileID>>>>.Select(Base, noteDoc.FileID);
if (uploadFile != null)
{
extItems.UsrKWJMThumbnailURL =
ControlHelper.GetAttachedFileUrl(null, uploadFile.FileID.ToString());
}
}
}
}
}
else
{
InventoryItem invItems = PXSelectReadonly<InventoryItem, Where<InventoryItem.inventoryID, Equal<Required<InventoryItem.inventoryID>>>>.Select(Base, item.InventoryID);
if (invItems != null)
{
if (!string.IsNullOrEmpty(invItems.ImageUrl))
{
NoteDoc noteDoc = PXSelectReadonly<NoteDoc, Where<NoteDoc.noteID, Equal<Required<NoteDoc.noteID>>>>.Select(Base, invItems.NoteID);
if (noteDoc != null)
{
UploadFile uploadFile = PXSelectReadonly<UploadFile, Where<UploadFile.fileID, Equal<Required<UploadFile.fileID>>>>.Select(Base, noteDoc.FileID);
if (uploadFile != null)
{
extItems.UsrKWJMThumbnailURL =
ControlHelper.GetAttachedFileUrl(null, uploadFile.FileID.ToString());
}
}
}
}
}
}
}
}
I suggest you use PXImageView control instead of PXImageUploader.
<px:PXImageView runat="server" ID="edImage" DataField="UsrKWJMThumbnailURL" />
Also test with an absolute URL first like this one:
https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png
I tested this method and can vouch for it:
Here's the complete code of my test project:
using System;
using PX.Data;
namespace PXImageTest
{
public class TestImage : PXGraph<TestImage>
{
public PXFilter<MasterTable> MasterView;
public void MasterTable_ImageUrl_FieldSelecting(PXCache sender, PXFieldSelectingEventArgs e)
{
e.ReturnValue = "https://www.google.com/images/branding/googlelogo/1x/googlelogo_color_272x92dp.png";
}
[Serializable]
public class MasterTable : IBqlTable
{
public abstract class imageUrl : IBqlField { }
[PXUIField(DisplayName = "Image")]
[PXDBString(255, IsUnicode = true)]
public virtual String ImageUrl { get; set; }
}
}
}
ASPX:
<%# Page Language="C#" MasterPageFile="~/MasterPages/FormView.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="ZZ999999.aspx.cs" Inherits="Page_ZZ999999" Title="Untitled Page" %>
<%# MasterType VirtualPath="~/MasterPages/FormView.master" %>
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%"
TypeName="PXImageTest.TestImage"
PrimaryView="MasterView">
<CallbackCommands>
</CallbackCommands>
</px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
<px:PXFormView ID="form" runat="server" DataSourceID="ds" DataMember="MasterView" Width="100%" AllowAutoHide="false">
<Template>
<px:PXLayoutRule runat="server" StartRow="True" ID="PXLayoutRule1" />
<px:PXImageView runat="server" DataField="ImageUrl" ID="edImage" Style='left:9px;top:9px;Position:absolute;' />
</Template>
<AutoSize Container="Window" Enabled="True" MinHeight="200" ></AutoSize>
</px:PXFormView>
</asp:Content>

How to refresh a grid from a redirected page

I have an inquiry page where the Header is the POLine table and the grid is a new table linked to POLine. I cannot use an unbounded DAC for the filters because I want to offer the option to navigate over existing records.
If I open the page directly and enter the POLine information, the grid is refreshed correctly.
I included a button in the Purchase Orders page with an action that opens my inquiry page. In this scenario, the filter is loaded correctly but the grid does not show the records until the grid's refresh button is pressed.
This is my Action:
public PXAction<POOrder> Reconcile;
[PXUIField(DisplayName = "Reconcile", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
[PXButton(CommitChanges = true, OnClosingPopup = PXSpecialButtonType.Cancel)]
public virtual void reconcile()
{
POLine pOLineRow = Transactions.Current;
if (pOLineRow == null)
{
return;
}
if (pOLineRow.OrderNbr != null)
{
PEPOOrderReconciliationMaint pEPOOrderReconciliationgraph = PXGraph.CreateInstance<PEPOOrderReconciliationMaint>();
pEPOOrderReconciliationgraph.POOrderReconcileRecord.Current = pEPOOrderReconciliationgraph.POOrderReconcileRecord.Search<POLine.orderType, POLine.orderNbr, POLine.lineNbr>(pOLineRow.OrderType, pOLineRow.OrderNbr, pOLineRow.LineNbr, pOLineRow.OrderType);
if (pEPOOrderReconciliationgraph.POOrderReconcileRecord.Current != null)
{
throw new PXRedirectRequiredException(pEPOOrderReconciliationgraph, false, "PORECONCILIATION") { Mode = PXBaseRedirectException.WindowMode.NewWindow };
}
}
}
I have not used the Search<> method at a detail level before, but I found this Acumatica reference in POReceiptEntry:
POLineR polineR = _graph.purchaseLinesUPD.Search<POLineR.orderType, POLineR.orderNbr, POLineR.lineNbr>
(itemsource.OrderType, itemsource.OrderNbr, itemsource.LineNbr);
I also tried to assign the value directly with a PXSelect:
pEPOOrderReconciliationgraph.POOrderReconcileRecord.Current = PXSelect<POLine,Where<POLine.orderType,
Equal<Required<POLine.orderType>>,And<POLine.orderNbr,
Equal<Required<POLine.orderNbr>>,And<POLine.lineNbr,
Equal<Required<POLine.lineNbr>>>>>>
.Select(this, pOLineRow.OrderType, pOLineRow.OrderNbr, pOLineRow.LineNbr);
I don't think this is related to the error though. I think it's more oriented to a refresh option in the ASPX.
This is my ASPX code:
<%# Page Language="C#" MasterPageFile="~/MasterPages/FormDetail.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="PR501000.aspx.cs" Inherits="Page_PR501000" Title="Untitled Page" %>
<%# MasterType VirtualPath="~/MasterPages/FormDetail.master" %>
<asp:Content ID="cont1" ContentPlaceHolderID="phDS" Runat="Server">
<px:PXDataSource ID="ds" runat="server" Visible="True" Width="100%" TypeName="Purchase.PEPOOrderReconciliationMaint" PrimaryView="POOrderReconcileRecord">
<CallbackCommands>
<px:PXDSCallbackCommand Name="SaveClose" Visible="false" PopupVisible="false"/>
<px:PXDSCallbackCommand Name="Save" Visible="false" CommitChanges="true"/>
<px:PXDSCallbackCommand Name="Cancel" Visible="true" CommitChanges="true"/>
<px:PXDSCallbackCommand Name="Insert" Visible="false" CommitChanges="true"/>
<px:PXDSCallbackCommand Name="CopyPaste" Visible="false" CommitChanges="true"/>
<px:PXDSCallbackCommand Name="Delete" Visible="false" CommitChanges="true"/>
</CallbackCommands>
</px:PXDataSource>
</asp:Content>
<asp:Content ID="cont2" ContentPlaceHolderID="phF" Runat="Server">
<px:PXFormView ID="form" runat="server" DataSourceID="ds" Style="z-index: 100"
Width="100%" DataMember="POOrderReconcileRecord" TabIndex="4500">
<Template>
<px:PXLayoutRule runat="server" StartColumn="True">
</px:PXLayoutRule>
<px:PXDropDown ID="edOrderType" runat="server" DataField="OrderType">
</px:PXDropDown>
<px:PXSelector ID="edOrderNbr" runat="server" DataField="OrderNbr" AutoRefresh="True" CommitChanges="True">
</px:PXSelector>
<px:PXLayoutRule runat="server" StartColumn="True"/>
<px:PXSelector ID="edLineNbr" runat="server" CommitChanges="True" DataField="LineNbr">
</px:PXSelector>
</Template>
</px:PXFormView>
</asp:Content>
<asp:Content ID="cont3" ContentPlaceHolderID="phG" Runat="Server">
<px:PXGrid ID="grid" runat="server" DataSourceID="ds" Style="z-index: 100; margin-top: 0px;"
Width="100%" Height="150px" SkinID="Details" TabIndex="21000" KeepPosition="True" SyncPosition="True" AdjustPageSize="Manual">
<Levels>
<px:PXGridLevel DataKeyNames="OrderType,OrderNbr,LineNbr" DataMember="POReceiptLineRecord">
<RowTemplate>
<px:PXSegmentMask ID="edInventoryID" runat="server" DataField="InventoryID" CommitChanges="True" Size="M" Width="200px">
</px:PXSegmentMask>
<px:PXNumberEdit ID="edReceiptQty" runat="server" AlreadyLocalized="False" DataField="ReceiptQty" CommitChanges="True" Size="S">
</px:PXNumberEdit>
</RowTemplate>
<Columns>
<px:PXGridColumn DataField="InventoryID">
</px:PXGridColumn>
<px:PXGridColumn DataField="ReceiptQty" TextAlign="Right" Width="100px">
</px:PXGridColumn>
</Columns>
</px:PXGridLevel>
</Levels>
<AutoSize Container="Window" Enabled="True" MinHeight="150" />
</px:PXGrid>
</asp:Content>
This is the PEPOOrderReconciliationMaint code:
public class PEPOOrderReconciliationMaint : PXGraph<PEPOOrderReconciliationMaint, POLine>
{
public PXSelect<POLine> POOrderReconcileRecord;
public PXSelect<POReceiptLine,
Where<
POReceiptLine.pOType, Equal<Current<POLine.orderType>>,
And<POReceiptLine.pONbr, Equal<Current<POLine.orderNbr>>,
And<POReceiptLine.pOLineNbr, Equal<Current<POLine.lineNbr>>>>>> POReceiptLineRecord;
#region Cache Attached
#region OrderType
[PXDBString(2, IsFixed = true, IsKey = true)]
[POOrderType.List()]
[PXUIField(DisplayName = "Type", Enabled = true)]
protected virtual void POLine_OrderType_CacheAttached(PXCache Sender)
{
}
#endregion
#region OrderNbr
[PXDBString(15, IsUnicode = true, InputMask = "", IsKey = true)]
[PXUIField(DisplayName = "Order Nbr.", Visible = true)]
[PXSelector(typeof(Search<POOrder.orderNbr,
Where<POOrder.orderType, Equal<Current<POLine.orderType>>>>))]
protected virtual void POLine_OrderNbr_CacheAttached(PXCache Sender)
{
}
#endregion
#region LineNbr
[PXDBInt(IsKey = true)]
[PXUIField(DisplayName = "Line Nbr.", Visible = true, Enabled = true)]
[PXSelector(typeof(Search<POLine.lineNbr,
Where<POLine.orderNbr, Equal<Current<POLine.orderNbr>>,
And<POLine.orderType, Equal<Current<POLine.orderType>>>>>))]
protected virtual void POLine_LineNbr_CacheAttached(PXCache Sender)
{
}
#endregion
#endregion
}

Resources