Пример #1
0
        public static void SplitStringToMutipleColumn([SqlFacet(MaxSize = -1)] string referenceIds, int numberOfColumn)
        {
            DataTable datatable = new DataTable();

            for (int i = 1; i <= numberOfColumn; i++)
            {
                datatable.Columns.Add("C" + i.ToString());
            }

            string [] referenceidList = referenceIds.Split(new char[] { ',' });

            DataRow row         = datatable.NewRow();
            int     columncount = 0;

            for (int i = 0; i < referenceidList.Length; i++)
            {
                int remain = i % numberOfColumn;
                if (remain == 0)
                {
                    row = datatable.NewRow();
                    datatable.Rows.Add(row);
                    columncount      = 0;
                    row[columncount] = referenceidList[i];
                }
                else
                {
                    columncount++;
                    row[columncount] = referenceidList[i];
                }
            }


            CLROutput.SendDataTable(datatable);
        }
Пример #2
0
        public static void GetSpecQcSize(int referenceId, int mainQcTabId)
        {
            // Initianize context FROM PLM App,
            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                //SqlContext.
                conn.Open();

                DataAcessHelper.ExecuteReadUnCommmited(conn);

                // Get SubitemID
                //int baseSizeIndexFromZero = 0;
                //int totalSizeNumber = 0;
                DataTable returnDataTble = GetOneReferenceSpecQcSelectedSizeTable(referenceId, conn, mainQcTabId);

                CLROutput.SendDataTable(returnDataTble);

                //CLROutput.OutputDebug("baseSizeIndex=" + baseSizeIndexFromZero);
                //CLROutput.OutputDebug("totalSizeNumber=" + totalSizeNumber);



                DataAcessHelper.ExecuteReadCommmited(conn);
            }
        }
Пример #3
0
        public static void GetRichText(int richTectFileId)
        {
            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);

                string query = @"select  tblSketch.OriginalImage    from tblSketch  where SketchID =@richTectFileId";
                List <SqlParameter> listPara = new List <SqlParameter>();
                listPara.Add(new SqlParameter("@richTectFileId", richTectFileId));

                //command.Parameters.Add("@Photo",   SqlDbType.Image, photo.Length).Value = photo;

                DataTable result = DataAcessHelper.GetDataTableQueryResult(conn, query, listPara);

                if (result.Rows.Count > 0)
                {
                    byte[] rowData = result.Rows[0]["OriginalImage"] as byte[];

                    if (rowData != null)
                    {
                        string str = System.Text.Encoding.Default.GetString(rowData);
                        // CLROutput.OutputDebug(str);

                        CLROutput.OutputDebug("------------------");
                        //  string str2 = HtmlToPlainText.StripHTML(str);
                        DataTable datatable = new DataTable();

                        DataColumn column = new DataColumn("Text");
                        datatable.Columns.Add(column);

                        //column.DataType = typeof (String );
                        // column.MaxLength  = 200;



                        var row = datatable.NewRow();
                        row["Text"] = str;
                        datatable.Rows.Add(row);
                        CLROutput.SendDataTable(datatable);



                        //LROutput.OutputDebug(str2);
                    }
                }


                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            //  GetGridValue(tabId, currentGridBlockId, referenceIds, false);
        }
Пример #4
0
        public static void GetTabValue(int tabId, string referenceIds, bool isShowLookupitem, bool IsSubItemFullPathName = true)
        {
            if (string.IsNullOrEmpty(referenceIds))
            {
                return;
            }

            System.Data.DataTable tabFieldResultDataTable = GetTabDataTable(tabId, referenceIds, isShowLookupitem, IsSubItemFullPathName);



            CLROutput.SendDataTable(tabFieldResultDataTable);
        }
