コード例 #1
0
        }        // key1: blockId, key2:referecne, value

        private static DataTable CreateDataTableStrcutureFromBlockSubitem(List <PdmBlockSubItemClrDto> listSubitems)
        {
            DataTable table = new DataTable("SubitemTable");

            DataColumn aRefDataColumn = new DataColumn(GridColumnConstantName.ProductReferenceID, typeof(int));

            table.Columns.Add(aRefDataColumn);


            foreach (PdmBlockSubItemClrDto aSubitem in listSubitems)
            {
                DataColumn aDataColumn;

                string aSubItemId = aSubitem.SubItemId.ToString();
                if (aSubitem.ControlType == (int)EmControlType.DDL)
                {
                    aDataColumn = new DataColumn(aSubItemId, typeof(string));
                }
                else
                {
                    aDataColumn = new DataColumn(aSubItemId, ControlTypeValueConverter.GetDataTypeByControlType(aSubitem.ControlType));
                }

                table.Columns.Add(aDataColumn);
            }

            return(table);
        }
コード例 #2
0
        private static void ProcessUserDefineEntityColumn(PdmGridClrDto aPdmGridEntity, DataTable toReturnDcuTable, List <SimpleUserDefineEntityRow> listRow, int masterColumnId)
        {
            Dictionary <int, SimpleUserDefineEntityRow> dictRow = listRow.ToDictionary(o => o.RowId, o => o);

            foreach (DataRow dataRow in toReturnDcuTable.Rows)
            {
                string valueId = dataRow[masterColumnId.ToString()] as string;

                CLROutput.OutputDebug("masterColumnId value" + valueId);
                if (!string.IsNullOrEmpty(valueId))
                {
                    // int.Parse (
                    int intValueId = int.Parse(valueId);
                    if (dictRow.ContainsKey(intValueId))
                    {
                        var dtRow = dictRow[intValueId];
                        foreach (var dependentEntityColumn in aPdmGridEntity.MasterEntityDepdentColumn[masterColumnId])
                        {
                            int userDefineColumnId = int.Parse(dependentEntityColumn.InternalCode);

                            //  CLROutput.Output("userDefineColumnId" + userDefineColumnId);

                            object value = ControlTypeValueConverter.ConvertValueToObject(dtRow[userDefineColumnId], dependentEntityColumn.ColumnTypeId);
                            if (value != null)
                            {
                                dataRow[dependentEntityColumn.GridColumnId.ToString()] = value;
                            }
                        }
                    }
                }
            }
        }
コード例 #3
0
        private static int?GetReferencePomOfUnitMeasure(int referenceId)
        {
            string query = @"select PomUnitOfMeasure from pdmProduct where ProductReferenceID =@ProductReferenceID";


            List <SqlParameter> paraList = new List <SqlParameter> ();

            paraList.Add(new SqlParameter("@ProductReferenceID", referenceId));


            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                //SqlContext.
                conn.Open();
                object value = DataAcessHelper.RetriveSigleValue(conn, query, paraList);

                return(ControlTypeValueConverter.ConvertValueToInt(value));
            }
        }
コード例 #4
0
ファイル: DataTableUtility.cs プロジェクト: visual2000plm/clr
        public static DataTable ConvertSimpleGridProductRowToDataTable(IEnumerable <SimpleGridProductRow> rowList, List <int> columnIds, DataTable table)
        {
            //



            Dictionary <int, int> dictGridColumnIdAndType = PdmCacheManager.GetMutiplePdmGridMetaColumnEntityFromCache(columnIds).ToDictionary(o => o.GridColumnId, o => o.ColumnTypeId);

            foreach (var gridRow in rowList)
            {
                DataRow dataRow = table.NewRow();

                dataRow[GridColumnConstantName.ProductReferenceID] = gridRow.ProductReferenceId;
                dataRow[GridColumnConstantName.RowValueGUID]       = gridRow.RowValueGuId;
                dataRow[GridColumnConstantName.Sort] = gridRow.Sort;

                foreach (int columnId in columnIds)
                {
                    object value = ControlTypeValueConverter.ConvertValueToObject(gridRow[columnId], dictGridColumnIdAndType[columnId]);


                    if (value == null)
                    {
                        dataRow[columnId.ToString()] = DBNull.Value;
                    }
                    else
                    {
                        //  CLROutput.Output("convervalue=" + value);
                        dataRow[columnId.ToString()] = value;

                        //  CLROutput.Output("dataRow[subitem.id.ToString()]" + dataRow[subitem.id.ToString()]);
                    }

                    // need to remove !!!! !
                    // dataRow[columnId.ToString()] = value;
                }

                table.Rows.Add(dataRow);
            }

            return(table);
        }
