Exemplo n.º 1
0
        /// <summary>
        /// 根据功能ID获取对应的空白临时表
        /// </summary>
        /// <param name="functionName">功能名,作用:获取空白表格</param>
        /// <returns></returns>
        public DataTable GetTempdt(string functionName)
        {
            var resultDt = new DataTable();

            switch (functionName)
            {
            //客户信息管理
            case "Customer":
                resultDt = dlDtList.Get_CustEmptydt();
                break;

            //供应商管理
            case "Supplier":
                resultDt = dlDtList.Get_SupplierEmptydt();
                break;

            //材料信息管理
            case "Material":
                resultDt = dlDtList.Get_MaterialEmptydt();
                break;

            //房屋类型及装修工程类别信息管理
            case "House":
                resultDt = dlDtList.Get_HouseEmptydt();
                break;

            //房屋类型及装修工程类别信息管理-类别项目名称
            case "HouseProject":
                resultDt = dlDtList.Get_HouseProjectEmptydt();
                break;

            //室内装修工程单
            case "AdornOrder":
                resultDt = dlDtList.Get_AdornEmptydt();
                break;

            //室内主材单
            case "MaterialOrder":
                resultDt = dlDtList.Get_ProMaterialEmtrydt();
                break;

            //室内装修工程单-表头记录(用于生成单据头使用)
            case "AdornOrderHead":
                resultDt = dlDtList.Get_ProAdorndt();
                break;

            //室内主材单-表头记录(用于生成单据头使用)
            case "MaterialOrderHead":
                resultDt = dlDtList.Get_ProMaterialdt();
                break;

            //室内主材单-树菜单记录(用于生成室内主材单-树菜单信息记录)
            case "MaterialOrderTree":
                resultDt = dlDtList.Get_ProMaterialTreedt();
                break;

            // 获取历史单据记录 T_PRO_ADORN TypeInfoFrm.cs使用
            case "HistoryAdornEmpty":
                resultDt = dlDtList.Get_HistoryAdornEmptydt();
                break;

            //获取历史单据记录 T_PRO_MATERIAL TypeInfoFrm.cs使用
            case "HistoryMaterial":
                resultDt = dlDtList.Get_HistoryMaterialEmptydt();
                break;

            //获取基础信息库-装修工程明细记录临时表(TypeInform窗体使用)
            case "BDAdorn":
                resultDt = dlDtList.Get_BDHtypeEmptydt();
                break;

            //获取基础信息库-材料明细记录临时表(TypeInform窗体使用)
            case "BDMaterial":
                resultDt = dlDtList.Get_BDMaterialEmptydt();
                break;
            }
            return(resultDt);
        }
Exemplo n.º 2
0
        /// <summary>
        /// 删除GridView中所选择的行
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void Tmdelrow_Click(object sender, EventArgs e)
        {
            var tempdt = new DataTable();

            try
            {
                if (tview.SelectedNode == null)
                {
                    throw new Exception("请选择某一名称再继续");
                }
                if (gvdtl.SelectedRows.Count == 0)
                {
                    throw new Exception("请选取某一行,再继续");
                }
                //检测当前用户是否有‘删除’权限
                if (!_candelMarkid)
                {
                    throw new Exception($"用户'{GlobalClasscs.User.StrUsrName}'没有‘删除’权限,不能继续.");
                }
                //检测若所选择行中的值已给其它地方使用,就不能进行删除(如:客户已让某一张单据使用,就不能进行删除)
                if (!CheckCanDel(1))
                {
                    throw new Exception($"检测到所选中的行中有已在其它地方使用的情况, \n故不能删除.");
                }

                var clickMessage = $"您所选择需删除的行数为:{gvdtl.SelectedRows.Count}行 \n 是否继续?";
                if (MessageBox.Show(clickMessage, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
                {
                    //注:执行方式 判断若所选择的行内的 row[1](即各功能的表体主键)项 有值,就执行下面第一步,若没有;只需将在GridView内的行删除就行
                    //1)将所选择的行保存到_deldt内(在按“保存”时执行对该行的数据库删除)
                    //根据各功能ID创建对应临时表
                    switch (GlobalClasscs.Basic.BasicId)
                    {
                    //客户信息管理
                    case 1:
                        tempdt = dtList.Get_CustEmptydt();
                        break;

                    //供应商信息管理
                    case 2:
                        tempdt = dtList.Get_SupplierEmptydt();
                        break;

                    //材料信息管理
                    case 3:
                        tempdt = dtList.Get_MaterialEmptydt();
                        break;

                    //房屋类型及装修工程类别信息管理
                    case 4:
                        tempdt = dtList.Get_HouseEmptydt();
                        break;
                    }
                    //将所选择的记录赋值至tempdt临时表内
                    foreach (DataGridViewRow row in gvdtl.SelectedRows)
                    {
                        //若各功能表体的主键不为空时,才进行记录(如:客户信息管理 Custid不为空时,就执行插入临时表操作)
                        if (row.Cells[1].Value.ToString() != "")
                        {
                            var row1 = tempdt.NewRow();
                            for (var i = 0; i < tempdt.Columns.Count; i++)
                            {
                                row1[i] = row.Cells[i].Value;
                            }
                            tempdt.Rows.Add(row1);
                        }
                    }
                    //若tempdt有值才赋值至_dtldt内,(供保存使用)
                    if (tempdt.Rows.Count > 0)
                    {
                        _deldt = tempdt;
                    }
                    //最后使用循环将所选择的行在GridView内删除
                    for (var i = gvdtl.SelectedRows.Count; i > 0; i--)
                    {
                        gvdtl.Rows.RemoveAt(gvdtl.SelectedRows[i - 1].Index);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message, "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }