华恒Mes鼎捷代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

291 lines
11 KiB

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;
using System.IO;
using ICSSoft.Base.Config.AppConfig;
using ICSSoft.Base.Config.DBHelper;
namespace ICSSoft.Frame.APP
{
public partial class FormICSMOPanel : DevExpress.XtraEditors.XtraForm
{
private string LineCode = "";
private float RefreshTime = 1;
public FormICSMOPanel()
{
InitializeComponent();
this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
this.WindowState = FormWindowState.Maximized;
labTime.Text = DateTime.Now.ToString();
//searchAndView();
timer.Enabled = true;
timer.Start();
//grvDetail.Columns["Mo"].Width = 120;
//grvDetail.Columns["ITEM"].Width = 165;
//grvDetail.Columns["TBFlag"].Width = 50;
//grvDetail.Columns["Status"].Width = 95;
grvDetail.RowHeight = 59;
splitContainerControl1.SplitterPosition = 50;
InitAppconfig();
}
private void InitAppconfig()
{
try
{
using (StreamReader fReader = new StreamReader(AppConfig.BaseServiceFile))
{
while (fReader.Peek() > -1)
{
string value = fReader.ReadLine();
if (!string.IsNullOrEmpty(value))
{
AppConfig.BaseServiceUri = value;
}
}
}
object obj = AppConfig.InvokeWebservice(AppConfig.BaseServiceUri, "WebBaseService", "BaseService", "GetMainConnectString", new object[] { });
if (obj != null)
{
bool flag = AppConfig.CheckDbConnectionState(obj.ToString());
if (flag == true)
{
AppConfig.FrameConnectString = obj.ToString();
}
else
{
AppConfig.FrameConnectString = "";
}
}
else
{
AppConfig.FrameConnectString = "";
}
}
catch
{
AppConfig.FrameConnectString = "";
}
}
//public FormICSOrderBoard(string lineCode, string lineName, float refreshTime)
//{
// InitializeComponent();
// this.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
// this.WindowState = FormWindowState.Maximized;
// LineCode = lineCode;
// RefreshTime = refreshTime;
// lblTitle.Text = "线体-" + lineName;
// labTime.Text = DateTime.Now.ToString();
// searchAndView();
// RefreshTimer.Interval = Convert.ToInt32(RefreshTime * 60 * 1000);
// RefreshTimer.Enabled = true;
// RefreshTimer.Start();
// timer.Enabled = true;
// timer.Start();
// grvDetail.Columns["Mo"].Width = 120;
// grvDetail.Columns["ITEM"].Width = 165;
// grvDetail.Columns["TBFlag"].Width = 50;
// grvDetail.Columns["Status"].Width = 95;
// grvDetail.RowHeight = 59;
// splitContainerControl1.SplitterPosition = 50;
//}
/// <summary>
/// 操作权限
/// </summary>
/// <returns></returns>
public DataTable RightOfExute()
{
DataTable rData = new DataTable();
rData.Columns.Add("BtnName");
rData.Columns.Add("ActionName");
//查看权限(必须有)
DataRow seeRow = rData.NewRow();
seeRow["BtnName"] = "see";
seeRow["ActionName"] = "查看";
rData.Rows.Add(seeRow);
DataRow upinvRow = rData.NewRow();
//upinvRow["BtnName"] = btnSelect.Name;
//upinvRow["ActionName"] = btnSelect.Text;
rData.Rows.Add(upinvRow);
rData.AcceptChanges();
return rData;
}
/// <summary>
/// 数据权限
/// </summary>
/// <returns></returns>
public DataTable RightOfData()
{
DataTable rData = new DataTable();
rData.Columns.Add("BodyName");
rData.Columns.Add("ControlName");
rData.Columns.Add("ControlCaption");
rData.AcceptChanges();
return rData;
}
/// <summary>
/// 加载数据
/// </summary>
private void searchAndView()
{
try
{
string sqlwhere = "";
if (!string.IsNullOrEmpty(mocode.Text)) {
sqlwhere += " and a.MOCODE like '%"+mocode.Text.Trim()+"%'";
}
if (!string.IsNullOrEmpty(invcode.Text))
{
sqlwhere += " and a.ITEMCODE like '%"+invcode.Text.Trim()+"%'";
}
string sql = @"select a.mocode 生产工单号,a.MOSEQ 工单行号,a.ITEMCODE as 产品编码,
B.INVNAME AS 产品名称,B.INVSTD AS 规格型号,A.MOPLANENDDATE 预计开工时间,
A.MOPLANENDDATE 预计完工时间,MOPLANQTY AS 工单数量,
D.comQTY,
CONVERT(NVARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL,D.comQTY)/CONVERT(DECIMAL,MOPLANQTY))*100)+'%' AS 完成率
from icsMo a
left join ICSINVENTORY b on b.INVCODE=a.ITEMCODE
left join (select lotno,mocode,moseq from ICSMO2User group by lotno,mocode,moseq) c on c.MOCODE=a.MOCODE and c.MOSEQ=a.MOSEQ
left join (select SUM(E.LOTQTY) AS comQTY,E.TRANSNO,E.TransLine from (select lotno,max(opseq) as opseq from ICSITEMROUTE2OPLot group by lotno)c
inner join ICSLOTONWIP d on d.LOTNO=c.LOTNO and d.OPCODE=(select OPCODE from ICSITEMROUTE2OPLot where lotno=c.LOTNO and OPSEQ=c.opseq)
inner join ICSLOTONWIPCheck f on f.ONWIPID=d.ID
inner join ICSITEMLot e on e.LotNO=c.LotNo
where f.Result='合格'
GROUP BY E.TRANSNO,E.TransLine
)D ON D.TransNO=A.MOCODE AND D.TransLine=A.MOSEQ
WHERE A.MOSTATUS='下发'";
sql += sqlwhere;
DataTable table = DBHelper.ExecuteDataset(AppConfig.AppConnectString,CommandType.Text,sql).Tables[0];
grdAll.DataSource = table;
grvDetail.BestFitColumns();
}
catch (Exception ex)
{
MessageBox.Show("异常:" + ex.Message, "异常", MessageBoxButtons.OK, MessageBoxIcon.Error);
}
}
private void grvDetail_CustomDrawRowIndicator(object sender, DevExpress.XtraGrid.Views.Grid.RowIndicatorCustomDrawEventArgs e)
{
if (e.RowHandle < 0)
return;
e.Info.DisplayText = (e.RowHandle + 1).ToString();
}
private void btnClose_Click(object sender, EventArgs e)
{
RefreshTimer.Enabled = false;
RefreshTimer.Stop();
timer.Enabled = false;
timer.Stop();
//this.DialogResult = DialogResult.Cancel;
AppConfig.CloseFormShow(this.Text);
this.Close();
}
private void RefreshTimer_Tick(object sender, EventArgs e)
{
searchAndView();
}
private void timer_Tick(object sender, EventArgs e)
{
labTime.Text = DateTime.Now.ToString();
}
private void grvDetail_RowCellStyle(object sender, DevExpress.XtraGrid.Views.Grid.RowCellStyleEventArgs e)
{
//if (e.RowHandle < 0)
// return;
//if (e.Column == colStatus)
//{
// string state = grvDetail.GetRowCellValue(e.RowHandle, colStatus).ToString();
// if (state == "运行")
// {
// e.Appearance.BackColor = Color.Green;
// }
//}
}
#region 查询
private void btnSearch_Click(object sender, EventArgs e)
{
searchAndView();
}
#endregion
private void FormICSOrderBoard_Load(object sender, EventArgs e)
{
try
{
string sql = @"select a.mocode 生产工单号,a.MOSEQ 工单行号,a.ITEMCODE as 产品编码,
B.INVNAME AS 产品名称,B.INVSTD AS 规格型号,A.MOPLANSTARTDATE 预计开工时间,
A.MOPLANENDDATE 预计完工时间,MOPLANQTY AS 工单数量,
D.comQTY,
CONVERT(NVARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL,D.comQTY)/CONVERT(DECIMAL,MOPLANQTY))*100)+'%' AS 完成率,
case
when CONVERT(NVARCHAR(10),CONVERT(DECIMAL(18,2),CONVERT(DECIMAL,D.comQTY)/CONVERT(DECIMAL,MOPLANQTY))*100)+'%'='100.00%' then e.mtime
else null
end as 实际完工时间
from icsMo a
left join ICSINVENTORY b on b.INVCODE=a.ITEMCODE
--left join (select lotno,mocode,moseq from ICSMO2User group by lotno,mocode,moseq) c on c.MOCODE=a.MOCODE and c.MOSEQ=a.MOSEQ
left join (select SUM(E.LOTQTY) AS comQTY,E.TRANSNO,E.TransLine from (select lotno,max(opseq) as opseq from ICSITEMROUTE2OPLot group by lotno)c
inner join ICSLOTONWIP d on d.LOTNO=c.LOTNO and d.OPCODE=(select OPCODE from ICSITEMROUTE2OPLot where lotno=c.LOTNO and OPSEQ=c.opseq)
inner join ICSLOTONWIPCheck f on f.ONWIPID=d.ID
inner join ICSITEMLot e on e.LotNO=c.LotNo
where f.Result='合格'
GROUP BY E.TRANSNO,E.TransLine
)D
ON D.TransNO=A.MOCODE AND D.TransLine=A.MOSEQ
left join (
select MAX(MTIME) as mtime,TransNO,TransLine from ( select a.lotno,b.OPCODE,d.Result,d.MTIME,a.TransNO,a.TransLine from ICSITEMLot a
left join ICSLOTONWIP b on a.LotNO=b.LOTNO
left join ICSITEMROUTE2OPLot c on c.LotNo=a.LotNO and c.OPCODE=b.OPCODE
left join ICSLOTONWIPCheck d on d.ONWIPID=b.ID)a
group by TransNO,TransLine) e on e.TransNO=a.MOCODE and e.TransLine=a.MOSEQ
WHERE A.MOSTATUS='下发'
";
DataTable table = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
grdAll.DataSource = table;
grvDetail.BestFitColumns();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
private void lblTitle_Click(object sender, EventArgs e)
{
if (this.FormBorderStyle == FormBorderStyle.None)
this.FormBorderStyle = FormBorderStyle.FixedSingle;
else
this.FormBorderStyle = FormBorderStyle.None;
}
}
}