Example #1
0
        public DataTable ExecuteReport(string pstrCCNID, string pstrFromDate, string pstrToDate,
                                       string pstrTransTypeID, string pstrGreaterThan0, string pstrMasLocID, string pstrLocationID, string pstrProductID)
        {
            try
            {
                const string DATE_FORMAT   = "dd-MM-yyyy HH:mm";
                const string REPORT_NAME   = "TransactionHistoryReport";
                const string REPORT_LAYOUT = "TransactionHistoryReport.xml";

                const string RPT_PAGE_HEADER = "PageHeader";
                //Report field names
                const string RPT_TITLE_FIELD = "fldTitle";

                const string RPT_CCN             = "CCN";
                const string RPT_FROM_DATE       = "From Date";
                const string RPT_TO_DATE         = "To Date";
                const string RPT_LOCATION        = "Location";
                const string RPT_TRAN_TYPE       = "Transation Type";
                const string RPT_PART_NUMBER     = "Part Number";
                const string RPT_MODEL           = "Model";
                const string RPT_PART_NAME       = "Part Name";
                const string RPT_MASTER_LOCATION = "Master Location";

                DataTable dtbTranHis = GetTransactionHistoryData(pstrCCNID, pstrFromDate, pstrToDate, pstrTransTypeID, pstrGreaterThan0, pstrMasLocID, pstrLocationID, pstrProductID);

                //Create builder object
                ReportBuilder reportBuilder = new ReportBuilder();
                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbTranHis;

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_LAYOUT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // And show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();


                //Draw parameters
                System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
                string strCode = GetCCNInfoByID(pstrCCNID);
                arrParamAndValue.Add(RPT_CCN, strCode);
                arrParamAndValue.Add(RPT_FROM_DATE, DateTime.Parse(pstrFromDate).ToString(DATE_FORMAT));
                arrParamAndValue.Add(RPT_TO_DATE, DateTime.Parse(pstrToDate).ToString(DATE_FORMAT));

                //Master Location
                if (pstrMasLocID != null && pstrMasLocID != string.Empty)
                {
                    strCode = GetMasterLocationInfoByID(pstrMasLocID);
                    arrParamAndValue.Add(RPT_MASTER_LOCATION, strCode);
                }

                //Location
                if (pstrLocationID != null && pstrLocationID != string.Empty)
                {
                    strCode = GetLocationInfoByID(pstrLocationID);
                    arrParamAndValue.Add(RPT_LOCATION, strCode);
                }

                //Transaction Type
                if (pstrTransTypeID != null && pstrTransTypeID != string.Empty)
                {
                    strCode = GetTranTypeName(pstrTransTypeID);
                    arrParamAndValue.Add(RPT_TRAN_TYPE, strCode);
                }

                //Product Information
                if (pstrProductID != null && pstrProductID != string.Empty)
                {
                    Hashtable htbProductInfo = GetProductInfoByID(pstrProductID);

                    arrParamAndValue.Add(RPT_PART_NUMBER, htbProductInfo[PRODUCT_CODE].ToString());
                    arrParamAndValue.Add(RPT_PART_NAME, htbProductInfo[PRODUCT_NAME].ToString());
                    arrParamAndValue.Add(RPT_MODEL, htbProductInfo[PRODUCT_MODEL].ToString());
                }

                //Anchor the Parameter drawing canvas cordinate to the fldTitle
                C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FIELD);
                double            dblStartX = fldTitle.Left;
                double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
                reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
                reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FIELD).Text;
                }
                catch {}

                reportBuilder.RefreshReport();
                printPreview.Show();

                return(dtbTranHis);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #2
0
        /// <summary>
        /// Build and show Detai lItem Price By PO Receipt
        /// </summary>
        /// <author> Tuan TQ, 11 Apr, 2006</author>
        public DataTable ExecuteReport(string pstrCCNID,
                                       string pstrStockTakingPeriodID,
                                       string pstrDepartmentIDs,
                                       string pstrProductionLineIDs,
                                       string pstrLocationIDs,
                                       string pstrBinIDs
                                       )
        {
//			try
//			{
            string strPOTypeID = Convert.ToString((int)PCSComUtils.Common.POReceiptTypeEnum.ByInvoice);

            const string DATE_HOUR_FORMAT = "dd-MM-yyyy HH:mm";

            const string REPORT_TEMPLATE = "StockTakingReport.xml";
            const string RPT_PAGE_HEADER = "PageHeader";

            const string REPORT_NAME     = "StockTakingReport";
            const string RPT_TITLE_FLD   = "fldTitle";
            const string RPT_COMPANY_FLD = "fldCompany";

            const string RPT_CCN_FLD              = "CCN";
            const string RPT_MASTER_LOCATION_FLD  = "Master Location";
            const string RPT_LOCATION_FLD         = "Master Location";
            const string RPT_FROM_DATE_FLD        = "From Date";
            const string RPT_TO_DATE_FLD          = "To Date";
            const string RPT_PART_NO_FLD          = "Part No.";
            const string RPT_TRANSACTION_TYPE_FLD = "Trans. Type";

            DataTable dtbDataSource = null;

            dtbDataSource = GetStockTakingData(pstrCCNID,
                                               pstrStockTakingPeriodID,
                                               pstrDepartmentIDs,
                                               pstrProductionLineIDs,
                                               pstrLocationIDs,
                                               pstrBinIDs);

            //Create builder object
            ReportBuilder reportBuilder = new ReportBuilder();

            //Set report name
            reportBuilder.ReportName = REPORT_NAME;

            //Set Datasource
            reportBuilder.SourceDataTable = dtbDataSource;

            //Set report layout location
            reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
            reportBuilder.ReportLayoutFile       = REPORT_TEMPLATE;

            reportBuilder.UseLayoutFile = true;
            reportBuilder.MakeDataTableForRender();

            // and show it in preview dialog
            PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

            //Attach report viewer
            reportBuilder.ReportViewer = printPreview.ReportViewer;
            reportBuilder.RenderReport();

            reportBuilder.DrawPredefinedField(RPT_COMPANY_FLD, GetCompanyFullName());
            //Draw parameters
            System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();

            arrParamAndValue.Add(RPT_CCN_FLD, GetCCNInfoByID(pstrCCNID));
            arrParamAndValue.Add("StockTakingPeriod ", GetFieldInfoFromTable("IV_StockTakingPeriod", "Description", "StockTakingPeriodID", pstrStockTakingPeriodID));

            //
            if (pstrDepartmentIDs != null && pstrDepartmentIDs != string.Empty)
            {
                arrParamAndValue.Add("Department ", GetFieldInfoFromTable(MST_DepartmentTable.TABLE_NAME, "Code", MST_DepartmentTable.DEPARTMENTID_FLD, pstrDepartmentIDs));
            }
            //
            if (pstrProductionLineIDs != null && pstrProductionLineIDs != string.Empty)
            {
                arrParamAndValue.Add("Production Line ", GetFieldInfoFromTable(PRO_ProductionLineTable.TABLE_NAME, "Code", PRO_ProductionLineTable.PRODUCTIONLINEID_FLD, pstrProductionLineIDs));
            }
            //Location list
            if (pstrLocationIDs != null && pstrLocationIDs != string.Empty)
            {
                arrParamAndValue.Add("Location ", GetLocationInfo(pstrLocationIDs));
            }

            //Part no list
            if (pstrBinIDs != null && pstrBinIDs != string.Empty)
            {
                arrParamAndValue.Add("Bin ", GetFieldInfoFromTable(MST_BINTable.TABLE_NAME, "Code", MST_BINTable.BINID_FLD, pstrBinIDs));
            }
//
//				//Trans. type list
//				if(pstrTransTypeIDList != null && pstrTransTypeIDList != string.Empty)
//				{
//					arrParamAndValue.Add(RPT_TRANSACTION_TYPE_FLD, GetTransTypeInfo(pstrTransTypeIDList));
//				}

            //Anchor the Parameter drawing canvas cordinate to the fldTitle
            C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FLD);
            double            dblStartX = fldTitle.Left;
            double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;

            reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
            reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

            try
            {
                printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FLD).Text;
            }
            catch
            {}

            reportBuilder.RefreshReport();
            printPreview.Show();

            //return table
            return(dtbDataSource);
//			}
//			catch (Exception ex)
//			{
//				throw ex;
//			}
        }
Example #3
0
        /// <summary>
        /// Main function, generate the result data Table for the REPORT VIEWER
        /// </summary>
        /// <param name="pstrCCNID"></param>
        /// <returns></returns>
        public DataTable ExecuteReport(string pstrYear, string pstrMonth, string pstrProductID, string pstrLoc, string pstrBin)
        {
            DataTable dtbReportData = GetReportData(pstrYear, pstrMonth, pstrProductID, pstrLoc, pstrBin);
            C1Report  rptReport     = new C1Report();

            if (mLayoutFile == string.Empty)
            {
                mLayoutFile = "TongHopVatTuXuatChuyenKho.xml";
            }
            rptReport.Load(mReportFolder + "\\" + mLayoutFile, rptReport.GetReportInfo(mReportFolder + "\\" + mLayoutFile)[0]);
            //rptReport.Layout.PaperSize = PaperKind.A3;

            // set datasource object that provides data to report.
            rptReport.DataSource.Recordset = dtbReportData;

            #region add field to report

            rptReport.Fields[RPT_YEAR_FLD].Text  = pstrYear;
            rptReport.Fields[RPT_MONTH_FLD].Text = pstrMonth;


            if (pstrProductID.Split(",".ToCharArray()).Length > 1)
            {
                rptReport.Fields[RPT_PRODUCT_FLD].Text = "Multi-Selection";
            }
            else
            {
                if (pstrProductID.Trim() != string.Empty)
                {
                    DataTable objProduct = GetProductInfo(pstrProductID);
                    foreach (DataRow drowItem in objProduct.Rows)
                    {
                        rptReport.Fields[RPT_PRODUCT_FLD].Text = drowItem["Code"].ToString();
                    }
                }
            }

            if (pstrLoc.Split(",".ToCharArray()).Length > 1)
            {
                rptReport.Fields[RPT_LOC_FLD].Text = "Multi-Selection";
            }
            else
            {
                if (pstrLoc.Trim() != string.Empty)
                {
                    DataTable objLoc = GetLocInfo(pstrLoc);
                    foreach (DataRow drowItem in objLoc.Rows)
                    {
                        rptReport.Fields[RPT_LOC_FLD].Text = drowItem["Code"].ToString();
                    }
                }
            }

            if (pstrBin.Split(",".ToCharArray()).Length > 1)
            {
                rptReport.Fields[RPT_BIN_FLD].Text = "Multi-Selection";
            }
            else
            {
                if (pstrBin.Trim() != string.Empty)
                {
                    DataTable objBin = GetBinInfo(pstrBin);
                    foreach (DataRow drowItem in objBin.Rows)
                    {
                        rptReport.Fields[RPT_BIN_FLD].Text = drowItem["Code"].ToString();
                    }
                }
            }
            #endregion
            // render report
            rptReport.Render();

            // render the report into the PrintPreviewControl
            C1PrintPreviewDialog ppvViewer = new C1PrintPreviewDialog();
            //ppvViewer.FormTitle = "Costing Description " + dtmDate.ToString("MMMM-yyyy");

            ppvViewer.ReportViewer.Document = rptReport.Document;
            ppvViewer.Show();
            return(dtbReportData);
        }
