using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using CoreFS.CA06;
using System.Collections;
using Core.Mes.Client.Comm.Control;
using Core.StlMes.Client.PlnSaleOrd.BLL;
using System.Diagnostics;
using Infragistics.Win.UltraWinGrid;
using Core.Mes.Client.Comm.Server;
namespace Core.StlMes.Client.PlnSaleOrd.Control
{
public partial class ComOrdExportCtrl : UserControl
{
ComOrdExportBLL comBll = null;
public ComOrdExportCtrl()
{
InitializeComponent();
}
public void ComBLL(OpeBase _ob)
{
comBll = new ComOrdExportBLL(_ob);
}
private void ComOrdExportCtrl_Load(object sender, EventArgs e)
{
PlanComm.setGridSummarySet(this.ultraGridExport, 3,
"ORDERWEIGHT", "PLAN_WT_D", "PAYDOWNWEIGHT");
PlanComm.setGridSummarySet(this.ultraGridExport, 0, "PAYDOWN_NUM");
ultraComboFinishEditor.SelectedIndex = 0;
ultraComboEditAcpStatus.SelectedIndex = 1;
ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].EditorComponent = ultraFileLook;
ultraGridExport.DisplayLayout.Bands[0].Columns["MONITORDEMAND"].ButtonDisplayStyle
= Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always;
}
///
/// 导出查询
///
public void DoQueryExp()
{
ArrayList param = new ArrayList();
bool notCraft = false;
bool isImportOrd = false;
string status = "";
string strAcceptNo = "";//接收批次号
string strOrderNo = ""; //合同号
string strRollMonth = "";//轧制月份
//string strDateForm = "1000/01/01"; //交货结束日期从,默认最小日期
//string strDateTo = "9999/12/31"; //交货结束日期到,默认最大日期
string strFinish = "";
if (this.checkBoxAcceptNoexport.Checked)
{
//接收批次号
strAcceptNo = this.ultraTextAcceptNo.Text.Trim();
}
if (this.checkBoxORDER_NOexpor.Checked)
{
//合同号
strOrderNo = this.ultraTextORDER_NO.Text.Trim();
}
//if (this.checkBoxDELVRY_EDATEexport.Checked)
//{
// //接收日期
// strDateForm = this.ultraDateTimeDELVRY_EDATEFrom.DateTime.ToString("yyyy/MM/dd");
// strDateTo = this.ultraDateTimeDELVRY_EDATETo.DateTime.ToString("yyyy/MM/dd");
//}
if (checkBoxAcpStatus.Checked)
{
//合同状态
status = ultraComboEditAcpStatus.Value.ToString();
}
if (checkBoxImport.Checked)
{
isImportOrd = true;
}
if (checkBoxNotCraft.Checked)
{
notCraft = true;
}
if (checkBoxFinish.Checked)
{
strFinish = ultraComboFinishEditor.Value.ToString();
}
if (checkBoxRollMonth.Checked)
{
strRollMonth = ultraDateTimeRollMonth.DateTime.ToString("yyyy-MM");
}
param.Add(strAcceptNo);
param.Add(strOrderNo);
param.Add(strRollMonth);
param.Add(status);
DataTable dt = comBll.Query(param, strFinish, notCraft, isImportOrd);
GridHelper.CopyDataToDatatable(dt, dataTable1, true);
///设置grid不可编辑
PlanComm.setGridActivation(ultraGridExport.DisplayLayout.Bands[0]);
PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 3,
"ORDER_QTY", "ORDERWEIGHT", "CONFIRM_WT_SUM", "Z_ORDERWEIGHT");
PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 2,
"TOTLENGTH", "HEIGHT_YLG", "DIMATER_YLG");
PlanComm.setGridDigitalCol(ultraGridExport.DisplayLayout.Bands[0], 5, 0,
"Z_ORDERNUM");
}
///
/// 导出excl
///
public void DoExport()
{
try
{
int rowCount = this.ultraGridExport.Rows.Count;
int colCount = this.ultraGridExport.DisplayLayout.Bands[0].Columns.Count - 11;
object[,] arr = new object[rowCount, colCount];
for (int j = 0; j < rowCount; j++)
{
for (int i = 0; i < colCount; i++)
{
string output = ultraGridExport.Rows[j].Cells[i].Value.ToString();
if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("GROUP_ROLL"))
{
//产线
int plineCode = 0;
output = output.Replace("机组", "");
if (int.TryParse(output, out plineCode))
{
output = "'" + plineCode.ToString();
}
}
if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("STEELNAME"))
{
//钢级
double grade = 0;
if (double.TryParse(output, out grade))
{
output = "'" + output;
}
}
if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("ROLL_MONTH"))
{
//轧制月份
DateTime dt = new DateTime();
if (DateTime.TryParse(output, out dt))
{
output = "'" + dt.ToString("yyyyMM");
}
}
if (ultraGridExport.DisplayLayout.Bands[0].Columns[i].Key.Equals("MONITORDEMAND"))
{
//监制
if (!ultraGridExport.Rows[j].Cells["PRDCRPRO"].Value.ToString().Equals(""))
{
output = output + "(" + ultraGridExport.Rows[j].Cells["PRDCRPRO"].Value.ToString() + ")";
}
}
arr[j, i] = output;
}
}
string path = System.Windows.Forms.Application.StartupPath + "\\model";
string tempExcel = path + "\\FrmSaleOrdmodel.xls";
string outPutExcl = "销售合同" + DateTime.Now.ToString("yyyyMMdd");
if (!System.IO.File.Exists(tempExcel))//检察模板是否存在
{
MessageBox.Show(this, "未找到报表模板!");
return;
}
if (ultraGridExport.Rows.Count == 0) return;
if (outPutExcl.Length == 0) outPutExcl = "未命名";
SaveFileDialog dlg = new SaveFileDialog();
dlg.Title = "保存";
dlg.OverwritePrompt = true;
dlg.Filter = "Excel文件(*.xls)|*.xls";
dlg.AddExtension = true;
dlg.FileName = outPutExcl;
if (dlg.ShowDialog() == DialogResult.OK)
{
outPutExcl = dlg.FileName;
PlanComm.WaitFromOpen(this.Cursor);
ExcelHelper excelport = new ExcelHelper(tempExcel, outPutExcl);
if (excelport.ArrayToExcel(arr, 2, 1, "Sheet"))
{
PlanComm.WaitFromColse(this.Cursor);
if (MessageBox.Show("数据导出成功!\n需要打开所导出文件吗?", "提示",
MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
ProcessStartInfo p = new ProcessStartInfo(outPutExcl);
p.WorkingDirectory = System.IO.Path.GetDirectoryName(outPutExcl);
Process.Start(p);
}
}
else
{
PlanComm.WaitFromColse(this.Cursor);
MessageBox.Show("数据导出失败!");
return;
}
}
}
catch (Exception ex)
{
PlanComm.WaitFromColse(this.Cursor);
MessageBox.Show(ex.Message);
}
}
///
/// 按Grid格式导出
///
public void DoGridExport()
{
PlanComm.Export(ref ultraGridExport, "排产" +
DateTime.Now.ToString("yyyyMMdd"), ultraGridExcelExporter1);
}
///
/// 查看上传工艺文件
///
public void DoLookCraftFile(OpeBase _ob)
{
UltraGridRow ugr = this.ultraGridExport.ActiveRow;
if (ugr == null)
{
return;
}
string plnDivideId = "01";
string ordLnDlyPk = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
if (ordLnDlyPk.Contains('-'))
{
plnDivideId = ordLnDlyPk.Substring(ordLnDlyPk.LastIndexOf('-') + 1,
ordLnDlyPk.Length - ordLnDlyPk.LastIndexOf('-') - 1);
ordLnDlyPk = ordLnDlyPk.Substring(0, ordLnDlyPk.LastIndexOf('-'));
}
DataTable dtPath = ServerHelper.GetData("com.steering.pss.plnsaleord.order.CoreSaleOrderReceive.queryCraftFilePath",
new object[] { ordLnDlyPk, plnDivideId }, _ob);
if (dtPath != null && dtPath.Rows.Count > 0)
{
ArrayList listPIC = new ArrayList();
foreach (DataRow dr in dtPath.Rows)
{
listPIC.Add(dr["CRAFT_PATH"].ToString());
}
dlgOrderAskLook orderAsk = new dlgOrderAskLook(_ob, listPIC);
orderAsk.Text = "查看上传工艺文件";
orderAsk.Show();
}
}
///
/// 合同行工艺文件
///
public void TechOrderLine()
{
UltraGridRow ugr = ultraGridExport.ActiveRow;
if (ugr == null)
{
return;
}
string ordLnDlyPkId = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
if (!ordLnDlyPkId.Equals("")
&& ordLnDlyPkId.Length >= 41)
{
string ordLnPk = ordLnDlyPkId.Substring(0, ordLnDlyPkId.Length - 6);
string designKey = ugr.Cells["DESGIN_KEY"].Value.ToString();
string url = "http://172.54.10.42:8080/webroot/decision/view/report?viewlet=RepTechOrderLineCraft.cpt&__bypagesize__=false&format=pdf&__embed__=true"
+ "&desgin_key=" + designKey + "&lnpk=" + ordLnPk;
FrmOutExcel outPut = new FrmOutExcel(url);
outPut.Show();
}
}
#region 查询区事件
private void checkBoxDELVRY_EDATEexport_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxDELVRY_EDATEexport.Checked)
{
ultraDateTimeDELVRY_EDATEFrom.Enabled = true;
ultraDateTimeDELVRY_EDATETo.Enabled = true;
}
else
{
ultraDateTimeDELVRY_EDATEFrom.Enabled = false;
ultraDateTimeDELVRY_EDATETo.Enabled = false;
}
}
private void checkBoxORDER_NOexpor_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxORDER_NOexpor.Checked)
{
ultraTextORDER_NO.Enabled = true;
}
else
{
ultraTextORDER_NO.Enabled = false;
}
}
private void checkBoxAcpStatus_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxAcpStatus.Checked)
{
this.ultraComboEditAcpStatus.Enabled = true;
}
else
{
this.ultraComboEditAcpStatus.Enabled = false;
}
}
private void checkBoxAcceptNoexport_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxAcceptNoexport.Checked)
{
ultraTextAcceptNo.Enabled = true;
}
else
{
ultraTextAcceptNo.Enabled = false;
}
}
private void ultraDateTimeDELVRY_EDATEFrom_ValueChanged(object sender, EventArgs e)
{
ultraDateTimeDELVRY_EDATETo.MinDate = ultraDateTimeDELVRY_EDATEFrom.DateTime.Date;
}
private void ultraDateTimeDELVRY_EDATETo_ValueChanged(object sender, EventArgs e)
{
ultraDateTimeDELVRY_EDATEFrom.MaxDate = ultraDateTimeDELVRY_EDATETo.DateTime.AddDays(1).Date.AddSeconds(-1);
}
#endregion
#region
public System.Windows.Forms.CheckBox CheckBoxDELVRY_EDATEexport
{
get { return checkBoxDELVRY_EDATEexport; }
set { checkBoxDELVRY_EDATEexport = value; }
}
public Infragistics.Win.UltraWinEditors.UltraDateTimeEditor UltraDateTimeDELVRY_EDATEFrom
{
get { return ultraDateTimeDELVRY_EDATEFrom; }
set { ultraDateTimeDELVRY_EDATEFrom = value; }
}
public Infragistics.Win.UltraWinEditors.UltraDateTimeEditor UltraDateTimeDELVRY_EDATETo
{
get { return ultraDateTimeDELVRY_EDATETo; }
set { ultraDateTimeDELVRY_EDATETo = value; }
}
public System.Windows.Forms.CheckBox CheckBoxORDER_NOexpor
{
get { return checkBoxORDER_NOexpor; }
set { checkBoxORDER_NOexpor = value; }
}
public Infragistics.Win.UltraWinEditors.UltraTextEditor UltraTextORDER_NO
{
get { return ultraTextORDER_NO; }
set { ultraTextORDER_NO = value; }
}
public System.Windows.Forms.CheckBox CheckBoxAcpStatus
{
get { return checkBoxAcpStatus; }
set { checkBoxAcpStatus = value; }
}
public Infragistics.Win.UltraWinEditors.UltraComboEditor UltraComboEditAcpStatus
{
get { return ultraComboEditAcpStatus; }
set { ultraComboEditAcpStatus = value; }
}
public System.Windows.Forms.CheckBox CheckBoxAcceptNoexport
{
get { return checkBoxAcceptNoexport; }
set { checkBoxAcceptNoexport = value; }
}
public Infragistics.Win.UltraWinEditors.UltraTextEditor UltraTextAcceptNo
{
get { return ultraTextAcceptNo; }
set { ultraTextAcceptNo = value; }
}
public System.Windows.Forms.CheckBox CheckBoxNotCraft
{
get { return checkBoxNotCraft; }
set { checkBoxNotCraft = value; }
}
public System.Windows.Forms.CheckBox CheckBoxImport
{
get { return checkBoxImport; }
set { checkBoxImport = value; }
}
public Infragistics.Win.UltraWinGrid.UltraGrid UltraGridExport
{
get { return ultraGridExport; }
set { ultraGridExport = value; }
}
private void checkBoxFinish_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxFinish.Checked)
{
ultraComboFinishEditor.Enabled = true;
}
else
{
ultraComboFinishEditor.Enabled = false;
}
}
private void checkBoxRollMonth_CheckedChanged(object sender, EventArgs e)
{
if (checkBoxRollMonth.Checked)
{
ultraDateTimeRollMonth.Enabled = true;
}
else
{
ultraDateTimeRollMonth.Enabled = false;
}
}
#endregion
///
/// 查看监制文件
///
///
///
private void ultraFileLook_EditorButtonClick(object sender,
Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e)
{
UltraGridRow ugr = ultraGridExport.ActiveRow;
if (ugr == null)
{
return;
}
//ArrayList listPIC = new ArrayList();
//listPIC.Add(ugr.Cells["PRDCR_PATH"].Value.ToString());
//comBll.DoLookMon(listPIC);
string ordLnDlyPkId = ugr.Cells["ORD_LN_DLY_PK"].Value.ToString();
if (!ordLnDlyPkId.Equals("")
&& ordLnDlyPkId.Length >= 41)
{
string ordLnDlyPk = ordLnDlyPkId.Substring(0, ordLnDlyPkId.Length - 3);
string plnDivideId = ordLnDlyPkId.Replace(ordLnDlyPk + "-", "");
FrmOrdLinePrdcrLst prdcr = new FrmOrdLinePrdcrLst(ordLnDlyPk,
plnDivideId, comBll._ob);
prdcr.Show();
}
}
private void ultraGridExcelExporter1_CellExported(object sender, Infragistics.Win.UltraWinGrid.ExcelExport.CellExportedEventArgs e)
{
// Apply a formula to the "Total" cells. This only applies to the Formulas grid, since
// the images grid has no "Total" column.
if (e.GridColumn.Key == "RANGE_MIN"
|| e.GridColumn.Key == "RANGE_MAX")
{
// This cell should be the product of the previous 2 cells in the same row.
// Using R1C1 notation is easier, because we can use relative row and column indices
//string formulaString = "=R[0]C[-2] * R[0]C[-1]";
// Get the cell to which the formula will be applied.
Infragistics.Excel.WorksheetCell worksheetCell = e.CurrentWorksheet.Rows[
e.CurrentRowIndex].Cells[e.CurrentColumnIndex];
// Apply the formula.
//worksheetCell.ApplyFormula(formulaString);
// Format the cell as currency.
worksheetCell.CellFormat.FormatString = "##0.00%";
double value = 0;
if (e.Value != null)
{
double.TryParse(e.Value.ToString(), out value);
value = value / 100;
}
worksheetCell.Value = value;
}
}
}
}