//http://localhost/ReportPublishDynamic/DDWebReportView.aspx?ReportName=90&uid=573aa0c3-528a-40a9-890e-701e097a1fb5&PdmRequestRegisterID=134&ReportDataSourceType=PLMDatabase
        //Search Print
        //http://localhost/ReportPublishCrystal/ReportPdfPrint.aspx?ReportName=90&uid=66e7fed1-1dfc-4003-89ad-f0831a0b4138&PdmRequestRegisterID=133&ReportDataSourceType=PLMDatabase

        private static List <Stream> PrintSearchViewPdf(int?aUId, string reportId, string PdmRequestRegisterID, string dataSourceType, string mainreferenceID, string masterReferenceId)
        {
            List <Stream> pdfFileStream = new List <Stream>();


            string reportFileName = DDSetup.GetUserReportFileName(aUId.Value, reportId);



            // Cyrstal report
            if (reportFileName.EndsWith(".rpt") || reportFileName.EndsWith(".RPT"))
            {
                Stream result = CystalReportExport.GetCrystalPdfStream(reportFileName, aUId, null, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId);
                if (result != null)
                {
                    pdfFileStream.Add(result);
                }
            }
            // Data Dynamics
            else if (reportFileName.EndsWith(".rdlx") || reportFileName.EndsWith(".RDLX"))
            {
                Stream result = DataDynamicsExport.GetDataDynamicPdfStream(reportFileName, aUId, null, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId);

                if (result != null)
                {
                    pdfFileStream.Add(result);
                }
            }


            return(pdfFileStream);
        }
        private static List <Stream> PrintTechPackPdf(int?aUId, string mutipleReportFiles, string PdmRequestRegisterID, string dataSourceType, string mainreferenceID, string masterReferenceId)
        {
            string[] reportnames = mutipleReportFiles.Split('|');

            //  var dictReportNameAndFileName = DDSetup.GetDictUserReportNameAndFileNameReports(aUId.Value);

            List <KeyValuePair <string, string> > mutipleReportAndReference = new List <KeyValuePair <string, string> >();

            List <Stream> pdfFileStream = new List <Stream>();

            foreach (String reportFileNameWithRef in reportnames)
            {
                string[] reportNameAndRef = reportFileNameWithRef.Split('^');
                if (reportNameAndRef.Length != 2)
                {
                    continue;
                }



                string reportId = reportNameAndRef[0];


                string reportFileName = DDSetup.GetUserReportFileName(aUId.Value, reportId);

                if (string.IsNullOrEmpty(reportFileName))
                {
                    // Response.Write(" access denied ");
                    continue;
                }



                string reportRefId = reportNameAndRef[1];


                // Cyrstal report
                if (reportFileName.EndsWith(".rpt") || reportFileName.EndsWith(".RPT"))
                {
                    Stream result = CystalReportExport.GetCrystalPdfStream(reportFileName, aUId, reportRefId, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId);
                    if (result != null)
                    {
                        pdfFileStream.Add(result);
                    }
                }
                // Data Dynamics
                else if (reportFileName.EndsWith(".rdlx") || reportFileName.EndsWith(".RDLX"))
                {
                    Stream result = DataDynamicsExport.GetDataDynamicPdfStream(reportFileName, aUId, reportRefId, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId);

                    if (result != null)
                    {
                        pdfFileStream.Add(result);
                    }
                }
            }

            return(pdfFileStream);
        }
        protected override void OnPreInit(EventArgs e)
        {
            string reportName = Request.QueryString[DDSetup.QueryReportName];
            string sessionUid = Request.QueryString[DDSetup.ReportParameterUid];

            int?userid = DDSetup.GetUserIdFromSessionId(sessionUid);

            if (!userid.HasValue)
            {
                Response.Write(" access denied ");
                return;
            }
            else
            {
                _ReportFileNmae = DDSetup.GetUserReportFileName(userid.Value, reportName);

                if (string.IsNullOrEmpty(_ReportFileNmae))
                {
                    Response.Write(" access denied ");
                    return;
                }
            }


            _UId = userid;

            _ProductReferenceId = Request.QueryString[DDSetup.ReportParameterProductReferenceID];
            _DatasourceType     = Request.QueryString[DDSetup.QueryReportDataSourceType];

            //Request.QueryString[DDSetup.ReportParameterMainReferenceID];
            _MainReferenceID = Request.QueryString[DDSetup.QueryReportParameterMainReferenceID];

            //Request.QueryString[DDSetup.ReportParameterMasterReferenceID];
            _MasterReferenceID = Request.QueryString[DDSetup.QueryReportParameterMasterReferenceID];


            //DDSetup.ReportParameterMutipleProductReferenceIDs

            string PdmRequestRegisterID = Request.QueryString[DDSetup.QueryPdmRequestRegisterID];

            if (!string.IsNullOrEmpty(PdmRequestRegisterID))
            {
                // need format like this '1,2,3,4,6'



                CystalReportExport.SetupCrystalReportRequestRegisterId(CurrnetReportDocument, PdmRequestRegisterID);
            }



            base.OnPreInit(e);
            if (!this.IsPostBack)
            {
                if (_ReportFileNmae != string.Empty)
                {
                    // only create once !!
                    BindReport();
                }
            }
        }
