using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; using gregn6Lib; using WarM; using DBUtility; using OAM; namespace APSM { public partial class Sc_ICMOSortBillList : Form { public Sc_ICMOSortBillList() { InitializeComponent(); } public frmBillQueryCondition_New frmCondition; public string ViewName = "h_v_Sc_ICMOSortBillList"; public string ModName = "Sc_ICMOSortBillList"; public string ModCaption = "生产计划排程查询"; public const string ModRightName = "Sc_ICMOSortBill"; 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_ICMOSortBill oBill = new DAL.ClsSc_ICMOSortBill(); //public Sc_ICMOSortBill oFrm; public DataTable oDataTable; Pub_Class.ClsGridListSum oSumGrid = new Pub_Class.ClsGridListSum(); // private void initGrid() { DBUtility.Xt_BaseBillFun.initGridList(grdMain, this.Name); } // private void Display() { SQLHelper.ClsCN SubCn = new SQLHelper.ClsCN(); DataSet DSet; string sSql = ""; string sWhere = ""; //过滤条件 if (frmCondition.SqlStr.Trim().Length == 0) return; sSql = frmCondition.SqlStr + sWhere + " order by 部门代码,资源代码,优先级,日期 "; // DSet = SubCn.RunProcReturn(sSql, "h_v_Sc_ICMOSortBillList", ref DBUtility.ClsPub.sExeReturnInfo); //生成首行标题 if (DSet == null) { MessageBox.Show("没有返回任何结果,请在过滤框中点击【恢复】按钮,尝试再次查询!" + DBUtility.ClsPub.sExeReturnInfo); return; } // 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(); // } 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 Int32 Fun_GetCol(string sCol) { return DBUtility.Xt_BaseBillFun.Fun_GetCol(sCol, grdMain); } private void Sc_ICMOSortBillList_Load(object sender, EventArgs e) { // frmCondition = new frmBillQueryCondition_New(); this.Text = ModCaption; lblCaption.Text = ModCaption; oSumGrid.ogrdMain = grdMain; //初始化 new oSumGrid.oGridsum = grdSum; lblWorkTime.Text = ""; initGrid(); } 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(); } } private void xz_Click(object sender, EventArgs e) { // //oFrm = new Sc_ICMOSortBill(); //oFrm.ShowDialog(); } 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; } } public void SetCondition(frmBillQueryCondition_New frmCondition, string ViewName, string Name) { frmCondition.Tag = ""; frmCondition.ViewName = ViewName; frmCondition.ModName = Name; } #region //打印设置 GridppReport Report; int BRow = 0; int ERow = 0; bool b = false; //预览 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) { // if (oFrm.sOpenTmp == "生产计划单" || oFrm.sOpenTmp == "生产计划单横向") { if (grdMain.SelectedRows == null) { MessageBox.Show("请选择要打印的行!"); return; } for (int i = 0; i < grdMain.SelectedRows.Count; i++) { for (int j = i + 1; j < grdMain.SelectedRows.Count; j++) { if (ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("HSourceID")].Value) != ClsPub.isStrNull(grdMain.SelectedRows[j].Cells[Fun_GetCol("HSourceID")].Value)) { //MessageBox.Show("请选择相同的生产资源!"); //return; } } } //从选中记录 插入datatable SetDataTable(); } Sub_SetReport(oFrm.sOpenTmp); Report.PrintPreview(true); //Report.Print(false); } } 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 ReportFetchRecordByDataTable() { try { DataTable oDt = new DataTable(); BLL.Utility.FillRecordToReport(Report, oDataTable, oDt, 0); } catch (Exception e) { MessageBox.Show("打印失败!表体:" + e.Message); } } private void ReportBeforePostRecord()// { try { //根据行号得到信息 Report.FieldByName("表头资源").AsString = ClsPub.isStrNull(grdMain.SelectedRows[0].Cells[Fun_GetCol("资源名称")].Value); Report.FieldByName("表头部门").AsString = ClsPub.isStrNull(grdMain.SelectedRows[0].Cells[Fun_GetCol("部门名称")].Value); Report.FieldByName("制单日期").AsString = DBUtility.ClsPub.GetServerDate(0); Report.FieldByName("制单人").AsString =DBUtility.ClsPub.CurUserName; } catch (Exception e) { MessageBox.Show("打印失败!表头:" + e.Message); } } #endregion private void bclk_Click(object sender, EventArgs e) { //保存列宽 Pub_Class.ClsPub.SaveGridView(grdMain, this.Name, Pub_Class.ClsPub.AppPath); } private void mrlk_Click(object sender, EventArgs e) { DBUtility.Xt_BaseBillFun.DefaultGridView(grdMain, this.Name); } //划线 private void GraphLine() { int MainIDCol = Fun_GetCol("hsourceid"); int SubIDCol = Fun_GetCol("hsubid"); string s = "是"; long n = 0; DBUtility.Xt_BaseBillFun.GraphLine(grdMain, MainIDCol, SubIDCol, s, ref n); //显示 lbldj.Text = "查询出 " + n.ToString() + " 张单据"; lbljl.Text = "共有 " + grdMain.RowCount.ToString() + " 条记录"; } private void GraphicsGrid() { DBUtility.Xt_BaseBillFun.GraphicsGrid(grdMain); } #region 数据导出 #endregion //合计 new private void Total() { if (grdMain.Rows.Count > 0 && grdMain.ColumnCount > 0) { //oSumGrid.SetGridsum(); //oSumGrid.Total(); } } private void grdMain_Paint_1(object sender, PaintEventArgs e) { GraphicsGrid(); } private void yc_Click(object sender, EventArgs e) { DBUtility.Gy_BaseFun.DataToExcel(this.Text, grdMain); } private void grdMain_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e) { //Total(); } private void grdMain_CellMouseUp(object sender, DataGridViewCellMouseEventArgs e) { //Total(); //GetWorkTime(); } private void toolStripButton1_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) { // if (oFrm.sOpenTmp == "生产计划单") { if (grdMain.SelectedRows == null) { MessageBox.Show("请选择要打印的行!"); return; } for (int i = 0; i < grdMain.SelectedRows.Count; i++) { for (int j = i + 1; j < grdMain.SelectedRows.Count; j++) { if (ClsPub.isStrNull(grdMain.SelectedRows[i].Cells[Fun_GetCol("HSourceID")].Value) != ClsPub.isStrNull(grdMain.SelectedRows[j].Cells[Fun_GetCol("HSourceID")].Value)) { MessageBox.Show("请选择相同的生产资源!"); return; } } } //从选中记录 插入datatable SetDataTable(); } Sub_SetReport(oFrm.sOpenTmp); //Report.PrintPreview(true); Report.Print(false); } } private void SetDataTable() { DataRow sRow; DataColumn sCol; int FixCols = 0; int iCol = 0; oDataTable = new DataTable(); for (int j = 0; j < grdMain.SelectedRows.Count; j++) { iCol = 0; sRow = oDataTable.NewRow(); for (int i = FixCols; i < grdMain.Columns.Count; ++i) { iCol = iCol + 1; if (j == 0) { sCol = new DataColumn(); sCol.ColumnName = grdMain.Columns[i].HeaderText; oDataTable.Columns.Add(sCol); } if (DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[j].Cells[i + FixCols].Value) != "") { sRow[iCol - 1] = DBUtility.ClsPub.isStrNull(grdMain.SelectedRows[j].Cells[i + FixCols].Value); } } //增加序号咧 if (j == 0) { sCol = new DataColumn(); sCol.ColumnName = "ino"; oDataTable.Columns.Add(sCol); } sRow[iCol] = j + 1; oDataTable.Rows.Add(sRow); } } private void GetWorkTime() { int HWorkQtyCol = Fun_GetCol("HWorkQty"); int HQtyCol = Fun_GetCol("本日计划"); double HQty = 0; double HWorkQty = 0; double HWorkTime = 0; for (int i = this.grdMain.SelectedRows.Count; i > 0; i--) { HQty = DBUtility.ClsPub.isDoule(grdMain.SelectedRows[i - 1].Cells[HQtyCol].Value); HWorkQty = DBUtility.ClsPub.isDoule(grdMain.SelectedRows[i - 1].Cells[HWorkQtyCol].Value); if (HWorkQty != 0) { HWorkTime = HWorkTime + (HQty / HWorkQty); } } lblWorkTime.Text = DBUtility.ClsPub.isDoule(HWorkTime, 2).ToString(); } private void grdMain_DoubleClick(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; Sc_ICMOSortBillListDlg oDlg = new Sc_ICMOSortBillListDlg(); oDlg.HInterID = lngBillKey; oDlg.ShowDialog(); } //齐料确认 private void ql_Click(object sender, EventArgs e) { if (grdMain.CurrentRow == null) { MessageBox.Show("请至少选择一行!"); return; } SetStatus(1); } //缺料确认 private void quel_Click(object sender, EventArgs e) { if (grdMain.CurrentRow == null) { MessageBox.Show("请至少选择一行!"); return; } SetStatus(2); } //变更齐料状态 private void SetStatus(Int64 HStatus) { Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); DateTime dDate; Int64 lSourceID; Int64 lSourceInterID; if (lngBillKey == 0) { return; } else { if (MessageBox.Show("确定要设置当前记录?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } } DAL.ClsSc_ICMOBillStatus_Tmp oICMOBill=new DAL.ClsSc_ICMOBillStatus_Tmp(); if (oICMOBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { lSourceID = oICMOBill.omodel.HSourceID; lSourceInterID = oICMOBill.omodel.HICMOInterID; dDate = oICMOBill.omodel.HDate; if (oBill.Sub_SetStatusByInfo(lSourceID, lSourceInterID, dDate, HStatus, ref DBUtility.ClsPub.sExeReturnInfo)) { Display(); return; } } } //下推生成领料单 private void 领料单ToolStripMenuItem_Click(object sender, EventArgs e) { //Kf_MateOutBill oMater = new Kf_MateOutBill(); //oMater.HPPBomID =DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); //oMater.HQty =DBUtility.ClsPub.isInt(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("本日计划数")].Value); //oMater.BillStatus = DBUtility.ClsPub.Enum_BillStatus.BillStatus_AddNew; //oMater.ShowDialog(); } //变更 private void bg_Click(object sender, EventArgs e) { // Sc_ICMOSortChangeBill oChangeBill; if (grdMain.CurrentRow == null) { MessageBox.Show("请至少选择一行!"); return; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; oChangeBill = new Sc_ICMOSortChangeBill(); oChangeBill.HInterID = lngBillKey; oChangeBill.Show(); } //执行 private void zx_Click(object sender, EventArgs e) { Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); DateTime dDate; Int64 lSourceID; Int64 lSourceInterID; Int64 HStatus = 0; if (lngBillKey == 0) { return; } else { if (!oBill.Sub_GetICMOSortClose(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { if (MessageBox.Show("所选计划未结案,是否继续执行?", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) == DialogResult.Cancel) { return; } } } DAL.ClsSc_ICMOBillStatus_Tmp oICMOBill = new DAL.ClsSc_ICMOBillStatus_Tmp(); if (oICMOBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { lSourceID = oICMOBill.omodel.HSourceID; lSourceInterID = oICMOBill.omodel.HICMOInterID; dDate = oICMOBill.omodel.HDate; if (oBill.Sub_SetStartByInfo(lSourceID, lSourceInterID, dDate, HStatus, ref DBUtility.ClsPub.sExeReturnInfo)) { Display(); return; } } } //撤销执行 private void cxzx_Click(object sender, EventArgs e) { Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); DateTime dDate; Int64 lSourceID; Int64 lSourceInterID; Int64 HStatus = 1; if (lngBillKey == 0) { return; } else { if (MessageBox.Show("确定要执行当前记录?", "提示", MessageBoxButtons.OKCancel) == DialogResult.Cancel) { return; } } DAL.ClsSc_ICMOBillStatus_Tmp oICMOBill = new DAL.ClsSc_ICMOBillStatus_Tmp(); if (oICMOBill.ShowBill(lngBillKey, ref DBUtility.ClsPub.sExeReturnInfo)) { lSourceID = oICMOBill.omodel.HSourceID; lSourceInterID = oICMOBill.omodel.HICMOInterID; dDate = oICMOBill.omodel.HDate; if (oBill.Sub_SetStartByInfo(lSourceID, lSourceInterID, dDate,HStatus, ref DBUtility.ClsPub.sExeReturnInfo)) { Display(); return; } } } private void chexiao_Click(object sender, EventArgs e) { if (grdMain.CurrentRow == null) { MessageBox.Show("请至少选择一行!"); return; } SetStatus(0); } private void xx_Click(object sender, EventArgs e) { BLL.OA_EmpMessageBill oEmpMessageBill; if (grdMain.CurrentRow == null) { MessageBox.Show("请至少选择一行!"); return; } Int64 lngBillKey = 0; lngBillKey = DBUtility.ClsPub.isLong(grdMain.Rows[grdMain.CurrentRow.Index].Cells[Fun_GetCol("hmainid")].Value); if (lngBillKey == 0) return; oEmpMessageBill = new BLL.OA_EmpMessageBill(); oEmpMessageBill.HRelationInterID = lngBillKey; oEmpMessageBill.HRelationEntryID = lngBillKey; oEmpMessageBill.HRelationBillType = ModName; oEmpMessageBill.HRelationBillNo = ""; oEmpMessageBill.Show(); } } }