Exemplo n.º 1
0
        //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);
        }
Exemplo n.º 2
0
        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);
        }
Exemplo n.º 3
0
        internal static void PrintUserReportJob(ReportJobDesc aReportJobDesc)
        {
            string reportJobName = aReportJobDesc.ReportJobName;
            int?   aUId          = aReportJobDesc.UId;
            string allReportFileNameAndReferenceID = aReportJobDesc.AllReportFileNmae;
            // string productReferenceId = aReportJobDesc.ProductReferenceId;
            string PdmRequestRegisterID = aReportJobDesc.PdmRequestRegisterID;
            string dataSourceType       = aReportJobDesc.DataSourceType;

            string mainReferenceID   = aReportJobDesc.MainReferenceID;
            string masterReferenceID = aReportJobDesc.MasterReferenceID;



            if (allReportFileNameAndReferenceID != string.Empty)
            {
                // only create once !!

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

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

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

                foreach (String reportFileNameWithRef in reportnames)
                {
                    if (string.IsNullOrEmpty(reportFileNameWithRef))
                    {
                        continue;
                    }

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

                    string reportName = reportNameAndRef[0];

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

                    if (string.IsNullOrEmpty(reportFileName))
                    {
                        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);
                        }
                    }
                }



                string fileID = Guid.NewGuid().ToString();
                string needToSaveDBFileName = string.Empty;
                string FileNameOrigin       = string.Empty;

                using (PdfDocument outputDocument = 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.
                                    outputDocument.AddPage(page);
                                }
                                stream.Close();
                                stream.Dispose();
                            }
                        }
                    }

                    FileNameOrigin       = DDSetup.ReorptSetup.ReportPdfCompressPath + "Origin_" + fileID + ".pdf";
                    needToSaveDBFileName = FileNameOrigin;
                    outputDocument.Save(FileNameOrigin);
                }

                if (DDSetup.ReorptSetup.IsReportCompressionActivate)
                {
                    string FileNameDestination = DDSetup.ReorptSetup.ReportPdfCompressPath + "Dest_" + fileID + ".pdf";

                    bool result = ReportJobManagement.PdfCompression(FileNameOrigin, FileNameDestination);
                    if (result)
                    {
                        File.Delete(FileNameOrigin);
                        needToSaveDBFileName = FileNameDestination;
                    }
                }

                using (SqlConnection conn = new SqlConnection(DDSetup.PLMConnectionString))
                {
                    conn.Open();
                    string insertsql = "Insert into [pdmPrintJob] (CreatedBy,CreatedDate,Name,FileName) VALUES( @CreatedBy, @CreatedDate,@Name, @FileName)";

                    SqlCommand insertCmd = new SqlCommand(insertsql, conn);

                    insertCmd.Parameters.Add("@CreatedBy", aUId);

                    insertCmd.Parameters.Add("@CreatedDate", System.DateTime.UtcNow);

                    insertCmd.Parameters.Add("@Name", reportJobName);

                    insertCmd.Parameters.Add("@FileName", needToSaveDBFileName);

                    insertCmd.ExecuteNonQuery();

                    conn.Close();
                }
            }
        }
Exemplo n.º 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
            }
        }