Пример #5
0
        public static void GetMergeBlockPrintGrid(int tabId, int gridBlockId1, string block1RwValueFilter, int gridBlockId2, string block2RwValueFilter, string referenceIds)
        {
            if (gridBlockId2 == -1) // it is one block
            {
                DataTable gridBlock1 = PLMSGetGridValueHeler.GetOneGridBlockSelectRows(tabId, gridBlockId1, block1RwValueFilter, referenceIds, true, false);

                CLROutput.SendDataTable(gridBlock1);
            }
            else // it is merger gridblcok
            {
                DataTable gridTable1 = PLMSGetGridValueHeler.GetOneGridBlockSelectRows(tabId, gridBlockId1, block1RwValueFilter, referenceIds, true, false);

                DataTable gridTable2 = PLMSGetGridValueHeler.GetOneGridBlockSelectRows(tabId, gridBlockId2, block2RwValueFilter, referenceIds, true, false);;



                if (gridTable2.Columns.Count == gridTable1.Columns.Count)
                {
                    for (int i = 0; i < gridTable2.Columns.Count; i++)
                    {
                        gridTable2.Columns[i].ColumnName = gridTable1.Columns[i].ColumnName;
                    }


                    gridTable1.Merge(gridTable2);
                }



                // int count =1;
                //foreach (DataRow row in gridTable1.Rows)
                //{
                //    if (row.Table.Columns.Contains("Sort"))
                //    {
                //        row["Sort"] = count;
                //        count++;

                //    }

                //}



                CLROutput.SendDataTable(gridTable1);
            }
        }
Пример #6
0
        public static void GetGridExternalColumnValue(int gridTabId, int currentGridBlockId, string referenceIds)
        {
            if (string.IsNullOrEmpty(referenceIds))
            {
                return;
            }

            PdmBlockClrDto dmBlockClrDto = PdmCacheManager.DictBlockCache[currentGridBlockId];

            if (dmBlockClrDto.BlockPdmGridDto == null)
            {
                return;
            }

            bool IsGetAliasname = false;
            // Get Grading Size will call PrepareGetGridDataTable and set
            DataTable gridcolumnResultDataTable = PLMSGetGridValueHeler.LoadVariousGridColumnValue(gridTabId, currentGridBlockId, referenceIds, false, dmBlockClrDto, false, false, IsGetAliasname);

            CLROutput.SendDataTable(gridcolumnResultDataTable);
        }
