खोज…


यह लेख उदाहरण दिखाता है कि मेमोरी रिकॉर्ड का उपयोग करके रिपोर्ट कैसे बनाई जाए:

यह उदाहरण दिखाता है कि डेटा दृश्य प्रतिनिधि द्वारा लौटाए गए डेटा के साथ रिपोर्ट को कैसे पॉप्युलेट किया जाए। अभ्यास के दौरान, हम दो तिथियों के बीच बिक्री आदेशों की सूची दिखाते हुए एक जांच स्क्रीन विकसित करेंगे। विक्रय आदेश जानकारी को पॉप्युलेट करने के लिए डेटा दृश्य प्रतिनिधि का उपयोग किया जाएगा।

आवश्यक शर्तें:

  1. हम SOOrderFilter DAC की घोषणा के साथ शुरू करते हैं:

    [Serializable]
    public class SOOrderFilter : IBqlTable
    {
        public abstract class dateFrom : IBqlField
        {
        }
        [PXDate()]
        [PXUIField(DisplayName = "Date From")]
        public DateTime? DateFrom { get; set; }
    
        public abstract class dateTo : IBqlField
        {
        }
        [PXDate()]
        [PXUIField(DisplayName = "Date To")]
        public DateTime? DateTo { get; set; }
    }
    
  2. SOOrderData DAC की घोषणा के साथ जारी रखें:

    [Serializable]
    public class SOOrderData : IBqlTable
    {
        #region OrderType
        public abstract class orderType : PX.Data.IBqlField
        {
        }
        [PXString(2, IsKey = true, IsFixed = true)]
        [PXUIField(DisplayName = "Type")]
        public virtual string OrderType { get; set; }
        #endregion
        #region OrderNbr
        public abstract class orderNbr : PX.Data.IBqlField
        {
        }
        [PXString(15, IsKey = true, IsUnicode = true, InputMask = ">CCCCCCCCCCCCCCC")]
        [PXUIField(DisplayName = "Order Nbr.")]
        public virtual string OrderNbr { get; set; }
        #endregion
        #region OrderDate
        public abstract class orderDate : PX.Data.IBqlField
        {
        }
        [PXDate]
        [PXUIField(DisplayName = "Date")]
        public virtual DateTime? OrderDate { get; set; }
        #endregion
        #region Status
        public abstract class status : PX.Data.IBqlField
        {
        }
        [PXString(1, IsFixed = true)]
        [PXUIField(DisplayName = "Status")]
        [SOOrderStatus.List()]
        public virtual string Status { get; set; }
        #endregion
        #region OrderDesc
        public abstract class orderDesc : PX.Data.IBqlField
        {
        }
        [PXString(60, IsUnicode = true)]
        [PXUIField(DisplayName = "Description", Visibility = PXUIVisibility.SelectorVisible)]
        public virtual string OrderDesc { get; set; }
        #endregion
        #region OrderTotal
        public abstract class orderTotal : PX.Data.IBqlField
        {
        }
        [PXDecimal(4)]
        [PXDefault(TypeCode.Decimal, "0.0")]
        public virtual decimal? OrderTotal { get; set; }
        #endregion
        #region DueDate
        public abstract class dueDate : PX.Data.IBqlField
        {
        }
        [PXDate]
        [PXUIField(DisplayName = "Due Date")]
        public virtual DateTime? DueDate { get; set; }
        #endregion
    }
    
  3. PX.Documentation नामस्थान में अपने SOOrderInq BLC परिणाम डेटा दृश्य प्रतिनिधि को घोषित करने के लिए नीचे दिए गए कोड स्निपेट का उपयोग करते हैं, जो बाद में डेटा के साथ रिपोर्ट को पॉप्युलेट करने के लिए उपयोग करेगा:

    public class SOOrderInq : PXGraph<SOOrderInq>
    {
        public PXCancel<SOOrderFilter> Cancel;
        public PXFilter<SOOrderFilter> Filter;
    
        [PXFilterable]
        public PXSelectOrderBy<SOOrderData,
            OrderBy<Desc<SOOrderData.orderNbr>>> Result;
        protected virtual IEnumerable result()
        {
            BqlCommand cmd = PXSelect<SOOrder, 
                Where<SOOrder.orderDate,
                    Between<Current<SOOrderFilter.dateFrom>,
                        Current<SOOrderFilter.dateTo>>>>.GetCommand();
            PXView inView = new PXView(this, true, cmd);
            int startRow = PXView.StartRow;
            int totalRows = 0;
            foreach (SOOrder order in inView.Select(PXView.Currents, PXView.Parameters,
                PXView.Searches, PXView.SortColumns, PXView.Descendings, PXView.Filters,
                ref startRow, PXView.MaximumRows, ref totalRows))
            {
                yield return new SOOrderData
                {
                    OrderType = order.OrderType,
                    OrderNbr = order.OrderNbr,
                    OrderDate = order.OrderDate,
                    Status = order.Status,
                    OrderDesc = order.OrderDesc,
                    OrderTotal = order.OrderTotal,
                    DueDate = order.DueDate,
                };
            }
            PXView.StartRow = 0;
        }
    
        public SOOrderInq()
        {
            Result.Cache.AllowInsert = false;
            Result.Cache.AllowUpdate = false;
            Result.Cache.AllowDelete = false;
        }
    
        public PXAction<SOOrderFilter> Report;
        [PXButton]
        [PXUIField(DisplayName = "View As Report", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
        protected virtual void report()
        {
            PXReportResultset reportData = new PXReportResultset(typeof(SOOrderData));
            foreach (SOOrderData row in Result.Select())
            {
                reportData.Add(row);
            }
            throw new PXReportRequiredException(reportData, "SO610501", PXBaseRedirectException.WindowMode.NewWindow, "Report");
        }
    }
    
  1. FormDetail टेम्पलेट का चयन करके SO401090.aspx पृष्ठ बनाएँ, और PXDataSource के लिए निम्नलिखित गुण सेट करें:
  • प्राथमिक दृश्य: फ़िल्टर

  • TypeName: PX.Documentation.SOOrderInq

    उसके बाद फ़िल्टर हेडर फॉर्म पर इनपुट नियंत्रण जोड़ें:

     <px:PXFormView ID="form" runat="server" DataSourceID="ds" Style="z-index: 100" 
         Width="100%" DataMember="Filter">
         <Template>
             <px:PXLayoutRule runat="server" StartRow="True" Merge="True" LabelsWidth="XS" ControlSize="S" />
             <px:PXDateTimeEdit ID="edDateFrom" runat="server" CommitChanges="True" DataField="DateFrom" />
             <px:PXDateTimeEdit ID="edDateTo" runat="server" CommitChanges="True" DataField="DateTo" />
             <px:PXLayoutRule runat="server" />
         </Template>
     </px:PXFormView>
    

    और विस्तार ग्रिड के लिए निम्नलिखित कॉलम बनाएं:

     <px:PXGrid ID="grid" runat="server" DataSourceID="ds" Style="z-index: 100" 
         Width="100%" Height="150px" SkinID="Inquire" AllowPaging="True" AdjustPageSize="Auto">
         <Levels>
             <px:PXGridLevel DataMember="Result">
                 <Columns>
                     <px:PXGridColumn DataField="OrderType" />
                     <px:PXGridColumn DataField="OrderNbr" Width="90px" />
                     <px:PXGridColumn DataField="OrderDate" Width="90px" />
                     <px:PXGridColumn DataField="Status" />
                     <px:PXGridColumn DataField="OrderDesc" Width="200px" />
                     <px:PXGridColumn DataField="DueDate" Width="90px" />
                 </Columns>
             </px:PXGridLevel>
         </Levels>
         <AutoSize Container="Window" Enabled="True" MinHeight="150" />
     </px:PXGrid>
    
  1. साइट मानचित्र में बनाई गई स्क्रीन जोड़ें

डेटा दृश्य प्रतिनिधि द्वारा लौटाए गए डेटा के साथ रिपोर्ट को पॉप्युलेट करने के लिए:

  1. अपनी Acumatica वेबसाइट के ReportCustomized फ़ोल्डर में SO610501.rpx रिपोर्ट फ़ाइल पेस्ट करें, फिर साइट मैप हिडन फ़ोल्डर में विक्रय आदेश रिपोर्ट जोड़ें

यहाँ छवि विवरण दर्ज करें

  1. बिक्री आदेश रिपोर्ट बनाने और दिखाने के लिए SOOrderInq BLC में रिपोर्ट कार्रवाई के रूप में घोषित करें। PXReportRequiredException परिणाम को देखने के लिए कार्रवाई के अंदर तैयार किए गए PXReportResultset परिणाम डेटा दृश्य प्रतिनिधि द्वारा लौटाए गए आंकड़ों के साथ स्वीकार करता है:

    public class SOOrderInq : PXGraph<SOOrderInq>
    {
        ...
    
        public PXAction<SOOrderFilter> Report;
        [PXButton]
        [PXUIField(DisplayName = "View as Report", MapEnableRights = PXCacheRights.Select, MapViewRights = PXCacheRights.Select)]
        protected virtual void report()
        {
            PXReportResultset reportData = new PXReportResultset(typeof(SOOrderData));
            foreach (SOOrderData row in Result.Select())
            {
                reportData.Add(row);
            }
            throw new PXReportRequiredException(reportData, "SO610501", PXBaseRedirectException.WindowMode.NewWindow, "Report");
        }
    }
    

    यहाँ छवि विवरण दर्ज करें



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