using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using gregn6Lib; namespace BaseSet { public partial class K3_Material_Edit : Form { private int HItemIDCol = 0; private int HNumberCol = 0; public DBUtility.frm_B_BillQueryCondition_New frmCondition; const string ViewName = "h_v_K3_MaterialList"; const string ModName = "物料"; const string BillName = "h_v_K3_Material"; public DBUtility.ClsPub.Enum_InputMode InputMode; //录入状态标志(0-非录入状态 1-增加 2-修改) public long HItemID;//项目ID public string sCondition; //过滤条件 // public string sHMaterNumber; public string sHMaterName; public string sHMaterModel; public string sHBarCode; // SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsK3_Material_Edit_Ctl oMater = new DAL.ClsK3_Material_Edit_Ctl(); DAL.ClsIF_Material_View oMaterHlp = new DAL.ClsIF_Material_View(); TreeNode CurNode = new TreeNode(); public K3_Material_Edit() { InitializeComponent(); } //以下代码基本不需要修改 #region 固定代码 //保存GRID列宽 private void K3_Material_Edit_FormClosing(object sender, FormClosingEventArgs e) { DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath); } //窗体加载 private void K3_Material_Edit_Load(object sender, EventArgs e) { frmCondition = new DBUtility.frm_B_BillQueryCondition_New(); LoadTree(); initGrid(); InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; RefreshTool(); } private void LoadAllNodes(TreeNode sNode) //Lock { DBUtility.Gy_BaseFun.LoadAllNodes(sNode, BillName); } private void LoadTree()//Lock { DBUtility.Gy_BaseFun.LoadTree(tv, imageList1, this.Text, BillName); } //退出模块 private void tc_Click(object sender, EventArgs e) { this.Close(); } //刷新 private void xs_Click(object sender, EventArgs e) { Display(); } //查询 private void cx_Click(object sender, EventArgs e) { frmCondition = new DBUtility.frm_B_BillQueryCondition_New(); DBUtility.Gy_BaseFun.SetCondition(frmCondition, ViewName, this.Name); frmCondition.ShowDialog(); if (frmCondition.Tag.ToString() == "OK") { Display(); } } private Int32 Fun_GetCol(string sCol)//Lock { return DBUtility.Gy_BaseFun.Fun_GetCol(sCol, grdMain); } //刷新TOOLBAR private void RefreshTool()//Lock { if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_View) { stTab.SelectedIndex = 0; stTab.TabPages.Remove(this.tabPage2); stTab.TabPages.Remove(this.tabPage1); stTab.TabPages.Add(this.tabPage1); grdMain.Enabled = true; tc.Enabled = true; yl.Enabled = true; xg.Enabled = true; sc.Enabled = true; xs.Enabled = true; cx.Enabled = true; txtHShortNumber.Enabled = true; txtHParentID.Enabled = true; cmdHParentID.Enabled = true; txtHChartNumber.Enabled = true; cmbHErpClsID.Enabled = true; } else if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) { stTab.SelectedIndex = 1; stTab.TabPages.Remove(this.tabPage1); stTab.TabPages.Remove(this.tabPage2); stTab.TabPages.Add(this.tabPage2); stTab.TabPages[0].Hide(); grdMain.Enabled = false; tc.Enabled = true; yl.Enabled = false; xg.Enabled = false; sc.Enabled = false; xs.Enabled = false; cx.Enabled = false; txtHShortNumber.Enabled = false; txtHParentID.Enabled = false; cmdHParentID.Enabled = false; txtHChartNumber.Enabled = false; cmbHErpClsID.Enabled = false; } else { stTab.SelectedIndex = 1; stTab.TabPages.Remove(this.tabPage1); stTab.TabPages.Remove(this.tabPage2); stTab.TabPages.Add(this.tabPage2); stTab.TabPages[0].Hide(); grdMain.Enabled = false; tc.Enabled = true; yl.Enabled = false; xg.Enabled = false; sc.Enabled = false; xs.Enabled = false; cx.Enabled = false; txtHShortNumber.Enabled = true; txtHParentID.Enabled = true; cmdHParentID.Enabled = true; txtHChartNumber.Enabled = true; cmbHErpClsID.Enabled = true; } } //删除项目 public void Delete() { //if (DBUtility.Gy_BaseFun.AllowRow(grdMain)) //{ // if (MessageBox.Show("确定要删除当前项目?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) // { // //得到HITEMID // long sItemID; // sItemID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HItemIDCol].Value); // //判断存在性 // if (oMaterHlp.GetInfoByID(sItemID)) // { // if (oMater.DeleteByID(sItemID)) // { // //更新上级为 末级 // MessageBox.Show("删除项目成功!", "提示"); // Display(); // } // else // MessageBox.Show("删除项目失败!" + DBUtility.ClsPub.sExeReturnInfo, "提示"); // } // } //} } //取消按钮 private void cmdCancel_Click(object sender, EventArgs e) { InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; RefreshTool(); } //保存按钮 private void cmdOK_Click(object sender, EventArgs e) { if (!WriteClass()) return; if (Save()) { MessageBox.Show("保存完毕!", "提示"); } else { MessageBox.Show("保存失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); } if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) { InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; RefreshTool(); } } //树型 单击 private void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { CurNode = e.Node; if (CurNode != null) { if (CurNode.Nodes.Count == 0) LoadAllNodes(CurNode); //找到选中结点 FindRow(CurNode.Text); } } //过滤资料 private void FindRow(string sCode)//Lock { DBUtility.Gy_BaseFun.FindRow(sCode, ModName, ref sCondition); Display(); } //删除 private void sc_Click(object sender, EventArgs e) { Delete(); } //修改 private void Modify() { if (DBUtility.Gy_BaseFun.AllowRow(grdMain)) { InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_Modify; RefreshTool(); Init(); } } //修改按钮 private void xg_Click(object sender, EventArgs e) { Modify(); } //初始化界面 private bool Init() { long sItemID; if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew) { Sub_Clear(); RefreshTool(); return true; } else if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) { //得到HITEMID sItemID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HItemIDCol].Value); //检查是否存在 if (oMaterHlp.GetInfoByID(sItemID)) { ShowData(sItemID); txtHShortNumber.Focus(); return true; } else { MessageBox.Show("您选择的项目已经不存在!", "提示"); return false; } } else { return false; } } //保存 private bool Save() { if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew) { if (oMater.AddNew()) { Init(); } else { return false; } Display(); } if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) { if (!oMater.ModifyByID(HItemID)) { return false; } Display(); } return true; } //保存列宽 private void bclk_Click(object sender, EventArgs e) { DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath); } //默认列宽 private void mrlk_Click(object sender, EventArgs e)//Lock { DBUtility.ClsPub.DefaultGridView(grdMain); //参数解释 开始列 ,结束列,是否以最大列宽为准,最小列宽 DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath); } //时间控件 private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; Display(); } //双击GRID private void grdMain_DblClick(object sender, EventArgs e) { Modify(); } //初始化GRID private void initGrid() { DBUtility.Gy_BaseFun.initGrid(grdMain); } //显示列表 private void Display() // 幻心 { SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); DataSet DSet; string sSql = ""; string sWhere = ""; //刷新树形 //LoadTree(); //过滤条件 if (DBUtility.ClsPub.isStrNull(sCondition) == "" && frmCondition.SqlStr.Trim().Length != 0) { sSql = frmCondition.SqlStr + sWhere + " order by HItemID"; } else if (DBUtility.ClsPub.isStrNull(sCondition) != "") { sSql = "Select * from " + ViewName + sCondition + sWhere + " order by HItemID"; } else { sSql = "Select * from " + ViewName + " order by HItemID"; } //执行SQL DSet = SubCn.RunProcReturn(sSql, ViewName, ref DBUtility.ClsPub.sExeReturnInfo); // if (DSet == null) { MessageBox.Show("显示失败!原因:" + DBUtility.ClsPub.sExeReturnInfo); return; } grdMain.DataSource = DSet.Tables[0].DefaultView; //加载列宽 DBUtility.Gy_BaseFun.DisplayGrid(grdMain, this.Name); // HItemIDCol = Fun_GetCol("HItemID"); HNumberCol = Fun_GetCol(ModName + "代码"); sCondition = ""; } //新增时清空信息 private void Sub_Clear() // { DBUtility.Gy_BaseFun.Sub_Clear(tabPage2, ref HItemID, txtHShortNumber); } private void grdMain_DoubleClick(object sender, EventArgs e) { //Modify(); } private void cmdLoadTree_Click(object sender, EventArgs e) { LoadTree(); } #endregion #region 类的读写 private bool AllowSave() { //短代码不能有 . 号 if (txtHShortNumber.Text.Trim().Contains(".")) { MessageBox.Show("短代码中不能存在[ . ]符号", "提示"); return false; } //图号不能有 . 号 if (txtHChartNumber.Text.Trim().Contains(".")) { MessageBox.Show("图号中不能存在[ . ]符号", "提示"); return false; } //名称不能有 . 号 if (txtHName.Text.Trim().Contains(".")) { MessageBox.Show("物料名称中不能存在[ . ]符号", "提示"); return false; } //规格不能有 . 号 //if (txtHModel.Text.Trim().Contains(".")) //{ // MessageBox.Show("规格型号中不能存在[ . ]符号", "提示"); // return false; //} /////////////////////// if (DBUtility.ClsPub.isLong(txtHUnitID.Tag) == 0) { MessageBox.Show("单位不能为空!", "提示"); return false; } if (DBUtility.ClsPub.isLong(txtHUnitGroupID.Tag) == 0) { MessageBox.Show("单位组不能为空!", "提示"); return false; } if (DBUtility.ClsPub.isLong(txtHParentID.Tag) == 0) { MessageBox.Show("上级组不能为空!", "提示"); return false; } if (DBUtility.ClsPub.isStrNull(txtHChartNumber.Text) == "") { if (DBUtility.ClsPub.isStrNull(txtHShortNumber.Text) == "") { MessageBox.Show("图号不能为空!", "提示"); return false; } else { txtHChartNumber.Text = txtHShortNumber.Text; } } if (DBUtility.ClsPub.isStrNull(txtHName.Text) == "") { MessageBox.Show("名称不能为空!", "提示"); return false; } if (DBUtility.ClsPub.isStrNull(txtHModel.Text) == "") { MessageBox.Show("规格不能为空!", "提示"); return false; } if (DBUtility.ClsPub.isStrNull(txtHShortNumber.Text) == "") { MessageBox.Show("短代码不能为空!", "提示"); return false; } //if (DBUtility.ClsPub.isStrNull(cmbHErpClsID.Text.Trim()) == "") //{ // MessageBox.Show("物料属性不能为空!", "提示"); // return false; //} //if (DBUtility.ClsPub.GetIDByComboBox(cmbHErpClsID.Text) == 0) //{ // MessageBox.Show("物料属性不能为空!", "提示"); // return false; //} //是否重复代码 if (oMater.HavSameNumber(HItemID, txtHLongNumber.Text.Trim())) { MessageBox.Show("代码重复!", "提示"); return false; } return true; } //读取类 到 控件 private void ShowData(long sItemID) { DAL.ClsK3_Unit_View oUnit = new DAL.ClsK3_Unit_View(); DAL.ClsK3_UnitGroup_View oUnitGroup = new DAL.ClsK3_UnitGroup_View(); DAL.ClsK3_ErpCls_View oErpCls = new DAL.ClsK3_ErpCls_View(); DAL.ClsK3_MaterGroup_View oMaterGroup = new DAL.ClsK3_MaterGroup_View(); if (oMaterHlp.GetInfoByID(sItemID)) { if (oUnit.GetInfoByID(oMaterHlp.omodel.HUnitID)) { txtHUnitID.Tag = oUnit.omodel.HItemID.ToString(); txtHUnitID.Text = oUnit.omodel.HName; } else { txtHUnitID.Tag = "0"; txtHUnitID.Text = ""; } // if (oUnitGroup.GetInfoByID(oMaterHlp.omodel.HUnitGroupID)) { txtHUnitGroupID.Tag = oUnitGroup.omodel.HItemID.ToString(); txtHUnitGroupID.Text = oUnitGroup.omodel.HName; } else { txtHUnitGroupID.Tag = "0"; txtHUnitGroupID.Text = ""; } // if (oErpCls.GetInfoByID(oMaterHlp.omodel.HErpclsID)) { cmbHErpClsID.Text = oErpCls.omodel.HName; } // if (oMaterGroup.GetInfoByID(oMaterHlp.omodel.HParentID)) { txtHParentID.Tag = oMaterGroup.omodel.HItemID.ToString(); txtHParentID.Text = oMaterGroup.omodel.HNumber; } else { txtHParentID.Tag = "0"; txtHParentID.Text = ""; } // txtHLongNumber.Text = oMaterHlp.omodel.HNumber; txtHShortNumber.Text = oMaterHlp.omodel.HShortNumber; txtHChartNumber.Text = oMaterHlp.omodel.HPicNo; txtHName.Text = oMaterHlp.omodel.HName; txtHModel.Text = oMaterHlp.omodel.HModel; txtHRemark.Text = oMaterHlp.omodel.HRemark; HItemID = oMaterHlp.omodel.HItemID; } } //写入类 从控件 private bool WriteClass() { //判断是否允许 保存 if (!AllowSave()) { return false; } //写入信息 oMater.oModel.HNumber = txtHLongNumber.Text.Trim().ToUpper(); oMater.oModel.HShortNumber = txtHShortNumber.Text.Trim().ToUpper(); oMater.oModel.HName = txtHName.Text.Trim(); oMater.oModel.HModel = txtHModel.Text.Trim(); oMater.oModel.HParentID = DBUtility.ClsPub.isLong(txtHParentID.Tag); oMater.oModel.HChartNumber = txtHChartNumber.Text.Trim().ToUpper(); oMater.oModel.HAcctID = 112; oMater.oModel.HLevel = DBUtility.ClsPub.GetLevel(txtHLongNumber.Text.Trim()); oMater.oModel.HErpClsID = DBUtility.ClsPub.GetIDByComboBox(cmbHErpClsID.Text); oMater.oModel.HUnitGroupID = DBUtility.ClsPub.isLong(txtHUnitGroupID.Tag); oMater.oModel.HUnitID = DBUtility.ClsPub.isLong(txtHUnitID.Tag); oMater.oModel.HUserID = DBUtility.ClsPub.GetUser_K3(DBUtility.ClsPub.CurUserName); oMater.oModel.HUserName = DBUtility.ClsPub.CurUserName; oMater.oModel.HRemark = txtHRemark.Text.Trim(); return true; } #endregion #region 界面控件处理 #endregion #region //打印设置 GridppReport Report; //找到对应打印模块 private void Sub_SetReport(string sOpenTmp) { // Report = new GridppReport(); Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); } //赋值表头 private void ReportBeforePostRecord()// { try { Report.FieldByName("物料代码").AsString = sHMaterNumber; Report.FieldByName("物料名称").AsString = sHMaterName; Report.FieldByName("规格型号").AsString = sHMaterModel; Report.FieldByName("条码").AsString = sHBarCode; } catch (Exception e) { MessageBox.Show("打印失败!表头:" + e.Message); } } //赋值表体 private void ReportFetchRecordByDataTable() { try { BLL.Utility.FillRecordToReport(Report, grdMain, grdPrint, 0); } catch (Exception e) { MessageBox.Show("打印失败!表体:" + e.Message); } } #endregion private void xz_Click(object sender, EventArgs e) { InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; Init(); } private void cmdHUnitGroupID_Click(object sender, EventArgs e) { DAL.ClsK3_UnitGroup_View oUnitGroup = new DAL.ClsK3_UnitGroup_View(); if (oUnitGroup.RefreshView()) { if (oUnitGroup.GetInfoByID(oUnitGroup.oModel.HItemID)) { txtHUnitGroupID.Text = oUnitGroup.omodel.HName; txtHUnitGroupID.Tag = oUnitGroup.omodel.HItemID.ToString(); txtHUnitID.Text = oUnitGroup.omodel.HUnitName; txtHUnitID.Tag = oUnitGroup.omodel.HUnitID.ToString(); } } else { txtHUnitGroupID.Text = ""; txtHUnitID.Text = ""; } } private void cmdHUnitID_Click(object sender, EventArgs e) { DAL.ClsK3_Unit_View oUnit = new DAL.ClsK3_Unit_View(); if (oUnit.RefreshView(DBUtility.ClsPub.isLong(txtHUnitGroupID.Tag))) { if (oUnit.GetInfoByID(oUnit.oModel.HItemID)) { txtHUnitID.Text = oUnit.omodel.HName; txtHUnitID.Tag = oUnit.omodel.HItemID.ToString(); } else { txtHUnitID.Text = ""; } } else { txtHUnitID.Text = ""; } } private void cmdHParentID_Click(object sender, EventArgs e) { BLL.ClsBaseSelect_K3.SetTextByMaterGroup_K3(txtHParentID); } private void txtHParentID_TextChanged(object sender, EventArgs e) { BLL.ClsPub_BLL.Sub_ClearText(txtHParentID); } private void txtHUnitGroupID_TextChanged(object sender, EventArgs e) { BLL.ClsPub_BLL.Sub_ClearText(txtHUnitGroupID); } private void txtHUnitID_TextChanged(object sender, EventArgs e) { BLL.ClsPub_BLL.Sub_ClearText(txtHUnitID); } private void txtHShortNumber_TextChanged(object sender, EventArgs e) { if (DBUtility.ClsPub.isLong(txtHParentID.Tag) == 0) { txtHLongNumber.Text = ""; } else { txtHLongNumber.Text = txtHParentID.Text + "." + txtHShortNumber.Text; } txtHChartNumber.Text = txtHShortNumber.Text.Trim(); } } }