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; //} /// /// 操作权限 /// /// 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; } /// /// 数据权限 /// /// public DataTable RightOfData() { DataTable rData = new DataTable(); rData.Columns.Add("BodyName"); rData.Columns.Add("ControlName"); rData.Columns.Add("ControlCaption"); rData.AcceptChanges(); return rData; } /// /// 加载数据 /// 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; } } }