Example #4
0
        public DataTable ExecuteReport(string pstrCCNID, string pstrProductID)
        {
            try
            {
                const string REPORT_NAME     = "RoutingReport";
                const string SUB_REPORT_NAME = "SubRoutingReport";
                const string REPORT_LAYOUT   = "RoutingReport.xml";
                const string REPORT_TITLE    = "Routing Management Report";

                const string RPT_TITLE_FIELD = "fldTitle";

                DataTable dtbBOMData     = new DataTable(BOM_PRODUCT_TABLE);
                DataTable dtbRoutingData = new DataTable(ROUTING_PRODUCT_TABLE);

                strListProductIDs = "(" + pstrProductID;

                int intProductID = 0;
                intProductID = int.Parse(pstrProductID);
                //Build data
                dtbBOMData = BuildBOMDataTable(intProductID);
                if (dtbBOMData != null)
                {
                    if (dtbBOMData.Rows.Count == 0)
                    {
                        dtbBOMData = GetRootProductInfo(pstrProductID);
                    }
                }

                strListProductIDs += ")";
                dtbRoutingData     = GetRoutingData(strListProductIDs);

                //Create builder object
                ReportWithSubReportBuilder reportBuilder = new ReportWithSubReportBuilder();
                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbBOMData;
                reportBuilder.SubReportDataSources.Add(SUB_REPORT_NAME, dtbRoutingData);

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_LAYOUT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // and show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FIELD).Text;
                }
                catch
                {
                    printPreview.FormTitle = REPORT_TITLE;
                }

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();

                reportBuilder.RefreshReport();
                printPreview.Show();

                return(dtbBOMData);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #5
0
        /// <summary>
        /// Main function, generate the result data Table for the REPORT VIEWER
        /// Modify the REPORT VIEWER to display the report

        /// ------------------------------ MAIN FLOW OF THIS REPORT ----------------------------------
        /// BUILD THE PO LIST TABLE
        ///
        /// GETTING RAW DATA USING DataHelper Class
        /// FILL TO THE DTB TABLE
        ///
        /// RENDER TO REPORT
        ///
        /// SHOW THE REPORT
        /// END -------------------------- MAIN FLOW OF THIS REPORT ----------------------------------
        /// </summary>
        /// <param name="pstrYear"></param>
        /// <param name="pstrMonth"></param>
        /// <param name="pstrPPMDefault"></param>
        /// <param name="pstrPPMDefault">Base Item</param>
        /// <returns></returns>
        public DataTable ExecuteReport(string pstrCCNID,
                                       string pstrPurchaseOrderID_LIST, string pstrPartyID_LIST, string pstrProductID_LIST)
        {
            #region My variables

            /// Report layout file constant
            const string REPORT_LAYOUT_FILE = "PurchaseOrderManagementReport.xml";
            const string REPORT_NAME        = "PurchaseOrderManagementReport";
            short        COPIES             = 1;

            /// all parameter are Mandatory
            const string REPORTFLD_PARAMETER_CCN           = "lblCCN";
            const string REPORTFLD_PARAMETER_PURCHASEORDER = "lblPurchaseOrder";
            const string REPORTFLD_PARAMETER_MAKER         = "lblMaker";
            const string REPORTFLD_PARAMETER_PRODUCT       = "lblProduct";

            PurchaseOrderManagementReport.pnCCNID = int.Parse(pstrCCNID);
            PurchaseOrderManagementReport.pstrPurchaseOrderID_LIST = pstrPurchaseOrderID_LIST;
            PurchaseOrderManagementReport.pstrPartyID_LIST         = pstrPartyID_LIST;
            PurchaseOrderManagementReport.pstrProductID_LIST       = pstrProductID_LIST;

            string strCCN = string.Empty;
            string strPurchaseOrderLIST = string.Empty;
            string strPartyLIST         = string.Empty;
            string strProductLIST       = string.Empty;

            const string REPORTFLD_TITLE = "fldTitle";
            float        fActualPageSize = 9000.0f;

            /// custom object to access and modify the dtbPurchaseOrderList
            PLReportDataHelper objPLTable = new PLReportDataHelper();

            #endregion


            /// ------------------------------ MAIN FLOW OF THIS REPORT ----------------------------------
            /// ##1## BUILD THE PRODUCTION LINE LIST TABLE
            #region BUILD some RAW DATA TABLE and Array

            objPLTable.GetDataAndCache();

            #endregion BUILD some RAW DATA TABLE

            #region GETTING THE PARAMETER
            PCSComUtils.Common.BO.UtilsBO boUtil = new PCSComUtils.Common.BO.UtilsBO();
            PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO objBO = new PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO();
            strCCN = boUtil.GetCCNCodeFromID(PurchaseOrderManagementReport.pnCCNID);
            strPurchaseOrderLIST = GetListFromDataTable(objPLTable.GetDataTable(1));
            strPartyLIST         = GetListFromDataTable(objPLTable.GetDataTable(2));
            strProductLIST       = GetListFromDataTable(objPLTable.GetDataTable(3));

            #endregion

            #region BUILD DATA OF REPORT


            #endregion BUILD DATA OF REPORT

            /// #### RENDER TO REPORT
            #region RENDER REPORT

            ReportBuilder objRB = mReportBuilder;
            objRB.ReportName      = REPORT_NAME;
            objRB.SourceDataTable = objPLTable.PurchaseOrderList;               // we build report base on HashTable, not DataTable, so we put new empty DataTable in to ReportBuilder to avoid error of outside processing
            //return objPLTable.PurchaseOrderList;

            #region INIT REPORT BUIDER OBJECT
            try
            {
                objRB.ReportDefinitionFolder = mstrReportDefinitionFolder;
                objRB.ReportLayoutFile       = REPORT_LAYOUT_FILE;
                if (objRB.AnalyseLayoutFile() == false)
                {
                    //					PCSMessageBox.Show(ErrorCode.MESSAGE_REPORT_TEMPLATE_FILE_NOT_FOUND, MessageBoxIcon.Error);
                    return(new DataTable());
                }
                //objRB.UseLayoutFile = objRB.AnalyseLayoutFile();	// use layout file if any , auto drawing if not found layout file
                objRB.UseLayoutFile = true;                     // always use layout file
            }
            catch
            {
                objRB.UseLayoutFile = false;
                //				PCSMessageBox.Show(ErrorCode.MESSAGE_REPORT_TEMPLATE_FILE_NOT_FOUND,MessageBoxIcon.Error);
            }
            C1.C1Report.Layout objLayout = objRB.Report.Layout;
            fActualPageSize = objLayout.PageSize.Width - (float)objLayout.MarginLeft - (float)objLayout.MarginRight;
            #endregion

            objRB.MakeDataTableForRender();

            // and show it in preview dialog
            PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();
            printPreview.FormTitle = REPORT_NAME;
            objRB.ReportViewer     = printPreview.ReportViewer;
            objRB.RenderReport();

            #region MODIFY THE REPORT LAYOUT

            #region DRAW Parameters

            const int MAX_PARA_LENGTH_TO_SHOW = 150;

            System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
            arrParamAndValue.Add(objRB.GetFieldByName(REPORTFLD_PARAMETER_CCN).Text, strCCN);

            if (strPurchaseOrderLIST.Length > 100)
            {
                strPurchaseOrderLIST = strPurchaseOrderLIST.Substring(0, MAX_PARA_LENGTH_TO_SHOW) + " ...";
            }
            if (strPartyLIST.Length > 100)
            {
                strPartyLIST = strPartyLIST.Substring(0, MAX_PARA_LENGTH_TO_SHOW) + " ...";
            }
            if (strProductLIST.Length > 100)
            {
                strProductLIST = strProductLIST.Substring(0, MAX_PARA_LENGTH_TO_SHOW) + " ...";
            }

            if (pstrPurchaseOrderID_LIST != string.Empty)
            {
                arrParamAndValue.Add(objRB.GetFieldByName(REPORTFLD_PARAMETER_PURCHASEORDER).Text, strPurchaseOrderLIST);
            }
            if (pstrPartyID_LIST != string.Empty)
            {
                arrParamAndValue.Add(objRB.GetFieldByName(REPORTFLD_PARAMETER_MAKER).Text, strPartyLIST);
            }
            if (pstrProductID_LIST != string.Empty)
            {
                arrParamAndValue.Add(objRB.GetFieldByName(REPORTFLD_PARAMETER_PRODUCT).Text, strProductLIST);
            }

            /// anchor the Parameter drawing canvas cordinate to the fldTitle
            C1.C1Report.Field fldTitle  = objRB.GetFieldByName(REPORTFLD_TITLE);
            double            dblStartX = fldTitle.Left;
            double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
            objRB.GetSectionByName(PAGE + HEADER).CanGrow = true;
            objRB.DrawParameters(objRB.GetSectionByName(PAGE + HEADER), dblStartX, dblStartY, arrParamAndValue, objRB.Report.Font.Size);

            #endregion

            #endregion

            // ReportBuilder.ReformatNumberInC1Report(objRB.Report);
            objRB.MarkRedToNegativeNumberField();
            objRB.RefreshReport();

            /// #### SHOW THE REPORT
            /// force the copies number
            printPreview.FormTitle = objRB.GetFieldByName(FLD + TITLE).Text;
            printPreview.Show();
            #endregion
            /// END ----------------------- MAIN FLOW OF THIS REPORT ----------------------------------

            UseReportViewerRenderEngine = false;
            mResult = objPLTable.PurchaseOrderList;
            return(objPLTable.PurchaseOrderList);
        }
Example #6
0
        /// <summary>
        /// Main flow function, generate the result data Table for the REPORT VIEWER
        /// </summary>
        /// <param name="pstrCCNID"></param>
        /// <param name="pstrYear"></param>
        /// <param name="pstrMonth"></param>
        /// <param name="pstrCode"></param>
        /// <returns></returns>
        public DataTable ExecuteReport(string pstrCCNID, string pstrYear, string pstrMonth, string pstrCode, string pstrMakeItem)
        {
            #region My varriables

            int    nCCNID  = int.Parse(pstrCCNID);
            int    nYear   = int.Parse(pstrYear);
            int    nMonth  = int.Parse(pstrMonth);
            string strCode = pstrCode;
//			string strCCN = string.Empty;

            int intMakeItem = -1;
            if (pstrMakeItem != null && pstrMakeItem != string.Empty)
            {
                intMakeItem = Convert.ToInt32(Convert.ToBoolean(pstrMakeItem));
            }
            dstMAIN             = GetDataAndCache(pstrCCNID, pstrYear, pstrMonth, intMakeItem);
            dstMAIN.DataSetName = pstrCCNID + pstrYear + pstrMonth + pstrCode;

            System.Data.DataTable dtbDetailTable;
            dtbDetailTable = dstMAIN.Tables[DETAIL_TABLE_NAME];
            System.Data.DataTable dtbMasterTable;
            dtbMasterTable = dstMAIN.Tables[MASTER_TABLE_NAME];

//			dtbPlanTable = ModifyPlanTable(dtbPlanTable, pstrCCNID, pstrYear, pstrMonth, pstrProductionLineID);
//			dtbPlanTable = SumAndGroupBy(dtbPlanTable, PRODUCTID, PLAN + DATE, PLAN + QUANTITY);

//			System.Data.DataTable dtbSOTable;
//			dtbSOTable  = dstMAIN.Tables[SO_TABLE_NAME];

            #endregion My varriables

            #region GETTING THE PARAMETER
            PCSComUtils.Common.BO.UtilsBO boUtil = new PCSComUtils.Common.BO.UtilsBO();
            PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO objBO = new PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO();
//			strCCN = boUtil.GetCCNCodeFromID(nCCNID);

            #endregion GETTING THE PARAMETER

            // ## 1 ## TRANSFORM DATATABLE FOR REPORT

            #region RENDER REPORT

            ReportWithSubReportBuilder objRB = new ReportWithSubReportBuilder();

            objRB.ReportName      = REPORT_NAME;
            objRB.SourceDataTable = dtbDetailTable;
            objRB.SubReportDataSources.Add(SUB_REPORT_NAME, dtbMasterTable);

            objRB.ReportDefinitionFolder = mstrReportDefinitionFolder;
            objRB.ReportLayoutFile       = REPORT_LAYOUT_FILE;
            objRB.UseLayoutFile          = true;
            objRB.MakeDataTableForRender();

            // and show it in preview dialog
            PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

            //Attach report viewer
            objRB.ReportViewer = printPreview.ReportViewer;
            objRB.RenderReport();


            #region MODIFY THE REPORT LAYOUT

            #region PUSH PARAMETER VALUE
            // objRB.DrawPredefinedField(REPORTFLD_PARAMETER_CCN,strCCN);
            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_YEAR, nYear.ToString("0000"));
            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_MONTH, nMonth.ToString("00"));
            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_CODE, strCode);
            #endregion

            #endregion

            objRB.RefreshReport();

            /// force the copies number
            printPreview.FormTitle = objRB.GetFieldByName("fldTitle").Text;
            printPreview.Show();
            #endregion

            UseReportViewerRenderEngine = false;
            mResult = dtbDetailTable;
            return(dtbDetailTable);
        }
