//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); }
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(); } } }
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 } }