using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace Core.StlMes.Client.SaleOrder.Dialog
{
public partial class FrmInPutMpsNo : FrmBase
{
public FrmInPutMpsNo()
{
InitializeComponent();
}
private string ordPk;
///
/// 构造函数
///
/// OB对象
/// 合同主键
public FrmInPutMpsNo(OpeBase _ob, string _ordPk)
{
InitializeComponent();
this.ob = _ob;
this.ordPk = _ordPk;
}
private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "Query":
InitGridData();
break;
case "Save":
Save();
break;
case "AddMps":
AddMps();
break;
case "Close":
this.Close();
break;
}
}
private void AddMps()
{
gdMpsNo.UpdateData();
UltraGridRow ugr = gdMpsNo.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择一行合同行!");
return;
}
FrmStableMps fsm = new FrmStableMps(this.ob);
fsm.OrdLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString();
fsm.WindowState = FormWindowState.Maximized;
fsm.ShowDialog();
}
private void FrmInPutMpsNo_Load(object sender, EventArgs e)
{
InitGridData();
}
private void InitGridData()
{
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreInPutMpsNo.queryMpsLine", new object[] { ordPk }, this.ob);
GridHelper.CopyDataToDatatable(ref dt, ref this.dataTable1, true);
}
///
/// 保存
///
private void Save()
{
gdMpsNo.UpdateData();
ArrayList parm = new ArrayList();
foreach (UltraGridRow ugr in gdMpsNo.Rows)
{
string inputMpsNo = ugr.Cells["MPS_NO_INPUT"].Value.ToString();
string mpsFile = ugr.Cells["MPS_FILE"].Value.ToString();
if (inputMpsNo == "")
{
MessageUtil.ShowWarning("请输入确认后的MPS编号!");
ugr.Activate();
return;
}
if (mpsFile == "")
{
MessageUtil.ShowWarning("请上传MPS文本文件!");
ugr.Activate();
return;
}
string ordLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString();
ArrayList list = new ArrayList();
list.Add(inputMpsNo);
//list.Add(mpsFile);
list.Add(ordLnPk);
parm.Add(list);
}
if (MessageUtil.ShowYesNoAndQuestion("是否确定保存输入的MPS编号") == DialogResult.No) return;
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreInPutMpsNo.saveMpsLine", new object[] { parm }, this.ob);
if (count > 0)
{
MessageUtil.ShowTips("确认后的MPS编号保存成功!");
this.Close();
}
}
///
/// GRID按钮
///
///
///
private void MpsFile_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
if (e.Button.Key.Equals("upload")) // 上传
{
UltraGridRow row = gdMpsNo.ActiveRow;
if (row == null)
return;
string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString();
string reStr = FlileUpload("Mps/" + ordLnPk);
if (reStr == "F")
{
MessageUtil.ShowWarning("上传失败,尝试重新上传!");
return;
}
else if (reStr == "N")
{
return;
}
row.Cells["MPS_FILE"].Value = reStr;
row.Cells["MPS_NO_FILE"].Value = "最近上传的MPS文本 " + reStr;
if (updateOrderLineMps(reStr, ordLnPk))
{
MessageUtil.ShowTips("上传成功!");
}
else
{
MessageUtil.ShowWarning("上传失败,尝试重新上传!");
}
}
else if (e.Button.Key.Equals("view")) //预览
{
UltraGridRow row = gdMpsNo.ActiveRow;
if (row == null)
return;
string ordLnPk = row.Cells["ORD_LN_PK"].Value.ToString();
string filePath = "Mps/" + ordLnPk;
//引用的地址
string dbFilePath = "";
bool isNull = false;
DataTable dt = ServerHelper.GetData("com.steering.pss.sale.order.CoreInPutMpsNo.selectMpsAddr", new object[] { ordLnPk }, this.ob);
if (dt != null && dt.Rows.Count > 0)
{
dbFilePath = dt.Rows[0][0].ToString();
}
else
{
isNull = true;
}
//引用地址存在 优先显示引用地址的文件
string fpath = filePath;
if (dbFilePath != filePath && isNull == false)
fpath = dbFilePath;
dlgOrderAskDown down = new dlgOrderAskDown(this.ob, fpath);
down.ShowDialog();
if (down.CtrlFileDown1.List.Count == 0)
{
if (dbFilePath == filePath)
updateOrderLineMps("", ordLnPk);
row.Cells["MPS_FILE"].Value = "";
row.Cells["MPS_NO_FILE"].Value = "无MPS文件";
}
}
}
private bool updateOrderLineMps(string mpsFile, string ordLnPk)
{
//更新合同行地址文件信息
int count = ServerHelper.SetData("com.steering.pss.sale.order.CoreInPutMpsNo.updateMpsLine", new object[] { mpsFile, ordLnPk }, this.ob);
if (count > 0)
{
return true;
}
else
{
return false;
}
}
public static string FlileUpload(string sFileName)
{
List list = new List();
FileBean bean = new FileBean();
OpenFileDialog file = new OpenFileDialog();
file.Multiselect = false; // file.Multiselect = true 改为 file.Multiselect = false
DialogResult drStat;
drStat = file.ShowDialog();
string fileList = "";
if (drStat == DialogResult.OK)
{
foreach (string fileName in file.FileNames)
{
bean = new FileBean();
string filena = System.IO.Path.GetFileName(fileName);
bean.setFileName(filena);
bean.setPathName(sFileName);
bean.setFile(FileHelper.FileToArray(fileName));
list.Add(bean);
fileList = filena;
}
bool isSuccess = false;
isSuccess = Core.Mes.Client.Comm.Server.FileHelper.Upload(list);
if (isSuccess)
{
return fileList;
}
else
{
return "F";
}
}
else
return "N"; //未选择文件
}
private void stableMps_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
if (e.Button.Key.Equals("select"))
{
gdMpsNo.UpdateData();
UltraGridRow ugr = gdMpsNo.ActiveRow;
if (ugr == null)
{
MessageUtil.ShowWarning("请选择一行合同行!");
return;
}
FrmStableMps fsm = new FrmStableMps(this.ob);
fsm.OrdLnPk = ugr.Cells["ORD_LN_PK"].Value.ToString();
fsm.WindowState = FormWindowState.Maximized;
fsm.WdType = "2";
fsm.frmClosedRefresh += fsm_frmClosedRefresh;
fsm.ShowDialog();
}
}
void fsm_frmClosedRefresh()
{
InitGridData();
}
}
}