using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DBUtility; using gregn6Lib; namespace BaseSet { public partial class Gy_AddressCard : Form { private int HItemIDCol = 0; private int HNumberCol = 0; public DBUtility.frm_B_BillQueryCondition_New frmCondition; public const string ViewName = "h_v_Gy_AddressCardList"; public string CheckProcName = "h_p_Gy_AddressCard"; //20141020 public string ModName = "物料"; public const string ModCaption = "地址卡"; //单据名称 public const string BillName = "Gy_AddressCard"; public const string ModRightNameEdit = BillName + "_Edit"; public const string ModRightNameDelete = BillName + "_Delete"; public DBUtility.ClsPub.Enum_InputMode InputMode; //录入状态标志(0-非录入状态 1-增加 2-修改) public long HItemID;//项目ID public string sCondition; //过滤条件 SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsGy_AddressCard_Ctl oAddCard = new DAL.ClsGy_AddressCard_Ctl(); DAL.ClsGy_AddressCard_View oAddCardHlp = new DAL.ClsGy_AddressCard_View(); TreeNode CurNode = new TreeNode(); public Gy_AddressCard() { InitializeComponent(); } //以下代码基本不需要修改 #region 固定代码 //保存GRID列宽 private void Gy_AddressCard_FormClosing(object sender, FormClosingEventArgs e) { DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath); } //窗体加载 private void Gy_AddressCard_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 AddNew() { InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; Init(); } //退出模块 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 = false; xz.Enabled = true; xg.Enabled = true; sc.Enabled = true; xs.Enabled = true; cx.Enabled = true; fz.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 = true; xz.Enabled = false; xg.Enabled = false; sc.Enabled = false; xs.Enabled = false; cx.Enabled = false; fz.Enabled = true; } } //删除项目 public void Delete() { //判断权限 if (!ClsPub.Security_Log(ModRightNameDelete, 1, true, DBUtility.ClsPub.CurUserName)) { return; } // 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 (oAddCardHlp.GetInfoByID(sItemID)) { if (oAddCard.HavChildCodes(sItemID)) { MessageBox.Show("此项目存在子项目,不能删除!", "提示"); return; } //删除前判断是否 已使用 20141020 if (oAddCardHlp.omodel.HUseFlag != "未使用") { MessageBox.Show("此项目已使用或者未检测,不能删除!请重新检测再删除!", "提示"); return; } // if (oAddCard.DeleteByID(sItemID)) { //写入日志 ClsPub.Add_Log("", "删除项目,代码:" + oAddCardHlp.omodel.HNumber + ",名称:" + oAddCardHlp.omodel.HName, ClsPub.CurUserName); //更新上级为 末级 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 xz_Click(object sender, EventArgs e) { InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; Init(); } //修改 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 void Sub_Copy() { //txtHNumber.Text = ""; //txtHHelpCode.Text = ""; HItemID = 0; InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew; } //初始化界面 private bool Init() { long sItemID; if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew) { Sub_Clear(); RefreshTool(); return true; } else { //得到HITEMID sItemID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[HItemIDCol].Value); //检查是否存在 if (oAddCardHlp.GetInfoByID(sItemID)) { ShowData(sItemID); //txtHNumber.Focus(); return true; } else { MessageBox.Show("您选择的项目已经不存在!" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return false; } } } //保存 private bool Save() { //判断权限 if (!ClsPub.Security_Log(ModRightNameEdit, 1, true, DBUtility.ClsPub.CurUserName)) { return false; } // if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_AddNew) { if (oAddCard.AddNew()) { Init(); } else { return false; } Display(); } if (InputMode == DBUtility.ClsPub.Enum_InputMode.InputMode_Modify) { if (!oAddCard.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 " + ModName + "代码"; } else if (DBUtility.ClsPub.isStrNull(sCondition) != "") { sSql = "Select * from " + ViewName + sCondition + sWhere + " order by " + ModName + "代码"; } else { sSql = "Select * from " + ViewName + " order by " + ModName + "代码"; } //执行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; //禁用 红色显示 20141020 Sub_ShowStopFlag(); //加载列宽 DBUtility.Gy_BaseFun.DisplayGrid(grdMain, this.Name); // HItemIDCol = Fun_GetCol("HItemID"); HNumberCol = Fun_GetCol(ModName + "代码"); sCondition = ""; } //复制按钮 private void fz_Click(object sender, EventArgs e) { Sub_Copy(); } //新增时清空信息 private void Sub_Clear() //Lock { DBUtility.Gy_BaseFun.Sub_Clear(tabPage2,ref HItemID, txtHNumber); } private void grdMain_DoubleClick(object sender, EventArgs e) { Modify(); } private void cmdLoadTree_Click(object sender, EventArgs e) { LoadTree(); } #endregion #region 类的读写 private bool AllowSave() { if (DBUtility.ClsPub.isLong(txtHMaterID.Tag) == 0) { MessageBox.Show("物料不能为空!", "提示"); return false; } if (DBUtility.ClsPub.isLong(txtHAreaID.Tag) == 0) { MessageBox.Show("所属区域不能为空!", "提示"); return false; } if (txtHVersionNum.Text.Trim() == "") { MessageBox.Show("版本号不能为空!", "提示"); return false; } if (txtHCardNo.Text.Trim() == "") { MessageBox.Show("卡号不能为空!", "提示"); return false; } if (txtHDescription.Text.Trim() == "") { MessageBox.Show("描述不能为空!", "提示"); return false; } ////审核代码是否合理 //if (!DBUtility.ClsPub.AllowNumber(txtHNumber.Text.Trim())) //{ // MessageBox.Show("代码中不能出现连续‘.’并且首位末位不能为‘.’!", "提示"); // return false; //} ////是否重复代码 //if (oAddCard.HavSameNumber(HItemID, txtHNumber.Text.Trim())) //{ // MessageBox.Show("代码重复!", "提示"); // return false; //} return true; } //读取类 到 控件 private void ShowData(long sItemID) { DAL.ClsIF_Material_View oMater = new DAL.ClsIF_Material_View(); DAL.ClsIF_Area_View oArea = new DAL.ClsIF_Area_View(); if (oAddCardHlp.GetInfoByID(sItemID)) { txtHMaterID.Tag = Convert.ToInt64(oAddCardHlp.omodel.HMaterID.ToString()); if (oMater.GetInfoByID(oAddCardHlp.omodel.HMaterID)) { txtHMaterID.Text = oMater.omodel.HNumber; txtHMaterID.Tag = oMater.omodel.HItemID.ToString(); txtHMaterName.Text = oMater.omodel.HName; txtHModel.Text = oMater.omodel.HModel; } else { txtHMaterID.Text = ""; txtHMaterName.Text = ""; txtHModel.Text = ""; } //------------------- txtHAreaID.Tag = Convert.ToInt64(oAddCardHlp.omodel.HAreaID.ToString()); if (oArea.GetInfoByID(oAddCardHlp.omodel.HAreaID)) { txtHAreaID.Text = oArea.omodel.HName; txtHAreaID.Tag = oArea.omodel.HItemID.ToString(); } else { txtHAreaID.Text = ""; } //------------------- txtHNumber.Text = oAddCardHlp.omodel.HNumber.ToString(); txtHHelpCode.Text = oAddCardHlp.omodel.HHelpCode.ToString(); txtHName.Text = oAddCardHlp.omodel.HName.ToString(); txtHRemark.Text = oAddCardHlp.omodel.HRemark; txtHMaterDesc.Text = oAddCardHlp.omodel.HMaterDesc.ToString(); txtHCardNo.Text = oAddCardHlp.omodel.HCardNo.ToString(); txtHDescription.Text = oAddCardHlp.omodel.HDescription.ToString(); txtHVersionNum.Text = oAddCardHlp.omodel.HVersionNum.ToString(); txtHMaker.Text = oAddCardHlp.omodel.HMaker.ToString(); txtHMakeDate.Text = oAddCardHlp.omodel.HMakeDate.ToString(); //======================= if (oAddCardHlp.omodel.HStopflag) chkHStopflag.Checked = true; else chkHStopflag.Checked = false; HItemID = oAddCardHlp.omodel.HItemID; } } //写入类 从控件 private bool WriteClass() { //判断是否允许 保存 if (!AllowSave()) { return false; } ////检查父级是否存在 //string sParent; //sParent = DBUtility.ClsPub.GetParentCode(txtHNumber.Text.Trim()); //if (sParent.Trim() == "") //{ // oAddCard.oModel.HParentID = 0; //} //else //{ // if (oAddCard.HavParentCode(sParent.Trim(), HItemID)) // { // oAddCard.oModel.HParentID = oAddCard.oModel.HItemID; // } // else // { // MessageBox.Show("上级代码不存在或被禁用!", "提示"); // return false; // } //} ////得到短代码 //string sShortNumber; //sShortNumber = DBUtility.ClsPub.GetShortNumber(txtHNumber.Text.Trim()); //if (sShortNumber.Trim() == "") //{ // return false; //} ////保存原代码 //if (oAddCardHlp.GetInfoByID(HItemID)) //{ // oAddCard.HOldNumber = oAddCardHlp.omodel.HNumber; // //是否新代码是自己子项目的 子项目 // if (sParent.Length >= oAddCard.HOldNumber.Length) // { // if (sParent.Substring(0, oAddCard.HOldNumber.ToString().Length) == oAddCard.HOldNumber.Trim()) // { // MessageBox.Show("新代码不能是自己的下级的子项目!", "提示"); // return false; // } // } //} //else //{ // oAddCard.HOldNumber = ""; //} //写入信息 //oAddCard.oModel.HShortNumber = sShortNumber; oAddCard.oModel.HEndFlag = true; oAddCard.oModel.HLevel = DBUtility.ClsPub.GetLevel(txtHNumber.Text.Trim()); oAddCard.oModel.HNumber = txtHMaterID.Text.Trim(); oAddCard.oModel.HHelpCode = txtHHelpCode.Text.Trim(); oAddCard.oModel.HName = txtHName.Text.Trim(); oAddCard.oModel.HStopflag = chkHStopflag.Checked; oAddCard.oModel.HRemark = txtHRemark.Text.Trim(); oAddCard.oModel.HMaterID = DBUtility.ClsPub.isLong(txtHMaterID.Tag.ToString()); oAddCard.oModel.HMaterNumber = txtHMaterID.Text.Trim(); oAddCard.oModel.HMaterDesc = txtHMaterDesc.Text.Trim(); oAddCard.oModel.HCardNo = txtHCardNo.Text.Trim(); oAddCard.oModel.HDescription = txtHDescription.Text.Trim(); oAddCard.oModel.HAreaID = DBUtility.ClsPub.isLong(txtHAreaID.Tag.ToString()); oAddCard.oModel.HVersionNum = txtHVersionNum.Text.Trim(); oAddCard.oModel.HMaker = DBUtility.ClsPub.CurUserName; oAddCard.oModel.HMakeDate = DateTime.Now; return true; } #endregion #region 界面控件处理 private void cmdHAreaID_Click(object sender, EventArgs e) { BLL.ClsBaseSelect_InterFace.SetTextByArea(txtHAreaID); } private void txtHAreaID_TextChanged(object sender, EventArgs e) { BLL.ClsPub_BLL.Sub_ClearText(txtHAreaID); } #endregion private void cmdHMaterID_Click(object sender, EventArgs e) { BLL.ClsBaseSelect_InterFace.SetTextByMater(txtHMaterID, txtHMaterName, txtHModel); } private void txtHMaterID_TextChanged(object sender, EventArgs e) { BLL.ClsPub_BLL.Sub_ClearText(txtHMaterID); } //检测按钮 20141020 private void jc_Click(object sender, EventArgs e) { BLL.ClsPub_BLL.Sub_CheckUseStatus(grdMain, HItemIDCol, CheckProcName); Display(); } //禁用项目 红色字体 20141020 public void Sub_ShowStopFlag() { BLL.ClsPub_BLL.Sub_ShowStopFlag(grdMain, Fun_GetCol("禁用标记")); } #region //打印设置 GridppReport Report; //预览 private void yl_Click(object sender, EventArgs e) { //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // Sub_SetReport(oFrm.sOpenTmp); Report.PrintPreview(true); } } //找到对应打印模块 private void Sub_SetReport(string sOpenTmp) { // Report = new GridppReport(); Report.LoadFromFile(ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here . Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord); Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); } //赋值表头 private void ReportBeforePostRecord()// { Report.FieldByName("物料名称").AsString = txtHMaterName.Text; Report.FieldByName("物料代码").AsString = txtHMaterID.Text; } //赋值表体 private void ReportFetchRecordByDataTable() { BLL.Utility.FillRecordToReport(Report,grdMain,grdPrint,0); } //打印设置 private void set_Click(object sender, EventArgs e) { // BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); } //打印 private void dy_Click(object sender, EventArgs e) { //选择打印模板 BLL.Gy_OpenTmp oFrm = new BLL.Gy_OpenTmp(); oFrm.sBillName = ModName; oFrm.sBillModel = ModCaption; oFrm.ShowDialog(); if (oFrm.OKTag == Pub_Class.ClsPub.Enum_OKTag.OKTag_OK) { // Sub_SetReport(oFrm.sOpenTmp); Report.Print(true); } } #endregion } }