| using System; | 
| using System.Collections.Generic; | 
| using System.ComponentModel; | 
| using System.Data; | 
| using System.Drawing; | 
| using System.Text; | 
| using System.Windows.Forms; | 
|   | 
| namespace MES | 
| { | 
|     public partial class Sc_DynamicDataQuery : Form | 
|     { | 
|         private int HItemIDCol = 0; | 
|         private int HNumberCol = 0;   | 
|         const string ModName = "资源"; | 
|         const string BillName = "Gy_Source"; | 
|         public long  HItemID;//项目ID | 
|         public string sCondition; //过滤条件 | 
|         SQLHelper.ClsCN oCn = new SQLHelper.ClsCN(); | 
|         TreeNode CurNode = new TreeNode(); | 
|         public long HInterID = 0; | 
|         public long HEntryID = 0; | 
|         public string HBillNo = ""; | 
|         public string HSourceNumber = ""; | 
|         public string HSourceName = ""; | 
|         public string HMaterNumber = ""; | 
|         public string HMaterName = ""; | 
|         public string HMaterModel = ""; | 
|         public string HUnitName = ""; | 
|         public double HPlanQty = 0; | 
|         public double HQty = 0; | 
|   | 
|   | 
|         public Sc_DynamicDataQuery() | 
|         { | 
|             InitializeComponent(); | 
|         } | 
|         //以下代码基本不需要修改 | 
|         #region 固定代码 | 
|         //保存GRID列宽 | 
|         private void Sc_DynamicDataQuery_FormClosing(object sender, FormClosingEventArgs e) | 
|         { | 
|             DBUtility.ClsPub.SaveGridView(grdMain, this.Name, DBUtility.ClsPub.AppPath);   | 
|         } | 
|         //窗体加载 | 
|         private void Sc_DynamicDataQuery_Load(object sender, EventArgs e) | 
|         {  | 
|             LoadTree(); | 
|             initGrid();  | 
|         }  | 
|         private void LoadAllNodes(TreeNode sNode)  //Lock | 
|         { | 
|             DBUtility.Gy_BaseFun.LoadAllNodes(sNode, BillName); | 
|         }  | 
|         private void LoadTree()//Lock | 
|         { | 
|             DBUtility.Gy_BaseFun.LoadTree(tv, imageList1, txtHDeptID.Text, BillName,DBUtility.ClsPub.isLong(txtHDeptID.Tag)); | 
|         } | 
|           | 
|         //退出模块 | 
|         private void tc_Click(object sender, EventArgs e) | 
|         { | 
|             this.Close(); | 
|         }  | 
|         //查询 | 
|         private void cx_Click(object sender, EventArgs e) | 
|         { | 
|             string sCode="0"; | 
|             if (CurNode.Name.Length >= 2) | 
|             { | 
|                 sCode = CurNode.Name.Substring(1, CurNode.Name.Length - 1); | 
|             } | 
|             Display(sCode);  | 
|         }  | 
|         private Int32 Fun_GetCol(string sCol) | 
|         { | 
|             return DBUtility.Gy_BaseFun.Fun_GetCol(sCol, grdMain); | 
|         }  | 
|    | 
|         //树型 单击 | 
|         private void tv_NodeMouseClick(object sender, TreeNodeMouseClickEventArgs e) | 
|         { | 
|             CurNode = e.Node; | 
|             if (CurNode != null) | 
|             { | 
|                 if (CurNode.Nodes.Count == 0) | 
|                     LoadAllNodes(CurNode); | 
|                 //找到选中结点 | 
|                 FindRow(CurNode.Name); | 
|             } | 
|         } | 
|         //过滤资料   | 
|         private void FindRow(string sCode)//Lock | 
|         { | 
|             if (sCode.Length >= 2) | 
|             { | 
|                 sCode=sCode.Substring(1, sCode.Length - 1); | 
|             } | 
|             Display(sCode);  | 
|         } | 
|         | 
|            | 
|          | 
|         //保存列宽 | 
|         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("0"); | 
|         } | 
|           | 
|         //初始化GRID | 
|         private void initGrid() | 
|         { | 
|             DBUtility.Gy_BaseFun.initGrid(grdMain); | 
|             grdMain.ColumnHeadersHeight =45;          //标题行高 | 
|         } | 
|         //显示列表 | 
|         private void Display(string sSource) // 幻心 | 
|         { | 
|             SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); | 
|             DataSet DSet;  | 
|             string sSql = "";  | 
|             //过滤条件 | 
|             sSql = "exec h_p_Sc_DynamicDataQueryList '%" + txtHICMOBillNo.Text + "%'," + DBUtility.ClsPub.isLong(sSource).ToString(); | 
|             //执行SQL | 
|             DSet = SubCn.RunProcReturn(sSql, "xt_xtgnb", 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 cmdLoadTree_Click(object sender, EventArgs e) | 
|         { | 
|             LoadTree(); | 
|         } | 
|   | 
|         #endregion | 
|   | 
|         #region 类的读写 | 
|   | 
|           | 
|           | 
|         #endregion | 
|   | 
|           | 
|   | 
|         #region 界面控件处理 | 
|   | 
|         private void cmdHDeptID_Click(object sender, EventArgs e) | 
|         { | 
|             DAL.ClsK3_Department_View oDept = new DAL.ClsK3_Department_View(); | 
|             if (oDept.RefreshView()) | 
|             { | 
|                 this.txtHDeptID.Text = oDept.oModel.HName; | 
|                 this.txtHDeptID.Tag = oDept.oModel.HItemID.ToString(); | 
|                 this.txtHDeptNumber.Text = oDept.oModel.HNumber; | 
|             } | 
|             else | 
|             { | 
|                 this.txtHDeptID.Text = ""; | 
|                 this.txtHDeptNumber.Text = ""; | 
|             } | 
|             LoadTree(); | 
|         } | 
|   | 
|         #endregion | 
|         //开工按钮 | 
|         private void kg_Click(object sender, EventArgs e) | 
|         { | 
|             Sub_Start(); | 
|         } | 
|   | 
|         //开工 | 
|         private void Sub_Start() | 
|         { | 
|             DAL.ClsSc_ICMOBillStatus_Tmp oTmp = new DAL.ClsSc_ICMOBillStatus_Tmp(); | 
|             long HInterID = 0; | 
|             long HEntryID = 0; | 
|             long HSourceID = 0; | 
|             string HBillNo = ""; | 
|             if (grdMain.CurrentRow == null) | 
|                 return; | 
|             HSourceID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hsourceid")].Value); | 
|             HInterID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); | 
|             HEntryID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hsubid")].Value); | 
|             HBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("生产订单")].Value); | 
|             if (HInterID == 0) | 
|                 return; | 
|             //判断是否已经完工(在ClsSc_ICMOBillStatus_Tmp类中增加方法IsEnded(),结束时间大于1950-01-01) | 
|             if (!oTmp.IsEnded(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|             { | 
|                 //判断是否已经开工(在ClsSc_ICMOBillStatus_Tmp类中增加方法IsStarted(),开工日期大于1950-01-01) | 
|                 if (!oTmp.IsStarted(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                 { | 
|                     //未开工,则UPDATE生产状态表(在类中增加方法Fun_SetStart(),设置开始时间、当前生产标记、任务单状态1) | 
|                     if (oTmp.Fun_SetStart(HInterID, HEntryID,HSourceID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                     { | 
|                         MessageBox.Show("生产订单号:" + HBillNo + ",开工!", "提示"); | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     MessageBox.Show("生产订单号:" + HBillNo + ",正在工作中!", "提示"); | 
|                     return; | 
|                 } | 
|             } | 
|             else | 
|             { | 
|                 MessageBox.Show("生产订单号:" + HBillNo + ",已经完工,无需开工!", "提示"); | 
|                 return; | 
|             } | 
|             //刷新界面 | 
|             Display("0"); | 
|         } | 
|          | 
|   | 
|         private void txtHDeptID_TextChanged(object sender, EventArgs e) | 
|         { | 
|             if (txtHDeptID.Text.Trim()=="") | 
|             { | 
|                 txtHDeptID.Tag = "0"; | 
|             } | 
|         } | 
|   | 
|   | 
|         //完工按钮 | 
|         private void wg_Click(object sender, EventArgs e) | 
|         { | 
|             Sub_End(); | 
|         } | 
|         //完工 | 
|         private void Sub_End() | 
|         { | 
|             DAL.ClsSc_ICMOBillStatus_Tmp oTmp = new DAL.ClsSc_ICMOBillStatus_Tmp(); | 
|             long HInterID = 0; | 
|             long HEntryID = 0; | 
|             string HBillNo = ""; | 
|             if (grdMain.CurrentRow == null) | 
|                 return; | 
|             HInterID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); | 
|             HEntryID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hsubid")].Value); | 
|             HBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("生产订单")].Value); | 
|             if (HInterID == 0) | 
|                 return; | 
|             //判断是否已经开工(在ClsSc_ICMOBillStatus_Tmp类中增加方法IsStarted(),开工日期大于1950-01-01) | 
|             if (oTmp.IsStarted(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|             { | 
|   | 
|                 //判断是否已经完工(在ClsSc_ICMOBillStatus_Tmp类中增加方法IsEnded(),结束时间大于1950-01-01) | 
|                 if (!oTmp.IsEnded(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                 { | 
|                     //未完工,则UPDATE生产状态表(在类中增加方法Fun_SetEnd(),设置结束时间、当前生产标记、任务单状态3) | 
|                     if (oTmp.Fun_SetEnd(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                     { | 
|                         MessageBox.Show("生产订单号:" + HBillNo + ",完工!", "提示"); | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     MessageBox.Show("生产订单号:" + HBillNo + ",已完工!", "提示"); | 
|                     return; | 
|                 } | 
|             } | 
|             else | 
|             { | 
|                 MessageBox.Show("生产订单号:" + HBillNo + ",未开工!", "提示"); | 
|                 return; | 
|             } | 
|             //刷新界面 | 
|             Display("0"); | 
|         } | 
|   | 
|         //挂起按钮 | 
|         private void gq_Click(object sender, EventArgs e) | 
|         { | 
|             Sub_Pause(); | 
|         } | 
|   | 
|         //挂起 | 
|         private void Sub_Pause() | 
|         { | 
|              | 
|         } | 
|         //引出按钮 | 
|         private void yc_Click(object sender, EventArgs e) | 
|         { | 
|             Sub_DataIn(); | 
|         } | 
|   | 
|         //引出 | 
|         private void Sub_DataIn() | 
|         { | 
|              | 
|         } | 
|   | 
|         //产量汇报按钮 | 
|         private void clhb_Click(object sender, EventArgs e) | 
|         { | 
|             Sub_WorkQtyReport(); | 
|         } | 
|           | 
|   | 
|           //产量汇报 | 
|         private void Sub_WorkQtyReport() | 
|         { | 
|   | 
|             //弹出 产量汇报窗体,对应DAL,MODEL类ClsSc_ICMOBillWorkQtyStatus_Tmp已经建立.窗体需要重新制作。 | 
|             MES.Sc_ICMOBillWorkQtyStatus_Tmp oSc_ICMOReportBill_WMS = new Sc_ICMOBillWorkQtyStatus_Tmp(); | 
|             DAL.ClsSc_ICMOBillWorkQtyStatus_Tmp oWms = new DAL.ClsSc_ICMOBillWorkQtyStatus_Tmp(); | 
|             DAL.ClsSc_ICMOBillStatus_Tmp oTmp = new DAL.ClsSc_ICMOBillStatus_Tmp(); | 
|             DAL.ClsGy_Source_View oSource = new DAL.ClsGy_Source_View(); | 
|             DAL.ClsK3_Material_View oMater = new DAL.ClsK3_Material_View(); | 
|             DAL.ClsK3_Unit_View oUnit = new DAL.ClsK3_Unit_View(); | 
|             long HInterID_Tmp = 0; | 
|             if (grdMain.CurrentRow == null) | 
|                 return; | 
|             HInterID_Tmp = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("HInterID_Tmp")].Value); | 
|             HInterID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); | 
|             HEntryID = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hsubid")].Value); | 
|             HBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("生产订单")].Value); | 
|             //判断是否已经开工(在ClsSc_ICMOBillStatus_Tmp类中增加方法IsStarted(),开工日期大于1950-01-01) | 
|             if (oTmp.IsStarted(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|             { | 
|   | 
|                 //判断是否已经完工(在ClsSc_ICMOBillStatus_Tmp类中增加方法IsEnded(),结束时间大于1950-01-01) | 
|                 if (!oTmp.IsEnded(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                 { | 
|                     if (oTmp.ShowBill(HInterID_Tmp, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                     { | 
|                         oSc_ICMOReportBill_WMS.txtHICMOBillNo.Text = oTmp.omodel.HICMOBillNo; | 
|                         oSc_ICMOReportBill_WMS.txtHSplitNO.Text = oTmp.omodel.HSplitNO; | 
|                         oSc_ICMOReportBill_WMS.txtHSourceNumber.Tag = oTmp.omodel.HSourceID; | 
|                         if (oSource.GetInfoByID(oTmp.omodel.HSourceID)) | 
|                         { | 
|                             oSc_ICMOReportBill_WMS.txtHSourceNumber.Text = oSource.omodel.HNumber; | 
|                             oSc_ICMOReportBill_WMS.txtHSourceName.Text = oSource.omodel.HName; | 
|                         } | 
|                         if (oMater.GetInfoByID(oTmp.omodel.HMaterID)) | 
|                         { | 
|                             oSc_ICMOReportBill_WMS.txtHMaterNumber.Text = oMater.omodel.HNumber; | 
|                             oSc_ICMOReportBill_WMS.txtHMaterName.Text = oMater.omodel.HName; | 
|                             oSc_ICMOReportBill_WMS.txtHMaterModel.Text = oMater.omodel.HModel; | 
|                         } | 
|                         if (oUnit.GetInfoByID(oTmp.omodel.HUnitID)) | 
|                         { | 
|                             oSc_ICMOReportBill_WMS.txtHUnitName.Text = oUnit.omodel.HName; | 
|                         } | 
|                         oSc_ICMOReportBill_WMS.txtHPlanQty.Text = oTmp.omodel.HPlanQty.ToString(); | 
|                         oSc_ICMOReportBill_WMS.txtHDayQty.Text = oTmp.omodel.HDatePlanQty.ToString(); | 
|                         oSc_ICMOReportBill_WMS.txtHBarCode.Text = ""; | 
|                         oSc_ICMOReportBill_WMS.txtHPieceQty.Text = ""; | 
|                         oSc_ICMOReportBill_WMS.txtHQty.Text = oTmp.omodel.HDatePlanQty.ToString(); | 
|                         oSc_ICMOReportBill_WMS.HSourceInterID = HInterID_Tmp; | 
|                         oSc_ICMOReportBill_WMS.ShowDialog(); | 
|                     } | 
|                     //汇报完毕,需要判断,新增汇报数量后,是否完工,更改生产状态表状态。 | 
|                     if (oWms.IsEnded(HInterID_Tmp, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|                     { | 
|                         //如果已经完工,调用方法Fun_SetEnd(),设置结束时间、当前生产标记、任务单状态3 | 
|                         oTmp.Fun_SetEnd(HInterID, HEntryID, ref DBUtility.ClsPub.sExeReturnInfo); | 
|                     } | 
|                 } | 
|                 else | 
|                 { | 
|                     MessageBox.Show("生产订单号:" + HBillNo + ",已经完工!", "提示"); | 
|                     return; | 
|                 } | 
|             } | 
|             else | 
|             { | 
|                 MessageBox.Show("生产订单号:" + HBillNo + ",未开工!", "提示"); | 
|                 return; | 
|             } | 
|             //刷新界面 | 
|             Display("0"); | 
|         }  | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|   | 
|         //质量汇报 | 
|         private void Sub_QualityReport() | 
|         { | 
|             ///弹出 质量汇报窗体,对应DAL,MODEL类ClsSc_ICMOBillQualityStatus_Tmp已经建立.窗体需要重新制作。 | 
|             MES.Sc_ICMOBillQualityStatus_Tmp oSc_QualityReportBill_WMS = new Sc_ICMOBillQualityStatus_Tmp(); | 
|             DAL.ClsSc_ICMOBillStatus_Tmp oTmp = new DAL.ClsSc_ICMOBillStatus_Tmp(); | 
|             DAL.ClsGy_Source_View oSource = new DAL.ClsGy_Source_View(); | 
|             DAL.ClsK3_Material_View oMater = new DAL.ClsK3_Material_View(); | 
|             DAL.ClsK3_Unit_View oUnit = new DAL.ClsK3_Unit_View(); | 
|             long HInterID_Tmp = 0; | 
|             if (grdMain.CurrentRow == null) | 
|                 return; | 
|             HInterID_Tmp = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("HInterID_Tmp")].Value); | 
|             HBillNo = DBUtility.ClsPub.isStrNull(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("生产订单")].Value); | 
|             // | 
|             if (oTmp.ShowBill(HInterID_Tmp, ref DBUtility.ClsPub.sExeReturnInfo)) | 
|             { | 
|                 oSc_QualityReportBill_WMS.txtHICMOBillNo.Text = oTmp.omodel.HICMOBillNo; | 
|                 oSc_QualityReportBill_WMS.txtHSplitNO.Text = oTmp.omodel.HSplitNO; | 
|                 oSc_QualityReportBill_WMS.txtHSourceNumber.Tag = oTmp.omodel.HSourceID; | 
|                 if (oSource.GetInfoByID(oTmp.omodel.HSourceID)) | 
|                 { | 
|                     oSc_QualityReportBill_WMS.txtHSourceNumber.Text = oSource.omodel.HNumber; | 
|                     oSc_QualityReportBill_WMS.txtHSourceName.Text = oSource.omodel.HName; | 
|                 } | 
|                 if (oMater.GetInfoByID(oTmp.omodel.HMaterID)) | 
|                 { | 
|                     oSc_QualityReportBill_WMS.txtHMaterNumber.Text = oMater.omodel.HNumber; | 
|                     oSc_QualityReportBill_WMS.txtHMaterName.Text = oMater.omodel.HName; | 
|                     oSc_QualityReportBill_WMS.txtHMaterModel.Text = oMater.omodel.HModel; | 
|                 } | 
|                 if (oUnit.GetInfoByID(oTmp.omodel.HUnitID)) | 
|                 { | 
|                     oSc_QualityReportBill_WMS.txtHUnitName.Text = oUnit.omodel.HName; | 
|                 } | 
|                 oSc_QualityReportBill_WMS.txtHPlanQty.Text = oTmp.omodel.HPlanQty.ToString(); | 
|                 oSc_QualityReportBill_WMS.txtHDayQty.Text = oTmp.omodel.HDatePlanQty.ToString(); | 
|                 oSc_QualityReportBill_WMS.txtHBarCode.Text = ""; | 
|                 oSc_QualityReportBill_WMS.HSourceInterID = HInterID_Tmp; | 
|                 oSc_QualityReportBill_WMS.ShowDialog(); | 
|             } | 
|             //刷新界面 | 
|             Display("0"); | 
|         } | 
|   | 
|   | 
|         //质量汇报按钮 | 
|         private void zlhb_Click(object sender, EventArgs e) | 
|         { | 
|             Sub_QualityReport(); | 
|         } | 
|   | 
|   | 
|   | 
|          | 
|   | 
|          | 
|     } | 
| } |