Example #7
0
        /// <summary>
        /// Execute Report
        /// </summary>
        /// <param name="pstrCCNID">CCN</param>
        /// <param name="pstrYear">Year</param>
        /// <param name="pstrMonth">Month</param>
        /// <param name="pstrProLineID">Production Line</param>
        /// <param name="pstrWorkCenterID">Work Center</param>
        /// <returns></returns>
        public DataTable ExecuteReport(string pstrCCNID, string pstrYear, string pstrMonth, string pstrProLineID, string pstrWorkCenterID)
        {
            const string WORKING_DATE        = "WorkingDate";
            const string BEGIN_DATE          = "BeginDate";
            const string END_DATE            = "EndDate";
            const double FIELD_WIDTH         = 585;
            const string FLD                 = "fld";
            int          intCCNID            = 0;
            int          intYear             = 0;
            int          intMonth            = 0;
            int          intProductionLineID = 0;
            int          intWorkCenterID     = 0;

            try
            {
                intCCNID = int.Parse(pstrCCNID);
            }
            catch {}
            try
            {
                intYear = int.Parse(pstrYear);
            }
            catch {}
            try
            {
                intMonth = int.Parse(pstrMonth);
            }
            catch {}
            try
            {
                intProductionLineID = int.Parse(pstrProLineID);
            }
            catch {}
            try
            {
                intWorkCenterID = int.Parse(pstrWorkCenterID);
            }
            catch {}
            DateTime  dtmStartDate        = new DateTime(intYear, intMonth, 1);
            DateTime  dtmEndDate          = dtmStartDate.AddMonths(1).AddDays(-1);
            string    strExpression       = string.Empty;
            Hashtable arrStandardCapacity = new Hashtable();
            Hashtable arrActual           = new Hashtable();
            Hashtable arrRemain           = new Hashtable();
            Hashtable arrEffective        = new Hashtable();
            C1Report  rptReport           = new C1Report();
            string    strMonth            = dtmStartDate.ToString("MMM");
            // planning offset
            DataTable dtbPlanningOffset = GetPlanningOffset(pstrCCNID);
            // get all cycles in selected year
            DataTable dtbCycles = GetCycles(pstrCCNID);

            // refine cycles as of date based on production line
            dtbCycles = RefineCycle(pstrProLineID, dtbPlanningOffset, dtbCycles);
            // all planning period
            ArrayList     arrPlanningPeriod = GetPlanningPeriod(pstrCCNID);
            StringBuilder sbCycleIDs;
            DataTable     dtbCyclesCurrentMonth = ArrangeCycles(dtmStartDate, dtmEndDate, dtbCycles, arrPlanningPeriod, out sbCycleIDs);

            DataTable dtbStandard       = GetStandardCapacity(intWorkCenterID, intCCNID, intProductionLineID);
            DataTable dtbTRC            = GetTotalRequiredCapacity(intProductionLineID, sbCycleIDs.ToString(), dtmStartDate, dtmEndDate);
            DataTable dtbValidWorkDay   = GetWorkingDateFromWCCapacity(intProductionLineID);
            decimal   decTotalStandard  = 0;
            decimal   decTotalActual    = 0;
            decimal   decTotalRemain    = 0;
            decimal   decTotalEffective = 0;

            DataRow[] drowStandard = null;
            for (int i = dtmStartDate.Day; i <= dtmEndDate.Day; i++)
            {
                DateTime dtmDate      = new DateTime(dtmStartDate.Year, dtmStartDate.Month, i);
                string   strColName   = "D" + i.ToString("00");
                decimal  decSC        = 0;
                decimal  decActual    = 0;
                decimal  decRemain    = 0;
                decimal  decEffective = 0;
                strExpression = BEGIN_DATE + "<='" + dtmDate.ToString("G")
                                + "' AND " + END_DATE + ">='" + dtmDate.ToString("G") + "'";
                DataRow[] drowValidWorkDay = dtbValidWorkDay.Select(strExpression);
                if (drowValidWorkDay.Length == 0)
                {
                    arrStandardCapacity.Add(strColName, decSC);
                    arrActual.Add(strColName, decActual);
                    arrRemain.Add(strColName, decRemain);
                    arrEffective.Add(strColName, decimal.Round(decEffective, 2));
                    continue;
                }

                string strCycleID = GetCycleOfDate(dtmDate, dtbCyclesCurrentMonth);
                string strFilter  = "WorkingDate = '" + dtmDate.ToString() + "'"
                                    + " AND DCOptionMasterID = '" + strCycleID + "'";

                #region Standard Capacity

                drowStandard = dtbStandard.Select(strExpression);
                foreach (DataRow drowData in drowStandard)
                {
                    try
                    {
                        decSC += (decimal)drowData["Capacity"];
                    }
                    catch
                    {
                    }
                }
                arrStandardCapacity.Add(strColName, decimal.Round(decSC, 0));
                decTotalStandard += decSC;

                #endregion

                #region Total Required Capacity

                DataRow[] drowTotalRequired = dtbTRC.Select(strFilter);
                foreach (DataRow drowData in drowTotalRequired)
                {
                    try
                    {
                        decActual += (decimal)drowData["TotalSecond"];
                    }
                    catch {}
                }
                arrActual.Add(strColName, decimal.Round(decActual, 0));
                decTotalActual += decActual;

                #endregion

                #region Effective = Required Cap / Standard Cap

                try
                {
                    decEffective = decActual / decSC;
                }
                catch {}
                arrEffective.Add(strColName, decimal.Round(decEffective, 2));

                #endregion

                #region Remain Capacity

                // remain capacity
                decRemain = decSC - decActual;
                arrRemain.Add(strColName, decimal.Round(decRemain, 0));

                #endregion
            }
            arrStandardCapacity.Add("Total", decimal.Round(decTotalStandard, 0));
            arrActual.Add("Total", decimal.Round(decTotalActual, 0));
            decTotalRemain = decTotalStandard - decTotalActual;
            arrRemain.Add("Total", decimal.Round(decTotalRemain, 0));
            try
            {
                decTotalEffective = decTotalActual / decTotalStandard;
            }
            catch {}
            arrEffective.Add("Total", decimal.Round(decTotalEffective, 2));


            /// column Name in the dtbResult
            const string STANDARD_CAPACITY       = "StandardCapacity";
            const string TOTAL_REQUIRED_CAPACITY = "TotalRequiredCapacity";
            const string REMAIN_CAPACITY         = "RemainCapacity";
            const string EFFECTIVE = "Effective";


            DataTable dtbResult = new DataTable();
            dtbResult.Columns.Add(new DataColumn("RowType", typeof(string)));

            #region Report layout

            mLayoutFile = "CASReport.xml";
            string[] arrstrReportInDefinitionFile = rptReport.GetReportInfo(mReportFolder + "\\" + mLayoutFile);
            rptReport.Load(mReportFolder + "\\" + mLayoutFile, arrstrReportInDefinitionFile[0]);
            arrstrReportInDefinitionFile = null;
            rptReport.Layout.PaperSize   = PaperKind.A3;

            #endregion

            for (int i = dtmStartDate.Day; i <= dtmEndDate.Day; i++)
            {
                string strColumnName = "D" + i.ToString("00");
                dtbResult.Columns.Add(new DataColumn(strColumnName, typeof(decimal)));

                #region Report layout

                DateTime dtmDay  = new DateTime(intYear, intMonth, i);
                string   strDate = "fldD" + i.ToString("00");
                string   strDay  = "fldDay" + i.ToString("00");
                try
                {
                    rptReport.Fields[strDate].Text = i + "-" + strMonth;
                }
                catch
                {
                }
                try
                {
                    rptReport.Fields[strDay].Text = dtmDay.DayOfWeek.ToString().Substring(0, 3);
                }
                catch
                {
                }
                DataRow[] drowValidWorkDay = dtbValidWorkDay.Select("BeginDate <= '" + dtmDay.ToString("G") + "'" + " AND EndDate >='" + dtmDay.ToString("G") + "'");
                if (drowValidWorkDay.Length == 0)
                {
                    try
                    {
                        if (dtmDay.DayOfWeek == DayOfWeek.Saturday)
                        {
                            rptReport.Fields[strDate].ForeColor = Color.Blue;
                            rptReport.Fields[strDate].BackColor = Color.Yellow;
                        }
                        else
                        {
                            rptReport.Fields[strDate].ForeColor = Color.Red;
                            rptReport.Fields[strDate].BackColor = Color.Yellow;
                        }
                    }
                    catch
                    {
                    }
                    try
                    {
                        if (dtmDay.DayOfWeek == DayOfWeek.Saturday)
                        {
                            rptReport.Fields[strDay].ForeColor = Color.Blue;
                            rptReport.Fields[strDay].BackColor = Color.Yellow;
                        }
                        else
                        {
                            rptReport.Fields[strDay].ForeColor = Color.Red;
                            rptReport.Fields[strDay].BackColor = Color.Yellow;
                        }
                    }
                    catch
                    {
                    }
                }

                #endregion
            }

            #region Layout the format based on days in month

            int intDaysInMonth = DateTime.DaysInMonth(dtmStartDate.Year, dtmStartDate.Month);
            if (intDaysInMonth < 31)
            {
                for (int i = intDaysInMonth + 1; i <= 31; i++)
                {
                    #region field name

                    string strDate      = "fldD" + i.ToString("00");
                    string strDayOfWeek = "fldDay" + i.ToString("00");
                    string strDiv       = "div" + i.ToString("00");

                    #endregion

                    #region Report Header

                    try
                    {
                        rptReport.Fields[strDate].Visible = false;
                    }
                    catch
                    {
                    }
                    try
                    {
                        rptReport.Fields[strDayOfWeek].Visible = false;
                    }
                    catch
                    {
                    }
                    try
                    {
                        rptReport.Fields[strDiv].Visible = false;
                    }
                    catch
                    {
                    }

                    #endregion
                }
                try
                {
                    #region Resize all line

                    //double dWidth = rptReport.Fields["line1"].Width;
                    for (int i = 1; i <= 7; i++)
                    {
                        rptReport.Fields["line" + i].Width = rptReport.Fields["line" + i].Width - (31 - intDaysInMonth) * FIELD_WIDTH;
                    }

                    #endregion

                    double dWidthToChange = (31 - intDaysInMonth) * FIELD_WIDTH;

                    #region Total columns

                    rptReport.Fields["fldDTotal"].Left =
                        rptReport.Fields["fldStandardCapacityD"].Left           =
                            rptReport.Fields["fldTotalRequiredCapacityD"].Left  =
                                rptReport.Fields["fldEffectiveD"].Left          =
                                    rptReport.Fields["fldRemainCapacityD"].Left = rptReport.Fields["fldDTotal"].Left - dWidthToChange;
                    rptReport.Fields["divTotal"].Left = rptReport.Fields["fldDTotal"].Left + FIELD_WIDTH;

                    #endregion
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }

            #endregion

            DataRow drowSC = dtbResult.NewRow();
            drowSC["RowType"] = STANDARD_CAPACITY;
            DataRow drowTR = dtbResult.NewRow();
            drowTR["RowType"] = TOTAL_REQUIRED_CAPACITY;
            DataRow drowRC = dtbResult.NewRow();
            drowRC["RowType"] = REMAIN_CAPACITY;
            DataRow drowEff = dtbResult.NewRow();
            drowEff["RowType"] = EFFECTIVE;
            for (int i = dtmStartDate.Day; i <= dtmEndDate.Day; i++)
            {
                string strColumnName = "D" + i.ToString("00");
                drowSC[strColumnName]  = arrStandardCapacity[strColumnName];
                drowTR[strColumnName]  = arrActual[strColumnName];
                drowRC[strColumnName]  = arrRemain[strColumnName];
                drowEff[strColumnName] = arrEffective[strColumnName];
            }
            dtbResult.Rows.Add(drowSC);
            dtbResult.Rows.Add(drowTR);
            dtbResult.Rows.Add(drowRC);
            dtbResult.Rows.Add(drowEff);

            #region RENDER REPORT

            const string REPORTFLD_CHART      = "fldChart";
            const string REPORTFLD_TOTALCHART = "fldTotalChart";

            if (dtbResult.Rows.Count > 0)
            {
                #region BUILD CHART, save to image in clipboard, and then put in the report field fldChart

                Field fldChart      = rptReport.Fields[REPORTFLD_CHART];
                Field fldTotalChart = rptReport.Fields[REPORTFLD_TOTALCHART];

                #region INIT

                string EXCEL_FILE = "CASReport.xls";

                string strTemplateFilePath = mReportFolder + Path.DirectorySeparatorChar + EXCEL_FILE;

                string strDestinationFilePath = mReportFolder + Path.DirectorySeparatorChar + Path.GetFileNameWithoutExtension(EXCEL_FILE) + FormControlComponents.NowToUTCString() + ".XLS";

                /// Copy layout excel report file to ExcelReport folder with a UTC datetime name
                File.Copy(strTemplateFilePath, strDestinationFilePath, true);

                ExcelReportBuilder objXLS = new ExcelReportBuilder(strDestinationFilePath);

                #endregion

                try
                {
                    #region BUILD THE REPORT ON EXCEL FILE

                    string[] arrExcelColumnHeading = new string[DateTime.DaysInMonth(intYear, intMonth)];
                    for (int i = 1; i <= intDaysInMonth; i++)
                    {
                        DateTime dtmDate       = new DateTime(intYear, intMonth, i);
                        string   strColHeading = i + "-" + strMonth + "\n" + dtmDate.DayOfWeek.ToString().Substring(0, 3);
                        arrExcelColumnHeading[i - 1] = strColHeading;
                    }

                    double[,] arrExcelStandard = new double[1, intDaysInMonth];
                    double[,] arrExcelActual   = new double[1, intDaysInMonth];
                    for (int i = dtmStartDate.Day; i <= dtmEndDate.Day; i++)
                    {
                        string strSC      = "fldStandardCapacityD" + i.ToString("00");
                        string strTR      = "fldTotalRequiredCapacityD" + i.ToString("00");
                        string strRC      = "fldRemainCapacityD" + i.ToString("00");
                        string strEff     = "fldEffectiveD" + i.ToString("00");
                        string strColName = "D" + i.ToString("00");

                        rptReport.Fields[strSC].Text  = arrStandardCapacity[strColName].ToString();
                        rptReport.Fields[strTR].Text  = arrActual[strColName].ToString();
                        rptReport.Fields[strRC].Text  = arrRemain[strColName].ToString();
                        rptReport.Fields[strEff].Text = arrEffective[strColName].ToString();

                        try
                        {
                            arrExcelStandard[0, i - 1] = Decimal.ToDouble((decimal)arrStandardCapacity[strColName]);
                        }
                        catch {}
                        try
                        {
                            arrExcelActual[0, i - 1] = Decimal.ToDouble((decimal)arrActual[strColName]);
                        }
                        catch {}
                    }
                    // total field
                    rptReport.Fields["fldStandardCapacityD"].Text      = arrStandardCapacity["Total"].ToString();
                    rptReport.Fields["fldTotalRequiredCapacityD"].Text = arrActual["Total"].ToString();
                    rptReport.Fields["fldRemainCapacityD"].Text        = arrRemain["Total"].ToString();
                    rptReport.Fields["fldEffectiveD"].Text             = arrEffective["Total"].ToString();

                    switch (intDaysInMonth)
                    {
                    case 28:
                        objXLS.GetRange("A1", "AB1").Value2 = arrExcelColumnHeading;
                        objXLS.GetRange("A2", "AB2").Value2 = arrExcelStandard;
                        objXLS.GetRange("A3", "AB3").Value2 = arrExcelActual;
                        break;

                    case 29:
                        objXLS.GetRange("A1", "AC1").Value2 = arrExcelColumnHeading;
                        objXLS.GetRange("A2", "AC2").Value2 = arrExcelStandard;
                        objXLS.GetRange("A3", "AC3").Value2 = arrExcelActual;
                        break;

                    case 30:
                        objXLS.GetRange("A1", "AD1").Value2 = arrExcelColumnHeading;
                        objXLS.GetRange("A2", "AD2").Value2 = arrExcelStandard;
                        objXLS.GetRange("A3", "AD3").Value2 = arrExcelActual;
                        break;

                    default:
                        objXLS.GetRange("A1", "AE1").Value2 = arrExcelColumnHeading;
                        objXLS.GetRange("A2", "AE2").Value2 = arrExcelStandard;
                        objXLS.GetRange("A3", "AE3").Value2 = arrExcelActual;
                        break;
                    }

                    ChartObject chart = objXLS.GetChart("DetailChart");
//					SeriesCollection serieSC = (SeriesCollection) chart.Chart.SeriesCollection(0);
                    chart.Chart.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap, XlPictureAppearance.xlScreen);
                    Image image = (Image)Clipboard.GetDataObject().GetData(typeof(Bitmap));
                    fldChart.Visible = true;
                    fldChart.Text    = "";
                    fldChart.Picture = image;

                    chart = objXLS.GetChart("Chart 12");
                    chart.Chart.CopyPicture(XlPictureAppearance.xlScreen, XlCopyPictureFormat.xlBitmap, XlPictureAppearance.xlScreen);
                    image = (Image)Clipboard.GetDataObject().GetData(typeof(Bitmap));
                    fldTotalChart.Visible = true;
                    fldTotalChart.Text    = "";
                    fldTotalChart.Picture = image;

                    #endregion
                }
                catch (Exception ex)
                {
                    Debug.WriteLine(ex.ToString());
                }
                finally
                {
                    #region SAVE, CLOSE EXCEL FILE CONTAIN REPORT

                    objXLS.CloseWorkbook();
                    objXLS.Dispose();
                    objXLS = null;

                    #endregion
                }

                #endregion BUILD CHART
            }

            #region MODIFY THE REPORT LAYOUT

            #region PUSH PARAMETER VALUE

            const string REPORTFLD_PARAMETER_CCN            = "fldParameterCCN";
            const string REPORTFLD_PARAMETER_MONTH          = "fldParameterMonth";
            const string REPORTFLD_PARAMETER_YEAR           = "fldParameterYear";
            const string REPORTFLD_PARAMETER_PRODUCTIONLINE = "fldParameterProductionLine";
            const string REPORTFLD_PARAMETER_WORKCENTER     = "fldParameterWorkCenter";
            string       strCCN = GetCCNCode(intCCNID);
            rptReport.Fields[REPORTFLD_PARAMETER_CCN].Text   = strCCN;
            rptReport.Fields[REPORTFLD_PARAMETER_MONTH].Text = pstrMonth;
            rptReport.Fields[REPORTFLD_PARAMETER_YEAR].Text  = pstrYear;
            string strProductionLine = GetProCodeAndName(intProductionLineID);
            rptReport.Fields[REPORTFLD_PARAMETER_PRODUCTIONLINE].Text = strProductionLine;
            string strWorkCenter = GetWCCodeAndName(intWorkCenterID);
            rptReport.Fields[REPORTFLD_PARAMETER_WORKCENTER].Text = strWorkCenter;

            #endregion

            #endregion

            rptReport.DataSource.Recordset = dtbResult;
            rptReport.Render();
            C1PrintPreviewDialog ppvViewer = new C1PrintPreviewDialog();
            ppvViewer.FormTitle             = "Compare Actual And Standard Capacity";
            ppvViewer.ReportViewer.Document = rptReport.Document;
            ppvViewer.Show();

            #endregion

            return(dtbResult);
        }
Example #8
0
        public DataTable ExecuteReport(string pstrCCNID, string pstrMasLocID, string pstrPartyIDList, string pstrSaleOrderIDList, string pstrProductIDList)
        {
            try
            {
                const string DATE_FORMAT   = "dd-MM-yyyy HH:mm";
                const string REPORT_NAME   = "SaleOrderManagementReport";
                const string REPORT_LAYOUT = "SaleOrderManagementReport.xml";

                const string RPT_PAGE_HEADER = "PageHeader";
                //Report field names
                const string RPT_TITLE_FIELD = "fldTitle";

                const string RPT_CCN             = "CCN";
                const string RPT_SO_NO           = "SO No.";
                const string RPT_CUSTOMER        = "Customer";
                const string RPT_PART_NUMBER     = "Part Number";
                const string RPT_MASTER_LOCATION = "Master Location";

                DataTable dtbTranHis = GetSaleOrderManagementData(pstrCCNID, pstrMasLocID, pstrPartyIDList, pstrSaleOrderIDList, pstrProductIDList);

                //Create builder object
                ReportBuilder reportBuilder = new ReportBuilder();
                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbTranHis;

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_LAYOUT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // And show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();


                //Draw parameters
                System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
                string strCode = GetCCNInfoByID(pstrCCNID);
                arrParamAndValue.Add(RPT_CCN, strCode);

                //Master Location
                strCode = GetMasterLocationInfoByID(pstrMasLocID);
                arrParamAndValue.Add(RPT_MASTER_LOCATION, strCode);

                //Party Information
                if (pstrPartyIDList != null && pstrPartyIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_CUSTOMER, GetPartyInfo(pstrPartyIDList));
                }

                //Sale Order Information
                if (pstrSaleOrderIDList != null && pstrSaleOrderIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_SO_NO, GetSaleOrderInfo(pstrSaleOrderIDList));
                }

                //Product Information
                if (pstrProductIDList != null && pstrProductIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_PART_NUMBER, GetProductInfo(pstrProductIDList));
                }

                //Anchor the Parameter drawing canvas cordinate to the fldTitle
                C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FIELD);
                double            dblStartX = fldTitle.Left;
                double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
                reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
                reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FIELD).Text;
                }
                catch {}

                reportBuilder.RefreshReport();
                printPreview.Show();

                return(dtbTranHis);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #9
0
        /// <summary>
        /// Build and show Delivery To Customer Report
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <author> Tuan TQ, 06 Dec, 2005</author>
        public DataTable ExecuteReport(string pstrCCNID, string pstrMonth, string pstrYear, string pstrPartyID, string pstrCategoryID, string pstrProductID)
        {
            try
            {
                const string DELIVERY_TO_CUSTOMER_REPORT = "Delivery2CustomerByMonthReport.xml";
                const string REPORT_NAME     = "Delivery2CustomerByMonthReport";
                const string RPT_TITLE_FIELD = "fldTitle";

                DataTable dtbResult    = null;
                DataTable dtbTransform = null;

                int iReportMonth = int.Parse(pstrMonth);
                int iReportYear  = int.Parse(pstrYear);

                //Get delivery to customer data
                dtbResult = GetDelivery2CustomerData(pstrCCNID, pstrMonth, pstrYear, pstrPartyID, pstrCategoryID, pstrProductID);

                //Return if data is null or no data
                if (dtbResult == null)
                {
                    return(null);
                }

                //Get total days in report month
                int iDaysInMonth = DateTime.DaysInMonth(iReportYear, iReportMonth);

                //Transform Data
                dtbTransform = BuildReportTable(dtbResult, iDaysInMonth);

                //Return if data is null or no data
                if (dtbTransform == null)
                {
                    return(null);
                }

                //Create builder object
                ReportWithSubReportBuilder reportBuilder = new ReportWithSubReportBuilder();

                //Set report name
                reportBuilder.ReportName = REPORT_NAME;
                //Set Datasource
                reportBuilder.SourceDataTable = dtbTransform;
                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = DELIVERY_TO_CUSTOMER_REPORT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // and show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();

                //Change report header & column header
                ChangeReportDisplayInfo(reportBuilder, pstrCCNID, pstrYear, pstrMonth, pstrPartyID, pstrCategoryID, pstrProductID);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FIELD).Text;
                }
                catch {}

                reportBuilder.RefreshReport();
                printPreview.Show();

                //return table
                return(dtbResult);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #10