コード例 #5
0
        internal static DataTable CreateDataTableStrcutureFromGridColumn(List <PdmGridMetaColumnClrDto> listSubitems)
        {
            DataTable table = new DataTable("GridTable");

            DataColumn aRefDataColumn = new DataColumn(GridColumnConstantName.ProductReferenceID, typeof(int));

            table.Columns.Add(aRefDataColumn);

            //aRefDataColumn = new DataColumn(GridColumnConstantName.RowID, typeof(int));
            //table.Columns.Add(aRefDataColumn);


            aRefDataColumn = new DataColumn(GridColumnConstantName.RowValueGUID, typeof(Guid));
            table.Columns.Add(aRefDataColumn);

            aRefDataColumn = new DataColumn(GridColumnConstantName.Sort, typeof(int));
            table.Columns.Add(aRefDataColumn);

            foreach (PdmGridMetaColumnClrDto aSubitem in listSubitems)
            {
                DataColumn aDataColumn;

                string aSubItemId = aSubitem.GridColumnId.ToString();
                if (aSubitem.ColumnTypeId == (int)EmControlType.DDL)
                {
                    aDataColumn = new DataColumn(aSubItemId, typeof(string));
                }
                else
                {
                    aDataColumn = new DataColumn(aSubItemId, ControlTypeValueConverter.GetDataTypeByControlType(aSubitem.ColumnTypeId));
                }

                table.Columns.Add(aDataColumn);
            }

            return(table);
        }
コード例 #6
0
        private static void ProcessSystemDefineEntityColumn(PdmGridClrDto aPdmGridEntity, DataTable toReturnDcuTable, DataTable aDtResult, int gridColumnId)
        {
            var dictRowId = aDtResult.AsDataRowEnumerable().ToDictionary(dtRow => (int)dtRow["Id"], dtRow => dtRow);

            foreach (DataRow dataRow in toReturnDcuTable.Rows)
            {
                string valueId = dataRow[gridColumnId.ToString()] as string;
                if (!string.IsNullOrEmpty(valueId))
                {
                    // int.Parse (
                    int intValueId = int.Parse(valueId);
                    if (dictRowId.ContainsKey(intValueId))
                    {
                        var dtRow = dictRowId[intValueId];
                        foreach (var dependentEntityColumn in aPdmGridEntity.MasterEntityDepdentColumn[gridColumnId])
                        {
                            foreach (DataColumn aDtcolumn in aDtResult.Columns)
                            {
                                if (aDtcolumn.ColumnName == dependentEntityColumn.InternalCode)
                                {
                                    // cannot pass DataTable column DataType to the silverlight, SL doesn't support Sql.client type data

                                    object value = ControlTypeValueConverter.ConvertValueToObject(dtRow[aDtcolumn], dependentEntityColumn.ColumnTypeId);
                                    if (value != null)
                                    {
                                        dataRow[dependentEntityColumn.GridColumnId.ToString()] = value;
                                    }

                                    //else
                                    //{}
                                }
                            }
                        }
                    }
                }
            }
        }
