| using System; | 
| using System.Collections.Generic; | 
| using System.ComponentModel; | 
| using System.Data; | 
| using System.Drawing; | 
| using System.Text; | 
| using System.Windows.Forms; | 
| using gregn6Lib; | 
| using SQLHelper; | 
| using DBUtility; | 
|   | 
| namespace PlanM | 
| { | 
|     public partial class Sc_ProductionLineList : Form | 
|     { | 
|         public Sc_ProductionLineList() | 
|         { | 
|             InitializeComponent(); | 
|         } | 
|         public DBUtility.frmBillQueryCondition_New frmCondition; | 
|         public string ViewName = "h_v_Sc_ProductionLineList"; | 
|         public string ModCaption = "产线MES系统"; | 
|         public const string ModName = "生产资源"; | 
|         const string BillName = "Gy_Source"; | 
|         public const string ModRightName = "Sc_ProductionLine"; | 
|         public const string ModRightNameEdit = ModRightName + "_Edit"; | 
|         public const string ModRightNameCheck = ModRightName + "_Check"; | 
|         public const string ModRightNameClose = ModRightName + "_Close"; | 
|         public const string ModRightNameDelete = ModRightName + "_Delete"; | 
|         DAL.ClsSc_WorkStopBill oBill = new DAL.ClsSc_WorkStopBill(); | 
|         //public Sc_WorkStopBill oFrm; | 
|         Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); | 
|         TreeNode CurNode = new TreeNode(); | 
|         public string sCondition; //过滤条件 | 
|         public string HStatus = ""; | 
|         // | 
|         private void initGrid() | 
|         { | 
|             DBUtility.Xt_BaseBillFun.initGridList(grdMain,this.Name); | 
|         } | 
|         // | 
|   | 
|         private void Display() | 
|         { | 
|             ClsCN SubCn = new ClsCN(); | 
|             DataSet DSet; | 
|             string sSql = ""; | 
|             string sWhere = ""; | 
|             //过滤条件 | 
|             if (ClsPub.isLong(txtHWorkShopID.Tag) != 0) | 
|             { | 
|                 sWhere = " and 日期<'" + dtpHDate.Text + "' and HDeptID=" + ClsPub.isLong(txtHWorkShopID.Tag); | 
|             } | 
|             else | 
|             { | 
|                 sWhere = " and 日期<'" + dtpHDate.Text + "' "; | 
|             } | 
|             // | 
|             //过滤条件 | 
|             //if (DBUtility.ClsPub.isStrNull(sCondition) == "" && frmCondition.SqlStr.Trim().Length != 0) | 
|             //{ | 
|             //    sSql = frmCondition.SqlStr + sWhere + HStatus + " order by 任务单号 desc "; | 
|             //} | 
|             //else  | 
|             if (DBUtility.ClsPub.isStrNull(sCondition) != "") | 
|             { | 
|                 sSql = "Select * from " + ViewName + sCondition + sWhere + HStatus + " order by 日期  "; | 
|             } | 
|             else | 
|             { | 
|                 sSql = "Select * from " + ViewName + " where 1=1 " + sWhere + HStatus + " order by 日期  "; | 
|             } | 
|             // | 
|             DSet = SubCn.RunProcReturn(sSql, ViewName, ref DBUtility.ClsPub.sExeReturnInfo); | 
|             //生成首行标题 | 
|             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); | 
|             //画线 | 
|             GraphLine(); | 
|   | 
|             Total(); | 
|              | 
|              | 
|             //  | 
|         } | 
|         // | 
|         private void timer1_Tick(object sender, EventArgs e) | 
|         { | 
|             timer1.Enabled=false; | 
|             initGrid(); | 
|             Display(); | 
|         } | 
|   | 
|         private void tc_Click(object sender, EventArgs e) | 
|         { | 
|             this.Close(); | 
|         } | 
|   | 
|         private void sx_Click(object sender, EventArgs e) | 
|         { | 
|             timer1.Enabled = true; | 
|         } | 
|   | 
|         private void dj_Click(object sender, EventArgs e) | 
|         { | 
|             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; | 
|             ClsCN oCn = new ClsCN(); | 
|             string HType = ""; | 
|             HType = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("状态")].Value); | 
|             if (HType == "生产中") | 
|             { | 
|                 oCn.RunProc("update Sc_ICMOBillStatus_Tmp set HEndDate=GETDATE(),HICMOStatus=3 where HInterID= " + lngBillKey); | 
|                 grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("状态")].Value = "已完工"; | 
|             } | 
|             else if (HType == "已完工") | 
|             { | 
|                 MessageBox.Show("此任务已完工,不允许重复完工!"); | 
|             } | 
|             else if (HType == "待开工") | 
|             { | 
|                 MessageBox.Show("此任务未开工,不允许完工!"); | 
|             } | 
|             else if (HType == "挂起中") | 
|             { | 
|                 MessageBox.Show("此任务挂起中,不允许完工!"); | 
|             }  | 
|         } | 
|         //显示单据 | 
|         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; | 
|             //Kanban.Sc_ProductionLineKB oKB = new Kanban.Sc_ProductionLineKB(); | 
|             //oKB.lblJHH.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("任务单号")].Value); | 
|             //oKB.lblGGXH.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("规格型号")].Value); | 
|             //oKB.lblMBS.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("当日计划")].Value); | 
|             //oKB.lblZJHS.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("计划数量")].Value); | 
|             //oKB.lblZBLS.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("不良数量")].Value); | 
|             //oKB.lblBZ.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("备注")].Value); | 
|             //oKB.lblCP.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("物料名称")].Value); | 
|             //oKB.lblSJS.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("当日完工")].Value); | 
|             //oKB.lblLJS.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("汇报数量")].Value); | 
|             //oKB.lblZBLL.Text =DBUtility.ClsPub.isStrNull( DBUtility.ClsPub.isDoule(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("不良数量")].Value) / DBUtility.ClsPub.isDoule(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("汇报数量")].Value)); | 
|             //oKB.ShowDialog(); | 
|         } | 
|         // | 
|         private Int32 Fun_GetCol(string sCol) | 
|         { | 
|             return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); | 
|         } | 
|         // | 
|         private void Sc_ProductionLineList_Load(object sender, EventArgs e) | 
|         { | 
|             // | 
|             frmCondition = new frmBillQueryCondition_New(); | 
|             LoadTree(); | 
|             this.Text = ModCaption; | 
|             lblCaption.Text = ModCaption; | 
|             oSumGrid.ogrdMain = grdMain;  //初始化 new | 
|             oSumGrid.oGridsum = grdSum; | 
|             initGrid(); | 
|         } | 
|   | 
|         private void grdMain_DblClick(object sender, EventArgs e) | 
|         { | 
|             Sub_ShowBill(); | 
|         } | 
|   | 
|         private void cx_Click(object sender, EventArgs e) | 
|         { | 
|             frmCondition = new frmBillQueryCondition_New(); | 
|             SetCondition(frmCondition, ViewName, this.Name); | 
|             frmCondition.ShowDialog(); | 
|             if (frmCondition.Tag.ToString() == "OK") | 
|             { | 
|                 Display(); | 
|             } | 
|         } | 
|   | 
|         public void SetCondition(frmBillQueryCondition_New frmCondition, string ViewName, string Name) | 
|         { | 
|             frmCondition.Tag = ""; | 
|             frmCondition.ViewName = ViewName; | 
|             frmCondition.ModName = Name; | 
|         } | 
|   | 
|         private void xz_Click(object sender, EventArgs e) | 
|         { | 
|             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; | 
|             ClsCN oCn = new ClsCN(); | 
|             string HType = ""; | 
|             HType = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("状态")].Value); | 
|             if (HType == "生产中") | 
|             { | 
|                 MessageBox.Show("此任务已经处于生产中,不允许重复开工!"); | 
|             } | 
|             else if (HType == "已完工") | 
|             { | 
|                 MessageBox.Show("此任务已完工,不允许开工!"); | 
|             } | 
|             else if (HType == "待开工") | 
|             { | 
|                 oCn.RunProc("update Sc_ICMOBillStatus_Tmp set HBeginDate=GETDATE(),HICMOStatus=1 where HInterID= " + lngBillKey); | 
|                 grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("状态")].Value = "生产中"; | 
|             } | 
|             else if (HType == "挂起中") | 
|             { | 
|                 oCn.RunProc("update Sc_ICMOBillStatus_Tmp set HBeginDate=GETDATE(),HICMOStatus=1 where HInterID= " + lngBillKey); | 
|                 oCn.RunProc("update a set a.HEndDate=getdate() from (select top 1 * from Sc_ICMOPauseBillMain a where HSourceInterID=" + lngBillKey + " order by HInterID desc) as a"); | 
|                 grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("状态")].Value = "生产中"; | 
|             } | 
|         } | 
|   | 
|         private void sc_Click(object sender, EventArgs e) | 
|         { | 
|             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; | 
|             string HType = ""; | 
|             HType = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("状态")].Value); | 
|             if (HType == "生产中") | 
|             { | 
|                 Sc_MESHang oSc_MESHang = new Sc_MESHang(); | 
|                 oSc_MESHang.txtHICMOBillNo.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("任务单号")].Value); | 
|                 oSc_MESHang.HSourceInterID = lngBillKey; | 
|                 oSc_MESHang.txtHSplitNO.Text = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("拆分号")].Value); | 
|                 oSc_MESHang.ShowDialog(); | 
|                 grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("状态")].Value = "挂起中"; | 
|             } | 
|             else if (HType == "已完工") | 
|             { | 
|                 MessageBox.Show("此任务已完工,不允许挂起!"); | 
|             } | 
|             else if (HType == "待开工") | 
|             { | 
|                 MessageBox.Show("此任务未开工,不允许挂起!"); | 
|             } | 
|             else if (HType == "挂起中") | 
|             { | 
|                 MessageBox.Show("此任务挂起中,不允许重复挂起!"); | 
|             } | 
|         } | 
|   | 
|         private void timer2_Tick(object sender, EventArgs e) | 
|         { | 
|             timer2.Enabled = false; | 
|             //frmCondition = new frmBillQueryCondition_New(); | 
|             //SetCondition(frmCondition, ViewName, this.Name); | 
|             //frmCondition.ShowDialog(); | 
|             //if (frmCondition.Tag.ToString() == "OK") | 
|             //{ | 
|                 timer1.Enabled = true; | 
|             //} | 
|         } | 
|   | 
|          | 
|   | 
|         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 GraphLine() | 
|         { | 
|             int MainIDCol = Fun_GetCol("hmainid"); | 
|             int SubIDCol = Fun_GetCol("hsubid"); | 
|             string s = frmCondition.cmbHComplete.Text; | 
|             long n=0; | 
|             DBUtility.Xt_BaseBillFun.GraphLine(grdMain, MainIDCol, SubIDCol, s,ref n); | 
|             //显示 | 
|             lbldj.Text = "查询出 " + n.ToString() + " 张单据"; | 
|             lbljl.Text = "共有 " + grdMain.RowCount.ToString() + " 条记录"; | 
|         } | 
|         //审核 | 
|         private void sh_Click(object sender, EventArgs e) | 
|         { | 
|              | 
|         } | 
|         //反审核 | 
|         private void qsh_Click(object sender, EventArgs e) | 
|         { | 
|             | 
|         } | 
|   | 
|         private void GraphicsGrid() | 
|         { | 
|             DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); | 
|         } | 
|   | 
|         #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(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf");  //here . | 
|             Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable); | 
|         } | 
|   | 
|         private void ReportFetchRecordByDataTable() | 
|         { | 
|             try | 
|             { | 
|                 BLL.Utility.FillRecordToReport(Report, grdMain, grdPrint, Fun_GetCol("HMaterID")); | 
|             } | 
|             catch (Exception e) | 
|             { | 
|                 MessageBox.Show("打印失败!:" + e.Message); | 
|             } | 
|         } | 
|   | 
|         #endregion | 
|         // | 
|         private void grdMain_Paint(object sender, PaintEventArgs e) | 
|         { | 
|             GraphicsGrid(); | 
|         } | 
|   | 
|         //合计 new | 
|         private void Total() | 
|         { | 
|             if (grdMain.Rows.Count > 0 &&  grdMain.ColumnCount>0) | 
|             { | 
|                 oSumGrid.SetGridsum(); | 
|                 oSumGrid.Total(); | 
|             } | 
|         } | 
|         //合计 new | 
|         private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) | 
|         { | 
|             Total(); | 
|         } | 
|         //合计 new | 
|         private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) | 
|         { | 
|             Total(); | 
|         } | 
|         //引出EXCEL | 
|         private void dc_Click(object sender, EventArgs e) | 
|         { | 
|             DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); | 
|         } | 
|   | 
|         private void cmdHWorkShopID_Click(object sender, EventArgs e) | 
|         { | 
|             DAL.ClsGy_Department_View oDept = new DAL.ClsGy_Department_View(); | 
|             if (oDept.RefreshView()) | 
|             { | 
|                 this.txtHWorkShopID.Text = oDept.oModel.HName; | 
|                 this.txtHWorkShopID.Tag = oDept.oModel.HItemID.ToString(); | 
|             } | 
|             else | 
|             { | 
|                 this.txtHWorkShopID.Text = ""; | 
|             } | 
|         } | 
|   | 
|         private void txtHWorkShopID_TextChanged(object sender, EventArgs e) | 
|         { | 
|             if (txtHWorkShopID.Text.Trim() == "") | 
|             { | 
|                 txtHWorkShopID.Tag = "0"; | 
|             } | 
|         } | 
|   | 
|         private void LoadAllNodes(TreeNode sNode)  //Lock | 
|         { | 
|             DBUtility.Gy_BaseFun.LoadAllNodes(sNode, BillName); | 
|         }  | 
|         private void LoadTree()//Lock | 
|         { | 
|             DBUtility.Gy_BaseFun.LoadTree(tv, imageList1, ModName, BillName); | 
|         } | 
|   | 
|         //树型 单击 | 
|         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 button1_Click(object sender, EventArgs e) | 
|         { | 
|             HStatus = " and 状态='待开工' "; | 
|             Display(); | 
|         } | 
|   | 
|         private void button2_Click(object sender, EventArgs e) | 
|         { | 
|             HStatus = " and 状态='生产中' "; | 
|             Display(); | 
|         } | 
|   | 
|         private void button3_Click(object sender, EventArgs e) | 
|         { | 
|             HStatus = " and 状态='已完工' "; | 
|             Display(); | 
|         } | 
|   | 
|         private void button4_Click(object sender, EventArgs e) | 
|         { | 
|             HStatus = " and 状态='挂起中' "; | 
|             Display(); | 
|         } | 
|   | 
|         private void button5_Click(object sender, EventArgs e) | 
|         { | 
|             HStatus = ""; | 
|             Display(); | 
|         } | 
|   | 
|   | 
|   | 
|     } | 
| } |