Exemple #1
0
        /// <summary>
        /// 根据条件返回单个配件对象
        /// </summary>
        /// <param name="whereSql"></param>
        /// <returns></returns>
        public CeilingAccessory GetCeilingAccessoryByWhereSql(string whereSql)
        {
            string sql = "select CeilingAccessoryId,ClassNo,PartDescription,Quantity,PartNo,Unit,Length,Width,Height,Material,Remark,CountingRule from CeilingAccessories";

            sql += whereSql;
            SqlDataReader    objReader           = SQLHelper.GetReader(sql);
            CeilingAccessory objCeilingAccessory = null;

            if (objReader.Read())
            {
                objCeilingAccessory = new CeilingAccessory()
                {
                    CeilingAccessoryId = objReader["CeilingAccessoryId"].ToString(),
                    ClassNo            = Convert.ToInt32(objReader["ClassNo"]),
                    PartDescription    = objReader["PartDescription"].ToString(),
                    Quantity           = Convert.ToInt32(objReader["Quantity"]),
                    PartNo             = objReader["PartNo"].ToString(),
                    Unit         = objReader["Unit"].ToString(),
                    Length       = objReader["Length"].ToString(),
                    Width        = objReader["Width"].ToString(),
                    Height       = objReader["Height"].ToString(),
                    Material     = objReader["Material"].ToString(),
                    Remark       = objReader["Remark"].ToString(),
                    CountingRule = objReader["CountingRule"].ToString()
                };
            }
            objReader.Close();
            return(objCeilingAccessory);
        }