0
        public DataTable ExecuteReport(string pstrCCN, string pstrCategory, string pstrModel, string pstrSource, string pstrType, string pstrMakeItem)
        {
            try
            {
                //const char UNCHECK_SQUARE_CHAR = (char)111;
                //const char CHECK_SQUARE_CHAR = (char)120;
                //const char SPACE_CHAR = (char)32;

                //Report name
                const string REPORT_NAME   = "ItemListReport";
                const string REPORT_LAYOUT = "ItemListReport.xml";

                const string RPT_HEADER = "Header";
                //Report field names
                const string RPT_TITLE_FIELD = "fldTitle";
                //Report field names
                const string RPT_CCN       = "CCN";
                const string RPT_CATEGORY  = "Category";
                const string RPT_MODEL     = "Model";
                const string RPT_SOURCE    = "Source";
                const string RPT_TYPE      = "Type";
                const string RPT_MAKE_ITEM = "Make";

                DataTable dtbItemList = GetItemListData(pstrCCN, pstrCategory, pstrModel, pstrSource, pstrType, pstrMakeItem);

                //Create builder object
                ReportWithSubReportBuilder reportBuilder = new ReportWithSubReportBuilder();
                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbItemList;

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_LAYOUT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // and show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();

                //Draw parameters
                System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
                arrParamAndValue.Add(RPT_CCN, pstrCCN);
                if (pstrCategory != string.Empty)
                {
                    arrParamAndValue.Add(RPT_CATEGORY, pstrCategory);
                }

                if (pstrModel != string.Empty)
                {
                    arrParamAndValue.Add(RPT_MODEL, pstrModel);
                }

                if (pstrSource != string.Empty)
                {
                    arrParamAndValue.Add(RPT_SOURCE, pstrSource);
                }

                if (pstrType != string.Empty)
                {
                    arrParamAndValue.Add(RPT_TYPE, pstrType);
                }

                if (pstrMakeItem.ToUpper().Equals("TRUE") || pstrMakeItem.Equals("1"))
                {
                    arrParamAndValue.Add(RPT_MAKE_ITEM, "x");
                }

                //Anchor the Parameter drawing canvas cordinate to the fldTitle
                C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FIELD);
                double            dblStartX = fldTitle.Left;
                double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
                reportBuilder.GetSectionByName(RPT_HEADER).CanGrow = true;
                reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FIELD).Text;
                }
                catch {}

                //Show report
                reportBuilder.RefreshReport();
                printPreview.Show();

                return(dtbItemList);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #11
0
        /// <summary>
        /// Main function, generate the result data Table for the REPORT VIEWER
        /// </summary>
        /// <param name="pstrCCNID"></param>
        /// <returns></returns>
        public DataTable ExecuteReport(string pstrCCNID, string pstrYear, string pstrMonth, string pstrMPSCycleID, string pstrProductionLineID)
        {
            //const string METHOD_NAME = ".ExecuteReport()";
            const string TABLE_NAME     = "WorkingSchemeReport";
            const string SUB_TABLE_NAME = "ShiftTotalReport";

            string       REPORT_NAME        = "WorkingSchemeReport";
            const string SUB_REPORT_NAME    = "ShiftTotalReport";
            string       REPORT_LAYOUT_FILE = "WorkingSchemeReport.xml";



            short COPIES = 1;

            const string ENDSTOCK         = "EndStock";
            const string CHANGECATEGORY   = "Change Category";
            const string LEADTIME         = "Lead Time";
            const string REQUIRECAPACITY  = "Require Capacity";
            const string STANDARDCAPACITY = "Standard Capacity";
            const string COMPARESECOND    = "Compare Second";
            const string COMPAREPERCENT   = "Compare Percent";

            string strFromDate = string.Format("{0}-{1}-01", pstrYear, pstrMonth);              // begin date of the selected month


            const string REPORTFLD_WORKINGDAYS = "fldParameterWorkingdays";
            const string REPORTFLD_OFFDAYS     = "fldParameterOffdays";

            const string REPORTFLD_PARAMETER_CCN            = "fldParameterCCN";
            const string REPORTFLD_PARAMETER_YEAR           = "fldParameterYear";
            const string REPORTFLD_PARAMETER_MONTH          = "fldParameterMonth";
            const string REPORTFLD_PARAMETER_CYCLE          = "fldParameterCycle";
            const string REPORTFLD_PARAMETER_PRODUCTIONLINE = "fldParameterProductionLine";

            int nCCNID            = int.Parse(pstrCCNID);
            int nYear             = int.Parse(pstrYear);
            int nMonth            = int.Parse(pstrMonth);
            int nCycle            = int.Parse(pstrMPSCycleID);
            int nProductionLineID = int.Parse(pstrProductionLineID);
            int nWorkingDays;
            int nOffDays;

            string strCCN            = string.Empty;
            string strCycle          = string.Empty;
            string strProductionLine = string.Empty;

            #region GETTING THE PARAMETER
            PCSComUtils.Common.BO.UtilsBO boUtil = new PCSComUtils.Common.BO.UtilsBO();
            PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO objBO = new PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO();
            strCCN            = boUtil.GetCCNCodeFromID(nCCNID);
            strCycle          = objBO.GetMPSCycleFromID(nCycle) + "-" + objBO.GetMPSCycleDescriptionFromID(nCycle);
            strProductionLine = objBO.GetProductLineCodeFromID(nProductionLineID) + "-" + objBO.GetProductLineNameFromID(nProductionLineID);

            // refer to mr.TuanTQ to get WOrkingDayInMonth
            nWorkingDays = GetWorkingDayInMonth(nMonth, nYear);
            nOffDays     = DateTime.DaysInMonth(nYear, nMonth) - nWorkingDays;

            #endregion

            System.Data.DataTable dtbSourceData;
            System.Data.DataTable dtbSubReportData;

            OleDbConnection oconPCS = null;
            OleDbCommand    ocmdPCS = null;
            string          strSql  = string.Empty;

            #region BUILD THE DATA TABLE

            try
            {
                DataSet dstPCS = new DataSet();
                oconPCS = null;
                ocmdPCS = null;

                #region SQL Query
                strSql =

                    " Declare @strFromDate smalldatetime " +
                    " Declare @pstrCCNID int " +
                    " Declare @pstrProductionLineID int " +
                    " Declare @pstrMPSCycleID int " +
                    " Declare @pstrMonth char(2) " +
                    " Declare @pstrYear char(4) " +
                    "  " +
                    " Declare @pstrInArray varchar(40) " +
                    " Declare @pstrOutArray varchar(40) " +
                    "  " +
                    "  " +
                    " Set @strFromDate = '" + pstrYear + "-" + nMonth.ToString("00") + "-01' " +
                    " Set @pstrCCNID = " + pstrCCNID + " " +
                    " Set @pstrProductionLineID = " + pstrProductionLineID + " " +
                    " Set @pstrMPSCycleID = " + pstrMPSCycleID + " " +
                    " Set @pstrYear = '" + pstrYear + "' " +
                    " Set @pstrMonth = '" + nMonth.ToString("00") + "' " +
                    "  " +
                    "  " +
                    " select   " +
                    " P.ProductID as [ProductID], " +
                    " ITM_Category.Code as [Category], " +
                    " P.Code as [Part Number], " +
                    " P.Description as [Part Name], " +
                    " P.Revision as [Model], " +
                    " IsNull(CPOTable.Quantity,0) as [Plan], " +
                    " IsNull(BeginStockTable.[Begin Stock],0.00) as [Begin Stock], " +
                    " (IsNull(BeginStockTable.[Begin Stock],0) + IsNull(CPOTable.Quantity,0)) As [EndStock], " +
                    "  " +
                    "  " +
                    " CAST(IsNull((ChangeTimeTable.ChangeTime) , 0.00) as decimal(20,5) ) as [Change Category], " +
                    "  " +
                    " [Lead Time] =  " +
                    " CASE " +
                    " WHEN ITM_Routing.Pacer = 'L' THEN ITM_Routing.LaborSetupTime + ITM_Routing.LaborRunTime " +
                    " WHEN ITM_Routing.Pacer = 'M' THEN ITM_Routing.MachineSetupTime + ITM_Routing.MachineRunTime  " +
                    " WHEN ITM_Routing.Pacer = 'B' THEN  ITM_Routing.MachineRunTime + ITM_Routing.LaborRunTime  " +
                    " END, " +
                    "  " +
                    " 0.00 as [Require Capacity] " +
                    "  " +
                    " from  " +
                    " MST_WorkCenter join ITM_Routing " +
                    " on MST_WorkCenter.WorkCenterID = ITM_Routing.WorkCenterID and ITM_Routing.Type = 0 " +
                    " left join PRO_ProductionLine " +
                    " on MST_WOrkCenter.ProductionLineID = PRO_ProductionLine.ProductionLineID  " +
                    " join ITM_Product as P " +
                    " on P.ProductID = ITM_Routing.ProductID " +
                    " join ITM_Category " +
                    " on P.CategoryID = ITM_Category.CategoryID " +
                    " join PRO_WCCapacity " +
                    " on MST_WorkCenter.WorkCenterID = PRO_WCCapacity.WorkCenterID " +
                    " join PRO_ShiftCapacity " +
                    " on PRO_WCCapacity.WCCapacityID = PRO_ShiftCapacity.WCCapacityID " +
                    " join PRO_Shift " +
                    " on PRO_ShiftCapacity.ShiftID = PRO_Shift.ShiftID  " +
                    "  " +
                    "  " +
                    " /* --######-- BEGIN Get Begin  Quantity of Product */ " +
                    " left join " +
                    " ( " +
                    " 		SELECT  DISTINCT  "+
                    " 					ITM_Product.ProductID, "+
                    "  " +
                    " 					( "+
                    " 				ISNULL(IV_MasLocCache.OHQuantity, 0)  "+
                    "  " +
                    " 					-  (SELECT ISNULL(SUM(TransQuantity), 0)  "+
                    " 					FROM v_TransactionHistory inFrom_Today_TransHis  "+
                    " 					WHERE ProductID = ITM_Product.ProductID "+
                    " 							AND CCNID = @pstrCCNID "+
                    " 								AND PostDate BETWEEN  @strFromDate  AND GetDate() "+
                    " 								AND TranTypeID IN (8, 11, 13, 19, 20, 16, 17) "+
                    " 					)   "+
                    "  " +
                    " 					+  (SELECT ISNULL(SUM(TransQuantity), 0)  "+
                    " 								FROM  v_TransactionHistory   "+
                    " 								WHERE ProductID = ITM_Product.ProductID "+
                    " 									AND CCNID = @pstrCCNID "+
                    " 									AND PostDate BETWEEN @strFromDate  AND GetDate() "+
                    " 									AND TranTypeID IN (12, 14, 15) "+
                    " 					)             "+
                    " 				) "+
                    " 					as [Begin Stock] "+
                    "  " +
                    " 		FROM ITM_Product     "+
                    " 		INNER JOIN IV_MasLocCache ON ITM_Product.ProductID = IV_MasLocCache.ProductID "+
                    " 		WHERE ITM_Product.CCNID = @pstrCCNID  "+
                    "  " +
                    " 		GROUP BY  "+
                    " 		ITM_Product.ProductID, "+
                    " 		IV_MasLocCache.OHQuantity  "+
                    "  " +
                    " ) " +
                    " as BeginStockTable " +
                    " on P.ProductID = BeginStockTable.ProductID " +
                    " /* ######-- END Get Begin  Quantity of Product */ " +
                    "  " +
                    "  " +
                    " /* BEGIN: Getting the Change time of Product  */ " +
                    " left join   " +
                    " ( " +
                    " 	select  "+
                    " 	CCMatrix.DestProductID as [ProductID], "+
                    " 	Sum(CCMatrix.ChangeTime) as [ChangeTime] "+
                    " 	 "+
                    " 	from PRO_ChangeCategoryMatrix as CCMatrix "+
                    " 	 "+
                    " 	/*BEGIN: Join to get condition on parameter: ProductionLineID*/ "+
                    " 	join PRO_ChangeCategoryMaster CCMaster  "+
                    " 	on CCMaster.ChangeCategoryMasterID = CCMatrix.ChangeCategoryMasterID "+
                    " 	join MST_WorkCenter "+
                    " 	on MST_WorkCenter.WorkCenterID = CCMaster.WorkCenterID "+
                    " 	and MST_WorkCenter.ProductionLineID = @pstrProductionLineID "+
                    " 	and MST_WorkCenter.CCNID = @pstrCCNID "+
                    " 	/*END: Join to get condition on parameter: CCNID, ProductionLineID*/ "+
                    " 	 "+
                    " 	group by  "+
                    " 	DestProductID "+
                    " ) " +
                    " as ChangeTimeTable " +
                    " on P.ProductID = ChangeTimeTable.ProductID " +
                    " /*-- END: Getting the Change time of Product  */ " +
                    "  " +
                    "  " +
                    "  " +
                    " /* BEGIN GETTING CPO PLAN QUANTITY  */ " +
                    " left join   " +
                    " ( " +
                    " 	SELECT      "+
                    " 	MTR_CPO.MPSCycleOptionMasterID, "+
                    " 	ITM_Product.ProductID,  "+
                    " 	ITM_Product.Revision AS [Model],  "+
                    " 	ITM_Product.Code AS [Part Number],   "+
                    " /*	--DATEPART(yyyy, MTR_CPO.DueDate) as [Year], */ "+
                    " /*	--DATEPART(mm, MTR_CPO.DueDate)as [Month],  */ "+
                    " 	SUM(MTR_CPO.Quantity) AS [Quantity]  "+
                    " 	 "+
                    " 	FROM        "+
                    " 	MTR_CPO  "+
                    " 	  INNER JOIN MST_CCN  "+
                    " 	  ON MTR_CPO.CCNID = MST_CCN.CCNID   "+
                    " 	INNER JOIN ITM_Product  "+
                    " 	  ON MTR_CPO.ProductID = ITM_Product.ProductID "+
                    " 	left outer JOIN ITM_Category  "+
                    " 	  ON ITM_Product.CategoryID = ITM_Category.CategoryID  "+
                    " 	 "+
                    " 	WHERE     "+
                    " 	MTR_CPO.CCNID = @pstrCCNID AND   "+
                    " 	MTR_CPO.MPSCycleOptionMasterID = @pstrMPSCycleID AND  "+
                    " 	DATEPART(yyyy, MTR_CPO.DueDate) = @pstrYear AND  "+
                    " 	DATEPART(mm, MTR_CPO.DueDate) = @pstrMonth   "+
                    " 	 "+
                    " 	GROUP BY    "+
                    " 	MTR_CPO.MPSCycleOptionMasterID, "+
                    " 	MST_CCN.Code,  "+
                    " 	ITM_Category.Code,   "+
                    " 	ITM_Product.ProductID, "+
                    " 	ITM_Product.Code,  "+
                    " 	ITM_Product.Description,  "+
                    " 	ITM_Product.Revision, "+
                    " 	DatePart(yyyy,MTR_CPO.DueDate),  "+
                    " 	DatePart(mm,MTR_CPO.DueDate) "+
                    " ) " +
                    " as CPOTable " +
                    " on P.ProductID = CPOTable.ProductID " +
                    " /* END GETTING CPO PLAN QUANTITY   */ " +
                    "  " +
                    "  " +
                    "  " +
                    "  " +
                    " WHERE " +
                    " PRO_ProductionLine.ProductionLineID = @pstrProductionLineID " +
                    " and DATEPART(yyyy, PRO_WCCapacity.BeginDate ) <= @pstrYear " +
                    " and DATEPART(yyyy, PRO_WCCapacity.EndDate ) >= @pstrYear " +
                    " and DATEPART(mm, PRO_WCCapacity.BeginDate ) <= @pstrMonth " +
                    " and DATEPART(mm, PRO_WCCapacity.EndDate ) >= @pstrMonth " +
                    " and MST_WOrkCenter.IsMain = 1 " +
                    "  " +
                    "  " +
                    " /* GROUP BY of outside query*/ " +
                    " group by 			 "+
                    " P.ProductID, " +
                    " ITM_Category.Code, " +
                    " P.Code, " +
                    " P.Description, " +
                    " P.Revision, " +
                    " CPOTable.Quantity,  " +
                    " BeginStockTable.[Begin Stock], " +
                    "  " +
                    " (IsNull(CPOTable.Quantity,0) - IsNull(BeginStockTable.[Begin Stock],0)), " +
                    "  " +
                    " ITM_Routing.Pacer, " +
                    " ITM_Routing.LaborSetupTime, " +
                    " ITM_Routing.LaborRunTime, " +
                    " ITM_Routing.MachineSetupTime, " +
                    " ITM_Routing.MachineRunTime, " +
                    " CAST(IsNull((ChangeTimeTable.ChangeTime) , 0.00) as decimal(20,5) ) " +
                    "  " +
                    " Order by [Category],[Part Number],[Model] " +
                    "  " +
                    "  " +
                    "  " +
                    " /**********************************************************************************/ " +
                    " /**********************************************************************************/ " +
                    " /**********************************************************************************/ " +
                    "  " +
                    "  " +
                    " /* BEGIN StandardCapacity caculate */ " +
                    " select   " +
                    " PRO_Shift.ShiftDesc as [Shift], " +
                    " sum(PRO_WCCapacity.Capacity) as [Standard Capacity] " +
                    "  " +
                    " from  " +
                    " MST_WorkCenter " +
                    " join PRO_WCCapacity " +
                    " on MST_WorkCenter.WorkCenterID = PRO_WCCapacity.WorkCenterID " +
                    " join PRO_ShiftCapacity " +
                    " on PRO_WCCapacity.WCCapacityID = PRO_ShiftCapacity.WCCapacityID " +
                    " join PRO_Shift " +
                    " on PRO_ShiftCapacity.ShiftID = PRO_Shift.ShiftID  " +
                    "  " +
                    " /* left join MTR_CPO " +
                    " on MTR_CPO.ProductID = ITM_Product.ProductID " +
                    " and MTR_CPO.MPSCycleOptionMasterID = @pstrMPSCycleID " +
                    " */ " +
                    "  " +
                    " WHERE " +
                    " MST_WorkCenter.ProductionLineID = @pstrProductionLineID " +
                    " and PRO_WCCapacity.CCNID = @pstrCCNID " +
                    " and MST_WOrkCenter.IsMain = 1 " +
                    "  " +
                    " and DATEPART(yyyy, PRO_WCCapacity.BeginDate ) <= @pstrYear " +
                    " and DATEPART(yyyy, PRO_WCCapacity.EndDate ) >= @pstrYear " +
                    " and DATEPART(mm, PRO_WCCapacity.BeginDate ) <= @pstrMonth " +
                    " and DATEPART(mm, PRO_WCCapacity.EndDate ) >= @pstrMonth " +
                    "  " +
                    "  " +
                    " group by  " +
                    " PRO_Shift.ShiftDesc " +
                    "  " +
                    " /* END StandardCapacity caculate */ " +
                    "  " +
                    "  ";

                #endregion



                oconPCS = new OleDbConnection(mConnectionString);
                ocmdPCS = new OleDbCommand(strSql, oconPCS);

                ocmdPCS.Connection.Open();
                OleDbDataAdapter odadPCS = new OleDbDataAdapter(ocmdPCS);
                odadPCS.Fill(dstPCS);

                if (dstPCS.Tables.Count > 0)
                {
                    dtbSourceData    = dstPCS.Tables[0].Copy();
                    dtbSubReportData = dstPCS.Tables[1].Copy();
                }
                else
                {
                    dtbSourceData    = new DataTable();
                    dtbSubReportData = new DataTable();
                }
            }
            catch (OleDbException ex)
            {
                throw new Exception(strSql, ex);
            }
            finally
            {
                if (oconPCS != null)
                {
                    if (oconPCS.State != ConnectionState.Closed)
                    {
                        oconPCS.Close();
                    }
                }
            }
            #endregion

            #region TRANSFORM DATATABLE FOR REPORT
            // only re-calculate Require Capacity, Compare Second, and Compare Percent column

            /// Calculate the Require Capacity
            foreach (DataRow drow in dtbSourceData.Rows)
            {
                drow[REQUIRECAPACITY] = (decimal)drow[ENDSTOCK] * (decimal)drow[LEADTIME] + (decimal)drow[CHANGECATEGORY];
            }

            decimal decSumOfRequireCapacity = 0;
            /// calculate the Sum of Require Capacity
            foreach (DataRow drow in dtbSourceData.Rows)
            {
                decSumOfRequireCapacity += (decimal)drow[REQUIRECAPACITY];
            }


            dtbSubReportData.Columns.Add(COMPARESECOND, typeof(System.Decimal));
            dtbSubReportData.Columns.Add(COMPAREPERCENT);

            /// calculate the 2 Compare Column
            foreach (DataRow drow in dtbSubReportData.Rows)
            {
                drow[COMPARESECOND] = decSumOfRequireCapacity - (decimal)drow[STANDARDCAPACITY];

                if ((decimal)drow[STANDARDCAPACITY] != Decimal.Zero)
                {
                    decimal decPercentValue = (decSumOfRequireCapacity * 100) / ((decimal)drow[STANDARDCAPACITY]);                      /// Percent
                    drow[COMPAREPERCENT] = decPercentValue.ToString("#,##0.00") + "%";
                }
            }


            #endregion

            #region RENDER REPORT

            ReportWithSubReportBuilder objRB = new ReportWithSubReportBuilder();

            objRB.ReportName      = REPORT_NAME;
            objRB.SourceDataTable = dtbSourceData;
            objRB.SubReportDataSources.Add(SUB_REPORT_NAME, dtbSubReportData);

            objRB.ReportDefinitionFolder = mstrReportDefinitionFolder;
            objRB.ReportLayoutFile       = REPORT_LAYOUT_FILE;
            objRB.UseLayoutFile          = true;
            objRB.MakeDataTableForRender();

            // and show it in preview dialog
            PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();


            //Attach report viewer
            objRB.ReportViewer = printPreview.ReportViewer;
            objRB.RenderReport();



/*
 #region INIT REPORT BUIDER OBJECT
 *                      try
 *                      {
 *                              objRB.ReportDefinitionFolder = mstrReportDefinitionFolder;
 *                              objRB.ReportLayoutFile = REPORT_LAYOUT_FILE;
 *                              if(objRB.AnalyseLayoutFile() == false)
 *                              {
 *                                      return new DataTable();
 *                              }
 *                              //objRB.UseLayoutFile = objRB.AnalyseLayoutFile();	// use layout file if any , auto drawing if not found layout file
 *                              objRB.UseLayoutFile = true;	// always use layout file
 *                      }
 *                      catch
 *                      {
 *                              objRB.UseLayoutFile = false;
 *                      }
 #endregion
 */
//			objRB.MakeDataTableForRender();

            // and show it in preview dialog
//			PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();
//			printPreview.FormTitle = REPORT_NAME;
//			objRB.ReportViewer = printPreview.ReportViewer;

//			objRB.RenderReport();	/// render the parent report

//			/// render the subreport
//			try
//			{
//				C1.C1Report.Field fldSubReport = objRB.GetFieldByName(SUB_REPORT_NAME);
//
//				fldSubReport.Subreport.Load(mstrReportDefinitionFolder + "\\" + REPORT_LAYOUT_FILE, SUB_REPORT_NAME);
//				fldSubReport.Subreport.DataSource.Recordset = dtbSubReportData;
//				fldSubReport.Subreport.Render();
//			}
//			catch
//			{
//				System.Windows.Forms.MessageBox.Show("Can't get field " + SUB_REPORT_NAME);
//			}

            #region MODIFY THE REPORT LAYOUT

            objRB.DrawPredefinedField(REPORTFLD_WORKINGDAYS, nWorkingDays.ToString());
            objRB.DrawPredefinedField(REPORTFLD_OFFDAYS, nOffDays.ToString());

            #region PUSH PARAMETER VALUE

            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_CCN, strCCN);
            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_YEAR, nYear.ToString("0000"));
            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_MONTH, nMonth.ToString("00"));
            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_CYCLE, strCycle);
            objRB.DrawPredefinedField(REPORTFLD_PARAMETER_PRODUCTIONLINE, strProductionLine);
            #endregion

            #endregion

            objRB.RefreshReport();

            /// force the copies number

            printPreview.FormTitle = objRB.GetFieldByName("fldTitle").Text;
            printPreview.Show();
            #endregion

            UseReportViewerRenderEngine = false;
            mResult = dtbSourceData;
            return(dtbSourceData);
        }