コード例 #7
0
        }        // key1: blockId, key2:referecne, value

        public static Dictionary <int, Dictionary <int, object> > RetrieveReferenceSimpleDcutValue(IEnumerable <int> referenceIds, List <PdmBlockSubItemClrDto> subItemList)
        {
            // subitemIds = subitemIds.Distinct().ToArray ();

            if (referenceIds.Count() == 0 || subItemList.Count == 0)
            {
                return(new Dictionary <int, Dictionary <int, object> >());
            }

            Dictionary <int, int> dictSuibtemIdControType = new Dictionary <int, int>();

            foreach (var blockSubitem in subItemList)
            {
                dictSuibtemIdControType.Add(blockSubitem.SubItemId, blockSubitem.ControlType);
            }

            Dictionary <int, Dictionary <int, object> > toReturn = new Dictionary <int, Dictionary <int, object> >();

            if (referenceIds == null || referenceIds.Count() == 0)
            {
                return(toReturn);
            }

            var subitemIds        = subItemList.Select(o => o.SubItemId).ToList();
            var referenceInClause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(referenceIds, GridColumnConstantName.ProductReferenceID, false);
            var subitemIdInclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(subitemIds, GridColumnConstantName.SubItemID, true);

            StringBuilder aQuery = new StringBuilder();

            //   aQuery.Append( string" SELECT ProductReferenceID,BlockID, GridID,  RowID,  RowValueGUID ,Sort,");

            aQuery.Append(" SELECT " +
                          GridColumnConstantName.ProductReferenceID + ", " +
                          GridColumnConstantName.SubItemID + ", " +
                          GridColumnConstantName.ValueText
                          );

            string queryString = aQuery.ToString() + " from pdmSearchSimpleDcuValue where " + referenceInClause + subitemIdInclause;

            CLROutput.OutputDebug("from pdmSearchSimpleDcuValu" + queryString);

            DataTable dtSimpleValue;

            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);

                dtSimpleValue = DataAcessHelper.GetDataTableQueryResult(conn, queryString);

                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            var subItemQuery = from row in dtSimpleValue.AsDataRowEnumerable()
                               group row by new
            {
                ProductReferenceID = (int)row[GridColumnConstantName.ProductReferenceID]
            } into grp
            orderby grp.Key.ProductReferenceID
                select new
            {
                Key = grp.Key.ProductReferenceID,

                SubitemIDAndValueList = grp.Select(r => new { id = (int)r[GridColumnConstantName.SubItemID], value = r[GridColumnConstantName.ValueText] }),
            };

            foreach (var o in subItemQuery)
            {
                Dictionary <int, object> dictSubitemValue = new Dictionary <int, object>();

                foreach (var subitem in o.SubitemIDAndValueList)
                {
                    var value = ControlTypeValueConverter.ConvertValueToObject(subitem.value, dictSuibtemIdControType[subitem.id]);
                    dictSubitemValue.Add(subitem.id, value);
                }

                var notInDict = subitemIds.Except(dictSubitemValue.Keys);
                foreach (var subitId in notInDict)
                {
                    dictSubitemValue.Add(subitId, null);
                }

                toReturn.Add(o.Key, dictSubitemValue);
            }

            return(toReturn);
        }        // key1: blockId, key2:referecne, value
