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
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;
|
|
}
|
|
|
|
}
|
|
}
|