Example #12
0
        public DataTable ExecuteReport(string pstrCCNID, string pstrCategoryID, string pstrModel, string pstrProductID)
        {
            try
            {
                const string REPORT_NAME   = "ItemStandardCostReport";
                const string REPORT_LAYOUT = "ItemStandardCostReport.xml";

                const string RPT_PAGE_HEADER = "PageHeader";

                const string RPT_TITLE_FLD     = "fldTitle";
                const string RPT_CURRENCY_FLD  = "fldCurrency";
                const string RPT_CCN_FLD       = "CCN";
                const string RPT_CATEGORY_FLD  = "Category";
                const string RPT_MODEL_FLD     = "Model";
                const string RPT_PART_NO_FLD   = "Part No.";
                const string RPT_PART_NAME_FLD = "Part Name";

                DataTable dtbData = BuildItemStandardCostData(pstrCCNID, pstrCategoryID, pstrModel, pstrProductID);

                //Create builder object
                ReportBuilder reportBuilder = new ReportBuilder();
                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbData;

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_LAYOUT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // and show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog         printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();
                PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO objBO        = new PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();

                reportBuilder.DrawPredefinedField(RPT_CURRENCY_FLD, GetHomeCurrency(pstrCCNID));

                //Draw parameters
                System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
                string strCode = GetCCNInfoByID(pstrCCNID);
                arrParamAndValue.Add(RPT_CCN_FLD, strCode);

                //Category
                if (pstrCategoryID != null && pstrCategoryID != string.Empty)
                {
                    strCode = objBO.GetCategoryCodeFromID(pstrCategoryID);
                    arrParamAndValue.Add(RPT_CATEGORY_FLD, strCode);
                }

                //Model
                if (pstrModel != null && pstrModel != string.Empty)
                {
                    arrParamAndValue.Add(RPT_MODEL_FLD, pstrModel);
                }

                //Product Information
                if (pstrProductID != null && pstrProductID != string.Empty)
                {
                    Hashtable htbProductInfo = GetProductInfoByID(pstrProductID);

                    arrParamAndValue.Add(RPT_PART_NO_FLD, htbProductInfo[CODE_FLD].ToString());
                    arrParamAndValue.Add(RPT_PART_NAME_FLD, htbProductInfo[DESCRIPTION_FLD].ToString());
                    if (pstrModel == string.Empty || pstrModel == null)
                    {
                        arrParamAndValue.Add(RPT_MODEL_FLD, htbProductInfo[REVISION_FLD].ToString());
                    }
                    else
                    {
                        arrParamAndValue[RPT_MODEL_FLD] = htbProductInfo[REVISION_FLD].ToString();
                    }
                }

                //Anchor the Parameter drawing canvas cordinate to the fldTitle
                C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FLD);
                double            dblStartX = fldTitle.Left;
                double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
                reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
                reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FLD).Text;
                }
                catch
                {
                }

                reportBuilder.RefreshReport();
                printPreview.Show();

                return(dtbData);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #13
0
        public DataTable ExecuteReport(string pstrMonth, string pstrYear, string pstrCustomerIDList)
        {
            try
            {
                const string DATE_FORMAT   = "MMM-yyyy";
                const string REPORT_NAME   = "MonthlyReturnGoodsReceipt";
                const string REPORT_LAYOUT = "MonthlyReturnGoodsReceipt.xml";

                const string RPT_PAGE_HEADER = "PageHeader";

                //Report field names
                const string RPT_TITLE_FIELD = "fldTitle";

                const string RPT_REPORT_MONTH = "Month";
                const string RPT_CUSTOMER     = "Customer";

                DataTable dtbTranHis = GetMonthlyReturnGoodsReceiptData(pstrMonth, pstrYear, pstrCustomerIDList);

                //Create builder object
                ReportBuilder reportBuilder = new ReportBuilder();
                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbTranHis;

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_LAYOUT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // And show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();

                //Draw parameters
                System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();

                //From Date
                if (pstrMonth != null && pstrMonth != string.Empty &&
                    pstrYear != null && pstrYear != string.Empty)
                {
                    DateTime dtmTemp = new DateTime(int.Parse(pstrYear), int.Parse(pstrMonth), 1);
                    arrParamAndValue.Add(RPT_REPORT_MONTH, dtmTemp.ToString(DATE_FORMAT));
                }

                //Customer Information
                if (pstrCustomerIDList != null && pstrCustomerIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_CUSTOMER, GetCustomerInfoByID(pstrCustomerIDList));
                }

                //Anchor the Parameter drawing canvas cordinate to the fldTitle
                C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FIELD);
                double            dblStartX = fldTitle.Left;
                double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
                reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
                reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FIELD).Text;
                }
                catch {}

                reportBuilder.RefreshReport();
                printPreview.Show();

                return(dtbTranHis);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #14
0
        public DataTable ExecuteReport(string pstrCCNID, string pstrMasLocID, string pstrFromDate, string pstrToDate,
                                       string pstrProductIDList, string pstrCustomerIDList, string pstrCurrencyIDList
                                       )
        {
            try
            {
                const string DATE_FORMAT   = "dd-MM-yyyy HH:mm";
                const string REPORT_NAME   = "SaleTransactionHistoryReport";
                const string REPORT_LAYOUT = "SaleTransactionHistoryReport.xml";

                const int FOOTER_HEIGHT = 10;

                const string RPT_PAGE_HEADER            = "PageHeader";
                const string RPT_CONFIRM_SHIP_NO_FOOTER = "ConfirmShipNoFooter";

                //Report field names
                const string RPT_FIELD_PREFIX = "fld";

                const string RPT_TITLE_FIELD = "fldTitle";

                const string RPT_CCN             = "CCN";
                const string RPT_FROM_DATE       = "From Date";
                const string RPT_TO_DATE         = "To Date";
                const string RPT_PART_NUMBER     = "Part Number";
                const string RPT_MASTER_LOCATION = "Master Location";
                const string RPT_CURRENCY        = "Currency";
                const string RPT_CUSTOMER        = "Customer";

                DataTable dtbTranHis = GetSaleTransactionHistoryData(pstrCCNID, pstrMasLocID, pstrFromDate, pstrToDate, pstrProductIDList, pstrCustomerIDList, pstrCurrencyIDList);

                //Create builder object
                ReportBuilder reportBuilder = new ReportBuilder();
                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbTranHis;

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_LAYOUT;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // And show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();

                //Draw parameters
                System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
                string strCode = GetCCNInfoByID(pstrCCNID);
                arrParamAndValue.Add(RPT_CCN, strCode);

                //Master Location
                strCode = GetMasterLocationInfoByID(pstrMasLocID);
                arrParamAndValue.Add(RPT_MASTER_LOCATION, strCode);

                //From Date
                if (pstrFromDate != null && pstrFromDate != string.Empty)
                {
                    arrParamAndValue.Add(RPT_FROM_DATE, DateTime.Parse(pstrFromDate).ToString(DATE_FORMAT));
                }

                //To Date
                if (pstrToDate != null && pstrToDate != string.Empty)
                {
                    arrParamAndValue.Add(RPT_TO_DATE, DateTime.Parse(pstrToDate).ToString(DATE_FORMAT));
                }

                //Product Information
                if (pstrProductIDList != null && pstrProductIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_PART_NUMBER, GetProductInfo(pstrProductIDList));
                }

                //Customer Information
                if (pstrCustomerIDList != null && pstrCustomerIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_CUSTOMER, GetCustomerInfoByID(pstrCustomerIDList));
                }

                //Currency Information
                if (pstrCurrencyIDList != null && pstrCurrencyIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_CURRENCY, GetCurrencyInfoByID(pstrCurrencyIDList));
                }

                //Anchor the Parameter drawing canvas cordinate to the fldTitle
                C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FIELD);
                double            dblStartX = fldTitle.Left;
                double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
                reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
                reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FIELD).Text;
                }
                catch {}

                //Hide footer if items were selected
                if (pstrProductIDList != null && pstrProductIDList != string.Empty)
                {
                    C1.C1Report.Section confirmFooter = reportBuilder.GetSectionByName(RPT_CONFIRM_SHIP_NO_FOOTER);
                    if (confirmFooter != null)
                    {
                        foreach (C1.C1Report.Field field in confirmFooter.Fields)
                        {
                            field.Top     = 0;
                            field.Visible = !(field.Name.StartsWith(RPT_FIELD_PREFIX));
                        }
                        confirmFooter.Height = FOOTER_HEIGHT;
                    }
                }

                reportBuilder.RefreshReport();
                printPreview.Show();

                return(dtbTranHis);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Example #15
