खोज…


परिचय

ग्रिड को फ़िल्टर करने के लिए चयनकर्ता के अंदर कई मान होने का एक तरीका है।

गुणक ग्राहक के लिए बिक्री आदेश वापस लेना

जब एक चयनकर्ता में कई मूल्य का उपयोग करके कुछ रिकॉर्ड को फ़िल्टर करने की कोशिश की जाती है। सबसे पहले आपको px का उपयोग करना चाहिए: सामान्य px के बजाय aspx पृष्ठ में PXMultiSelector: PXSultlector। इसके बाद आपको अपने आप को एक ग्राफ बनाना होगा जिसमें कम से कम तीन दृश्य और एक दृश्य प्रतिनिधि होना चाहिए। आपको कम से कम एक बुनियादी अनबाउंड डीएसी की भी आवश्यकता होगी।

यहाँ px के साथ एक नमूना पृष्ठ है: PXMultiSelector:

<%@ Page Language="C#" MasterPageFile="~/MasterPages/FormDetail.master" AutoEventWireup="true" ValidateRequest="false" CodeFile="TT000000.aspx.cs" Inherits="Page_TT000000" 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="MultiSelector.MultiInquiry"
    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%" Height="100px" AllowAutoHide="false">
    <Template>
        <px:PXMultiSelector ID="edInventoryID" runat="server" Width="100%" DataSourceID="ds" DataField="Customer" CommitChanges="True"></px:PXMultiSelector>
    </Template>
</px:PXFormView>
</asp:Content>
<asp:Content ID="cont3" ContentPlaceHolderID="phG" runat="Server">
<px:PXGrid ID="grid" runat="server" DataSourceID="ds" Width="100%" Height="150px" SkinID="Details" AllowAutoHide="false">
    <Levels>
        <px:PXGridLevel DataMember="DetailsView">
            <Columns>
                <px:PXGridColumn DataField="OrderType" Width="70"></px:PXGridColumn>
                <px:PXGridColumn DataField="OrderNbr" Width="200"></px:PXGridColumn>
                <px:PXGridColumn DataField="OrderDesc" Width="100"></px:PXGridColumn>
                <px:PXGridColumn DataField="CustomerOrderNbr" Width="100"></px:PXGridColumn>
                <px:PXGridColumn DataField="Status" Width="100"></px:PXGridColumn>
                <px:PXGridColumn DataField="RequestDate" Width="100"></px:PXGridColumn>
                <px:PXGridColumn DataField="ShipDate" Width="100"></px:PXGridColumn>
                <px:PXGridColumn DataField="CustomerID" Width="100"></px:PXGridColumn>
            </Columns>
        </px:PXGridLevel>
    </Levels>
    <AutoSize Container="Window" Enabled="True" MinHeight="150" />
    <ActionBar>
    </ActionBar>
</px:PXGrid>
</asp:Content>

यहाँ विचारों और प्रतिनिधि के साथ नमूना ग्राफ है।

public class MultiInquiry : PXGraph<MultiInquiry>
{
    public PXCancel<MasterTable> Cancel;
    public PXFilter<MasterTable> MasterView;
    public PXSelect<SOOrder> DetailsView;

    public PXSelectJoin<SOOrder, LeftJoin<BAccount, On<SOOrder.customerID, Equal<BAccount.bAccountID>>>, Where<BAccount.acctCD, In<Required<BAccount.acctCD>>>> Orders2;

    protected virtual IEnumerable detailsView()
    {
        var list = new List<SOOrder>();
        var customers = MasterView.Current.Customer;
        if (customers != null)
        {
            List<string> customerList = new List<string>();
            customerList.AddRange(customers.Split(new string[] { "; " }, StringSplitOptions.None));
            object[] val = new object[] { customerList.ToArray() };

            foreach (PXResult<SOOrder> res in Orders2.Select(val))
            {
                SOOrder order = res;
                list.Add(order);
            }
        }
        return list;
    }
}

इसके लिए हम मल्टीएसीलर में उपयोग किए जाने वाले क्षेत्र और केवल ग्राहक खातों का चयन करने के लिए स्थिर वाले डीएसी को जोड़ते हैं।

    [Serializable]
    public class MasterTable : IBqlTable
    {
        #region InventoryID
        public abstract class customer : IBqlField { }
        [PXString()]
        [PXUIField(DisplayName = "Customer")]
        [PXSelector(typeof(Search<BAccount.acctCD, Where<BAccount.type, Equal<CustomerType>>>), ValidateValue = false)]
        public virtual string Customer { get; set; }
        #endregion

    }

    public class CustomerType : Constant<string> { public CustomerType() : base("CU") { } }

और इस उदाहरण का परिणाम कुछ इस तरह हो सकता है: यहाँ छवि विवरण दर्ज करें



Modified text is an extract of the original Stack Overflow Documentation
के तहत लाइसेंस प्राप्त है CC BY-SA 3.0
से संबद्ध नहीं है Stack Overflow