Pop Value is not updating in custom screen grid

64 views Asked by At

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

1

There are 1 answers

0
Naveen B On BEST ANSWER

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>