|
|
using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Windows.Forms; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using ICSSoft.Base.Config.AppConfig; using DevExpress.XtraEditors; using ICSSoft.Frame.Data.BLL; using System.Data.SqlClient; using ICSSoft.Base.Config.DBHelper; using System.IO;
namespace ICSSoft.Frame.APP { public partial class UserControlDrawShow : UserControl { public string EQPType; string itemCode = ""; string routeCode = ""; string itemname = ""; string itemstd = ""; String guid = AppConfig.GetGuid(); //WorkPointBLL workBll = new WorkPointBLL();
public UserControlDrawShow() { InitializeComponent(); rdoLOTNO.Checked = true; //rdoFileID.Checked = true;
txtLOTNO.Focus();
txtType.Items.Clear(); txtType.Items.Add(FileDrawing.TuZhi); //txtType.Items.Add(FileDrawing.WuLiao);
txtType.Items.Add(FileDrawing.CuJiaGong); txtType.Items.Add(FileDrawing.ZuoYeZhiDao); //txtType.Items.Add(FileDrawing.YaoSu);
//txtType.Items.Add(FileDrawing.GuanCha);
//txtType.Items.Add(FileDrawing.ZuHe);
txtType.Items.Add(FileDrawing.SZuoYeZhiDao); txtType.Items.Add(FileDrawing.SheBei); txtType.Items.Add(FileDrawing.WPS); txtType.Items.Add(FileDrawing.ChengXu); //txtType.Items.Add(FileDrawing.ShiPin);
txtType.Items.Add(FileDrawing.ZhuYi); txtType.Items.Add(FileDrawing.GuiFan); txtType.Items.Add(FileDrawing.WenTi); txtType.Items.Add(FileDrawing.PeiXun); }
#region 移动窗体
private const int WM_NCHITTEST = 0x84; private const int HTCLIENT = 0x1; private const int HTCAPTION = 0x2; //首先必须了解Windows的消息传递机制,当有鼠标活动消息时,
//系统发送WM_NCHITTEST 消息给窗体作为判断消息发生地的根据。 nchittest
//假如你点击的是标题栏,窗体收到的消息值就是 HTCAPTION ,
//同样地,若接受到的消息是 HTCLIENT,说明用户点击的是客户区,也就是鼠标消息发生在客户区。
//重写窗体,使窗体可以不通过自带标题栏实现移动
protected override void WndProc(ref Message m) {
//当重载窗体的 WndProc 方法时,可以截获 WM_NCHITTEST 消息并改些该消息,
//当判断鼠标事件发生在客户区时,改写改消息,发送 HTCAPTION 给窗体,
//这样,窗体收到的消息就时 HTCAPTION ,在客户区通过鼠标来拖动窗体就如同通过标题栏来拖动一样。
//注意:当你重载 WndProc 并改写鼠标事件后,整个窗体的鼠标事件也就随之改变了。
switch (m.Msg) { case WM_NCHITTEST: base.WndProc(ref m); if ((int)m.Result == HTCLIENT) m.Result = (IntPtr)HTCAPTION; return; } //拦截双击标题栏、移动窗体的系统消息
if (m.Msg != 0xA3) { base.WndProc(ref m); }
} #endregion
private void btnDownload_Click(object sender, EventArgs e) { SimpleButton btntemp = (SimpleButton)sender; //if (AppConfig.GetUserExcuteRight(this.Tag.ToString(), btntemp.Name) == false)
//{
// ICSBaseSimpleCode.AppshowMessageBox("对不起您没有:" + btntemp.Text + "权限,请联系系统管理员!");
// return;
//}
if (string.IsNullOrEmpty(this.txtLOTNO.Text.Trim()) && string.IsNullOrEmpty(this.txtFileID.Text.Trim())) { ICSBaseSimpleCode.AppshowMessageBox("请输入条件!"); return; } if (!string.IsNullOrEmpty(this.txtLOTNO.Text.Trim())) { MOByMoCode(this.txtLOTNO.Text.Trim()); } else { SearchItem(this.txtFileID.Text.Trim()); } }
#region 根据存货编码产品信息
private void SearchItem(string itemcode) { try { string sql = @"SELECT
ItemName, ItemStd,ROUTECODE FROM Base_Inventory a LEFT JOIN (SELECT h.ItemCode, CASE WHEN i.ROUTECODE IS NULL THEN j.ROUTECODE ELSE i.ROUTECODE END AS ROUTECODE FROM Base_Inventory h LEFT JOIN (SELECT * FROM ICSITEM2ROUTE WHERE ISREF = '是') i ON h.ItemCode = i.ITEMCODE LEFT JOIN (SELECT * FROM ICSMODEL2ROUTE WHERE ISREF = '是') j ON h.ItemMainCategoryCode=j.MODELCODE) d ON a.ItemCode=d.ItemCode WHERE a.ItemCode='{0}' ";
sql = string.Format(sql, itemcode);
SqlDataReader rd = DBHelper.ExecuteReader(AppConfig.AppConnectString, CommandType.Text, sql); while (rd.Read()) { itemCode = itemcode; itemname = rd["ItemName"].ToString(); itemstd = rd["ItemStd"].ToString(); routeCode = rd["ROUTECODE"].ToString(); }
if (string.IsNullOrEmpty(itemCode)) { ICSBaseSimpleCode.AppshowMessageBox("未查到对应的产品!"); return; } else { BandData(); } } catch (Exception ex) { MessageBox.Show(ex.Message); }
} #endregion
#region 根据存货编码查询列表信息
private void BandData() { try { #region 查询数据
//图纸
string sqlTUZHI = @"SELECT DISTINCT
A.CDOCUMENTNAME AS [FileName], A.CDOCUMENTID AS FileID, A.CDOCUMENTVER AS FileVer, A.CDFORMAT AS FileFormat, A.CDOCUMENTID, '' as ItemCode, '' as ItemName, '' as ItemStd FROM DOC_008 A LEFT JOIN BOM_026 B ON A.CDOCUMENTID = B.CDOCUMENTID And A.CDOCUMENTVER = B.CDOCUMENTVER LEFT JOIN DOC_017 C ON A.CMKINDID=C.CMKINDID WHERE B.PARTID like '%{1}%' AND A.CDFORMAT in ({0})";
//工艺、视频、--规范
string sqlGONGYI = @"SELECT DISTINCT
CDOCUMENTNAME as [FileName], CDOCUMENTID as FileID, CDOCUMENTVER as FileVer, CDFORMAT as FileFormat, CDOCUMENTID, '' as ItemCode, '' as ItemName, '' as ItemStd from DOC_008 where CDOCUMENTID like '%{1}%' AND CDFORMAT in ({0})";
//作业指导书
string sqlZuoYeZhiDao = @"SELECT DISTINCT
CDOCUMENTNAME as [FileName], CDOCUMENTID as FileID, CDOCUMENTVER as FileVer, CDFORMAT as FileFormat, CDOCUMENTID, '' as ItemCode, '' as ItemName, '' as ItemStd from DOC_008 where CDOCUMENTNAME like '%{1}%' AND CDFORMAT in ({0})";
#endregion
string suffix = ""; string sql = ""; if (chkType.Checked) { string type = txtType.Text.Trim(); if (string.IsNullOrWhiteSpace(type)) { suffix = "'pdf','mp4','dwg','CNC'"; sql = string.Format(sqlTUZHI, suffix, itemCode); sql += " UNION " + string.Format(sqlGONGYI, suffix, "%" + routeCode + "%' OR CDOCUMENTID like '" + itemCode); sql += " UNION " + string.Format(sqlZuoYeZhiDao, suffix, "%" + routeCode); } else if (type.Equals(FileDrawing.ZuoYeZhiDao)) { suffix = "'pdf'"; sql = string.Format(sqlZuoYeZhiDao, suffix, routeCode); } else if (type.Equals(FileDrawing.ZuHe) || type.Equals(FileDrawing.YaoSu) || type.Equals(FileDrawing.GuanCha) || type.Equals(FileDrawing.WPS)) { string newRouteCode=""; if (type.Equals(FileDrawing.YaoSu)) newRouteCode = "YS-" + routeCode; else if (type.Equals(FileDrawing.GuanCha)) newRouteCode = "GC-" + routeCode; else if (type.Equals(FileDrawing.ZuHe)) newRouteCode = "ZH-" + routeCode; else if (type.Equals(FileDrawing.WPS)) newRouteCode = "WPS-" + itemCode;
suffix = "'pdf'"; sql = string.Format(sqlGONGYI, suffix, newRouteCode); } else if (type.Equals(FileDrawing.ChengXu)) { suffix = "'CNC'"; sql = string.Format(sqlGONGYI, suffix, itemCode); } else if (type.Equals(FileDrawing.ShiPin)) { suffix = "'mp4'"; sql = string.Format(sqlGONGYI,suffix,routeCode); } else if (type.Equals(FileDrawing.TuZhi) || type.Equals(FileDrawing.CuJiaGong)) { suffix = "'pdf','dwg'"; sql = string.Format(sqlTUZHI, suffix, itemCode);
if (type.Equals(FileDrawing.CuJiaGong)) sql += " AND C.CMKINDNAME = 'CJ-粗加工'"; } else { if (string.IsNullOrWhiteSpace(EQPType)) { ICSBaseSimpleCode.AppshowMessageBox("请先扫描设备条码!"); return; } else { if (type.Equals(FileDrawing.SZuoYeZhiDao)) { string newEQPType = "5S-" + EQPType;
suffix = "'pdf'"; sql = string.Format(sqlGONGYI, suffix, newEQPType); } else if (type.Equals(FileDrawing.SheBei)) { string newEQPType = "SG-" + EQPType;
suffix = "'pdf'"; sql = string.Format(sqlGONGYI, suffix, newEQPType); } } } } else { suffix = "'pdf','mp4','dwg','CNC'"; sql = string.Format(sqlTUZHI, suffix, itemCode); sql += " UNION " + string.Format(sqlGONGYI, suffix, "%" + routeCode + "%' OR CDOCUMENTID like '" + itemCode); sql += " UNION " + string.Format(sqlZuoYeZhiDao, suffix, "%" + routeCode); }
#region new
// string sql = @"SELECT DISTINCT
// T.CDOCUMENTNAME as [FileName],
// T.CDOCUMENTID as FileID,
// T.CDOCUMENTVER as FileVer,
// T.CDFORMAT as FileFormat,
// '' as ItemCode,
// '' as ItemName,
// '' as ItemStd
//
// FROM
// DOC_008 T
// LEFT OUTER JOIN DOC_030 S ON (T.SECRECYGRADEID = S.SECRECYGRADEID)
// LEFT OUTER JOIN SYS_057 SORT ON (T.SORTID = SORT.SORTID)
// LEFT OUTER JOIN SYS_019 Q ON (T.CMODIFIER = Q.CPERSONID),
// DOC_026 T_ADD,
// SYS_019 P,
// DOC_017 K,
// BOM_026 M
// WHERE
// T.CDOCUMENTID = M.CDOCUMENTID
// AND T.CDOCUMENTVER = M.CDOCUMENTVER
// AND T.CDOCUMENTID = T_ADD.CDOCUMENTID
// AND T.CDOCUMENTVER = T_ADD.CDOCUMENTVER
// AND T.CCREATORID = P.CPERSONID
// AND T.CMKINDID = K.CMKINDID
// AND M.PARTVAR = 'A1' ";
// if (!string.IsNullOrEmpty(itemCode))
// {
// sql += "and M.PARTID like '%" + itemCode + "%' ";
// }
#endregion
#region old
// string sql = @"SELECT A.CDOCUMENTID as FileID,
// A.CDOCUMENTVER as FileVer,
// A.CDOCUMENTNAME as [FileName],
// A.CDFORMAT as FileFormat
// FROM DOC_008 A
// LEFT OUTER JOIN DOC_030 D ON(A.SECRECYGRADEID=D.SECRECYGRADEID)
// LEFT OUTER JOIN SYS_057 E ON (A.SORTID = E.SORTID)
// LEFT OUTER JOIN SYS_019 Q ON (A.CMODIFIER = Q.CPERSONID)
// LEFT OUTER JOIN DOC_026 B ON(A.CDOCUMENTID=B.CDOCUMENTID AND A.CDOCUMENTVER=B.CDOCUMENTVER)
// LEFT OUTER JOIN (SELECT A.CDOCUMENTID, A.CDOCUMENTVER, C.CANAME, D.CPERSONNAME,E.CSTATENAME FROM DOC_011 A, PRJ_001 C, DOC_025 B LEFT JOIN SYS_019 D ON (B.CPERSONID = D.CPERSONID), DOC_013 E
// WHERE E.INTERNATIONKEY = 'zh_CN' AND A.CTASKID = B.CTASKID AND B.CACTIVEID = C.CACTIVEID AND E.CSTATEID = B.CSTATEID AND ISNULL(A.CDOCUMENTID,'') <> '' AND ISNULL(A.CDOCUMENTVER,'') <> '' AND (B.CSTATEID = '2' OR B.CSTATEID = '3') AND A.CSTATEID <> '4' AND A.CSTATEID <> '5' AND E.INTERNATIONKEY = 'zh_CN') AS CHK
// ON (A.CDOCUMENTID = CHK.CDOCUMENTID AND A.CDOCUMENTVER = CHK.CDOCUMENTVER), SYS_019 C ,DOC_017 F
// WHERE A.CCREATORID=C.CPERSONID and A.CMKINDID=F.CMKINDID ";
// if (!string.IsNullOrEmpty(itemCode))
// {
// sql += "and a.CDOCUMENTID like '%" + itemCode + "%' ";
// }
#endregion
// string connectionString = System.Configuration.ConfigurationManager.ConnectionStrings["PLM"].ConnectionString.ToString();
// string connectionString = "Data Source=ICSSERVER01\\MSSQLSERVER2012;Database=yonyou20160331153618;Uid=sa;Pwd=aA123456;";
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.PLM]"); DataTable dt = DBHelper.ExecuteDataset(connectionString, CommandType.Text, sql).Tables[0];
if (dt != null && dt.Rows.Count <= 0) { ICSBaseSimpleCode.AppshowMessageBox("未查到该产品对应的文件信息!"); } else { foreach (DataRow dr in dt.Rows) { dr["ItemCode"] = itemCode; dr["ItemName"] = itemname; dr["ItemStd"] = itemstd; } } this.grdDetail.DataSource = dt; this.grvDetail.BestFitColumns(); } catch (Exception ex) { MessageBox.Show(ex.Message); }
} #endregion
#region 根据批次号查询工单产品信息
private void MOByMoCode(string MOCode) { try { string sql = @"SELECT
a.MOCODE, a.ITEMCODE, c.ItemName, c.ItemStd,ROUTECODE FROM ICSMO a INNER JOIN ICSMO2Lot b ON a.MOCODE = b.MOCODE LEFT JOIN Base_Inventory c on a.ITEMCODE=c.ItemCode LEFT JOIN (SELECT h.ItemCode, CASE WHEN i.ROUTECODE IS NULL THEN j.ROUTECODE ELSE i.ROUTECODE END AS ROUTECODE FROM Base_Inventory h LEFT JOIN (SELECT * FROM ICSITEM2ROUTE WHERE ISREF = '是') i ON h.ItemCode = i.ITEMCODE LEFT JOIN (SELECT * FROM ICSMODEL2ROUTE WHERE ISREF = '是') j ON h.ItemMainCategoryCode=j.MODELCODE) d ON c.ItemCode=d.ItemCode WHERE LOTNO='{0}' ";
sql = string.Format(sql, MOCode);
SqlDataReader rd = DBHelper.ExecuteReader(AppConfig.AppConnectString, CommandType.Text, sql); while (rd.Read()) { itemCode = rd["ITEMCODE"].ToString(); itemname = rd["ItemName"].ToString(); itemstd = rd["ItemStd"].ToString(); routeCode = rd["ROUTECODE"].ToString(); } //DataTable dt = DBHelper.ExecuteDataset(AppConfig.AppConnectString, CommandType.Text, sql).Tables[0];
//foreach (DataRow dr in dt.Rows)
//{
// itemCode = dr["ITEMCODE"].ToString();
//}
if (string.IsNullOrEmpty(itemCode)) { ICSBaseSimpleCode.AppshowMessageBox("未查到对应的产品!"); return; } else { BandData(); } } catch (Exception ex) { MessageBox.Show(ex.Message); }
} #endregion
private void UserControlDrawShow_Load(object sender, EventArgs e) { //DeleteFile();
} public void DeleteFile() { try { //获取文件夹
//string path = Server.MapPath("Image");
string filePath = System.IO.Path.GetTempPath() + "\\tempfiles"; //获取文件夹中所有图片
if (Directory.GetFileSystemEntries(filePath).Length > 0) { //遍历文件夹中所有文件
foreach (string file in Directory.GetFiles(filePath)) { try { //文件己存在
if (File.Exists(file)) { FileInfo fi = new FileInfo(file); //判断当前文件属性是否是只读
if (fi.Attributes.ToString().IndexOf("ReadyOnly") >= 0) { fi.Attributes = FileAttributes.Normal; } //删除文件
File.Delete(file); } } catch (Exception ex) {
} } //删除文件夹
//Directory.Delete(path);
} } catch (Exception ex) {
} }
private void txtFileID_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (e.KeyChar == 13) { if (string.IsNullOrEmpty(this.txtLOTNO.Text.Trim()) && string.IsNullOrEmpty(this.txtFileID.Text.Trim())) { ICSBaseSimpleCode.AppshowMessageBox("请输入条件!"); return; } if (!string.IsNullOrEmpty(this.txtLOTNO.Text.Trim())) { MOByMoCode(this.txtLOTNO.Text.Trim()); } else { SearchItem(this.txtFileID.Text.Trim()); } } }
private void fileRead_ButtonClick(object sender, DevExpress.XtraEditors.Controls.ButtonPressedEventArgs e) {
try { DevExpress.XtraGrid.Views.Grid.GridView view = ((DevExpress.XtraGrid.Views.Grid.GridView)(grdDetail.MainView)); int rowhandle = view.FocusedRowHandle; DataRow dr = view.GetDataRow(rowhandle);
string connectionString = AppConfig.GetDataBaseConnectStringByKey("[DB.FTP]"); string[] ftps = connectionString.Split(';'); string ftpServerIP = ftps[0].Split('=')[1]; string ftpRemotePath = ftps[1].Split('=')[1]; string ftpUserID = ftps[2].Split('=')[1]; string ftpPassword = ftps[3].Split('=')[1]; string viewerApp = "C:\\Program Files (x86)\\CADSeePlus\\CADSee.exe"; //string ftpServerIP = System.Configuration.ConfigurationManager.AppSettings["FtpServerIP"];
//string ftpRemotePath = System.Configuration.ConfigurationManager.AppSettings["FtpRemotePath"];
//string ftpUserID = System.Configuration.ConfigurationManager.AppSettings["FtpUserID"];
//string ftpPassword = System.Configuration.ConfigurationManager.AppSettings["FtpPassword"];
//string viewerApp = System.Configuration.ConfigurationManager.AppSettings["ViewerApp"];
FtpWeb ftpWeb = new FtpWeb(ftpServerIP, ftpRemotePath, ftpUserID, ftpPassword); string filePath = System.IO.Path.GetTempPath() + "\\tempfiles";
if (!Directory.Exists(filePath)) { Directory.CreateDirectory(filePath); }
//文件名称有 ID + “$” + 版本 + 文件格式组成
string fileName = dr["FileID"].ToString() + "$" + dr["FileVer"].ToString() + "." + dr["FileFormat"].ToString();
fileName = fileName.Replace("/", ""); ftpWeb.Download(filePath + "\\", fileName);
string filePathName = filePath + "\\" + fileName; if (dr["FileFormat"].ToString().Equals("pdf")) { FileDrawing.LoadPDF(filePathName); } else if(dr["FileFormat"].ToString().Equals("dwg")) { //MyProcess myPro = new MyProcess();
//myPro.OpenWithStartInfo(filePathName, viewerApp);
} else if (dr["FileFormat"].ToString().Equals("mp4")) { FormICSMedia draw = new FormICSMedia(filePathName); draw.ShowDialog(); } //else if (dr["FileFormat"].ToString().Equals("CNC"))
//{
// string downPath = "C:\\mesjk";
// string downName = downPath + "\\NC.txt";
// if (!Directory.Exists(downPath))
// {
// Directory.CreateDirectory(downPath);
// }
// if (!File.Exists(downName))
// {
// File.Create(downName);
// }
// //StreamReader reader = new StreamReader(filePathName, Encoding.Default);
// //string text = reader.ReadToEnd();
// //reader.Close();
// StreamWriter writer = new StreamWriter(downName);
// string text = LotNo + "_" + OPCode + "_" + EQPCode;
// writer.Write(text);
// writer.Close();
//}
} catch (Exception ex) { MessageBox.Show(ex.Message); }
}
private void rdoLOTNO_CheckedChanged(object sender, EventArgs e) { if (rdoLOTNO.Checked) { txtFileID.Text = ""; txtFileID.Enabled = false; txtLOTNO.Enabled = true; txtLOTNO.Focus(); } }
private void rdoFileID_CheckedChanged(object sender, EventArgs e) { if (rdoFileID.Checked) { txtLOTNO.Text = ""; txtLOTNO.Enabled = false; txtFileID.Enabled = true; txtFileID.Focus(); } }
} }
|