0
        /// <summary>
        /// Build and show Detai lItem Price By PO Receipt
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <author> Tuan TQ, 11 Apr, 2006</author>
        public DataTable ExecuteReport(string pstrCCNID,
                                       string pstrMasLocID,
                                       string pstrFromDate,
                                       string pstrToDate,
                                       string pstrCurrencyID,
                                       string pstrExchangeRate,
                                       string pstrProductIDList,
                                       string pstrVendorType,
                                       string pstrVendorIDList
                                       )
        {
            string strPOTypeID = Convert.ToString((int)PCSComUtils.Common.POReceiptTypeEnum.ByInvoice);

            const string DATE_HOUR_FORMAT = "dd-MM-yyyy HH:mm";
            const string NUMERIC_FORMAT   = "#,##0.00";

            const string REPORT_TEMPLATE_LOCAL = "ReceivingMaterialReport_Local.xml";
            const string REPORT_TEMPLATE       = "ReceivingMaterialReport.xml";

            const string RPT_PAGE_HEADER = "PageHeader";

            const string REPORT_NAME     = "ReceivingMaterialReport";
            const string RPT_TITLE_FLD   = "fldTitle";
            const string RPT_COMPANY_FLD = "fldCompany";

            const string RPT_CCN_FLD             = "CCN";
            const string RPT_MASTER_LOCATION_FLD = "Master Location";
            const string RPT_FROM_DATE_FLD       = "From Date";
            const string RPT_TO_DATE_FLD         = "To Date";
            const string RPT_PART_NUMBER_FLD     = "Part Number";
            const string RPT_CURRENCY_FLD        = "Currency";
            const string RPT_EXCHANGE_RATE_FLD   = "Exchange Rate";
            const string RPT_VENDOR_FLD          = "Vendor";
            const string RPT_VENDOR_TYPE_FLD     = "Vendor Type";

            DataTable dtbDataSource = null;

            string strHomeCurrency = GetHomeCurrency(pstrCCNID);

            dtbDataSource = GetReceivingMaterialReportData(pstrCCNID,
                                                           pstrMasLocID,
                                                           pstrFromDate,
                                                           pstrToDate,
                                                           pstrProductIDList,
                                                           pstrCurrencyID,
                                                           pstrExchangeRate,
                                                           strHomeCurrency,
                                                           pstrVendorType,
                                                           pstrVendorIDList);

            //Create builder object
            ReportWithSubReportBuilder reportBuilder = new ReportWithSubReportBuilder();

            //Set report name
            reportBuilder.ReportName = REPORT_NAME;

            //Set Datasource
            reportBuilder.SourceDataTable = dtbDataSource;

            //Set report layout location
            reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
            if (pstrVendorType != null && pstrVendorType != string.Empty)
            {
                if (pstrVendorType.ToUpper() == LOCAL_STRING.ToUpper())
                {
                    reportBuilder.ReportLayoutFile = REPORT_TEMPLATE_LOCAL;
                }
                else
                {
                    reportBuilder.ReportLayoutFile = REPORT_TEMPLATE;
                }
            }
            else
            {
                reportBuilder.ReportLayoutFile = REPORT_TEMPLATE;
            }

            reportBuilder.UseLayoutFile = true;
            reportBuilder.MakeDataTableForRender();

            // and show it in preview dialog
            PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

            //Attach report viewer
            reportBuilder.ReportViewer = printPreview.ReportViewer;
            reportBuilder.RenderReport();

            reportBuilder.DrawPredefinedField(RPT_COMPANY_FLD, GetCompanyFullName());
            //Draw parameters
            System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();

            arrParamAndValue.Add(RPT_CCN_FLD, GetCCNInfoByID(pstrCCNID));
            arrParamAndValue.Add(RPT_MASTER_LOCATION_FLD, GetMasterLocationInfoByID(pstrMasLocID));

            Hashtable htbCurrency = GetCurrencyInfo(pstrCurrencyID);

            if (htbCurrency != null)
            {
                arrParamAndValue.Add(RPT_CURRENCY_FLD, htbCurrency[PRODUCT_CODE_FLD].ToString());

                if (strHomeCurrency == pstrCurrencyID)
                {
                    arrParamAndValue.Add(RPT_EXCHANGE_RATE_FLD, decimal.One.ToString(NUMERIC_FORMAT));
                }
                else
                {
                    if (pstrExchangeRate != string.Empty && pstrExchangeRate != null)
                    {
                        arrParamAndValue.Add(RPT_EXCHANGE_RATE_FLD, decimal.Parse(pstrExchangeRate).ToString(NUMERIC_FORMAT));
                    }
                    else
                    {
                        arrParamAndValue.Add(RPT_EXCHANGE_RATE_FLD, decimal.Parse(htbCurrency[EXCHANGE_RATE_FLD].ToString()).ToString(NUMERIC_FORMAT));
                    }
                }
            }

            if (pstrFromDate != null && pstrFromDate != string.Empty)
            {
                arrParamAndValue.Add(RPT_FROM_DATE_FLD, DateTime.Parse(pstrFromDate).ToString(DATE_HOUR_FORMAT));
            }

            if (pstrToDate != null && pstrToDate != string.Empty)
            {
                arrParamAndValue.Add(RPT_TO_DATE_FLD, DateTime.Parse(pstrToDate).ToString(DATE_HOUR_FORMAT));
            }

            if (pstrProductIDList != null && pstrProductIDList != string.Empty)
            {
                arrParamAndValue.Add(RPT_PART_NUMBER_FLD, GetProductInfo(pstrProductIDList));
            }

            if (pstrVendorType != null && pstrVendorType != string.Empty)
            {
                arrParamAndValue.Add(RPT_VENDOR_TYPE_FLD, pstrVendorType);
            }

            if (pstrVendorIDList != null && pstrVendorIDList != string.Empty)
            {
                arrParamAndValue.Add(RPT_VENDOR_FLD, GetPartyInfo(pstrVendorIDList));
            }

            //Anchor the Parameter drawing canvas cordinate to the fldTitle
            C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FLD);
            double            dblStartX = fldTitle.Left;
            double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;

            reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
            reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

            try
            {
                printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FLD).Text;
            }
            catch
            {}

            reportBuilder.RefreshReport();
            printPreview.Show();

            //return table
            return(dtbDataSource);
        }