Пример #7
0
        private static void UpdateForeignKeyRelationFromERPToPLM(List <PdmEntityClrDto> plmImportEntityDtoList)
        {
            List <string> exchangeTableNameList = plmImportEntityDtoList.Select(o => o.EntityCode).ToList();

            Dictionary <string, PdmEntityClrDto> dictAllImportEntity = plmImportEntityDtoList.ToDictionary(o => o.EntityCode.ToLowerInvariant(), o => o);

            string queryForeignTable = @" SELECT distinct OBJECT_NAME(PARENT_OBJECT_ID)        TABLE_NAME,
           PT.NAME                              FIELD_NAME,
           OBJECT_NAME(REFERENCED_OBJECT_ID)    REFTABLE_NAME,
           FT.NAME                              REFFIELD_NAME
            FROM   SYS.FOREIGN_KEY_COLUMNS FKC
           JOIN SYS.COLUMNS PT
             ON FKC.PARENT_OBJECT_ID = PT.OBJECT_ID
                AND FKC.PARENT_COLUMN_ID = PT.COLUMN_ID
           JOIN SYS.COLUMNS FT
             ON FKC.REFERENCED_OBJECT_ID = FT.OBJECT_ID
                AND FKC.REFERENCED_COLUMN_ID = FT.COLUMN_ID ";
            // WHERE     (OBJECT_NAME(FKC.parent_object_id))";

            string tableInClause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(exchangeTableNameList, "OBJECT_NAME(FKC.parent_object_id)", false);



            queryForeignTable = queryForeignTable + " WHERE " + tableInClause;



            DataTable foreignKeyTable = null;


            using (SqlConnection conn = new SqlConnection(PLM_ExChangeDatabase_ConnectionString))
            {
                conn.Open();
                foreignKeyTable = DataAcessHelper.GetDataTableQueryResult(conn, queryForeignTable);
                CLROutput.SendDataTable(foreignKeyTable);
            }

            foreach (DataRow fkDataRow in foreignKeyTable.Rows)
            {
                string childEntityEntityName = (fkDataRow["TABLE_NAME"] as string).Trim().ToLowerInvariant();
                string childFkColumnName     = (fkDataRow["FIELD_NAME"] as string).Trim().ToLowerInvariant();
                string masterEntityTableName = (fkDataRow["REFTABLE_NAME"] as string).Trim().ToLowerInvariant();;
                string masterKeyName         = (fkDataRow["REFFIELD_NAME"] as string).Trim().ToLowerInvariant();

                // clear old relationship

                int childEntityId  = dictAllImportEntity[childEntityEntityName].EntityId;
                int masterEntityId = dictAllImportEntity[masterEntityTableName].EntityId;


                // clear old  relationship

                using (SqlConnection conn = new SqlConnection(PLMSDWStoredProcedures.PLM_APP_ConnectionString))
                {
                    conn.Open();
                    PdmEntityClrDto EntityWithFKEntityDto = dictAllImportEntity[childEntityEntityName];
                    // need to updat FK control Type
                    foreach (var column in EntityWithFKEntityDto.Columns)
                    {
                        if (column.ColumnName.ToLowerInvariant() == childFkColumnName.ToLowerInvariant())
                        {
                            string     updatepdmUserDefineEntityColumn = string.Format(@"update pdmUserDefineEntityColumn 
                                        set UIControlType={0},
                                         FKEntityID ={1} 
                                        where UserDefineEntityColumnID ={2}", (int)EmControlType.DDL, masterEntityId, column.UserDefineEntityColumnID);
                            SqlCommand cmdupdate = new SqlCommand(updatepdmUserDefineEntityColumn, conn);

                            CLROutput.Output("updatepdmUserDefineEntityColumn=" + updatepdmUserDefineEntityColumn);

                            cmdupdate.ExecuteNonQuery();
                        }
                    }

                    InsertEntityWithFKRelaship(EntityWithFKEntityDto, childFkColumnName, masterEntityTableName, conn);
                }
            }
        }
Пример #8
0
        public static void GetTabAndGridExternalColumnValue(int gridTabId, int currentGridBlockId, string referenceIds)
        {
            if (string.IsNullOrEmpty(referenceIds))
            {
                return;
            }

            PdmBlockClrDto dmBlockClrDto = PdmCacheManager.DictBlockCache[currentGridBlockId];

            if (dmBlockClrDto.BlockPdmGridDto == null)
            {
                return;
            }

            bool IsGetAliasname = false;

            DataTable tabFieldResultDataTable = GetTabDataTable(gridTabId, referenceIds, false, false);
            // Get Grading Size will call PrepareGetGridDataTable and set
            DataTable gridcolumnResultDataTable = PLMSGetGridValueHeler.LoadVariousGridColumnValue(gridTabId, currentGridBlockId, referenceIds, false, dmBlockClrDto, false, false, IsGetAliasname);


            List <string> gridExternalMappingNameList = GetExternalNappingName(gridTabId, currentGridBlockId);


            string firstReferencecolumn = gridcolumnResultDataTable.Columns[0].ColumnName;

            gridExternalMappingNameList.Add(firstReferencecolumn);

            List <string> allCoumns = new List <string>();

            foreach (DataColumn column in gridcolumnResultDataTable.Columns)
            {
                allCoumns.Add(column.ColumnName);
            }

            var needTOremovecolumn = allCoumns.Except(gridExternalMappingNameList);

            foreach (string needToRemove in needTOremovecolumn)
            {
                gridcolumnResultDataTable.Columns.Remove(needToRemove);
            }

            DataTable mergeTable = null;

            if (gridcolumnResultDataTable.Rows.Count > 0)
            {
                mergeTable = DataTableUtility.Join(tabFieldResultDataTable, gridcolumnResultDataTable, tabFieldResultDataTable.Columns[0], gridcolumnResultDataTable.Columns[0]);
            }
            else

            {
                //mergeTable

                foreach (DataColumn gridColumn in gridcolumnResultDataTable.Columns)
                {
                    if (!tabFieldResultDataTable.Columns.Contains(gridColumn.ColumnName))
                    {
                        tabFieldResultDataTable.Columns.Add(gridColumn.ColumnName);
                    }
                }

                mergeTable = tabFieldResultDataTable;
            }



            CLROutput.SendDataTable(mergeTable);
        }
Пример #9
0
        public static void GetGradingSizeValue(int tabId, int currentGridBlockId, int referenceId)
        {
            //if (string.IsNullOrEmpty(referenceId))
            //    return;

            PdmBlockClrDto dmBlockClrDto = PdmCacheManager.DictBlockCache[currentGridBlockId];

            if (dmBlockClrDto.BlockPdmGridDto == null)
            {
                return;
            }

            bool      IsGetAliasname            = true;
            DataTable gridcolumnResultDataTable = PLMSGetGridValueHeler.LoadVariousGridColumnValue(tabId, currentGridBlockId, referenceId.ToString(), true, dmBlockClrDto, false, true, IsGetAliasname);

            int baseSizeIndexFromZero = 0;
            int totalSizeNumber       = 0;



            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                //SqlContext.
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);
                PLMSpecGradingHelper.GetSpecSizeRunTable(referenceId, conn, out baseSizeIndexFromZero, out totalSizeNumber);
                CLROutput.OutputDebug("baseSizeIndexFromZero" + baseSizeIndexFromZero.ToString() + "totalSizeNumber" + totalSizeNumber.ToString());

                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            PdmGridClrDto aPdmGridClrDto = dmBlockClrDto.BlockPdmGridDto;

            int baseSizeColumnId = aPdmGridClrDto[GridRegister.GridSpecGrading.GradingBaseSize].GridColumnId;

            List <DataColumn> gradingSizeNameList = new List <DataColumn>();
            DataColumn        baseSizeColumn      = null;

            foreach (DataColumn column in gridcolumnResultDataTable.Columns)
            {
                if (column.ColumnName.StartsWith(GridRegister.GridSpecGrading.GradingSize))
                {
                    gradingSizeNameList.Add(column);
                }
                if (column.ColumnName.EndsWith("_" + baseSizeColumnId))
                {
                    baseSizeColumn = column;
                }
            }


            //GridRegister.GridSpecGrading.


            foreach (DataRow dataRow in gridcolumnResultDataTable.Rows)
            {
                List <double> gradingValue = new List <double>();
                List <String> columnName   = new List <string>();
                double        basesize     = ControlTypeValueConverter.ConvertValueToDoubleWithDefautZero(dataRow[baseSizeColumn.ColumnName]);

                for (int i = 1; i <= totalSizeNumber; i++)
                {
                    foreach (DataColumn sizecolumn in gradingSizeNameList)
                    {
                        string baseSizeColumnName = GridRegister.GridSpecGrading.GradingSize + i.ToString() + "_";
                        if (sizecolumn.ColumnName.StartsWith(baseSizeColumnName))
                        {
                            double value = ControlTypeValueConverter.ConvertValueToDoubleWithDefautZero(dataRow[sizecolumn.ColumnName]);

                            gradingValue.Add(value);
                            columnName.Add(sizecolumn.ColumnName);
                        }
                    }
                }

                List <double> newValueList = PLMSpecGradingHelper.CaculateSizeValueWithGradingValue(gradingValue, basesize, baseSizeIndexFromZero);
                for (int i = 0; i < totalSizeNumber; i++)
                {
                    string columnNmae = columnName[i];
                    string value      = newValueList[i].ToString();

                    dataRow[columnNmae] = value;
                }
            }


            List <DataColumn> needConvertColumn = new List <DataColumn>();


            foreach (DataColumn column in gridcolumnResultDataTable.Columns)
            {
                int baseSizeId = aPdmGridClrDto[GridRegister.GridSpecGrading.GradingBaseSize].GridColumnId;

                if (column.ColumnName.EndsWith("_" + baseSizeColumnId))
                {
                    needConvertColumn.Add(column);
                }

                int tolColumnId = aPdmGridClrDto[GridRegister.GridSpecGrading.Tolerance].GridColumnId;

                if (column.ColumnName.EndsWith("_" + tolColumnId))
                {
                    needConvertColumn.Add(column);
                }

                for (int i = 1; i <= 20; i++)
                {
                    int sizeColumnIdId = aPdmGridClrDto[GridRegister.GridSpecGrading.GradingSize + i.ToString()].GridColumnId;
                    if (column.ColumnName.EndsWith("_" + sizeColumnIdId))
                    {
                        needConvertColumn.Add(column);
                    }
                }
            }


            // need to get the bock size and unit of mesaure;
            //DefaultPOMUnitOfMeasure	1:INch, 2: Cm

            int?pomUnitOfmeasure = GetReferencePomOfUnitMeasure(referenceId);

            if (pomUnitOfmeasure.HasValue && pomUnitOfmeasure.Value == 1)
            {
                ConvertCMDatatableToInch(gridcolumnResultDataTable, needConvertColumn);
            }
            else // NO VALUE, NEED TO CHECK DEFAULT VALUE
            {
                if (PLMConstantString.DictPdmSetup["DefaultPOMUnitOfMeasure"].SetupValue == "1")
                {
                    ConvertCMDatatableToInch(gridcolumnResultDataTable, needConvertColumn);
                }
            }



            CLROutput.SendDataTable(gridcolumnResultDataTable);
        }