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 grproLib;
|
using WarM;
|
using DBUtility;
|
using OAM;
|
|
namespace APSM
|
{
|
public partial class Sc_ProcAutoSortBillList : Form
|
{
|
public Sc_ProcAutoSortBillList()
|
{
|
InitializeComponent();
|
}
|
public frmBillQueryCondition_New frmCondition;
|
public string ViewName = "h_v_Sc_ProcAutoSortBillList";
|
public string ModName = "Sc_ProcAutoSortBillList";
|
public string ModCaption = "生产计划排程查询";
|
public const string ModRightName = "Sc_ProcAutoSortBill";
|
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_WorkBillAutoSortBill oBill = new DAL.ClsSc_WorkBillAutoSortBill();
|
public Sc_ProcAutoSortBill oFrm;
|
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_ProcAutoSortBillList", 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_ProcAutoSortBillList_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_ProcAutoSortBill();
|
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 == "生产计划单")
|
{
|
if (grdMain.SelectedRows == null)
|
{
|
MessageBox.Show("请选择要打印的行!");
|
return;
|
}
|
for (int i = 0; i < grdMain.SelectedRows.Count; i++)
|
{
|
if (b)
|
{
|
ERow = grdMain.SelectedRows[i].Index;
|
Sub_SetReport(oFrm.sOpenTmp);
|
Report.PrintPreview(true);
|
b = false;
|
}
|
else
|
{
|
BRow = grdMain.SelectedRows[i].Index;
|
b = true;
|
}
|
}
|
}
|
else
|
{
|
Sub_SetReport(oFrm.sOpenTmp);
|
Report.PrintPreview(true);
|
}
|
}
|
}
|
|
private void Sub_SetReport(string sOpenTmp)
|
{
|
//判断行数
|
//
|
Report = new GridppReport();
|
Report.LoadFromFile(DBUtility.ClsPub.AppPath + @"\" + sOpenTmp + ".grf"); //here .
|
if (sOpenTmp == "生产计划单")
|
{
|
Report.BeforePostRecord += new _IGridppReportEvents_BeforePostRecordEventHandler(ReportBeforePostRecord);
|
}
|
Report.FetchRecord += new _IGridppReportEvents_FetchRecordEventHandler(ReportFetchRecordByDataTable);
|
}
|
|
private void ReportFetchRecordByDataTable()
|
{
|
BLL.Utility.FillRecordToReport(Report, grdMain, grdPrint, 0);
|
}
|
|
private void ReportBeforePostRecord()//
|
{
|
//根据行号得到信息
|
//int HMainIDCol = Fun_GetCol("HMainID");
|
//Int64 HMainID = DBUtility.ClsPub.isLong(grdMain.Rows[BRow].Cells[HMainIDCol].Value);
|
//Int64 HMainID2 = DBUtility.ClsPub.isLong(grdMain.Rows[ERow].Cells[HMainIDCol].Value);
|
//DataSet ds;
|
//ds = oBill.Sub_GetScInfoByMainID(HMainID, ref DBUtility.ClsPub.sExeReturnInfo);
|
//if (ds != null)
|
//{
|
// Report.FieldByName("任务单号").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["生产任务单号"]);
|
// Report.FieldByName("生产车间").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["部门名称"]);
|
// Report.FieldByName("任务单数量").AsInteger = DBUtility.ClsPub.isInt(ds.Tables[0].Rows[0]["总计划数"]);
|
// Report.FieldByName("今日计划").AsInteger = DBUtility.ClsPub.isInt(ds.Tables[0].Rows[0]["本日计划"]);
|
// Report.FieldByName("产品代码").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["产品代码"]);
|
// Report.FieldByName("生产线").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["资源名称"]);
|
// Report.FieldByName("产品名称").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["产品名称"]);
|
// Report.FieldByName("装配日期").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["日期"]);
|
// Report.FieldByName("产品型号").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["产品规格"]);
|
// Report.FieldByName("销售订单号").AsString ="";
|
// Report.FieldByName("下单日期").AsString = DBUtility.ClsPub.GetServerDate(0);
|
// Report.FieldByName("制单").AsString =DBUtility.ClsPub.CurUserName;
|
//}
|
//ds = null;
|
//ds = oBill.Sub_GetScInfoByMainID(HMainID2, ref DBUtility.ClsPub.sExeReturnInfo);
|
//if (ds != null)
|
//{
|
// Report.FieldByName("任务单号2").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["生产任务单号"]);
|
// Report.FieldByName("生产车间2").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["部门名称"]);
|
// Report.FieldByName("任务单数量2").AsInteger = DBUtility.ClsPub.isInt(ds.Tables[0].Rows[0]["总计划数"]);
|
// Report.FieldByName("今日计划2").AsInteger = DBUtility.ClsPub.isInt(ds.Tables[0].Rows[0]["本日计划"]);
|
// Report.FieldByName("产品代码2").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["产品代码"]);
|
// Report.FieldByName("生产线2").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["资源名称"]);
|
// Report.FieldByName("产品名称2").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["产品名称"]);
|
// Report.FieldByName("装配日期2").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["日期"]);
|
// Report.FieldByName("产品型号2").AsString = DBUtility.ClsPub.isStrNull(ds.Tables[0].Rows[0]["产品规格"]);
|
// Report.FieldByName("销售订单号2").AsString = "";
|
// Report.FieldByName("下单日期2").AsString = DBUtility.ClsPub.GetServerDate(0);
|
// Report.FieldByName("制单2").AsString = DBUtility.ClsPub.CurUserName;
|
//}
|
}
|
|
|
#endregion
|
|
|
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("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++)
|
{
|
if (b)
|
{
|
ERow = grdMain.SelectedRows[i].Index;
|
Sub_SetReport(oFrm.sOpenTmp);
|
Report.Print(false);
|
b = false;
|
}
|
else
|
{
|
BRow = grdMain.SelectedRows[i].Index;
|
b = true;
|
}
|
}
|
}
|
else
|
{
|
Sub_SetReport(oFrm.sOpenTmp);
|
Report.Print(false);
|
}
|
}
|
}
|
|
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_ProcAutoSortBillListDlg oDlg = new Sc_ProcAutoSortBillListDlg();
|
//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_K3 oMater = new Kf_MateOutBill_K3();
|
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)
|
{
|
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 OA_EmpMessageBill();
|
oEmpMessageBill.HMainID = lngBillKey;
|
oEmpMessageBill.Show();
|
|
}
|
|
|
}
|
}
|