Example #16
0
        /// <summary>
        /// Main function, generate the result data Table for the REPORT VIEWER
        /// Modify the REPORT VIEWER to display the report

        /// ------------------------------ MAIN FLOW OF THIS REPORT ----------------------------------
        /// BUILD THE PO LIST TABLE
        ///
        /// GETTING RAW DATA USING DataHelper Class
        /// FILL TO THE DTB TABLE
        ///
        /// RENDER TO REPORT
        ///
        /// SHOW THE REPORT
        /// END -------------------------- MAIN FLOW OF THIS REPORT ----------------------------------
        /// </summary>
        /// <param name="pstrYear"></param>
        /// <param name="pstrMonth"></param>
        /// <param name="pstrPPMDefault"></param>
        /// <param name="pstrPPMDefault">Base Item</param>
        /// <returns></returns>
        public DataTable ExecuteReport(string pstrCCNID,
                                       string pstrYear, string pstrMonth, string pstrPartyID_LIST, string pstrProductID_LIST)
        {
            // custom object to access and modify the dtbPurchaseOrderList
            PLReportDataHelper objPLTable = new PLReportDataHelper(_mConnectionString);

            pnCCNID = int.Parse(pstrCCNID);
            DateTime dtmMonth      = new DateTime(Convert.ToInt32(pstrYear), Convert.ToInt32(pstrMonth), 1);
            DateTime dtmNextMonth  = dtmMonth.AddMonths(1);
            DateTime dtmNext2Month = dtmMonth.AddMonths(2);

            CurrentMonth = dtmMonth;
            NextMonth    = dtmNextMonth;
            Next2Month   = dtmNext2Month;
            PartOrderSheetMultiVendorReport.pstrYear           = pstrYear;
            PartOrderSheetMultiVendorReport.pstrMonth          = pstrMonth;
            PartOrderSheetMultiVendorReport.pstrPartyID_LIST   = pstrPartyID_LIST;
            PartOrderSheetMultiVendorReport.pstrProductID_LIST = pstrProductID_LIST;


            // ------------------------------ MAIN FLOW OF THIS REPORT ----------------------------------
            // ##1## BUILD THE PRODUCTION LINE LIST TABLE
            #region BUILD some RAW DATA TABLE and Array

            objPLTable.GetDataAndCache();
            DataTable dtbPOInMonth      = objPLTable.GetPOInMonth(dtmMonth);
            DataTable dtbPOInNextMonth  = objPLTable.GetPOInMonth(dtmNextMonth);
            DataTable dtbPOInNext2Month = objPLTable.GetPOInMonth(dtmNext2Month);

            // get the range of each verion in selected month
            DataTable dtbScheduleOrigin         = objPLTable.GetDateRange(dtmMonth, pstrPartyID_LIST);
            DataTable dtbScheduleNextOrigin     = objPLTable.GetDateRange(dtmNextMonth, pstrPartyID_LIST);
            DataTable dtbScheduleNextNextOrigin = objPLTable.GetDateRange(dtmNext2Month, pstrPartyID_LIST);

            #region PREPARE
            DataTable dtbResult;
            DataTable dtbResultNext;
            DataTable dtbResultNextNext;

            // contain array of string: 01 02 03 .. of day of month in the dtbResult, except the missing day
            ArrayList arrDueDateHeading = new ArrayList();

            #endregion

            #region BUILDING THE TABLE (getting from database by BO)
            DataSet dstResult = objPLTable.mdst_MAIN_DATA_REPOSITORY;
            dtbResult         = dstResult.Tables[0];
            dtbResultNext     = dstResult.Tables[1];
            dtbResultNextNext = dstResult.Tables[2];
            #endregion

            #endregion BUILD some RAW DATA TABLE

            #region GETTING THE PARAMETER

            #endregion GETTING THE PARAMETER

            #region GETTING THE DATE HEADING
            ArrayList arrDueDate       = GetColumnValuesFromTable(dtbResult, SCHEDULE_DATE);
            DataTable dtbPartyItemList = objPLTable.GetPartyItemList(pstrPartyID_LIST, pstrProductID_LIST);
            ArrayList arrItemList      = new ArrayList();
            if (pstrProductID_LIST != null && pstrProductID_LIST.Trim().Length > 0)
            {
                arrItemList.AddRange(pstrProductID_LIST.Split(','));
            }
            ArrayList arrItems = GetPartyID_PartNoGROUPFromTable(dtbResult, dtbPartyItemList, PARTYID, ITM_ProductTable.PRODUCTID_FLD, arrItemList);

            foreach (DateTime dtm in arrDueDate)
            {
                string strColumnName  = COL_ORDER_PREFIX + dtm.Day.ToString("00");
                string strColumnNameA = COL_ADJUSTMENT_PREFIX + dtm.Day.ToString("00");
                arrDueDateHeading.Add(strColumnName);
                arrDueDateHeading.Add(strColumnNameA);
            }

            #endregion

            #region TRANSFORM ORIGINAL TABLE FOR REPORT

            DataTable dtbTransform = BuildPartOrderSheetTable(arrDueDateHeading);
            dtbTransform.Columns.Add(new DataColumn("OrderMonth", typeof(string)));
            dtbTransform.Columns.Add(new DataColumn("NextMonth", typeof(string)));
            dtbTransform.Columns.Add(new DataColumn("Next2Month", typeof(string)));

            DateTime dtmOrderMonth = new DateTime(
                int.Parse(PartOrderSheetMultiVendorReport.pstrYear),
                int.Parse(PartOrderSheetMultiVendorReport.pstrMonth),
                1);

            dtbTransform.Columns["OrderMonth"].DefaultValue = dtmOrderMonth.ToString(DateFormat).ToUpperInvariant();
            dtbTransform.Columns["NextMonth"].DefaultValue  = dtmOrderMonth.AddMonths(1).ToString(DateFormat).ToUpperInvariant();
            dtbTransform.Columns["Next2Month"].DefaultValue = dtmOrderMonth.AddMonths(2).ToString(DateFormat).ToUpperInvariant();
            // fill data to the dtbTransform
            foreach (string strItem in arrItems)
            {
                // Create DUMMYROW FIRST
                DataRow dtrNew = dtbTransform.NewRow();

                double dblSumRowNext     = 0;
                double dblSumRowNextNext = 0;

                double dblSumRowNextA     = 0;
                double dblSumRowNextNextA = 0;

                string strPartyID     = strItem.Split('#')[0];
                string strPartyFilter = "PartyID = " + strPartyID;
                string strFilter      = string.Format("[{0}]={1} AND [{2}]={3} ",
                                                      PARTYID, strItem.Split('#')[0],
                                                      ITM_ProductTable.PRODUCTID_FLD, strItem.Split('#')[1]);
                string strMySort = string.Format("[{0}] ASC, [{1}] ASC",
                                                 PARTYID, ITM_ProductTable.PRODUCTID_FLD);
                DataRow[] drowRevisionNext     = GetRevisionList(dtbScheduleNextOrigin, strPartyID);
                DataRow[] drowRevisionNextNext = GetRevisionList(dtbScheduleNextNextOrigin, strPartyID);
                DataRow[] drowRevision         = GetRevisionList(dtbScheduleOrigin, strPartyID);

                #region Next Month

                DataRow[] dtrowsNext = dtbResultNext.Select(strFilter, strMySort);
                foreach (DataRow dtr in dtrowsNext)
                {
                    DateTime dtmDay           = ((DateTime)dtr[SCHEDULE_DATE]);
                    string   strDayFilter     = strFilter + " AND [Day] = " + dtmDay.Day;
                    int      intCurrentVerion = -1;
                    try
                    {
                        intCurrentVerion = Convert.ToInt32(drowRevisionNext[0]["PORevision"]);
                        strDayFilter    += " AND PORevision = " + intCurrentVerion.ToString();
                    }
                    catch {}
                    double dblOrderQuantity = 0;
                    try
                    {
                        dblOrderQuantity = Convert.ToDouble(dtbPOInNextMonth.Compute("SUM(" + PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD + ")", strDayFilter));
                    }
                    catch {}
                    dblSumRowNext += dblOrderQuantity;

                    // adjustment of current day
                    double dblAdjustOfDay = 0;
                    if (intCurrentVerion > 0)
                    {
                        string strPreviousFilter = strFilter + " AND [Day] = " + dtmDay.Day;
                        try
                        {
                            strPreviousFilter += " AND PORevision = " + Convert.ToInt32(drowRevisionNext[1]["PORevision"]);
                            double dblOrderPrevious = 0;
                            try
                            {
                                dblOrderPrevious = Convert.ToDouble(dtbPOInNextMonth.Compute("SUM(" + PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD + ")", strPreviousFilter));
                                dblAdjustOfDay   = dblOrderQuantity - dblOrderPrevious;
                            }
                            catch {}
                        }
                        catch
                        {
                            // no adjusment of day
                        }
                    }
                    dblSumRowNextA += dblAdjustOfDay;
                }

                #endregion

                #region Next 2 Month

                DataRow[] dtrowsNextNext = dtbResultNextNext.Select(strFilter, strMySort);
                foreach (DataRow dtr in dtrowsNextNext)
                {
                    DateTime dtmDay           = ((DateTime)dtr[SCHEDULE_DATE]);
                    string   strDayFilter     = strFilter + " AND [Day] = " + dtmDay.Day;
                    int      intCurrentVerion = -1;
                    try
                    {
                        intCurrentVerion = Convert.ToInt32(drowRevisionNextNext[0]["PORevision"]);
                        strDayFilter    += " AND PORevision = " + intCurrentVerion.ToString();
                    }
                    catch {}
                    double dblOrderQuantity = 0;
                    try
                    {
                        dblOrderQuantity = Convert.ToDouble(dtbPOInNext2Month.Compute("SUM(" + PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD + ")", strDayFilter));
                    }
                    catch {}
                    dblSumRowNextNext += dblOrderQuantity;

                    // adjustment of current day
                    double dblAdjustOfDay = 0;
                    if (intCurrentVerion > 0)
                    {
                        string strPreviousFilter = strFilter + " AND [Day] = " + dtmDay.Day;
                        try
                        {
                            strPreviousFilter += " AND PORevision = " + Convert.ToInt32(drowRevisionNextNext[1]["PORevision"]);
                            double dblOrderPrevious = 0;
                            try
                            {
                                dblOrderPrevious = Convert.ToDouble(dtbPOInNext2Month.Compute("SUM(" + PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD + ")", strPreviousFilter));
                                dblAdjustOfDay   = dblOrderQuantity - dblOrderPrevious;
                            }
                            catch {}
                        }
                        catch
                        {
                            // no adjusment
                        }
                    }
                    dblSumRowNextNextA += dblAdjustOfDay;
                }

                #endregion

                #region Current Month

                DataRow[] dtrows = dtbResult.Select(strFilter, strMySort);
                // search the latest row (max revision)
                DataRow drowLatest = FindLatestRow(dtbPOInMonth, strPartyFilter);
                double  dblSumRowA = 0;

                #region foreach schedule date

                foreach (DataRow dtr in dtrows)
                {
                    // fill data to the dummy row
                    // these column is persistance, we always set to the first rows
                    dtrNew[VENDOR]       = dtrows[0][VENDOR];
                    dtrNew["CategoryID"] = dtrows[0]["CategoryID"];
                    dtrNew[PARTNO]       = dtrows[0][PARTNO];
                    dtrNew[PARTNAME]     = dtrows[0][PARTNAME];
                    dtrNew[MODEL]        = dtrows[0][MODEL];
                    dtrNew[UNITPRICE]    = dtrows[0][UNITPRICE];

                    // po no
                    dtrNew["PONO"] = drowLatest["PONO"];
                    // issue date
                    dtrNew[PO_PurchaseOrderMasterTable.ORDERDATE_FLD] = drowLatest[PO_PurchaseOrderMasterTable.ORDERDATE_FLD];
                    // revision
                    dtrNew[PO_PurchaseOrderMasterTable.POREVISION_FLD] = drowLatest[PO_PurchaseOrderMasterTable.POREVISION_FLD];

                    DateTime dtmDay           = ((DateTime)dtr[SCHEDULE_DATE]);
                    string   strDayFilter     = strFilter + " AND [Day] = " + dtmDay.Day;
                    int      intCurrentVerion = -1;
                    try
                    {
                        intCurrentVerion = Convert.ToInt32(drowRevision[0]["PORevision"]);
                        strDayFilter    += " AND PORevision = " + intCurrentVerion.ToString();
                    }
                    catch {}
                    // fill the Quantity of the day to the cell (indicate by column Dxx in this dummy rows)
                    string strDateColumnToFill = COL_ORDER_PREFIX + dtmDay.Day.ToString("00");
                    double dblOrderQuantity    = 0;
                    try
                    {
                        dblOrderQuantity = Convert.ToDouble(dtbPOInMonth.Compute("SUM(" + PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD + ")", strDayFilter));
                    }
                    catch {}
                    dtrNew[strDateColumnToFill] = dblOrderQuantity;

                    // fill the Quantity of the day to the cell (indicate by column Dxx in this dummy rows)
                    strDateColumnToFill = COL_ADJUSTMENT_PREFIX + dtmDay.Day.ToString("00");
                    // adjustment of current day
                    double dblAdjustOfDay = 0;
                    if (intCurrentVerion > 0)
                    {
                        string strPreviousFilter = strFilter + " AND [Day] = " + dtmDay.Day;
                        try
                        {
                            strPreviousFilter += " AND PORevision = " + Convert.ToInt32(drowRevision[1]["PORevision"]);
                            double dblOrderPrevious = 0;
                            try
                            {
                                dblOrderPrevious = Convert.ToDouble(dtbPOInMonth.Compute("SUM(" + PO_DeliveryScheduleTable.DELIVERYQUANTITY_FLD + ")", strPreviousFilter));
                            }
                            catch {}
                            dblAdjustOfDay = dblOrderQuantity - dblOrderPrevious;
                        }
                        catch
                        {
                            // no adjusment
                        }
                    }
                    if (dblAdjustOfDay != 0)
                    {
                        dtrNew[strDateColumnToFill] = dblAdjustOfDay;
                    }
                    dblSumRowA += dblAdjustOfDay;

                    // Order Delivery quantity
                    dtrNew[SUMROWNEXT_O]     = dblSumRowNext;
                    dtrNew[SUMROWNEXTNEXT_O] = dblSumRowNextNext;

                    // Adjustment Quantity
                    dtrNew[SUMROW_A]         = dblSumRowA;
                    dtrNew[SUMROWNEXT_A]     = dblSumRowNextA;
                    dtrNew[SUMROWNEXTNEXT_A] = dblSumRowNextNextA;
                }

                #endregion

                #region for item which have no schedule in this month

                if (dtrows.Length == 0)
                {
                    /// fill data to the dummy row
                    /// these column is persistance, we always set to the first rows
                    DataRow[] drowInfo = dtbPartyItemList.Select(strFilter);
                    dtrNew[VENDOR]       = drowInfo[0][VENDOR];
                    dtrNew["CategoryID"] = drowInfo[0]["CategoryID"];
                    dtrNew[PARTNO]       = drowInfo[0][PARTNO];
                    dtrNew[PARTNAME]     = drowInfo[0][PARTNAME];
                    dtrNew[MODEL]        = drowInfo[0][MODEL];
                    dtrNew[UNITPRICE]    = drowInfo[0][UNITPRICE];

                    // po no
                    dtrNew["PONO"] = drowLatest["PONO"];
                    // issue date
                    dtrNew[PO_PurchaseOrderMasterTable.ORDERDATE_FLD] = drowLatest[PO_PurchaseOrderMasterTable.ORDERDATE_FLD];
                    // revision
                    dtrNew[PO_PurchaseOrderMasterTable.POREVISION_FLD] = drowLatest[PO_PurchaseOrderMasterTable.POREVISION_FLD];

                    /// Order Delivery quantity
                    dtrNew[SUMROWNEXT_O]     = dblSumRowNext;
                    dtrNew[SUMROWNEXTNEXT_O] = dblSumRowNextNext;

                    /// Adjustment Quantity
                    dtrNew[SUMROWNEXT_A]     = dblSumRowNextA;
                    dtrNew[SUMROWNEXTNEXT_A] = dblSumRowNextNextA;
                }

                #endregion

                #endregion

                // add to the transform data table
                dtbTransform.Rows.Add(dtrNew);
            }

            #endregion

            #region render report

            var report = new C1Report();

            #region Load report from definition file

            var filePath = Path.Combine(_mstrReportDefinitionFolder, REPORT_LAYOUT_FILE);
            if (!File.Exists(filePath))
            {
                return(new DataTable());
            }

            string[] arrstrReportInDefinitionFile = report.GetReportInfo(filePath);
            report.Load(filePath, arrstrReportInDefinitionFile[0]);

            #endregion

            #region hightlight sunday column

            var endMonth = dtmOrderMonth.AddMonths(1).AddDays(-1);
            var script   = new StringBuilder();
            for (DateTime day = dtmOrderMonth; day <= endMonth; day = day.AddDays(1))
            {
                if (day.DayOfWeek != DayOfWeek.Sunday)
                {
                    continue;
                }
                var fieldName = string.Format("D{0}Lbl", day.Day.ToString("00"));
                report.Fields[fieldName].BackColor = Color.Yellow;
                report.Fields[fieldName].ForeColor = Color.Red;
                script.AppendLine(string.Format("{0}.BackColor = RGB(255,255,0)", fieldName));
                script.AppendLine(string.Format("{0}.ForeColor = RGB(255,0,0)", fieldName));
            }

            #endregion

            report.ReportName           = REPORT_NAME;
            report.DataSource.Recordset = dtbTransform;
            report.Render();

            ReportBuilder.MarkRedToNegativeNumberField(report);
            report.Render();

            // and show it in preview dialog
            var printPreview = new C1PrintPreviewDialog();
            printPreview.FormTitle             = REPORT_NAME;
            printPreview.ReportViewer.Document = report.Document;
            printPreview.Show();

            UseReportViewerRenderEngine = false;

            #endregion

            _mResult = dtbTransform;
            return(dtbTransform);
        }
Example #17
0
        /// <summary>
        /// Thachnn: 28/10/2005
        /// Preview the report for this form
        /// Using the "InventoryDetailReport.xml" layout
        /// </summary>
        /// <history>Thachnn: 29/12/2005: Add parameter display to the report. Change USECASE.</history>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public DataTable ExecuteReport(string pstrCCNID, string pstrMasterLocationID, string pstrLocationID, string pstrBinID, string pstrCategoryID, string pstrParameterModel)
        {
            #region Constants
            string       mstrReportDefFolder = mstrReportDefinitionFolder;
            const string REPORT_LAYOUT_FILE  = "InventoryDetailReport.xml";
            const string TABLE_NAME          = "InventoryDetailReport";
            const string REPORT_NAME         = "Inventory Detail";

            const string PAGE   = "Page";
            const string HEADER = "Header";

            const string REPORTFLD_TITLE = "fldTitle";

            const string REPORTFLD_COMPANY = "fldCompany";
            const string REPORTFLD_ADDRESS = "fldAddress";
            const string REPORTFLD_TEL     = "fldTel";
            const string REPORTFLD_FAX     = "fldFax";

            const string REPORTFLD_DATETIME = "fldDateTime";

            #endregion

            #region GETTING THE PARAMETER
            PCSComUtils.Common.BO.UtilsBO boUtil = new PCSComUtils.Common.BO.UtilsBO();
            PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO objBO = new PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO();
            string strCCN            = boUtil.GetCCNCodeFromID(int.Parse(pstrCCNID));
            string strMasterLocation = objBO.GetMasterLocationCodeFromID(int.Parse(pstrMasterLocationID)) + ": " + objBO.GetMasterLocationNameFromID(int.Parse(pstrMasterLocationID));

            string strLocation = string.Empty;
            try
            {
                strLocation = objBO.GetLocationCodeFromID(int.Parse(pstrLocationID));
            }
            catch {}

            string strBin = string.Empty;
            try
            {
                strBin = objBO.GetBinCodeFromID(int.Parse(pstrBinID));
            }
            catch {}


            string strCategory = string.Empty;
            try
            {
                strCategory = objBO.GetCategoryCodeFromID(int.Parse(pstrCategoryID));
            }
            catch {}

            #endregion

            float fActualPageSize = 9000f;

            #region  Build dtbResult DataTable
            DataTable dtbResult;
            try
            {
                dtbResult = GetInventoryDetailData(pstrCCNID, pstrMasterLocationID, pstrLocationID, pstrBinID, pstrCategoryID, pstrParameterModel);
            }
            catch
            {
                dtbResult = new DataTable();
            }
            #endregion

            ReportBuilder objRB;
            objRB = new ReportBuilder();

            objRB.ReportName      = REPORT_NAME;
            objRB.SourceDataTable = dtbResult;

            #region INIT REPORT BUIDER OBJECT
            try
            {
                objRB.ReportDefinitionFolder = mstrReportDefinitionFolder;
                objRB.ReportLayoutFile       = REPORT_LAYOUT_FILE;
                if (objRB.AnalyseLayoutFile() == false)
                {
                    //					PCSMessageBox.Show(ErrorCode.MESSAGE_REPORT_TEMPLATE_FILE_NOT_FOUND, MessageBoxIcon.Error);
                    return(new DataTable());
                }
                //objRB.UseLayoutFile = objRB.AnalyseLayoutFile();	// use layout file if any , auto drawing if not found layout file
                objRB.UseLayoutFile = true;                     // always use layout file
            }
            catch
            {
                objRB.UseLayoutFile = false;
                //				PCSMessageBox.Show(ErrorCode.MESSAGE_REPORT_TEMPLATE_FILE_NOT_FOUND,MessageBoxIcon.Error);
            }

            C1.C1Report.Layout objLayout = objRB.Report.Layout;
            fActualPageSize = objLayout.PageSize.Width - (float)objLayout.MarginLeft - (float)objLayout.MarginRight;
            #endregion


            objRB.MakeDataTableForRender();
            //grid.DataSource = objRB.RenderDataTable;

            #region RENDER TO PRINT PREVIEW
            // and show it in preview dialog
            PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();
            printPreview.FormTitle = REPORT_NAME;
            objRB.ReportViewer     = printPreview.ReportViewer;
            objRB.RenderReport();


            #region COMPANY INFO  header information get from system params
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_COMPANY,SystemProperty.SytemParams.Get(SystemParam.COMPANY_NAME));
//			}
//			catch{}
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_ADDRESS,SystemProperty.SytemParams.Get(SystemParam.ADDRESS));
//			}
//			catch{}
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_TEL,SystemProperty.SytemParams.Get(SystemParam.TEL));
//			}
//			catch{}
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_FAX,SystemProperty.SytemParams.Get(SystemParam.FAX));
//			}
//			catch{}

            #endregion

            #region DRAW Parameters

            const string CCN             = "CCN";
            const string MASTER_LOCATION = "Master Location";
            const string LOCATION        = "Location";
            const string BIN             = "Bin";
            const string CATEGORY        = "Category";
            const string MODEL           = "Model";

            System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
            arrParamAndValue.Add(CCN, strCCN);
            arrParamAndValue.Add(MASTER_LOCATION, strMasterLocation);
            if (pstrLocationID.Trim() != string.Empty)
            {
                arrParamAndValue.Add(LOCATION, strLocation);
            }
            if (pstrBinID.Trim() != string.Empty)
            {
                arrParamAndValue.Add(BIN, strBin);
            }
            if (pstrCategoryID.Trim() != string.Empty)
            {
                arrParamAndValue.Add(CATEGORY, strCategory);
            }
            if (pstrParameterModel.Trim() != string.Empty)
            {
                arrParamAndValue.Add(MODEL, pstrParameterModel);
            }

            /// anchor the Parameter drawing canvas cordinate to the fldTitle
            C1.C1Report.Field fldTitle  = objRB.GetFieldByName(REPORTFLD_TITLE);
            double            dblStartX = fldTitle.Left;
            double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
            objRB.GetSectionByName(PAGE + HEADER).CanGrow = true;
            objRB.DrawParameters(objRB.GetSectionByName(PAGE + HEADER), dblStartX, dblStartY, arrParamAndValue, objRB.Report.Font.Size);

            #endregion

            /// there are some hardcode numbers here
            /// but these numbers are use ONLY ONE and ONLY USED HERE, so we don't need to define constant for it.
            objRB.DrawBoxGroup_Madeby_Checkedby_Approvedby(objRB.GetSectionByName(PAGE + HEADER), 15945 - 1400 - 1400 - 1400, 600, 1400, 1300, 200);


            #region DAY--MONTH--YEAR INFO
            DateTime dtm;
            try
            {
                dtm = objUtilBO.GetDBDate();
            }
            catch
            {
                dtm = DateTime.Now;
            }

            try
            {
                objRB.DrawPredefinedField(REPORTFLD_DATETIME, dtm.ToString("dd-MM-yyyy hh:mm"));
            }
            catch {}

            #endregion


            objRB.RefreshReport();
            printPreview.Show();

            #endregion

            UseReportViewerRenderEngine = false;
            mResult = dtbResult;
            return(dtbResult);
        }
