Exemplo n.º 1
0
        /// <summary>
        /// 运算-通过从EXCEL导入的DT获取表头信息
        /// </summary>
        /// <param name="dt"></param>
        /// <param name="comselectid"></param>
        /// <returns></returns>
        public DataTable Generatetemp(DataTable dt, int comselectid)
        {
            var resultdt = new DataTable();

            //保存‘配方代码’字段,用于排除重复值
            var colorcode = string.Empty;
            //保存‘版本日期’字段,用于排除重复值
            var confrimdt = string.Empty;
            //保存‘层’字段,用于排除重复值
            var layer = 0;

            try
            {
                #region 旧系统使用

                if (comselectid == 1)
                {
                    //获取表头临时表
                    resultdt = dtList.Get_gendt();
                    //循环从模板EXCEL获取的DT
                    foreach (DataRow row in dt.Rows)
                    {
                        var newrow = resultdt.NewRow();
                        newrow[0]  = row[0];                                      //ID
                        newrow[1]  = row[1];                                      //车厂
                        newrow[2]  = "";                                          //颜色代码
                        newrow[3]  = "";                                          //颜色名称
                        newrow[4]  = row[2];                                      //适用车型
                        newrow[5]  = "伊施威";                                       //品牌
                        newrow[6]  = row[11];                                     //涂层
                        newrow[7]  = "";                                          //差异色
                        newrow[8]  = Convert.ToDateTime(row[10]).Year.ToString(); //年份(注:取‘制作日期’中的年份)
                        newrow[9]  = "原车板";                                       //色版来源
                        newrow[10] = row[3];                                      //配方号
                        newrow[11] = "";                                          //颜色索引号
                        newrow[12] = row[10];                                     //制作日期
                        newrow[13] = "陈富明";                                       //制作人
                        newrow[14] = DateTime.Now.Date;                           //录入日期
                        newrow[15] = "冯惠娴";                                       //录入人
                        newrow[16] = row[9];                                      //审核日期
                        newrow[17] = "谭晓红";                                       //审核人
                        newrow[18] = "";                                          //备注
                        newrow[19] = "";                                          //来源分类
                        newrow[20] = row[7];                                      //颜色组别(导出新数据库模板使用)
                        resultdt.Rows.Add(newrow);
                    }
                }
                #endregion
                //以新系统模板纵向导出
                else if (comselectid == 2)
                {
                    //获取表头临时表
                    resultdt = dtList.Get_NewTempdt();
                    //循环从模板EXCEL获取的DT
                    foreach (DataRow rows in dt.Rows)
                    {
                        var newrow = resultdt.NewRow();
                        newrow[0]  = rows[0];       //ID
                        newrow[1]  = rows[1];       //制造商
                        newrow[2]  = rows[2];       //车型
                        newrow[3]  = rows[3];       //涂层
                        newrow[4]  = rows[4];       //颜色描述
                        newrow[5]  = rows[5];       //内部色号
                        newrow[6]  = rows[6];       //主配方色号(差异色)
                        newrow[7]  = rows[7];       //差异色名称
                        newrow[8]  = rows[8];       //颜色组别
                        newrow[9]  = rows[9];       //标准色号
                        newrow[10] = rows[10];      //RGBValue
                        newrow[11] = rows[11];      //版本日期
                        newrow[12] = rows[12];      //层
                        resultdt.Rows.Add(newrow);
                    }
                }
                //以新系统模板横向导出
                else if (comselectid == 3)
                {
                    //获取导出模板(横向)
                    resultdt = dtList.Get_ExportVdt(); //dtList.Get_ErrorRecorddt();

                    //先循环导入EXCEL数据源
                    foreach (DataRow rows in dt.Rows)
                    {
                        //若循环获取的‘内部色号’与变量一致,即不用继续
                        if (colorcode == Convert.ToString(rows[4]) && confrimdt == Convert.ToString(rows[9]) && layer == Convert.ToInt32(rows[10]))
                        {
                            continue;
                        }
                        //若不相同,先将当前循环行的值进行赋值至变量
                        colorcode = Convert.ToString(rows[4]);
                        confrimdt = Convert.ToString(rows[9]);
                        layer     = Convert.ToInt32(rows[10]);

                        resultdt.Merge(GetVdt(rows, dt, resultdt));
                    }
                }
            }
            catch (Exception)
            {
                resultdt.Rows.Clear();
                resultdt.Columns.Clear();
            }

            return(resultdt);
        }