コード例 #8
0
        public static DataTable RetrieveDataTableReferenceSimpleDcutValue(IEnumerable <string> referenceIds, List <PdmBlockSubItemClrDto> subItemList, bool isShowLookUpItem = true)
        {
            Dictionary <int, int> dictSuibtemIdControType = new Dictionary <int, int>();

            foreach (var blockSubitem in subItemList)
            {
                dictSuibtemIdControType.Add(blockSubitem.SubItemId, blockSubitem.ControlType);
            }

            Dictionary <int, Dictionary <int, object> > toReturn = new Dictionary <int, Dictionary <int, object> >();

            //if (referenceIds == null || referenceIds.Count() == 0)
            //    return simpleDcuTable;

            var subitemIds = subItemList.Select(o => o.SubItemId).ToList();

            if (subitemIds.Count == 0)
            {
                return(new DataTable());
            }

            string referenceInClause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(referenceIds, GridColumnConstantName.ProductReferenceID, true);

            if (referenceIds.Count() == 1 && referenceIds.ElementAt(0) == "-2")
            {
                referenceInClause = string.Empty;
            }


            string subitemIdInclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(subitemIds, GridColumnConstantName.SubItemID, false);

            StringBuilder aQuery = new StringBuilder();

            //   aQuery.Append( string" SELECT ProductReferenceID,BlockID, GridID,  RowID,  RowValueGUID ,Sort,");

            aQuery.Append(" SELECT " +
                          GridColumnConstantName.ProductReferenceID + ", " +
                          GridColumnConstantName.SubItemID + ", " +
                          GridColumnConstantName.ValueText
                          );

            string queryString = aQuery.ToString() + " from pdmSearchSimpleDcuValue where " + subitemIdInclause + referenceInClause;



            DataTable dtSimpleValue;

            var allSubitemeEntityIds = subItemList.Where(o => o.EntityId.HasValue).Select(o => o.EntityId.Value).ToList();
            Dictionary <int, Dictionary <object, string> > dictKeyEntityDictKeyIdDisplayString = PLMSEntityClrBL.GetDictEntityDictDisplayString(allSubitemeEntityIds);



            using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
            {
                conn.Open();
                DataAcessHelper.ExecuteReadUnCommmited(conn);

                dtSimpleValue = DataAcessHelper.GetDataTableQueryResult(conn, queryString);
                // dictKeyEntityDictKeyIdDisplayString = PLMSEntityClrBL.GetDictEntityDictDisplayString(allSubitemeEntityIds, conn);

                DataAcessHelper.ExecuteReadCommmited(conn);
            }

            var subItemQuery = from row in dtSimpleValue.AsDataRowEnumerable()
                               group row by new
            {
                ProductReferenceID = (int)row[GridColumnConstantName.ProductReferenceID]
            } into grp
            orderby grp.Key.ProductReferenceID
                select new
            {
                Key = grp.Key.ProductReferenceID,

                SubitemIDAndValueList = grp.Select(r => new { id = (int)r[GridColumnConstantName.SubItemID], value = r[GridColumnConstantName.ValueText] }),
            };

            DataTable roReturnDcuTable = CreateDataTableStrcutureFromBlockSubitem(subItemList);

            foreach (var o in subItemQuery)
            {
                //Dictionary<int, object> dictSubitemValue = new Dictionary<int, object>();

                DataRow dataRow = roReturnDcuTable.NewRow();
                dataRow[GridColumnConstantName.ProductReferenceID] = o.Key;
                foreach (var subitem in o.SubitemIDAndValueList)
                {
                    object value = ControlTypeValueConverter.ConvertValueToObject(subitem.value, dictSuibtemIdControType[subitem.id]);


                    if (value == null)
                    {
                        dataRow[subitem.id.ToString()] = DBNull.Value;
                    }
                    else
                    {
                        //  CLROutput.Output("convervalue=" + value);
                        dataRow[subitem.id.ToString()] = value;

                        //  CLROutput.Output("dataRow[subitem.id.ToString()]" + dataRow[subitem.id.ToString()]);
                    }
                }

                roReturnDcuTable.Rows.Add(dataRow);
            }

            if (isShowLookUpItem)
            {
                List <PdmBlockSubItemClrDto> dDLSubitemDtoList = subItemList.Where(o => o.ControlType == (int)EmControlType.DDL && o.EntityId.HasValue).ToList();

                foreach (var dictDDLSubitemDto in dDLSubitemDtoList)
                {
                    int    entityId        = dictDDLSubitemDto.EntityId.Value;
                    string stringSubItemId = dictDDLSubitemDto.SubItemId.ToString();
                    if (dictKeyEntityDictKeyIdDisplayString.ContainsKey(entityId))
                    {
                        Dictionary <object, string> lookUpItem = dictKeyEntityDictKeyIdDisplayString[entityId];
                        foreach (DataRow row in roReturnDcuTable.Rows)
                        {
                            int?lookupid = ControlTypeValueConverter.ConvertValueToInt(row[stringSubItemId]);
                            if (lookupid.HasValue)
                            {
                                int idvalue = lookupid.Value;
                                if (lookUpItem.ContainsKey(idvalue))
                                {
                                    row[stringSubItemId] = lookUpItem[idvalue];;

                                    CLROutput.OutputDebug("entityID_idvalue+dislayvalue=" + entityId.ToString() + "_" + idvalue.ToString() + "_" + "_" + lookUpItem[idvalue]);
                                }
                            }
                        }
                    }
                }
            }


            return(roReturnDcuTable);
        }        // key1: blockId, key2:referecne, value
コード例 #9
0
        //blockPdmGridDto, gridcolumnResultDataTable


        public static void SetupBodypartName(PdmGridClrDto aPdmGridClrDto, DataTable gridcolumnResultDataTable)
        {
            if (string.IsNullOrEmpty(aPdmGridClrDto.InternalCode))
            {
                return;
            }

            // get all colunName



            if (!(
                    aPdmGridClrDto.InternalCode == GridRegister.GridSpecGrading.SpecGradingGrid ||
                    aPdmGridClrDto.InternalCode == GridRegister.GridSpecFit.SpecFitGrid ||
                    aPdmGridClrDto.InternalCode == GridRegister.GridSpecQC.SpecQCGrid

                    ))
            {
                return;
            }


            string PomSketchIDColumnName = "PomSketchID";

            gridcolumnResultDataTable.Columns.Add(PomSketchIDColumnName);

            DataColumn bodypartIdColumn    = null;
            DataColumn bodypartCodeColumn  = null;
            DataColumn bodypartNameColumn  = null;
            DataColumn bodypartDescColumn  = null;
            DataColumn bodypartHowToColumn = null;



            foreach (DataColumn column in gridcolumnResultDataTable.Columns)
            {
                int idColumnId = aPdmGridClrDto[GridRegister.GridSpecFit.BodyPartDetailIDWDimDetailID].GridColumnId;

                if (column.ColumnName.EndsWith("_" + idColumnId))
                {
                    bodypartIdColumn = column;
                }



                int codeColumnId = aPdmGridClrDto[GridRegister.GridSpecFit.BodyPartCustomerCode].GridColumnId;

                if (column.ColumnName.EndsWith("_" + codeColumnId))
                {
                    bodypartCodeColumn = column;
                }



                int nameColumnId = aPdmGridClrDto[GridRegister.GridSpecFit.BodyPartName].GridColumnId;

                if (column.ColumnName.EndsWith("_" + nameColumnId))
                {
                    bodypartNameColumn = column;
                }


                int descColumnId = aPdmGridClrDto[GridRegister.GridSpecFit.BodyPartDesc].GridColumnId;

                if (column.ColumnName.EndsWith("_" + descColumnId))
                {
                    bodypartDescColumn = column;
                }


                int howtoColumnId = aPdmGridClrDto[GridRegister.GridSpecFit.HowToMeasure].GridColumnId;

                if (column.ColumnName.EndsWith("_" + howtoColumnId))
                {
                    bodypartHowToColumn = column;
                }
            }

            // gridcolumnResultDataTable.AsDataRowEnumerable ().Select (o=>o

            Dictionary <DataRow, int> dictRowAndBodypartIdForColumnResultDataTable = new Dictionary <DataRow, int>();
            List <int> bodypartIds = new List <int> ();

            foreach (DataRow aRow in gridcolumnResultDataTable.Rows)
            {
                int?bodyparid = ControlTypeValueConverter.ConvertValueToInt(aRow[bodypartIdColumn]);
                if (bodyparid.HasValue)
                {
                    bodypartIds.Add(bodyparid.Value);
                    dictRowAndBodypartIdForColumnResultDataTable.Add(aRow, bodyparid.Value);
                }
            }

            if (bodypartIds.Count > 0)
            {
                string query    = @" select BodyPartID , Code , BodyPartName ,Description ,MeasureInstruction,SketchID from pdmV2kBodyPart ";
                string inclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(bodypartIds.Distinct(), "BodyPartID", false);
                query = query + " where " + inclause;

                DataTable bodypartDataTable = null;
                using (SqlConnection conn = new SqlConnection(PLMConstantString.PLM_APP_ConnectionString))
                {
                    conn.Open();
                    bodypartDataTable = DataAcessHelper.GetDataTableQueryResult(conn, query);
                }

                Dictionary <int, DataRow> dictbodyRowAndId = new Dictionary <int, DataRow>();
                foreach (DataRow aDataRow in bodypartDataTable.Rows)
                {
                    dictbodyRowAndId.Add((int)aDataRow["BodyPartID"], aDataRow);
                }


//           EnablePomCodeSynchonizeWithProduct
//EnablePomNameSynchonizeWithProduct
//EnablePomDescriptionSynchonizeWithProduct
//EnablePomMeasureInstrcutionSynchonizeWithProduct

                bool isEnableCode    = PLMConstantString.DictPdmSetup["EnablePomCodeSynchonizeWithProduct"].SetupValue.ToLower() == "true";
                bool isEnableName    = PLMConstantString.DictPdmSetup["EnablePomNameSynchonizeWithProduct"].SetupValue.ToLower() == "true";
                bool isEnableDesc    = PLMConstantString.DictPdmSetup["EnablePomDescriptionSynchonizeWithProduct"].SetupValue.ToLower() == "true";
                bool isEnableMeasure = PLMConstantString.DictPdmSetup["EnablePomMeasureInstrcutionSynchonizeWithProduct"].SetupValue.ToLower() == "true";


                foreach (DataRow gridRow in dictRowAndBodypartIdForColumnResultDataTable.Keys)
                {
                    int bodyId = dictRowAndBodypartIdForColumnResultDataTable[gridRow];
                    if (dictbodyRowAndId.ContainsKey(bodyId))
                    {
                        DataRow bodyparRow = dictbodyRowAndId[bodyId];
                        if (isEnableCode)
                        {
                            gridRow[bodypartCodeColumn] = bodyparRow["Code"] as string;
                        }

                        if (isEnableName)
                        {
                            gridRow[bodypartNameColumn] = bodyparRow["BodyPartName"] as string;
                        }

                        if (isEnableDesc)
                        {
                            gridRow[bodypartDescColumn] = bodyparRow["Description"] as string;
                        }

                        if (isEnableMeasure)
                        {
                            gridRow[bodypartHowToColumn] = bodyparRow["MeasureInstruction"] as string;
                        }


                        gridRow[PomSketchIDColumnName] = bodyparRow["SketchID"] as int?;
                    }
                }
            }
        }