Example #18
0
        /// <summary>
        /// Thachnn: 28/10/2005
        /// Preview the report for this form
        /// Using the "InventoryStatusSummaryByMasterLocationReport.xml" layout
        /// </summary>
        /// <history>Thachnn: 29/12/2005: Add parameter display to the report. Change USECASE.</history>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        public DataTable ExecuteReport(string pstrCCNID, string pstrMasterLocationID, string pstrCategoryID, string pstrParameterModel)
        {
            #region Constants
            string       mstrReportDefFolder = mstrReportDefinitionFolder;
            const string REPORT_LAYOUT_FILE  = "InventoryStatusSummaryByMasterLocationReport.xml";
            const string TABLE_NAME          = "InventoryStatusSummaryByMasterLocationReport";
            const string REPORT_NAME         = "Inventory Status Summary By Master Location";

            const string PAGE   = "Page";
            const string HEADER = "Header";

            const string REPORTFLD_TITLE = "fldTitle";

            const string REPORTFLD_COMPANY = "fldCompany";
            const string REPORTFLD_ADDRESS = "fldAddress";
            const string REPORTFLD_TEL     = "fldTel";
            const string REPORTFLD_FAX     = "fldFax";

            const string REPORTFLD_DAY   = "fldDay";
            const string REPORTFLD_MONTH = "fldMonth";
            const string REPORTFLD_YEAR  = "fldYear";


            const string REPORTFLD_CATEGORY     = "fldCategory";
            const string REPORTFLD_PARTNUMBER   = "fldPartNumber";
            const string REPORTFLD_PARTNAME     = "fldPartName";
            const string REPORTFLD_MODEL        = "fldModel";
            const string REPORTFLD_STOCKUM      = "fldStockUM";
            const string REPORTFLD_LOCATION     = "fldLocation";
            const string REPORTFLD_OHQTY        = "fldOHQty";
            const string REPORTFLD_COMMITQTY    = "fldCommitQty";
            const string REPORTFLD_AVAILABLEQTY = "fldAvailableQty";
            const string REPORTFLD_TYPE         = "fldType";
            const string REPORTFLD_SOURCE       = "fldSource";
            const string REPORTFLD_SAFETYSTOCK  = "fldSafetyStock";
            const string REPORTFLD_LOT          = "fldLot";
            const string REPORTFLD_WARNING      = "fldWarning";


            #region QUERY COLUMMS
            const string CATEGORY_COL     = "[Category]";
            const string PARTNUMBER_COL   = "[Part No.]";
            const string PARTNAME_COL     = "[Part Name]";
            const string MODEL_COL        = "[Model]";
            const string STOCKUM_COL      = "[Stock UM]";
            const string LOCATION_COL     = "[Location]";
            const string OHQTY_COL        = "[OH Qty]";
            const string COMMITQTY_COL    = "[Commit Qty]";
            const string AVAILABLEQTY_COL = "[Available Qty]";
            const string TYPE_COL         = "[Type]";
            const string SOURCE_COL       = "[Source]";
            const string SAFETYSTOCK_COL  = "[Safety Stock]";
            const string LOT_COL          = "[Lot]";
            const string WARNING_COL      = "[Warning]";


            #endregion


            #endregion

            #region GETTING THE PARAMETER
            PCSComUtils.Common.BO.UtilsBO boUtil = new PCSComUtils.Common.BO.UtilsBO();
            PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO objBO = new PCSComUtils.Framework.ReportFrame.BO.C1PrintPreviewDialogBO();
            string strCCN            = boUtil.GetCCNCodeFromID(int.Parse(pstrCCNID));
            string strMasterLocation = objBO.GetMasterLocationCodeFromID(int.Parse(pstrMasterLocationID)) + ": " + objBO.GetMasterLocationNameFromID(int.Parse(pstrMasterLocationID));

            string strCategory = string.Empty;
            try
            {
                strCategory = objBO.GetCategoryCodeFromID(pstrCategoryID);
            }
            catch {}

            #endregion

            float fActualPageSize = 9000f;

            #region  Build dtbResult DataTable
            DataTable dtbResult;
            try
            {
                dtbResult = GetInventoryStatusData(pstrCCNID, pstrMasterLocationID, pstrCategoryID, pstrParameterModel);
            }
            catch
            {
                dtbResult = new DataTable();
            }
            #endregion

            ReportBuilder objRB;
            objRB = new ReportBuilder();

            objRB.ReportName      = REPORT_NAME;
            objRB.SourceDataTable = dtbResult;

            #region INIT REPORT BUIDER OBJECT
            try
            {
                objRB.ReportDefinitionFolder = mstrReportDefinitionFolder;
                objRB.ReportLayoutFile       = REPORT_LAYOUT_FILE;
                if (objRB.AnalyseLayoutFile() == false)
                {
                    //					PCSMessageBox.Show(ErrorCode.MESSAGE_REPORT_TEMPLATE_FILE_NOT_FOUND, MessageBoxIcon.Error);
                    return(new DataTable());
                }
                //objRB.UseLayoutFile = objRB.AnalyseLayoutFile();	// use layout file if any , auto drawing if not found layout file
                objRB.UseLayoutFile = true;                     // always use layout file
            }
            catch
            {
                objRB.UseLayoutFile = false;
                //				PCSMessageBox.Show(ErrorCode.MESSAGE_REPORT_TEMPLATE_FILE_NOT_FOUND,MessageBoxIcon.Error);
            }

            C1.C1Report.Layout objLayout = objRB.Report.Layout;
            fActualPageSize = objLayout.PageSize.Width - (float)objLayout.MarginLeft - (float)objLayout.MarginRight;
            #endregion


            objRB.MakeDataTableForRender();
            //grid.DataSource = objRB.RenderDataTable;

            #region RENDER TO PRINT PREVIEW
            // and show it in preview dialog
            PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();
            printPreview.FormTitle = REPORT_NAME;
            objRB.ReportViewer     = printPreview.ReportViewer;
            objRB.RenderReport();


            #region COMPANY INFO  header information get from system params
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_COMPANY,SystemProperty.SytemParams.Get(SystemParam.COMPANY_NAME));
//			}
//			catch{}
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_ADDRESS,SystemProperty.SytemParams.Get(SystemParam.ADDRESS));
//			}
//			catch{}
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_TEL,SystemProperty.SytemParams.Get(SystemParam.TEL));
//			}
//			catch{}
//			try
//			{
//				objRB.DrawPredefinedField(REPORTFLD_FAX,SystemProperty.SytemParams.Get(SystemParam.FAX));
//			}
//			catch{}

            #endregion

            #region DRAW Parameters

            const string CCN             = "CCN";
            const string MASTER_LOCATION = "Master Location";
            const string LOCATION        = "Location";
            const string CATEGORY        = "Category";
            const string MODEL           = "Model";

            System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();
            arrParamAndValue.Add(CCN, strCCN);
            arrParamAndValue.Add(MASTER_LOCATION, strMasterLocation);
            if (pstrCategoryID.Trim() != string.Empty)
            {
                arrParamAndValue.Add(CATEGORY, strCategory);
            }
            if (pstrParameterModel.Trim() != string.Empty)
            {
                arrParamAndValue.Add(MODEL, pstrParameterModel);
            }

            /// anchor the Parameter drawing canvas cordinate to the fldTitle
            C1.C1Report.Field fldTitle  = objRB.GetFieldByName(REPORTFLD_TITLE);
            double            dblStartX = fldTitle.Left;
            double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
            objRB.GetSectionByName(PAGE + HEADER).CanGrow = true;
            objRB.DrawParameters(objRB.GetSectionByName(PAGE + HEADER), dblStartX, dblStartY, arrParamAndValue, objRB.Report.Font.Size);

            #endregion

            /// there are some hardcode numbers here
            /// but these numbers are use ONLY ONE and ONLY USED HERE, so we don't need to define constant for it.
            objRB.DrawBoxGroup_Madeby_Checkedby_Approvedby(objRB.GetSectionByName(PAGE + HEADER), 16005 - 1400 - 1400 - 1400, 600, 1400, 1300, 200);


            #region DAY--MONTH--YEAR INFO
            DateTime dtm;
            try
            {
                dtm = objUtilBO.GetDBDate();
            }
            catch
            {
                dtm = DateTime.Now;
            }

            try
            {
                objRB.DrawPredefinedField(REPORTFLD_DAY, dtm.Day.ToString("00"));
            }
            catch {}
            try
            {
                objRB.DrawPredefinedField(REPORTFLD_MONTH, dtm.Month.ToString("00"));
            }
            catch {}
            try
            {
                objRB.DrawPredefinedField(REPORTFLD_YEAR, dtm.Year.ToString("0000"));
            }
            catch {}
            #endregion

            try                 // mapping report field with table column
            {
                objRB.DrawPredefinedField(REPORTFLD_CATEGORY, CATEGORY_COL);
                objRB.DrawPredefinedField(REPORTFLD_PARTNUMBER, PARTNUMBER_COL);
                objRB.DrawPredefinedField(REPORTFLD_PARTNAME, PARTNAME_COL);
                objRB.DrawPredefinedField(REPORTFLD_MODEL, MODEL_COL);
                objRB.DrawPredefinedField(REPORTFLD_STOCKUM, STOCKUM_COL);
                objRB.DrawPredefinedField(REPORTFLD_LOCATION, LOCATION_COL);
                objRB.DrawPredefinedField(REPORTFLD_OHQTY, OHQTY_COL);
                objRB.DrawPredefinedField(REPORTFLD_COMMITQTY, COMMITQTY_COL);
                objRB.DrawPredefinedField(REPORTFLD_AVAILABLEQTY, AVAILABLEQTY_COL);
                objRB.DrawPredefinedField(REPORTFLD_TYPE, TYPE_COL);
                objRB.DrawPredefinedField(REPORTFLD_SOURCE, SOURCE_COL);
                objRB.DrawPredefinedField(REPORTFLD_SAFETYSTOCK, SAFETYSTOCK_COL);
                objRB.DrawPredefinedField(REPORTFLD_LOT, LOT_COL);
                objRB.DrawPredefinedField(REPORTFLD_WARNING, WARNING_COL);
            }
            catch {}


            objRB.RefreshReport();
            printPreview.Show();

            #endregion

            UseReportViewerRenderEngine = false;
            mResult = dtbResult;
            return(dtbResult);
        }
Example #19
0
        /// <summary>
        /// Build and show Detai lItem Price By PO Receipt
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        /// <author> Tuan TQ, 11 Apr, 2006</author>
        public DataTable ExecuteReport(string pstrCCNID,
                                       string pstrFromDate,
                                       string pstrToDate,
                                       string pstrCurrencyIDList
                                       )
        {
            try
            {
                string strPOTypeID = Convert.ToString((int)PCSComUtils.Common.POReceiptTypeEnum.ByInvoice);

                const string DATE_HOUR_FORMAT = "dd-MM-yyyy HH:mm";
                const string NUMERIC_FORMAT   = "#,##0.00";

                const string REPORT_TEMPLATE = "ImportMaterialReport.xml";
                const string RPT_PAGE_HEADER = "PageHeader";

                const string REPORT_NAME     = "ImportMaterialReport";
                const string RPT_TITLE_FLD   = "fldTitle";
                const string RPT_COMPANY_FLD = "fldCompany";

                const string RPT_CCN_FLD       = "CCN";
                const string RPT_FROM_DATE_FLD = "From Date";
                const string RPT_TO_DATE_FLD   = "To Date";
                const string RPT_CURRENCY_FLD  = "Currency";

                DataTable dtbDataSource = null;

                dtbDataSource = GetImportMaterialReport(pstrCCNID, pstrFromDate, pstrToDate, pstrCurrencyIDList);

                //Create builder object
                ReportWithSubReportBuilder reportBuilder = new ReportWithSubReportBuilder();

                //Set report name
                reportBuilder.ReportName = REPORT_NAME;

                //Set Datasource
                reportBuilder.SourceDataTable = dtbDataSource;

                //Set report layout location
                reportBuilder.ReportDefinitionFolder = mstrReportDefinitionFolder;
                reportBuilder.ReportLayoutFile       = REPORT_TEMPLATE;

                reportBuilder.UseLayoutFile = true;
                reportBuilder.MakeDataTableForRender();

                // and show it in preview dialog
                PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog printPreview = new PCSUtils.Framework.ReportFrame.C1PrintPreviewDialog();

                //Attach report viewer
                reportBuilder.ReportViewer = printPreview.ReportViewer;
                reportBuilder.RenderReport();

                reportBuilder.DrawPredefinedField(RPT_COMPANY_FLD, GetCompanyFullName());
                //Draw parameters
                System.Collections.Specialized.NameValueCollection arrParamAndValue = new System.Collections.Specialized.NameValueCollection();

                arrParamAndValue.Add(RPT_CCN_FLD, GetCCNInfoByID(pstrCCNID));

                if (pstrFromDate != null && pstrFromDate != string.Empty)
                {
                    arrParamAndValue.Add(RPT_FROM_DATE_FLD, DateTime.Parse(pstrFromDate).ToString(DATE_HOUR_FORMAT));
                }

                if (pstrToDate != null && pstrToDate != string.Empty)
                {
                    arrParamAndValue.Add(RPT_TO_DATE_FLD, DateTime.Parse(pstrToDate).ToString(DATE_HOUR_FORMAT));
                }

                if (pstrCurrencyIDList != null && pstrCurrencyIDList != string.Empty)
                {
                    arrParamAndValue.Add(RPT_CURRENCY_FLD, GetCurrencyInfo(pstrCurrencyIDList));
                }

                //Anchor the Parameter drawing canvas cordinate to the fldTitle
                C1.C1Report.Field fldTitle  = reportBuilder.GetFieldByName(RPT_TITLE_FLD);
                double            dblStartX = fldTitle.Left;
                double            dblStartY = fldTitle.Top + 1.3 * fldTitle.RenderHeight;
                reportBuilder.GetSectionByName(RPT_PAGE_HEADER).CanGrow = true;
                reportBuilder.DrawParameters(reportBuilder.GetSectionByName(RPT_PAGE_HEADER), dblStartX, dblStartY, arrParamAndValue, reportBuilder.Report.Font.Size);

                try
                {
                    printPreview.FormTitle = reportBuilder.GetFieldByName(RPT_TITLE_FLD).Text;
                }
                catch
                {}

                reportBuilder.RefreshReport();
                printPreview.Show();

                //return table
                return(dtbDataSource);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }