using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; namespace BaseSet { public partial class Gy_FESTOMaterRelationList : Form { private int HItemIDCol = 0; private int HNumberCol = 0; public DBUtility.frmBillQueryCondition_New frmCondition; public const string ViewName = "h_v_Gy_FESTOMaterRelationList"; public string ModName = "FESTO"; //权限 public const string ModRightName = "Gy_FESTOMaterRelation"; public const string ModRightNameEdit = ModRightName + "_Edit"; public const string ModRightNameCheck = ModRightName + "_Check"; // public DBUtility.ClsPub.Enum_InputMode InputMode; //录入状态标志(0-非录入状态 1-增加 2-修改) public long HItemID;//项目ID public long HItemGroupID; SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); DAL.ClsGy_FESTOMaterRelation_Ctl oMatePrce = new DAL.ClsGy_FESTOMaterRelation_Ctl(); Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); TreeNode CurNode = new TreeNode(); //拆分字符 char spChar =Convert.ToChar( "~"); public Gy_FESTOMaterRelation oFrm; public Gy_FESTOMaterRelationList() { InitializeComponent(); } //以下代码基本不需要修改 #region 固定代码 private void kh_Click(object sender, EventArgs e) { kh.Checked = true; wl.Checked = false; LoadTree(); Display(); } private void wl_Click(object sender, EventArgs e) { kh.Checked = false; wl.Checked = true; LoadTree(); Display(); } //窗体加载 private void Gy_FESTOMaterRelation_Load(object sender, EventArgs e) { lblCaption.Text = ModName; this.Text = ModName; frmCondition = new DBUtility.frmBillQueryCondition_New(); LoadTree(); oSumGrid.ogrdMain = grdMain; //初始化 new initGrid(); InputMode = DBUtility.ClsPub.Enum_InputMode.InputMode_View; } //退出模块 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.frmBillQueryCondition_New(); frmCondition.Tag = ""; frmCondition.ViewName = ViewName; frmCondition.ModName = this.Name; frmCondition.ShowDialog(); if (frmCondition.Tag.ToString() == "OK") { Display(); } } //得到对应列 private Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); } //删除项目 public void Delete() { //删除权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, true, DBUtility.ClsPub.CurUserName)) //{ // return; //} // if (AllowRow()) { if (MessageBox.Show("确定要删除当前项目?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { //得到HITEMID long sItemID; sItemID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentCell.RowIndex].Cells[HItemIDCol].Value); //判断存在性 if (oMatePrce.ShowBill(sItemID,ref DBUtility.ClsPub.sExeReturnInfo)) { foreach (Model.ClsGy_FESTOMaterRelation_Model oSub in oMatePrce.DetailColl) { if (oSub.HChecker.Trim() != "") { MessageBox.Show("单据已审核!不能删除", "提示"); return; } } if (oMatePrce.DeleteByID(sItemID)) { MessageBox.Show("删除项目成功!", "提示"); Display(); } else MessageBox.Show("删除项目成功!", "提示"); } } } } //树型 单击 private void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) { CurNode = e.Node; if (CurNode != null) { if (CurNode.Nodes.Count == 0) { LoadAllNodes(CurNode); } frmCondition.SqlStr = ""; //找到选中结点 Display(); } } //删除 private void sc_Click(object sender, EventArgs e) { Delete(); } //新增按钮 private void xz_Click(object sender, EventArgs e) { oFrm = new Gy_FESTOMaterRelation(); oFrm.ShowDialog(); } //修改 private void Sub_ShowBill() { Int64 lngBillKey = 0; if (grdMain.CurrentRow == null) return; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsGy_FESTOMaterRelation_Ctl oBillMain = new DAL.ClsGy_FESTOMaterRelation_Ctl(); Model.ClsGy_FESTOMaterRelation_Model oBill = new Model.ClsGy_FESTOMaterRelation_Model(); if (oBillMain.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { oFrm = new Gy_FESTOMaterRelation(); oFrm.BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_View; foreach (Model.ClsGy_FESTOMaterRelation_Model oSub in oBillMain.DetailColl) { if (oSub.HChecker.Trim() != "") { oFrm.BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_View; } } oBill.HItemID = lngBillKey; oFrm.BillOld = oBill; oFrm.BillNew = oBillMain; oFrm.ShowDialog(); if (oFrm.BillChange) { if (MessageBox.Show("单据列表已经发生变化,是否刷新", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.OK) { timer1.Enabled = true; } } } else { MessageBox.Show("单据未找到", "提示"); } oBill = null; oBillMain = null; } //修改按钮 private void xg_Click(object sender, EventArgs e) { Sub_ShowBill(); } //选中行是否正常 private bool AllowRow() { if (grdMain.CurrentRow.Index >= 0 && grdMain.CurrentRow.Index <= grdMain.RowCount - 1) return true; else return false; } //保存列宽 private void bclk_Click(object sender, EventArgs e) { //保存列宽 DBUtility.Xt_BaseBillFun.SaveGrid(grdMain, this.Name); } // 默认列宽 private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); } //时间控件 private void timer1_Tick(object sender, EventArgs e) { timer1.Enabled = false; Display(); } //初始化GRID private void initGrid() { DBUtility.Xt_BaseBillFun.initGridRpt(grdMain, this.Name); } #endregion //显示列表 private void Display() { SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); DataSet DSet = new DataSet(); string sSql = ""; string sWhere = ""; string HParentID =""; if (CurNode.Name.Trim().Length == 0) { HParentID =""; } else { char c = Convert.ToChar(spChar); string[] sr; sr = CurNode.Text.Split(c); HParentID = sr[0].ToString(); } //过滤条件 if (frmCondition.SqlStr.Trim().Length == 0) { if (HParentID == "" || HParentID == "亿日资料" || HParentID == "FESTO资料") { sSql = "Select top 10000 * from " + ViewName + " order by " + ModName + "代码"; } else { if (wl.Checked == false) { sSql = "Select top 10000 * from " + ViewName + " where FESTO代码 like '" + HParentID.ToString() + "%' order by " + ModName + "代码"; } else { sSql = "Select top 10000 * from " + ViewName + " where 亿日代码 like '" + HParentID.ToString() + "%' order by " + ModName + "代码"; } } } else { sSql = frmCondition.SqlStr + sWhere + " order by " + ModName + "代码"; } //执行SQL DSet = SubCn.RunProcReturn(sSql, ViewName); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,请在过滤框中点击【恢复】按钮,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo); return; } //释放冻结 DBUtility.Xt_BaseBillFun.CancelFrozenCol(grdMain); //绑定 grdMain.DataSource = DSet.Tables[0].DefaultView; //设置合计列 string sTotalCol = ""; sTotalCol = DBUtility.Gy_BaseFun.GetTotalCols(DSet); string[] sT; sT = sTotalCol.Split(Convert.ToChar(",")); oSumGrid.BuildTotalCols(sT); // //冻结 int FrCol = DBUtility.ClsPub.isInt(frmCondition.txtFrozenCol.Text); string s = frmCondition.cmbHComplete.Text; DBUtility.Xt_BaseBillFun.DisplayGrid(grdMain, this.Name, s, FrCol); //画线 // Total(); } //合计 new private void Total() { if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) { oSumGrid.SetGridsum(); oSumGrid.Total(); } } //加载子结点 private void LoadAllNodes(TreeNode sNode) { string sBill; if (wl.Checked == true) sBill = "Gy_EasunModel"; else sBill = "Gy_FESTOModel"; if (sNode != null) { try { sNode.Nodes.Clear(); DataSet Ds = oCn.RunProcReturn("select hitemid,hnumber,hname from " + sBill + " where HStopflag=0 and HParentID=" + sNode.Name.Trim().Substring(1, sNode.Name.Trim().Length-1) + " order by HNumber ", sBill); for (int i = 0; i < Ds.Tables[0].Rows.Count; i++) { TreeNode oNode = sNode.Nodes.Add("T" + Ds.Tables[0].Rows[i]["HItemID"].ToString(), Ds.Tables[0].Rows[i]["HNumber"].ToString() + spChar + Ds.Tables[0].Rows[i]["HName"].ToString(), 0, 1); } sNode.Expand(); } catch (Exception e) { MessageBox.Show("加载子项目失败!" + e.Message, "提示"); } } } //加载树形 private void LoadTree() { string sItemName; if (wl.Checked == true) { sItemName = "亿日资料"; } else { sItemName = "FESTO资料"; } try { tv.Nodes.Clear(); tv.ImageList = imageList1; TreeNode sNode = tv.Nodes.Add("T0", sItemName, 0, 1); LoadAllNodes(sNode); } catch (Exception e) { MessageBox.Show("加载树型失败!" + e.Message, "提示"); } } private void sh_Click(object sender, EventArgs e) { //审核权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, DBUtility.ClsPub.CurUserName)) //{ // return; //} // Int64 lngBillKey = 0; if (grdMain.SelectedRows.Count == 0) { MessageBox.Show("请至少选择一行!", "提示"); return; } for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsGy_FESTOMaterRelation_Ctl oItem = new DAL.ClsGy_FESTOMaterRelation_Ctl(); //审核 //查看是否已审核,关闭,作废 if (oItem.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { } else { MessageBox.Show("项目不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } //审核 if (oItem.CheckBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { //MessageBox.Show("审核成功!第"+i.ToString()+"行", "提示"); } else { MessageBox.Show("审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } MessageBox.Show("审核成功,请刷新!", "提示"); return; } private void fsh_Click(object sender, EventArgs e) { //审核权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameCheck, 1, true, DBUtility.ClsPub.CurUserName)) //{ // return; //} // Int64 lngBillKey = 0; if (grdMain.SelectedRows.Count == 0) { MessageBox.Show("请至少选择一行!", "提示"); return; } for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; DAL.ClsGy_FESTOMaterRelation_Ctl oItem = new DAL.ClsGy_FESTOMaterRelation_Ctl(); //审核 //查看是否已审核,关闭,作废 if (oItem.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { } else { MessageBox.Show("项目不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } //审核 if (oItem.AbandonCheck(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo) == true) { //MessageBox.Show("审核成功!第"+i.ToString()+"行", "提示"); } else { MessageBox.Show("反审核失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } MessageBox.Show("反审核成功,请刷新!", "提示"); return; } private void pg_Click(object sender, EventArgs e) { //审核权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, true, DBUtility.ClsPub.CurUserName)) //{ // return; //} // double sPrice = 0; Int64 lngBillKey = 0; if (grdMain.SelectedRows.Count == 0) { MessageBox.Show("请至少选择一行!", "提示"); return; } // //弹出窗体 //Gy_FESTOMaterRelationDlg oDlg = new Gy_FESTOMaterRelationDlg(); //oDlg.ShowDialog(); //if (oDlg.IsOk != 2) //{ // return; //} //sPrice = DBUtility.ClsPub.isDoule(oDlg.textBox1.Text); // DAL.ClsGy_FESTOMaterRelation_Ctl oItem = new DAL.ClsGy_FESTOMaterRelation_Ctl(); for (int i = 0; i <= grdMain.SelectedRows.Count - 1; i++) { lngBillKey = DBUtility.ClsPub.isLong(grdMain.SelectedRows[i].Cells[HItemIDCol].Value); // if (lngBillKey == 0) continue; //查看是否已审核,关闭,作废 if (oItem.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { foreach (Model.ClsGy_FESTOMaterRelation_Model oSub in oItem.DetailColl) { if (oSub.HChecker.Trim() != "") { MessageBox.Show("单据已审核!不能批量修改!", "提示"); return; } } } else { MessageBox.Show("项目不存在!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } //审核 if (oItem.BatchModifyBill(lngBillKey, sPrice, ref DBUtility.ClsPub.sExeReturnInfo) == true) { //MessageBox.Show("批改成功!第" + i.ToString() + "行", "提示"); } else { MessageBox.Show("批改失败!原因:" + DBUtility.ClsPub.sExeReturnInfo, "提示"); return; } } MessageBox.Show("操作完毕,请刷新", "提示"); return; } private void fz_Click(object sender, EventArgs e) { //审核权限 //if (!DBUtility.ClsPub.Security_Log(ModRightNameEdit, 1, true, DBUtility.ClsPub.CurUserName)) //{ // return; //} // //Gy_FESTOMaterRelationCopy oFrm = new Gy_FESTOMaterRelationCopy(); //oFrm.ShowDialog(); } private void yl_Click(object sender, EventArgs e) { DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); } } }