Exemple #4
0
        private void PrintUserReaTimeReport(string aUId, string allReportFileNmae, string PdmRequestRegisterID, string dataSourceType, string mainreferenceID, string masterReferenceId)
        {
            //allReportFileNmae=ReportName=Crystal_OSC_GetTab1.rpt^21836|OSC_Proto Summary.rdlx^21863
            if (allReportFileNmae != string.Empty)
            {
                // only create once !!

                string[] reportnames = allReportFileNmae.Split('|');

                List <KeyValuePair <string, string> > mutipleReportAndReference = new List <KeyValuePair <string, string> >();

                List <Stream> pdfFileStream = new List <Stream>();

                foreach (String reportFileNameWithRef in reportnames)
                {
                    string [] reportNameAndRef = reportFileNameWithRef.Split('^');
                    if (reportNameAndRef.Length != 2)
                    {
                        continue;
                    }

                    string reportFileName = reportNameAndRef[0];
                    string reportRefId    = reportNameAndRef[1];


                    // Cyrstal report
                    if (reportFileName.EndsWith(".rpt") || reportFileName.EndsWith(".RPT"))
                    {
                        Stream result = CystalReportExport.GetCrystalPdfStream(reportFileName, aUId, reportRefId, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId);
                        if (result != null)
                        {
                            pdfFileStream.Add(result);
                        }
                    }
                    // Data Dynamics
                    else if (reportFileName.EndsWith(".rdlx") || reportFileName.EndsWith(".RDLX"))
                    {
                        Stream result = DataDynamicsExport.GetDataDynamicPdfStream(reportFileName, aUId, reportRefId, PdmRequestRegisterID, dataSourceType, mainreferenceID, masterReferenceId);

                        if (result != null)
                        {
                            pdfFileStream.Add(result);
                        }
                    }
                }


                using (PdfDocument outputPdfDocument = new PdfDocument())
                {
                    foreach (Stream stream in pdfFileStream)
                    {
                        // Open the document to import pages from it.
                        if (stream.Length > 0)
                        {
                            using (PdfDocument inputDocument = PdfReader.Open(stream, PdfDocumentOpenMode.Import))
                            {
                                // Iterate pages
                                int count = inputDocument.PageCount;
                                for (int idx = 0; idx < count; idx++)
                                {
                                    // Get the page from the external document...
                                    PdfPage page = inputDocument.Pages[idx];
                                    // ...and add it to the output document.
                                    outputPdfDocument.AddPage(page);
                                }
                                stream.Close();
                                stream.Dispose();
                            }
                        }
                    }

                    if (DDSetup.ReorptSetup.IsReportCompressionActivate)
                    {
                        string fileID         = Guid.NewGuid().ToString();
                        string FileNameOrigin = DDSetup.ReorptSetup.ReportPdfCompressPath + "Origin_" + fileID + ".pdf";
                        outputPdfDocument.Save(FileNameOrigin);

                        string FileNameDestination = DDSetup.ReorptSetup.ReportPdfCompressPath + "Dest_" + fileID + ".pdf";
                        ReportJobManagement.PdfCompression(FileNameOrigin, FileNameDestination);
                        File.Delete(FileNameOrigin);
                        OutputPdfFile(FileNameDestination);
                    }
                    else // need to compress PDF
                    {
                        MemoryStream memoStream = new MemoryStream();

                        outputPdfDocument.Save(memoStream, false);
                        OutPutResponse(memoStream);
                    }
                }

                // need to dispsoe output to release memeory
                //  outputPdfDocument.Dispose();
                // need to dispost
            }
        }