Exemple #2
0
        /// <summary>
        /// 修改发货清单
        /// </summary>
        /// <param name="objCeilingAccessory"></param>
        /// <returns></returns>
        public int EditCeilingPackingList(CeilingAccessory objCeilingAccessory)
        {
            //编写带参数的SQL语句
            StringBuilder sqlBuilder = new StringBuilder();

            sqlBuilder.Append("Update CeilingPackingList set PartDescription=@PartDescription,PartNo=@PartNo,Quantity=@Quantity,");
            sqlBuilder.Append("Length=@Length,Width=@Width,Height=@Height,Remark=@Remark,Location=@Location where CeilingPackingListId=@CeilingPackingListId");
            //定义参数数组
            SqlParameter[] param = new SqlParameter[]
            {
                new SqlParameter("@PartDescription", objCeilingAccessory.PartDescription),
                new SqlParameter("@PartNo", objCeilingAccessory.PartNo),
                new SqlParameter("@Quantity", objCeilingAccessory.Quantity),
                new SqlParameter("@Length", objCeilingAccessory.Length),
                new SqlParameter("@Width", objCeilingAccessory.Width),
                new SqlParameter("@Height", objCeilingAccessory.Height),
                new SqlParameter("@Remark", objCeilingAccessory.Remark),
                new SqlParameter("@Location", objCeilingAccessory.Location),
                new SqlParameter("@CeilingPackingListId", objCeilingAccessory.CeilingPackingListId)
            };
            try
            {
                return(SQLHelper.Update(sqlBuilder.ToString(), param));
            }
            catch (SqlException ex)
            {
                throw new Exception("数据库操作出现异常:" + ex.Message);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #3
0
        /// <summary>
        /// 添加配件信息
        /// </summary>
        /// <param name="objCeilingAccessory"></param>
        /// <returns></returns>
        public bool AddCeilingAccessory(CeilingAccessory objCeilingAccessory)
        {
            string sql = "insert into CeilingAccessories (CeilingAccessoryId,ClassNo,PartDescription,PartNo,Unit,Length,Width,Height,Material,Remark,CountingRule)";

            sql += " values('{0}',{1},'{2}','{3}','{4}','{5}','{6}','{7}','{8}','{9}','{10}')";
            sql  = string.Format(sql, objCeilingAccessory.CeilingAccessoryId, objCeilingAccessory.ClassNo, objCeilingAccessory.PartDescription, objCeilingAccessory.PartNo,
                                 objCeilingAccessory.Unit, objCeilingAccessory.Length, objCeilingAccessory.Width, objCeilingAccessory.Height, objCeilingAccessory.Material,
                                 objCeilingAccessory.Remark, objCeilingAccessory.CountingRule);
            try
            {
                SQLHelper.GetSingleResult(sql);
                return(true);
            }
            catch (SqlException ex)
            {
                //2627
                if (ex.Number == 2627)
                {
                    throw new Exception("信息重复,不能添加重复的项目信息");
                }
                else
                {
                    throw new Exception("添加配件信息时数据库访问异常" + ex.Message);
                }
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
Exemple #4
0
 /// <summary>
 /// 选中节点后复制给配件对象,并反填数据到txt中
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void tvCeilingAccessories_AfterSelect(object sender, TreeViewEventArgs e)
 {
     //先判断是二级节点才执行任务
     if (e.Node.Level == 1)
     {
         //需要执行的任务
         objCeilingAccessory     = objCeilingAccessoryService.GetCeilingAccessoryById(e.Node.Tag.ToString());
         txtPartDescription.Text = objCeilingAccessory.PartDescription;
         if (objCeilingAccessory.CeilingAccessoryId == "7001")
         {
             txtPartDescription.ReadOnly = false;
         }
         else
         {
             txtPartDescription.ReadOnly = true;
         }
         txtPartNo.Text             = objCeilingAccessory.PartNo;
         txtRemark.Text             = objCeilingAccessory.Remark;
         txtQuantity.Text           = objCeilingAccessory.Quantity.ToString();
         txtUnit.Text               = objCeilingAccessory.Unit;
         txtLength.Text             = objCeilingAccessory.Length;
         txtWidth.Text              = objCeilingAccessory.Width;
         txtHeight.Text             = objCeilingAccessory.Height;
         btnAddCeilingAccessory.Tag = objCeilingAccessory.CeilingAccessoryId;
     }
 }
        /// <summary>
        /// 执行修改按钮
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnEditCeilingAccessory_Click(object sender, EventArgs e)
        {
            if (txtPartDescription.Tag == null)
            {
                return;
            }
            int firstRowIndex = dgvCeilingPackingList.CurrentRow.Index;
            //封装对象
            CeilingAccessory objCeilingPackingItem = new CeilingAccessory()
            {
                CeilingPackingListId = Convert.ToInt32(txtPartDescription.Tag),
                PartDescription      = txtPartDescription.Text.Trim(),
                PartNo   = txtPartNo.Text.Trim(),
                Remark   = txtRemark.Text.Trim(),
                Quantity = Convert.ToInt32(txtQuantity.Text.Trim()),
                Length   = txtLength.Text.Trim(),
                Width    = txtWidth.Text.Trim(),
                Height   = txtHeight.Text.Trim(),
                Location = txtLocation.Text.Trim()
            };

            //提交修改
            //调用后台方法修改对象
            try
            {
                if (objCeilingAccessoryService.EditCeilingPackingList(objCeilingPackingItem) == 1)
                {
                    MessageBox.Show("发货清单条目信息成功!", "提示信息");
                    dgvCeilingPackingList.DataSource = objCeilingAccessoryService.GetCeilingPackingListByProjectId(objProject.ProjectId.ToString());
                    //清空内容
                    txtPartDescription.Text     = "";
                    txtPartDescription.ReadOnly = true;
                    txtPartNo.Text   = "";
                    txtRemark.Text   = "";
                    txtQuantity.Text = "";
                    txtLength.Text   = "";
                    txtWidth.Text    = "";
                    txtHeight.Text   = "";
                    //txtLocation.Text = "";
                    txtPartDescription.Tag = "";
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
            btnEditCeilingAccessory.Enabled = false;
            dgvCeilingPackingList.Rows[firstRowIndex].Selected    = true;          //将刚修改的行选中
            dgvCeilingPackingList.FirstDisplayedScrollingRowIndex = firstRowIndex; //将修改的行显示在第一行
        }
Exemple #6
0
        /// <summary>
        /// 修改配件信息
        /// </summary>
        /// <param name="objCeilingAccessory"></param>
        /// <returns></returns>
        public int EditCeilingAccessory(CeilingAccessory objCeilingAccessory)
        {
            string sql = "update CeilingAccessories set ClassNo={0},PartDescription='{1}',PartNo='{2}',Unit='{3}',";

            sql += "Length='{4}',Width='{5}',Height='{6}',Material='{7}',Remark='{8}',CountingRule='{9}' where CeilingAccessoryId='{10}'";
            sql  = string.Format(sql, objCeilingAccessory.ClassNo, objCeilingAccessory.PartDescription, objCeilingAccessory.PartNo, objCeilingAccessory.Unit,
                                 objCeilingAccessory.Length, objCeilingAccessory.Width, objCeilingAccessory.Height, objCeilingAccessory.Material,
                                 objCeilingAccessory.Remark, objCeilingAccessory.CountingRule, objCeilingAccessory.CeilingAccessoryId);
            try
            {
                return(SQLHelper.Update(sql));
            }
            catch (SqlException ex)
            {
                throw new Exception("数据库操作出现异常:" + ex.Message);
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
        /// <summary>
        /// 打印标签
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnPrintLabel_Click(object sender, EventArgs e)
        {
            //判断有没有数据,弹窗确定要打印选中的条目
            if (dgvCeilingPackingList.RowCount == 0)
            {
                return;
            }
            DialogResult result = MessageBox.Show("确定要打印选中的多行打标签吗?", "打标签询问", MessageBoxButtons.YesNo, MessageBoxIcon.Question);

            if (result == DialogResult.No || dgvCeilingPackingList.SelectedRows.Count == 0)
            {
                return;
            }
            //获取选择的标签
            List <CeilingAccessory> ceilingAccessories = new List <CeilingAccessory>();

            foreach (DataGridViewRow row in dgvCeilingPackingList.SelectedRows)
            {
                //循环选中的行,并根据ID查询对象,判断ClassNo==4,将对象填入List
                CeilingAccessory objCeilingAccessory =
                    objCeilingAccessoryService.GetCeilingPackingItemById(row.Cells["CeilingPackingListId"].Value
                                                                         .ToString());

                if (objCeilingAccessory.ClassNo == 4)
                {
                    for (int i = 1; i <= objCeilingAccessory.Quantity; i++)//根据数量添加多个标签
                    {
                        ceilingAccessories.Add(objCeilingAccessory);
                    }
                }
            }
            //调用打印程序
            if (new PrintReports().ExecPrintCeilingLabel(objProject, ceilingAccessories))
            {
                MessageBox.Show("标签打印完成", "打印完成");
            }
        }
Exemple #8
0
        /// <summary>
        /// 根据where条件返回发货清单条目
        /// </summary>
        /// <param name="whereSql"></param>
        /// <returns></returns>
        public CeilingAccessory GetCeilingPackingItemByWhereSql(string whereSql)
        {
            StringBuilder sql = new StringBuilder("select PartDescription,Quantity,PartNo,Unit,Length,Width,Height,Material,Remark,CountingRule,AddedDate,CeilingPackingList.UserId,UserAccount,ProjectId,CeilingAccessoryId,ClassNo,CeilingPackingListId,Location from CeilingPackingList");

            sql.Append(" inner join Users on Users.UserId=CeilingPackingList.UserId");
            sql.Append(whereSql);
            SqlDataReader    objReader           = SQLHelper.GetReader(sql.ToString());
            CeilingAccessory objCeilingAccessory = null;

            while (objReader.Read())
            {
                objCeilingAccessory = new CeilingAccessory()
                {
                    CeilingPackingListId = Convert.ToInt32(objReader["CeilingPackingListId"]),
                    ProjectId            = Convert.ToInt32(objReader["ProjectId"]),
                    CeilingAccessoryId   = objReader["CeilingAccessoryId"].ToString(),
                    ClassNo         = Convert.ToInt32(objReader["ClassNo"]),
                    PartDescription = objReader["PartDescription"].ToString(),
                    Quantity        = Convert.ToInt32(objReader["Quantity"]),
                    PartNo          = objReader["PartNo"].ToString(),
                    Unit            = objReader["Unit"].ToString(),
                    Length          = objReader["Length"].ToString(),
                    Width           = objReader["Width"].ToString(),
                    Height          = objReader["Height"].ToString(),
                    Material        = objReader["Material"].ToString(),
                    Remark          = objReader["Remark"].ToString(),
                    CountingRule    = objReader["CountingRule"].ToString(),
                    AddedDate       = Convert.ToDateTime(objReader["AddedDate"]),
                    UserId          = Convert.ToInt32(objReader["UserId"]),
                    UserAccount     = objReader["UserAccount"].ToString(),
                    Location        = objReader["Location"].ToString()
                };
            }
            objReader.Close();
            return(objCeilingAccessory);
        }
 /// <summary>
 /// 按钮,增加或修改
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void btnCeilingAccessory_Click(object sender, EventArgs e)
 {
     #region 数据验证
     if (txtPartDescription.Text.Trim().Length == 0)
     {
         MessageBox.Show("请输入部件描述", "验证信息");
         txtPartDescription.Focus();
         return;
     }
     if (txtPartNo.Text.Trim().Length == 0)
     {
         MessageBox.Show("请输入部件编号", "验证信息");
         txtPartNo.Focus();
         return;
     }
     if (txtCeilingAccessoryId.Text.Trim().Length == 0)
     {
         MessageBox.Show("请输入ID,ID开头数字规则:0电/1灯/2风机/3型材/4油网/5螺丝/6控制/7水洗ANSUL/8折弯件/9焊接件", "验证信息");
         txtCeilingAccessoryId.Focus();
         return;
     }
     if (cobUnit.SelectedIndex == -1)
     {
         MessageBox.Show("请选择单位", "验证信息");
         cobUnit.Focus();
         return;
     }
     if (cobClassNo.SelectedIndex == -1)
     {
         MessageBox.Show("请选择分类号,分类号规则:0日本不要配件,1日本特有配件,2适用于所有项目的配件,3自制折弯件,4自制焊接件(打标签)", "验证信息");
         cobClassNo.Focus();
         return;
     }
     #endregion
     int firstRowIndex = dgvCeilingAccessories.CurrentRow.Index;
     if (btnCeilingAccessory.Tag.Equals(0))
     {
         //提交添加
         //封装对象
         CeilingAccessory objCeilingAccessory = new CeilingAccessory()
         {
             CeilingAccessoryId = txtCeilingAccessoryId.Text.Trim(),
             ClassNo            = Convert.ToInt32(cobClassNo.Text),
             PartDescription    = txtPartDescription.Text.Trim(),
             PartNo             = txtPartNo.Text.Trim(),
             Unit         = cobUnit.Text,
             Length       = txtLength.Text.Trim(),
             Width        = txtWidth.Text.Trim(),
             Height       = txtHeight.Text.Trim(),
             Material     = txtMaterial.Text.Trim(),
             Remark       = txtRemark.Text.Trim(),
             CountingRule = txtCountingRule.Text.Trim()
         };
         //提交添加
         try
         {
             if (objCeilingAccessoryService.AddCeilingAccessory(objCeilingAccessory))
             {
                 //提示添加成功
                 MessageBox.Show("配件信息添加成功", "提示信息");
                 //刷新显示
                 dgvCeilingAccessories.DataSource = objCeilingAccessoryService.GetCeilingAccessoriesByWhereSql("");
                 //清空内容
                 foreach (Control item in Controls)
                 {
                     if (item == txtPartNo)
                     {
                         continue;
                     }
                     if (item is TextBox)
                     {
                         item.Text = "";
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
     }
     else
     {
         //封装对象
         //封装对象
         CeilingAccessory objCeilingAccessory = new CeilingAccessory()
         {
             CeilingAccessoryId = txtCeilingAccessoryId.Text.Trim(),
             ClassNo            = Convert.ToInt32(cobClassNo.Text),
             PartDescription    = txtPartDescription.Text.Trim(),
             PartNo             = txtPartNo.Text.Trim(),
             Unit         = cobUnit.Text,
             Length       = txtLength.Text.Trim(),
             Width        = txtWidth.Text.Trim(),
             Height       = txtHeight.Text.Trim(),
             Material     = txtMaterial.Text.Trim(),
             Remark       = txtRemark.Text.Trim(),
             CountingRule = txtCountingRule.Text.Trim()
         };
         //提交
         //提交修改
         //调用后台方法修改对象
         try
         {
             if (objCeilingAccessoryService.EditCeilingAccessory(objCeilingAccessory) == 1)
             {
                 MessageBox.Show("修改配件信息成功!", "提示信息");
                 dgvCeilingAccessories.DataSource =
                     objCeilingAccessoryService.GetCeilingAccessoriesByWhereSql("");
                 //清空内容
                 foreach (Control item in Controls)
                 {
                     if (item == txtPartNo)
                     {
                         continue;
                     }
                     if (item is TextBox)
                     {
                         item.Text = "";
                     }
                 }
             }
         }
         catch (Exception ex)
         {
             MessageBox.Show(ex.Message);
         }
         finally
         {
             btnCeilingAccessory.Tag        = 0;//0代表添加,1代表修改
             btnCeilingAccessory.Text       = "添加配件";
             txtCeilingAccessoryId.ReadOnly = false;
         }
     }
     dgvCeilingAccessories.Rows[firstRowIndex].Selected    = true;          //将刚修改的行选中
     dgvCeilingAccessories.FirstDisplayedScrollingRowIndex = firstRowIndex; //将修改的行显示在第一行
 }
        public void CeilingAssyToPackingList(SldWorks swApp, string assyPath, Project objProject, int userId)
        {
            swApp.CommandInProgress = true;
            List <CeilingAccessory> celingAccessories = new List <CeilingAccessory>();

            try
            {
                //打开模型
                ModelDoc2 swModel = swApp.OpenDoc6(assyPath, (int)swDocumentTypes_e.swDocASSEMBLY,
                                                   (int)swOpenDocOptions_e.swOpenDocOptions_Silent, "", ref errors, ref warnings) as ModelDoc2;
                if (swModel == null)
                {
                    MessageBox.Show("模型不存在,请认真检查", "模型不存在");
                    return;
                }
                swModel.ForceRebuild3(true);
                AssemblyDoc swAssy = swModel as AssemblyDoc;
                //获取所有零部件集合
                var compList = swAssy.GetComponents(false);


                //遍历集合中的所有零部件对象
                foreach (var swComp in compList)
                {
                    //判断零件是否被压缩,不显示,封套,零件名称不是以sldprt或SLDPRT结尾,(导出发货清单无需判断可见,封套,无需判断钣金,只要没有被压缩就行了)
                    if (!swComp.IsSuppressed() && (swComp.GetPathName().EndsWith(".sldprt") || swComp.GetPathName().EndsWith(".SLDPRT")))
                    {
                        Component2 swParentComp = swComp.GetParent();
                        //总装没有父装配体
                        if (swParentComp == null)
                        {
                            ConfigurationManager swConfigMgr = swModel.ConfigurationManager;
                            Configuration        swConfig2   = swConfigMgr.ActiveConfiguration;
                            swParentComp = swConfig2.GetRootComponent3(true);
                        }

                        //判断父装配体是否可视,并且不封套(导出发货清单无需判断可见,封套,无需判断钣金,只要没有被压缩就行了)
                        if (swParentComp.Visible == 1 && !swComp.IsSuppressed())
                        {
                            //过滤需要的零件,全部转换成大写
                            if (swComp.GetPathName().Contains("["))
                            {
                                //截取关键字
                                string keyWord = swComp.GetPathName();
                                if (keyWord.Contains(")"))
                                {
                                    keyWord = keyWord.Substring(0, keyWord.IndexOf(")") + 1);
                                    keyWord = keyWord.Substring(keyWord.IndexOf("[")).ToUpper();
                                }
                                else if (keyWord.Contains("}"))
                                {
                                    keyWord = keyWord.Substring(0, keyWord.IndexOf("}") + 1);
                                    keyWord = keyWord.Substring(keyWord.IndexOf("[")).ToUpper();
                                }
                                else
                                {
                                    keyWord = keyWord.Substring(0, keyWord.IndexOf("]") + 1);
                                    keyWord = keyWord.Substring(keyWord.IndexOf("[")).ToUpper();
                                }

                                if (sheetMetaDic.ContainsKey(keyWord))
                                {
                                    sheetMetaDic[keyWord] += 1;
                                }
                                else
                                {
                                    sheetMetaDic.Add(keyWord, 1);
                                }
                            }
                        }
                    }
                }
                //关闭装配体零件
                //swApp.CloseDoc(assyPath);
                foreach (var item in sheetMetaDic)
                {
                    //获取关键字,查找对象
                    string partNo = "";
                    string length = "";
                    string width  = "";
                    if (item.Key.Contains("-"))
                    {
                        partNo = item.Key.Substring(1, item.Key.IndexOf("-") - 1);
                    }
                    else
                    {
                        partNo = item.Key.Substring(1, item.Key.IndexOf("]") - 1);
                    }
                    CeilingAccessory objCeilingAccessory = objCeilingAccessoryService.GetCeilingAccessoryByPartNo(partNo);
                    if (objCeilingAccessory == null)
                    {
                        continue;
                    }
                    //给对象赋值
                    objCeilingAccessory.PartNo    = item.Key.Substring(1, item.Key.IndexOf("]") - 1);
                    objCeilingAccessory.Quantity  = item.Value;
                    objCeilingAccessory.ProjectId = objProject.ProjectId;
                    objCeilingAccessory.UserId    = userId;
                    objCeilingAccessory.Location  = objDrawingPlanService.GetDrawingPlanByProjectId(objProject.ProjectId.ToString())[0].Item;

                    if (item.Key.Contains(")"))
                    {
                        width = item.Key.Substring(0, item.Key.IndexOf(")"));
                        width = width.Substring(width.IndexOf("(") + 1);
                        objCeilingAccessory.Width = width;
                    }
                    if (item.Key.Contains("}"))
                    {
                        length = item.Key.Substring(0, item.Key.IndexOf("}"));
                        length = length.Substring(length.IndexOf("{") + 1);
                        objCeilingAccessory.Length = length;
                    }
                    //添加list
                    ceilingAccessories.Add(objCeilingAccessory);
                }
            }
            catch (Exception ex)
            {
                throw new Exception(assyPath + "装配体导出发货清单过程发生异常,详细:" + ex.Message);
            }
            finally
            {
                sheetMetaDic.Clear();
                swApp.CloseDoc(assyPath);        //关闭,很快
                swApp.CommandInProgress = false; //及时关闭外部命令调用,否则影响SolidWorks的使用
            }
            //基于事务ceilingCutLists提交SQLServer
            if (ceilingAccessories.Count == 0)
            {
                return;
            }
            try
            {
                if (objCeilingAccessoryService.ImportCeilingPackingListByTran(ceilingAccessories))
                {
                    ceilingAccessories.Clear();
                }
            }
            catch (Exception ex)
            {
                throw new Exception("Cutlist导入数据库失败" + ex.Message);
            }
        }