using Core.Mes.Client.Comm.Control;
using Core.Mes.Client.Comm.Format;
using Core.Mes.Client.Comm.Server;
using Core.Mes.Client.Comm.Tool;
using Core.StlMes.Client.PnCost.Models;
using CoreFS.CA06;
using Infragistics.Win.UltraWinGrid;
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 System.Xml;
namespace Core.StlMes.Client.PnCost
{
public partial class frmBasePlineReback : FrmBase
{
#region 定义变量
private DataTable dt;
#endregion
#region 初始化
public frmBasePlineReback()
{
OpeBase ob = new OpeBase();
System.Xml.XmlDocument xmlDoc = new System.Xml.XmlDocument();
xmlDoc.Load(Environment.CurrentDirectory + "\\data\\comm.core");
XmlNode xn = xmlDoc.SelectSingleNode("CommunicationConfig");
foreach (XmlNode node in xn.ChildNodes)
{
if (((XmlElement)node).GetAttribute("name") == "PSSServer")
{
ob.MainUrl = node.SelectSingleNode("url").InnerText;
}
}
dt = ServerHelper.GetData("com.steering.pss.pncost.base.ComBasePlineReback.queryPliao",
new object[] { "" }, ob);
Test(dt);
BindData(dt, dataTable1);
ultraCheckEditor1.Checked = false;
ultraTextEditor1.Enabled = false;
this.ultraGrid1.CellChange += new Infragistics.Win.UltraWinGrid.CellEventHandler(this.ultraGrid1_CellChange);//事件初始化
}
#endregion
#region 方法
public override void ToolBar_Click(object sender, string ToolbarKey)
{
base.ToolBar_Click(sender, ToolbarKey);
switch (ToolbarKey)
{
case "Query":
Query();
break;
case "Save":
Save();
break;
case "Close":
this.Close();
break;
}
}
/// 查询方法
///
/// 查询方法
///
private void Query()
{
#region 条件验证
//产线
string strPei = "";
if (ultraCheckEditor1.Checked)//产线是否选择
{
if (ultraTextEditor1.Text == "")//产线是否输入
{
MessageUtil.ShowWarning("请输入产线!");
return;
}
else
{
strPei = ultraTextEditor1.Text.Trim();//配料方案
}
}
#endregion
dt = ServerHelper.GetData("com.steering.pss.pncost.base.ComBasePlineReback.queryPliao",
new object[] { strPei }, ob);
BindData(dt, dataTable1);
if (ultraGrid1.Rows.Count == 0)
{
return;
}
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
ultraGrid1.Rows[i].Cells["CHK"].Value = false;
GridEdite(ultraGrid1.Rows[i]);
}
ultraGrid1.UpdateData();
ultraGrid1.ActiveRow = ultraGrid1.Rows[0];
}
/// 保存方法
///
/// 保存方法
///
private void Save()
{
string stringnew = "";
string xuanze = "false";
try
{
#region 验证信息
ultraGrid1.UpdateData();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True")
{
//string PERCENT = "";//回收率
//for (int j = 0; j < ultraGrid1.Rows[i].Cells.Count; j++)
//{
// if (ultraGrid1.Rows[i].Cells[j].Column.Key.Contains("PERCENT"))
// {
// PERCENT = (Convert.ToDecimal(ultraGrid1.Rows[i].Cells[j].Value.ToString3()) +
// Convert.ToDecimal(PERCENT.ToString3())).ToString3();
// }
//}
//if (Convert.ToDecimal(PERCENT)>100)
//{
// MessageUtil.ShowWarning("选择的记录回收率之和不能大于100, 请重新输入!");
// return;
//}
xuanze = "true";
}
}
if (xuanze == "false")
{
MessageUtil.ShowWarning("请选择你要保存的记录!");
return;
}
if (MessageUtil.ShowYesNoAndQuestion("是否确认保存?") == System.Windows.Forms.DialogResult.No)
{
return;
}
#endregion
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if (ultraGrid1.Rows[i].Cells["CHK"].Value.ToString() == "True")
{
string plinecode = ultraGrid1.Rows[i].Cells["PLINE_NAME"].Tag.ToString2();
stringnew = ultraGrid1.Rows[i].Cells["PLINE_NAME"].Tag.ToString2();
string itemcode = "";
string itemname = "";
for (int j = 0; j < ultraGrid1.Rows[i].Cells.Count; j++)
{
if (ultraGrid1.Rows[i].Cells[j].Column.Key.Contains("PROPORTION"))
{
string pro = ultraGrid1.Rows[i].Cells[j].Column.Key.ToString2();
string percent = "PERCENT" + pro.Substring(pro.Length - 1);
itemcode = ultraGrid1.Rows[i].Cells[j].Column.Tag.ToString2();
var items = dt.Rows.Cast().GroupBy(a => new { itemCode = a["ITEM_CODE"].ToString(), itemName = a["ITEM_NAME"].ToString() })
.Select(a => a.Key).ToList();
for (int x = 0; x < items.Count; x++)
{
if (itemcode == items[x].itemCode)
{
itemname = items[x].itemName;
}
}
DataTable data = ServerHelper.GetData("com.steering.pss.pncost.base.ComBasePlineReback.queryNum", new Object[] { plinecode, itemcode }, ob);
if (data.Rows[0][0].ToString() == "1")//判断是新增还是修改的保存
{
CostBasePlineRebackEntity parm = new CostBasePlineRebackEntity();//修改
parm.PlineCode = ultraGrid1.Rows[i].Cells["PLINE_NAME"].Tag.ToString();
parm.PlineName = ultraGrid1.Rows[i].Cells["PLINE_NAME"].Value.ToString();
parm.ItemCode = itemcode;
parm.ItemName = itemname;
parm.Proportion = Convert.ToDecimal(ultraGrid1.Rows[i].Cells[j].Value.ToString3());
parm.Percent = Convert.ToDecimal(ultraGrid1.Rows[i].Cells[percent].Value.ToString3());
parm.UpdateName = this.UserInfo.GetUserName();
string JsonStr = JSONFormat.Format(parm);
ServerHelper.SetData("com.steering.pss.pncost.base.ComBasePlineReback.usave", new object[] { JsonStr }, ob);
}
else
{//新增
CostBasePlineRebackEntity parm = new CostBasePlineRebackEntity();//新增
parm.PlineCode = ultraGrid1.Rows[i].Cells["PLINE_NAME"].Tag.ToString();
parm.PlineName = ultraGrid1.Rows[i].Cells["PLINE_NAME"].Value.ToString();
parm.ItemCode = itemcode;
parm.ItemName = itemname;
parm.Proportion = Convert.ToDecimal(ultraGrid1.Rows[i].Cells[j].Value.ToString3());
parm.Percent = Convert.ToDecimal(ultraGrid1.Rows[i].Cells[percent].Value.ToString3());
parm.CreateName = this.UserInfo.GetUserName();
string JsonStr = JSONFormat.Format(parm);
ServerHelper.SetData("com.steering.pss.pncost.base.ComBasePlineReback.isave", new object[] { JsonStr }, ob);
}
}
}
}
}
}
catch (Exception ex)
{
MessageUtil.ShowError("保存失败!'" + ex.Message + "'");
return;
}
MessageUtil.ShowTips("保存成功!");
Query();
for (int i = 0; i < ultraGrid1.Rows.Count; i++)
{
if (ultraGrid1.Rows[i].Cells["PLINE_NAME"].Tag.ToString2() == stringnew)
{
ultraGrid1.Rows[i].Activate();
}
}
}
Infragistics.Win.UltraWinGrid.UltraGridBand ultraGridBand1 = new Infragistics.Win.UltraWinGrid.UltraGridBand("Table1", -1);
/// 样式初始化
///
/// 样式初始化
///
private void Test(DataTable dt)
{
this.components = new System.ComponentModel.Container();
Infragistics.Win.Appearance appearance1 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance2 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance4 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance3 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance7 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance10 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance12 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance8 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance6 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance5 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance11 = new Infragistics.Win.Appearance();
Infragistics.Win.Appearance appearance9 = new Infragistics.Win.Appearance();
this.ultraGrid1 = new Infragistics.Win.UltraWinGrid.UltraGrid();
this.dataSet1 = new System.Data.DataSet();
this.dataTable1 = new System.Data.DataTable();
this.ultraTextEditor1 = new Infragistics.Win.UltraWinEditors.UltraTextEditor();
this.ultraCheckEditor1 = new Infragistics.Win.UltraWinEditors.UltraCheckEditor();
this.ultraPanel1 = new Infragistics.Win.Misc.UltraPanel();
DataColumn dataColumn7 = new System.Data.DataColumn();
DataColumn dataColumn8 = new System.Data.DataColumn();
((System.ComponentModel.ISupportInitialize)(this.ultraGrid1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataSet1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.dataTable1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.ultraTextEditor1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.ultraCheckEditor1)).BeginInit();
this.ultraPanel1.ClientArea.SuspendLayout();
this.ultraPanel1.SuspendLayout();
this.SuspendLayout();
this.ultraGrid1.DataSource = this.dataSet1;
appearance1.BackColor = System.Drawing.SystemColors.Window;
appearance1.BorderColor = System.Drawing.SystemColors.InactiveCaption;
this.ultraGrid1.DisplayLayout.Appearance = appearance1;
ultraGridBand1.RowLayoutStyle = Infragistics.Win.UltraWinGrid.RowLayoutStyle.GroupLayout;
CreateGridColumn(dt, dataTable1, ultraGridBand1);
this.ultraGrid1.DisplayLayout.BandsSerializer.Add(ultraGridBand1);
this.ultraGrid1.DisplayLayout.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
this.ultraGrid1.DisplayLayout.CaptionVisible = Infragistics.Win.DefaultableBoolean.False;
appearance2.BackColor = System.Drawing.SystemColors.ActiveBorder;
appearance2.BackColor2 = System.Drawing.SystemColors.ControlDark;
appearance2.BackGradientStyle = Infragistics.Win.GradientStyle.Vertical;
appearance2.BorderColor = System.Drawing.SystemColors.Window;
this.ultraGrid1.DisplayLayout.GroupByBox.Appearance = appearance2;
appearance4.ForeColor = System.Drawing.SystemColors.GrayText;
this.ultraGrid1.DisplayLayout.GroupByBox.BandLabelAppearance = appearance4;
this.ultraGrid1.DisplayLayout.GroupByBox.BorderStyle = Infragistics.Win.UIElementBorderStyle.Solid;
appearance3.BackColor = System.Drawing.SystemColors.ControlLightLight;
appearance3.BackColor2 = System.Drawing.SystemColors.Control;
appearance3.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
appearance3.ForeColor = System.Drawing.SystemColors.GrayText;
this.ultraGrid1.DisplayLayout.GroupByBox.PromptAppearance = appearance3;
this.ultraGrid1.DisplayLayout.MaxColScrollRegions = 1;
this.ultraGrid1.DisplayLayout.MaxRowScrollRegions = 1;
appearance7.BackColor = System.Drawing.SystemColors.Window;
appearance7.ForeColor = System.Drawing.SystemColors.ControlText;
this.ultraGrid1.DisplayLayout.Override.ActiveCellAppearance = appearance7;
appearance10.BackColor = System.Drawing.SystemColors.Highlight;
appearance10.ForeColor = System.Drawing.SystemColors.HighlightText;
this.ultraGrid1.DisplayLayout.Override.ActiveRowAppearance = appearance10;
this.ultraGrid1.DisplayLayout.Override.BorderStyleCell = Infragistics.Win.UIElementBorderStyle.Dotted;
this.ultraGrid1.DisplayLayout.Override.BorderStyleRow = Infragistics.Win.UIElementBorderStyle.Dotted;
appearance12.BackColor = System.Drawing.SystemColors.Window;
this.ultraGrid1.DisplayLayout.Override.CardAreaAppearance = appearance12;
appearance8.BorderColor = System.Drawing.Color.Silver;
appearance8.TextTrimming = Infragistics.Win.TextTrimming.EllipsisCharacter;
this.ultraGrid1.DisplayLayout.Override.CellAppearance = appearance8;
this.ultraGrid1.DisplayLayout.Override.CellClickAction = Infragistics.Win.UltraWinGrid.CellClickAction.EditAndSelectText;
this.ultraGrid1.DisplayLayout.Override.CellPadding = 0;
appearance6.BackColor = System.Drawing.SystemColors.Control;
appearance6.BackColor2 = System.Drawing.SystemColors.ControlDark;
appearance6.BackGradientAlignment = Infragistics.Win.GradientAlignment.Element;
appearance6.BackGradientStyle = Infragistics.Win.GradientStyle.Horizontal;
appearance6.BorderColor = System.Drawing.SystemColors.Window;
this.ultraGrid1.DisplayLayout.Override.GroupByRowAppearance = appearance6;
appearance5.TextHAlignAsString = "Left";
this.ultraGrid1.DisplayLayout.Override.HeaderAppearance = appearance5;
this.ultraGrid1.DisplayLayout.Override.HeaderClickAction = Infragistics.Win.UltraWinGrid.HeaderClickAction.SortMulti;
this.ultraGrid1.DisplayLayout.Override.HeaderStyle = Infragistics.Win.HeaderStyle.WindowsXPCommand;
appearance11.BackColor = System.Drawing.SystemColors.Window;
appearance11.BorderColor = System.Drawing.Color.Silver;
this.ultraGrid1.DisplayLayout.Override.RowAppearance = appearance11;
this.ultraGrid1.DisplayLayout.Override.RowSelectors = Infragistics.Win.DefaultableBoolean.False;
appearance9.BackColor = System.Drawing.SystemColors.ControlLight;
this.ultraGrid1.DisplayLayout.Override.TemplateAddRowAppearance = appearance9;
this.ultraGrid1.DisplayLayout.ScrollBounds = Infragistics.Win.UltraWinGrid.ScrollBounds.ScrollToFill;
this.ultraGrid1.DisplayLayout.ScrollStyle = Infragistics.Win.UltraWinGrid.ScrollStyle.Immediate;
this.ultraGrid1.DisplayLayout.ViewStyleBand = Infragistics.Win.UltraWinGrid.ViewStyleBand.OutlookGroupBy;
this.ultraGrid1.Dock = System.Windows.Forms.DockStyle.Fill;
this.ultraGrid1.Location = new System.Drawing.Point(0, 0);
this.ultraGrid1.Name = "ultraGrid1";
this.ultraGrid1.Size = new System.Drawing.Size(666, 405);
this.ultraGrid1.TabIndex = 0;
this.ultraGrid1.Text = "ultraGrid1";
this.dataSet1.DataSetName = "NewDataSet";
this.dataSet1.Tables.AddRange(new System.Data.DataTable[] {
this.dataTable1});
this.dataTable1.TableName = "Table1";
// ultraTextEditor1
//
this.ultraTextEditor1.Location = new System.Drawing.Point(87, 10);
this.ultraTextEditor1.Name = "ultraTextEditor1";
this.ultraTextEditor1.Size = new System.Drawing.Size(100, 21);
this.ultraTextEditor1.TabIndex = 3;
//
// ultraCheckEditor1
//
this.ultraCheckEditor1.Location = new System.Drawing.Point(24, 12);
this.ultraCheckEditor1.Name = "ultraCheckEditor1";
this.ultraCheckEditor1.Size = new System.Drawing.Size(57, 20);
this.ultraCheckEditor1.TabIndex = 2;
this.ultraCheckEditor1.Text = "产线";
this.ultraCheckEditor1.CheckedChanged += new System.EventHandler(this.ultraCheckEditor1_CheckedChanged);
//
// ultraPanel1
//
//
// ultraPanel1.ClientArea
//
this.ultraPanel1.ClientArea.Controls.Add(this.ultraCheckEditor1);
this.ultraPanel1.ClientArea.Controls.Add(this.ultraTextEditor1);
this.ultraPanel1.Dock = System.Windows.Forms.DockStyle.Top;
this.ultraPanel1.Location = new System.Drawing.Point(0, 0);
this.ultraPanel1.Name = "ultraPanel1";
this.ultraPanel1.Size = new System.Drawing.Size(666, 47);
this.ultraPanel1.TabIndex = 4;
this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(666, 405);
this.Controls.Add(this.ultraGrid1);
this.Controls.Add(this.ultraPanel1);
this.Name = "frmBasePlineReback";
this.Text = "frmBasePlineReback";
((System.ComponentModel.ISupportInitialize)(this.ultraGrid1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.dataSet1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.ultraTextEditor1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.ultraCheckEditor1)).EndInit();
this.ultraPanel1.ClientArea.ResumeLayout(false);
this.ultraPanel1.ClientArea.PerformLayout();
this.ultraPanel1.ResumeLayout(false);
((System.ComponentModel.ISupportInitialize)(this.dataTable1)).EndInit();
this.ResumeLayout(false);
}
/// 设置样式
///
/// 设置样式
///
private void CreateGridColumn(DataTable dt, DataTable dtSource, UltraGridBand ultraGridBand1)
{
Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn1 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("CHK");
ultraGridColumn1.Header.Caption = "选择";
ultraGridColumn1.CellAppearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn2 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("PLINE_NAME", -1, null, 0, Infragistics.Win.UltraWinGrid.SortIndicator.Ascending, false);
ultraGridColumn2.Header.Caption = "产线";
ultraGridColumn2.CellActivation = Activation.ActivateOnly;
Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn5 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("PROCESS_DESC");
ultraGridColumn5.Header.Caption = "工序";
ultraGridColumn5.CellActivation = Activation.ActivateOnly;
ultraGridColumn1.Header.VisiblePosition = 0;
ultraGridColumn1.RowLayoutColumnInfo.OriginX = 0;
ultraGridColumn1.RowLayoutColumnInfo.OriginY = 0;
ultraGridColumn1.RowLayoutColumnInfo.PreferredCellSize = new System.Drawing.Size(49, 0);
ultraGridColumn1.RowLayoutColumnInfo.PreferredLabelSize = new System.Drawing.Size(0, 48);
ultraGridColumn1.RowLayoutColumnInfo.SpanX = 1;
ultraGridColumn1.RowLayoutColumnInfo.SpanY = 2;
ultraGridColumn2.Header.VisiblePosition = 1;
ultraGridColumn2.RowLayoutColumnInfo.OriginX = 1;
ultraGridColumn2.RowLayoutColumnInfo.OriginY = 0;
ultraGridColumn2.RowLayoutColumnInfo.PreferredCellSize = new System.Drawing.Size(175, 16);
ultraGridColumn2.RowLayoutColumnInfo.PreferredLabelSize = new System.Drawing.Size(0, 48);
ultraGridColumn2.RowLayoutColumnInfo.SpanX = 3;
ultraGridColumn2.RowLayoutColumnInfo.SpanY = 2;
ultraGridColumn5.Header.VisiblePosition = 2;
ultraGridColumn5.RowLayoutColumnInfo.OriginX = 4;
ultraGridColumn5.RowLayoutColumnInfo.OriginY = 0;
ultraGridColumn5.RowLayoutColumnInfo.PreferredCellSize = new System.Drawing.Size(75, 16);
ultraGridColumn5.RowLayoutColumnInfo.PreferredLabelSize = new System.Drawing.Size(0, 48);
ultraGridColumn5.RowLayoutColumnInfo.SpanX = 2;
ultraGridColumn5.RowLayoutColumnInfo.SpanY = 2;
object[] gridColumns = new object[dt.Rows.Cast().GroupBy(a => a["ITEM_CODE"]).Count() * 2 + 3];
gridColumns[0] = ultraGridColumn1;
gridColumns[1] = ultraGridColumn2;
gridColumns[2] = ultraGridColumn5;
dtSource.Columns.Add("CHK", typeof(bool));
dtSource.Columns.Add("PLINE_NAME");
dtSource.Columns.Add("PROCESS_DESC");
UltraGridGroup[] gridGroups = new UltraGridGroup[dt.Rows.Cast().GroupBy(a => new { itemCode = a["ITEM_CODE"].ToString(), itemName = a["ITEM_NAME"].ToString() }).Count()];
var items = dt.Rows.Cast().GroupBy(a => new { itemCode = a["ITEM_CODE"].ToString(), itemName = a["ITEM_NAME"].ToString() })
.Select(a => a.Key).ToList();
for (int i = 0; i < items.Count; i++)
{
Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn3 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("PROPORTION" + i);
ultraGridColumn3.Tag = items[i].itemCode;
//ultraGridColumn3.DataType = typeof(decimal);
ultraGridColumn3.MaskInput = "nn.nn";
ultraGridColumn3.Hidden = true;
Infragistics.Win.UltraWinGrid.UltraGridColumn ultraGridColumn4 = new Infragistics.Win.UltraWinGrid.UltraGridColumn("PERCENT" + i);
ultraGridColumn4.Tag = items[i].itemCode;
//ultraGridColumn4.DataType = typeof(decimal);
ultraGridColumn4.MaskInput = "nn.nn";
ultraGridColumn4.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
ultraGridColumn4.CellAppearance.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
ultraGridColumn3.Header.VisiblePosition = i * 2 + 3; //4
ultraGridColumn3.RowLayoutColumnInfo.OriginX = 0;
ultraGridColumn3.RowLayoutColumnInfo.OriginY = 0;
ultraGridColumn3.RowLayoutColumnInfo.ParentGroupIndex = i;
ultraGridColumn3.RowLayoutColumnInfo.ParentGroupKey = "NewGroup" + i;
ultraGridColumn3.RowLayoutColumnInfo.PreferredCellSize = new System.Drawing.Size(90, 0);
ultraGridColumn3.RowLayoutColumnInfo.PreferredLabelSize = new System.Drawing.Size(0, 24);
ultraGridColumn3.RowLayoutColumnInfo.SpanX = 1;
ultraGridColumn3.RowLayoutColumnInfo.SpanY = 1;
ultraGridColumn3.Header.Caption = "(1-成材率)占比(%)";
ultraGridColumn4.Header.VisiblePosition = i * 2 + 4; //5
ultraGridColumn4.RowLayoutColumnInfo.OriginX = 1;
ultraGridColumn4.RowLayoutColumnInfo.OriginY = 0;
ultraGridColumn4.RowLayoutColumnInfo.ParentGroupIndex = i;
ultraGridColumn4.RowLayoutColumnInfo.ParentGroupKey = "NewGroup" + i;
ultraGridColumn4.RowLayoutColumnInfo.PreferredCellSize = new System.Drawing.Size(80, 0);//设置宽度
ultraGridColumn4.RowLayoutColumnInfo.PreferredLabelSize = new System.Drawing.Size(0, 24);
ultraGridColumn4.RowLayoutColumnInfo.SpanX = 1;//span跟上面的宽度不一样
ultraGridColumn4.RowLayoutColumnInfo.SpanY = 1;
ultraGridColumn4.Header.Caption = "回收率(%)";
gridColumns[i * 2 + 3] = ultraGridColumn3;
gridColumns[i * 2 + 4] = ultraGridColumn4;
Infragistics.Win.UltraWinGrid.UltraGridGroup ultraGridGroup3 = new Infragistics.Win.UltraWinGrid.UltraGridGroup("NewGroup" + i, 7308663 + i);
ultraGridGroup3.Key = "NewGroup" + i;
ultraGridGroup3.RowLayoutGroupInfo.LabelSpan = 1;
ultraGridGroup3.RowLayoutGroupInfo.OriginX = i * 2 + 6;
ultraGridGroup3.RowLayoutGroupInfo.OriginY = 0;
ultraGridGroup3.RowLayoutGroupInfo.PreferredLabelSize = new System.Drawing.Size(0, 24);
ultraGridGroup3.RowLayoutGroupInfo.SpanX = 2;
ultraGridGroup3.RowLayoutGroupInfo.SpanY = 2;
ultraGridGroup3.Header.Caption = items[i].itemName;
gridGroups[i] = ultraGridGroup3;
dtSource.Columns.Add("PROPORTION" + i, typeof(decimal));
dtSource.Columns.Add("PERCENT" + i, typeof(decimal));
}
ultraGridBand1.Columns.AddRange(gridColumns);
ultraGridBand1.Groups.AddRange(gridGroups);
}
/// 绑定值
///
/// 绑定值
///
private void BindData(DataTable dt, DataTable dtSource)
{
dtSource.Clear();
//ultraGrid1.BeginUpdate();
var plines = dt.Rows.Cast().GroupBy(a => new { chk = a["CHK"].ToString(), plineName = a["PLINE_NAME"].ToString(), PROCESS_DESC = a["PROCESS_DESC"].ToString() })
.Select(a => a.Key).ToList();
for (int i = 0; i < plines.Count; i++)
{
DataRow dr = dtSource.NewRow();
dr["CHK"] = bool.Parse(plines[i].chk);
dr["PLINE_NAME"] = plines[i].plineName;
dr["PROCESS_DESC"] = plines[i].PROCESS_DESC;
dtSource.Rows.Add(dr);
}
foreach (var row in ultraGrid1.Rows)
{
foreach (var cell in row.Cells)
{
DataRow[] drItem = dt.Select("ITEM_CODE = '" + cell.Column.Tag + "' AND PLINE_NAME = '" + row.Cells["PLINE_NAME"].Value + "'");
DataRow[] drPline = dt.Select("PLINE_NAME = '" + row.Cells["PLINE_NAME"].Value + "'");
if (cell.Column.Key.Contains("PROPORTION"))
{
cell.Value = drItem[0]["PROPORTION"];
}
else if (cell.Column.Key.Contains("PERCENT"))
{
cell.Value = drItem[0]["PERCENT"];
}
else if (cell.Column.Key == "PLINE_NAME")
{
cell.Tag = drPline[0]["PLINE_CODE"];
}
}
}
ultraGrid1.UpdateData();
//ultraGrid1.EndUpdate();
}
#endregion
#region 事件
/// 选择事件
///
/// 选择事件
///
private void ultraGrid1_CellChange(object sender, CellEventArgs e)
{
ultraGrid1.UpdateData();
if (e.Cell.Column.Key == "CHK")
{
GridEdite(e.Cell.Row);
}
}
/// 选择判断
///
/// 选择判断
///
private void GridEdite(UltraGridRow row)
{
if (row.GetValue("CHK") == "True")
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.CellActivation == Activation.AllowEdit)
{
cell.Activation = Activation.AllowEdit;
}
}
}
else
{
foreach (UltraGridCell cell in row.Cells)
{
if (cell.Column.Key == "CHK") continue;
if (cell.Column.CellActivation == Activation.AllowEdit)
{
cell.Activation = Activation.ActivateOnly;
}
}
}
}
/// 产线选择事件
///
/// 产线选择事件
///
private void ultraCheckEditor1_CheckedChanged(object sender, EventArgs e)
{
ultraTextEditor1.Enabled = this.ultraCheckEditor1.Checked;
}
#endregion
}
}