コード例 #10
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);
        }
コード例 #11
0
        // will return base size
        //GetSpecQcSizeRunTable

        public static DataTable GetSpecQcSelectedSizeForAllCopyTabsTable(int mainReferenceId, SqlConnection conn, int mainQcTabId)
        {
            Dictionary <string, int> dictSubitemInterlCodeAndId = SysDefinBlockHelper.GetDictInteralCodeSubItemId(conn, BlockRegister.SpecQCBlock.SpecQCBlockName);

            int sizeRunSubitemId = dictSubitemInterlCodeAndId[BlockRegister.SpecQCBlock.SpecFitSizeRun];
            // int selecdSizeRunSubitemId = dictSubitemInterlCodeAndId[BlockRegister.SpecQCBlock.SpecSelectedSize];
            //  int SpecFitBaseSizeSubitemId = dictSubitemInterlCodeAndId[BlockRegister.SpecQCBlock.SpecFitBaseSize];



            // Get MainTab SizeRunId
            string searchSubitemValue = @" select ValueText  from PdmSearchSimpleDcuValue where
                                                ( SubItemID =@sizeRunSubitemId  and ProductReferenceID = @ProductReferenceID  )    ";


            SqlCommand   cmd = new SqlCommand(searchSubitemValue, conn);
            SqlParameter pararselecdSizeRunSubitemId = new SqlParameter("@sizeRunSubitemId", sizeRunSubitemId);

            cmd.Parameters.Add(pararselecdSizeRunSubitemId);
            SqlParameter paraMainReferenceId = new SqlParameter("@ProductReferenceID", mainReferenceId);

            cmd.Parameters.Add(paraMainReferenceId);

            DataTable mainTabSizeRun = DataAcessHelper.GetDataTableQueryResult(cmd);

            if (mainTabSizeRun.Rows.Count == 0)
            {
                return(new DataTable());
            }

            int?sizeRunId = ControlTypeValueConverter.ConvertValueToInt(mainTabSizeRun.Rows[0]["ValueText"]);

            if (!sizeRunId.HasValue)
            {
                return(new DataTable());
            }


            // Get Copy Tab
            string queryCopyTab = @"SELECT     CopyTabID, MainTabID, CopyTabReferenceID, Name, Description, Sort, MainReferenceID
                FROM         pdmCopyTabReference
                WHERE     (MainReferenceID = @MainReferenceID) AND (MainTabID =@MainTabID)";

            List <SqlParameter> parameters = new List <SqlParameter> ();

            parameters.Add(new SqlParameter("@MainReferenceID", mainReferenceId));
            parameters.Add(new SqlParameter("@MainTabID", mainQcTabId));
            DataTable copyTabTable = DataAcessHelper.GetDataTableQueryResult(conn, queryCopyTab, parameters);

            List <int> allReferenceIds = new List <int>();

            allReferenceIds.Add(mainReferenceId);


            // refere copy tab mapping
            Dictionary <int, string> dictReferenceTabName = new Dictionary <int, string>();

            var pdmTabClrDto = PdmCacheManager.DictTabCache[mainQcTabId];

            dictReferenceTabName.Add(mainReferenceId, pdmTabClrDto.TabName);
            //   foreach ( DataRow row in

            foreach (DataRow row in copyTabTable.Rows)
            {
                int copyTabRefId = (int)row["CopyTabReferenceID"];
                allReferenceIds.Add(copyTabRefId);
                dictReferenceTabName.Add(copyTabRefId, row["Name"].ToString());
            }


            // Get  QC seelct Size
            string productInclause = DataAcessHelper.GenerateColumnInClauseWithAndCondition(allReferenceIds, "ProductReferenceID", true);
            string querySelectSize = @" select ProductReferenceID,SizeRunRotateID   from PdmProductQcSize where TabID =  " + mainQcTabId + productInclause;

            DataTable selectSizeDataTable = DataAcessHelper.GetDataTableQueryResult(conn, querySelectSize);

            //  CLROutput.SendDataTable(selectSizeDataTable);

            Dictionary <int, List <int> > dictRefereneSelectSize = selectSizeDataTable.AsDataRowEnumerable().GroupBy(o => (int)o["ProductReferenceID"]).ToDictionary(g => g.Key, g => g.Select(r => (int)r["SizeRunRotateID"]).ToList());


            // get Size run table
            // DataTable sizeRotateTable = GetSizeRotateTableWithSizerunId(conn, sizeRunId.Value );


            DataTable sizeRotateTable = GetSpecGradingBlockSelectSizeRotateTable(mainReferenceId, conn);



            // Create Return table
            DataTable  returnDataTble = new DataTable();
            DataColumn tabNamecolumn  = new DataColumn("TabName", typeof(string));

            returnDataTble.Columns.Add(tabNamecolumn);

            for (int i = 1; i <= 20; i++)
            {
                DataColumn column = new DataColumn("Size" + i.ToString(), typeof(string));
                returnDataTble.Columns.Add(column);
            }

            foreach (int refId in dictReferenceTabName.Keys)
            {
                DataRow aRow = returnDataTble.NewRow();
                aRow["TabName"] = dictReferenceTabName[refId];



                if (dictRefereneSelectSize.ContainsKey(refId))
                {
                    List <int> selectedSizeRotatedIds = dictRefereneSelectSize[refId];

                    int rowCount = 1;
                    foreach (DataRow row in sizeRotateTable.Rows)
                    {
                        int rizeRotateId = (int)row["SizeRunRotateID"];
                        if (selectedSizeRotatedIds.Contains(rizeRotateId))
                        {
                            aRow["Size" + rowCount.ToString()] = row["SizeName"];
                        }

                        rowCount++;
                    }
                }


                returnDataTble.Rows.Add(aRow);
            }



            return(returnDataTble);
        }