Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
        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();;
                        }
                    }
                }
            }
        }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        static DDSetup()
        {
            PLMConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["PLMConnectionString"].ConnectionString;

            DWDataSourceConnectionString = System.Configuration.ConfigurationManager.ConnectionStrings["DWDataSourceConnectionString"].ConnectionString;



            _DDSetup = new DDSetup();

            SetReportParameter();

            ReportCompressSetup();
        }
Ejemplo n.º 5
0
        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);
                    }
                }
            }
        }
Ejemplo n.º 6
0
        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;
                }
            }
        }
Ejemplo n.º 7
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();
                }
            }
        }
Ejemplo n.º 8
0
        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;
                                }
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 9
0
        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);
                            }
                        }
                    }
                }
            }
        }
Ejemplo n.º 10
0
        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
            }
        }