public static EmDomainType GetUserDomainType(int?userId) { string userName; int? v2kuid; string timeZoneInfoToken = string.Empty; EmDomainType aDomainType = DDSetup.GetDomainTypeAndV2kUID(userId, out v2kuid, out userName, out timeZoneInfoToken); return(aDomainType); }
public static void SetupDDReportRuntimeParameter(ReportRuntime ddRuntime, int?aUId) { if (aUId != null) { if (ddRuntime.Parameters[DDSetup.ReportParameterUid] != null) { ddRuntime.Parameters[DDSetup.ReportParameterUid].CurrentValue = aUId; } //string userName; //int? v2kuid; //EmDomainType aDomainType = DDSetup.GetDomainTypeAndV2kUID(aUId, out v2kuid, out userName); string userName = string.Empty; string timeZoneInfoToken = string.Empty; int? v2kuid; EmDomainType aDomainType = DDSetup.GetDomainTypeAndV2kUID(aUId, out v2kuid, out userName, out timeZoneInfoToken); if (ddRuntime.Parameters[DDSetup.ReportParameterCurrentUserName] != null) { ddRuntime.Parameters[DDSetup.ReportParameterCurrentUserName].CurrentValue = userName; } if (ddRuntime.Parameters[DDSetup.ReportParameterClientTimeZonekey] != null) { ddRuntime.Parameters[DDSetup.ReportParameterClientTimeZonekey].CurrentValue = timeZoneInfoToken;; } if (v2kuid.HasValue) { if (ddRuntime.Parameters[DDSetup.ReportParameterCurrentUserName] != null) { ddRuntime.Parameters[DDSetup.ReportParameterCurrentUserName].CurrentValue = userName; } if (aDomainType == EmDomainType.Vendor) { if (ddRuntime.Parameters[DDSetup.ReportParameterVendorID] != null) { ddRuntime.Parameters[DDSetup.ReportParameterVendorID].CurrentValue = v2kuid.Value.ToString(); } } else if (aDomainType == EmDomainType.Customer) { if (ddRuntime.Parameters[DDSetup.ReportParameterCustomerID] != null) { ddRuntime.Parameters[DDSetup.ReportParameterCustomerID].CurrentValue = v2kuid.Value.ToString();; } } } } }
public static string GetUserReportFileName(int userId, object reportId) { string dictToReturn = string.Empty; string qeuryReportNameAndFileName = string.Empty; // EmDomainType userDomainType = GetUserDomainType(userId); string userName; int? v2kuid; string timeZoneInfoToken = string.Empty; EmDomainType userDomainType = DDSetup.GetDomainTypeAndV2kUID(userId, out v2kuid, out userName, out timeZoneInfoToken); if (userDomainType == EmDomainType.SysAdmin) { qeuryReportNameAndFileName = @" SELECT pdmReportWebPublish.ReportFileName FROM pdmReportWebPublish where ReportId=@ReportId "; } else { qeuryReportNameAndFileName = string.Format(@" SELECT pdmReportWebPublish.ReportFileName FROM pdmReportPublishSecurity INNER JOIN pdmReportWebPublish ON pdmReportPublishSecurity.ReportID = pdmReportWebPublish.ReportID where pdmReportWebPublish.ReportID = @ReportId and ( pdmReportPublishSecurity.SecurityWebUserID = {0} or pdmReportPublishSecurity.SecurityUserGroupID in ( SELECT pdmSecurityGroupMember.GroupID FROM pdmSecurityGroupMember where pdmSecurityGroupMember.UserID ={1} )) ", userId, userId); } using (SqlConnection conn = new SqlConnection(PLMConnectionString)) { conn.Open(); SqlCommand cmd = new SqlCommand(qeuryReportNameAndFileName, conn); cmd.Parameters.Add(new SqlParameter("@ReportId", reportId)); dictToReturn = cmd.ExecuteScalar() as string; } WriteReportTrace(userName, dictToReturn); return(dictToReturn); }
static DDSetup() { PLMConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["PLMConnectionString"].ConnectionString; DWDataSourceConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DWDataSourceConnectionString"].ConnectionString; _DDSetup = new DDSetup(); SetReportParameter(); ReportCompressSetup(); }
public static void SetupCrystalReportRequestRegisterId(ReportDocument crystalReportDocument, string PdmRequestRegisterID) { string requestContent = DDSetup.GetPdmRequestContent(PdmRequestRegisterID); // doest include '\'' //if (requestContent.IndexOf('\'') == -1) //{ // requestContent = "'" + requestContent + "'"; //} if (!requestContent.Contains('\''.ToString())) { requestContent = "'" + requestContent + "'"; } // it is new dyniac request !!! if (requestContent.StartsWith(DDSetup.PrintMergeGridReferencePrefixConst)) { SetupReportRequestParameter(crystalReportDocument, PdmRequestRegisterID, requestContent); } else // it is old request dont change !!! { if (!string.IsNullOrEmpty(requestContent)) { if (IsExistParaName(crystalReportDocument, DDSetup.ReportParameterMutipleProductReferenceIDs)) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterMutipleProductReferenceIDs, requestContent); } else // try to setup _MutipleProductReferenceIDs { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterProductReferenceID, requestContent); } } } }
public static void SetupDynamicReportRequesttRegisterId(ReportRuntime runtime, string PdmRequestRegisterID) { string requestContent = DDSetup.GetPdmRequestContent(PdmRequestRegisterID); // Dunamic paramter List //paraNameValue: classId: 1,2,3 |colorId: 2,3 |productReferenceId: 1,2,3 | if (requestContent.StartsWith(DDSetup.PrintMergeGridReferencePrefixConst)) { SetupDataDynamicMergeReport(runtime, PdmRequestRegisterID, requestContent); } else // it is old request dont change !!! { if (runtime.Parameters[DDSetup.ReportParameterMutipleProductReferenceIDs] != null) { runtime.Parameters[DDSetup.ReportParameterMutipleProductReferenceIDs].CurrentValue = requestContent; // runtime.Parameters[DDSetup.ReportParameterMutipleProductReferenceIDs].Hidden } else // try to set ReportParameterProductReferenceID { runtime.Parameters[DDSetup.ReportParameterProductReferenceID].CurrentValue = requestContent; } } }
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 static void SetupDataDynamicMergeReport(ReportRuntime runtime, string PdmRequestRegisterID, string requestContent) { // referenceId , blockId, rowValueId // truncate 18000,5834,6bb03992-e5ff-4b01-a41b-438ca9a7e560 int?mainBlockId = DDSetup.GetPdmRequestMainBlockId(PdmRequestRegisterID); if (mainBlockId.HasValue) { string dataFieldString = requestContent.Substring(requestContent.IndexOf(':') + 1); // column1: ReferenceID, Column2: BlockId, column3: RowValueGuid DataTable result = DDSetup.ReadCSVContentDataTable(dataFieldString, 3, "|", ","); if (result.Rows.Count > 0) { string productReferenceId = result.Rows[0][0].ToString(); if (runtime.Parameters[DDSetup.ReportParameterMutipleProductReferenceIDs] != null) { runtime.Parameters[DDSetup.ReportParameterMutipleProductReferenceIDs].CurrentValue = productReferenceId; // runtime.Parameters[DDSetup.ReportParameterMutipleProductReferenceIDs].Hidden } else // try to set ReportParameterProductReferenceID { runtime.Parameters[DDSetup.ReportParameterProductReferenceID].CurrentValue = productReferenceId; } Dictionary <string, List <DataRow> > dictBlockIdDataRowList = result.AsEnumerable().GroupBy(o => o["2"]).ToDictionary(o => o.Key.ToString(), o => o.ToList()); // only one block it is mainblock if (dictBlockIdDataRowList.Count == 1) { var firstKeyList = dictBlockIdDataRowList.First(); var rowValueConcString = firstKeyList.Value.Select(o => o["3"].ToString()).Aggregate((current, next) => current + ", " + next); // it is main block (first block //GetMergeBlockPrintGrid 3879, 5834, '6BB03992-E5FF-4B01-A41B-438CA9A7E560', -1, '2B963DC6-3D85-46C9-B100-2F19ADECA94B', 18000 if (firstKeyList.Key.ToString() == mainBlockId.ToString()) { if (runtime.Parameters[DDSetup.ReportParameterBlock1RwValueFilter] != null) { runtime.Parameters[DDSetup.ReportParameterBlock1RwValueFilter].CurrentValue = rowValueConcString; } // need to set seond as System.Guid.NewGuid() to leav empty row if (runtime.Parameters[DDSetup.ReportParameterBlock2RwValueFilter] != null) { runtime.Parameters[DDSetup.ReportParameterBlock2RwValueFilter].CurrentValue = System.Guid.NewGuid().ToString(); } } else // it is not main block, it is second block { // need to set first as System.Guid.NewGuid() to leav empty row if (runtime.Parameters[DDSetup.ReportParameterBlock1RwValueFilter] != null) { runtime.Parameters[DDSetup.ReportParameterBlock1RwValueFilter].CurrentValue = System.Guid.NewGuid().ToString(); } if (runtime.Parameters[DDSetup.ReportParameterBlock2RwValueFilter] != null) { runtime.Parameters[DDSetup.ReportParameterBlock2RwValueFilter].CurrentValue = rowValueConcString; } } } else // two blockId { foreach (string blockIdkey in dictBlockIdDataRowList.Keys) { var rowValueConcString = dictBlockIdDataRowList[blockIdkey].Select(o => o["3"].ToString()).Aggregate((current, next) => current + ", " + next); // it is first block if (blockIdkey == mainBlockId.ToString()) { //MainBlockId if (runtime.Parameters[DDSetup.ReportParameterBlock1RwValueFilter] != null) { runtime.Parameters[DDSetup.ReportParameterBlock1RwValueFilter].CurrentValue = rowValueConcString; } } else // it is second block { if (runtime.Parameters[DDSetup.ReportParameterBlock2RwValueFilter] != null) { runtime.Parameters[DDSetup.ReportParameterBlock2RwValueFilter].CurrentValue = rowValueConcString; } } } } } } }
private static void SetupReportRequestParameter(ReportDocument crystalReportDocument, string PdmRequestRegisterID, string requestContent) { //referenceId , blockId, rowValueId // truncate 18000,5834,6bb03992-e5ff-4b01-a41b-438ca9a7e560 //paraNameValue: classId: 1,2,3 |colorId: 2,3 |productReferenceId: 1,2,3 | int?mainBlockId = DDSetup.GetPdmRequestMainBlockId(PdmRequestRegisterID); if (mainBlockId.HasValue) { string dataFieldString = requestContent.Substring(requestContent.IndexOf(':') + 1); // column1: ReferenceID, Column2: BlockId, column3: RowValueGuid DataTable result = DDSetup.ReadCSVContentDataTable(dataFieldString, 3, "|", ","); if (result.Rows.Count > 0) { string productReferenceId = result.Rows[0][0].ToString(); if (IsExistParaName(crystalReportDocument, DDSetup.ReportParameterProductReferenceID)) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterProductReferenceID, productReferenceId); } else // try to setup _MutipleProductReferenceIDs { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterMutipleProductReferenceIDs, productReferenceId); } Dictionary <string, List <DataRow> > dictBlockIdDataRowList = result.AsEnumerable().GroupBy(o => o["2"]).ToDictionary(o => o.Key.ToString(), o => o.ToList()); // only one block it is mainblock if (dictBlockIdDataRowList.Count == 1) { var firstKeyList = dictBlockIdDataRowList.First(); var rowValueConcString = firstKeyList.Value.Select(o => o["3"].ToString()).Aggregate((current, next) => current + ", " + next); // it is main block (first block //GetMergeBlockPrintGrid 3879, 5834, '6BB03992-E5FF-4B01-A41B-438CA9A7E560', -1, '2B963DC6-3D85-46C9-B100-2F19ADECA94B', 18000 if (firstKeyList.Key.ToString() == mainBlockId.ToString()) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterBlock1RwValueFilter, rowValueConcString); SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterBlock2RwValueFilter, System.Guid.NewGuid().ToString()); } else // it is not main block, it is second block { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterBlock1RwValueFilter, System.Guid.NewGuid().ToString()); SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterBlock2RwValueFilter, rowValueConcString); } } else // two blockId { foreach (string blockIdkey in dictBlockIdDataRowList.Keys) { var rowValueConcString = dictBlockIdDataRowList[blockIdkey].Select(o => o["3"].ToString()).Aggregate((current, next) => current + ", " + next); // it is first block if (blockIdkey == mainBlockId.ToString()) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterBlock1RwValueFilter, rowValueConcString); } else // it is second block { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterBlock2RwValueFilter, rowValueConcString); } } } } } }
private static void ConfigureCrystalReportParamter(ReportDocument crystalReportDocument, int?aUId, string productReferenceId, string PdmRequestRegisterID, string mainReferenceID, string masterReferenceID) { if (aUId.HasValue) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterUid, aUId); string userName; int? v2kuid; string timeZoneInfoToken = string.Empty; EmDomainType aDomainType = DDSetup.GetDomainTypeAndV2kUID(aUId, out v2kuid, out userName, out timeZoneInfoToken); if (!string.IsNullOrEmpty(userName)) { if (IsExistParaName(crystalReportDocument, DDSetup.ReportParameterCurrentUserName)) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterCurrentUserName, userName); } else // try to setup _MutipleProductReferenceIDs { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterCurrentUserName, userName); } } if (v2kuid.HasValue) { if (aDomainType == EmDomainType.Vendor) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterVendorID, v2kuid.Value); } else if (aDomainType == EmDomainType.Customer) { } } if (!string.IsNullOrEmpty(productReferenceId)) { if (IsExistParaName(crystalReportDocument, DDSetup.ReportParameterProductReferenceID)) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterProductReferenceID, productReferenceId); } else// try to setup _MutipleProductReferenceIDs { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterMutipleProductReferenceIDs, productReferenceId); } } // need 2014-02-17 to add two paramters to mainReferenceID,masterReferenceID if (!string.IsNullOrEmpty(mainReferenceID)) { if (IsExistParaName(crystalReportDocument, DDSetup.QueryReportParameterMainReferenceID)) { SetupReportParameter(crystalReportDocument, DDSetup.QueryReportParameterMainReferenceID, mainReferenceID); } } if (!string.IsNullOrEmpty(timeZoneInfoToken)) { if (IsExistParaName(crystalReportDocument, DDSetup.ReportParameterClientTimeZonekey)) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterClientTimeZonekey, timeZoneInfoToken); } } if (!string.IsNullOrEmpty(masterReferenceID)) { if (IsExistParaName(crystalReportDocument, DDSetup.QueryReportParameterMasterReferenceID)) { SetupReportParameter(crystalReportDocument, DDSetup.QueryReportParameterMasterReferenceID, masterReferenceID); } } if (!string.IsNullOrEmpty(PdmRequestRegisterID)) { // need format like this '1,2,3,4,6' SetupCrystalReportRequestRegisterId(crystalReportDocument, PdmRequestRegisterID); } // need to set up ReportParameterApplicationServerUrl for report iamge url if (IsExistParaName(crystalReportDocument, DDSetup.ReportParameterImageUrl)) { SetupReportParameter(crystalReportDocument, DDSetup.ReportParameterImageUrl, DDSetup.ReorptSetup.ReportingServerImageUrl); } // if( this._ProductReferenceId } }