using System;
using System.Collections;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Diagnostics;
using System.Text;
using System.Text.RegularExpressions;
using System.Windows.Forms;
using System.Net;
using System.Net.NetworkInformation;
using Infragistics.Win;
using Infragistics.Win.Layout;
using Infragistics.Win.UltraWinGrid;
using Infragistics.Win.UltraWinEditors;
using Infragistics.Win.UltraWinDataSource;
using CoreFS.CA06;
namespace Core.StlMes.Client.LgCommon
{
public enum CodeName
{
Code,
Name
}
public class PublicMethod
{
#region 访问服务端
///
/// 执行SQL返回数据集
///
/// 输入参数:SQL语句
/// 输出参数:SQL是否执行成功
/// 输出参数:执行成功返回空,执行失败返回错误提示
/// 输入参数:OpeBase对象,继承基类FrmBase的MDI窗口文件用this.ob传入,弹窗则由父窗口闯入引用
/// 返回结果:执行成功返回的数据集,失败返回NULL
public static DataSet GetData(string strSql, out bool bSuccess, out string strMsg, OpeBase Ob)
{
try
{
CoreClientParam ccp = new CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerName = "KgStlMes.DBHelp";
ccp.MethodName = "getSqlInfo_Stl";
ccp.ServerParams = new object[] { strSql };
ccp = Ob.ExecuteSortResultByQueryToDataTable(ccp, CoreInvokeType.Internal);
strMsg = ccp.ReturnInfo;
if (!string.IsNullOrEmpty(strMsg) || ccp.SourceDataTable == null)
{
bSuccess = false;
return null;
}
DataSet ds = new DataSet();
ds.Tables.Add(ccp.SourceDataTable);
bSuccess = true;
return ds;
}
catch (Exception ex)
{
bSuccess = false;
strMsg = ex.Message;
return null;
}
}
///
/// 执行SQL返回数据集
///
/// 输入参数:SQL语句
/// 执行SQL所代表的含义
/// 输入参数:OpeBase对象,继承基类FrmBase的MDI窗口文件用this.ob传入,弹窗则由父窗口闯入引用
/// 返回结果:执行成功返回的数据集,失败返回NULL
public static DataSet GetDataCommon(string strSql, string strInfo, OpeBase Ob)
{
string strMsg = "";
bool bSuccess = false;
DataSet ds = GetData(strSql, out bSuccess, out strMsg, Ob);
if (!string.IsNullOrEmpty(strInfo))
{
if (!strInfo.Contains("【") && !strInfo.Contains("】"))
{
strInfo = "【" + strInfo + "】";
}
}
if (!bSuccess)
{
MessageBox.Show(strInfo + "信息获取失败!" + (string.IsNullOrEmpty(strMsg) ? "" : "\r\n" + strMsg), "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
if (MessageBox.Show("是否重新获取" + strInfo + "信息?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
{
return GetDataCommon(strSql, strInfo, Ob);
}
return null;
}
return ds;
}
///
/// 执行单个SQL增删改操作
///
/// 输入参数:需要执行的SQL
/// 输出参数:执行成功返回空,执行失败返回错误提示
/// 输入参数:OpeBase对象,继承基类FrmBase的MDI窗口文件用this.ob传入,弹窗则由父窗口闯入引用
/// 返回结果:执行成功返回true,否则返回false
public static bool SetData(string strSql, out string strMsg, OpeBase Ob)
{
if (string.IsNullOrEmpty(strSql))
{
strMsg = "未指定SQL语句!";
return false;
}
int iRet = 0;
return ExecuteProcedure("SetData", new object[] { strSql }, out iRet, out strMsg, Ob);
}
///
/// 执行存储过程返回执行结果
///
/// 输入参数:存储过程名
/// 输入参数:存储过程参数集合
/// 输出参数:执行成功iRet大于零(可以自定义代码含义),执行失败返回0
/// 输出参数:执行成功返回空(或者根据需要返回用户需要信息),执行失败返回错误提示
/// 输入参数:OpeBase对象,继承基类FrmBase的MDI窗口文件用this.ob传入,弹窗则由父窗口闯入引用
/// 返回结果:执行成功返回true,否则返回false
public static bool ExecuteProcedure(string strProcName, object[] args, out int iRet, out string strMsg, OpeBase Ob)
{
iRet = 0;
strMsg = "";
CoreClientParam ccp = new CoreClientParam();
try
{
ccp.IfShowErrMsg = false;
ccp.ServerName = "KgStlMes.DBHelp";
ccp.MethodName = "doProcedure_Stl";
ccp.ServerParams = new object[] { strProcName, args };
ccp = Ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
ArrayList result = (ArrayList)ccp.ReturnObject;
iRet = Convert.ToInt32(result[2]);
strMsg = Convert.ToString(result[3]);
}
catch (Exception ex)
{
string strErr = (ccp == null ? "" : ccp.ReturnInfo);
iRet = iRet > 0 ? iRet : 0;
if (string.IsNullOrEmpty(strErr)) strMsg = ex.Message;
else strMsg = strErr;
}
return (iRet > 0 ? true : false);
}
///
/// 执行跟SAP相关的存储过程返回执行结果
///
/// 输入参数:存储过程名
/// 输入参数:存储过程参数集合
/// 输出参数:执行成功iRet大于零(可以自定义代码含义),执行失败返回0
/// 输出参数:执行成功返回空(或者根据需要返回用户需要信息),执行失败返回错误提示
/// 输入参数:OpeBase对象,继承基类FrmBase的MDI窗口文件用this.ob传入,弹窗则由父窗口闯入引用
/// 返回结果:执行成功返回true,否则返回false
public static CoreFS.CA06.CoreClientParam ExecuteJKProcedure(string procedureName, object[] param, ArrayList jkparam, OpeBase Ob)
{
CoreFS.CA06.CoreClientParam ccp = new CoreFS.CA06.CoreClientParam();
ccp.IfShowErrMsg = false;
ccp.ServerParams = new object[] { procedureName, param, jkparam };
ccp.ServerName = "Stl.port";
ccp.MethodName = "gangquyewu";//服务端方法名
ccp = Ob.ExecuteNonQuery(ccp, CoreFS.CA06.CoreInvokeType.Internal);
return ccp;
}
#endregion
public static void RefreshAndAutoSize(UltraGrid ultraGrid)
{
try
{
ultraGrid.DataBind();
foreach (UltraGridBand band in ultraGrid.DisplayLayout.Bands)
{
foreach (UltraGridColumn column in band.Columns)
{
column.PerformAutoResize(PerformAutoSizeType.AllRowsInBand);
}
}
ultraGrid.Refresh();
}
catch { }
}
public static void CopyDataToDatatable(ref DataTable src, ref DataTable dest, bool ClearExists)
{
if (src == null || dest == null)
{
return;
}
if (ClearExists)
{
dest.Rows.Clear();
}
DataRow CurRow, NewRow;
for (int i = 0; i < src.Rows.Count; i++)
{
CurRow = src.Rows[i];
NewRow = dest.NewRow();
for (int j = 0; j < src.Columns.Count; j++)
{
try
{
if (dest.Columns.Contains(src.Columns[j].ColumnName))
{
NewRow[src.Columns[j].ColumnName] = CurRow[j];
}
}
catch { }
}
dest.Rows.Add(NewRow);
}
}
public static void CopyDataToDatatable(ref DataTable src, ref DataTable dest, bool ClearExists, ArrayList alistColumns, ArrayList alistValue)
{
if (src == null || dest == null)
{
return;
}
if (ClearExists)
{
dest.Rows.Clear();
}
DataRow CurRow, NewRow;
for (int i = 0; i < src.Rows.Count; i++)
{
CurRow = src.Rows[i];
NewRow = dest.NewRow();
for (int j = 0; j < src.Columns.Count; j++)
{
try
{
if (dest.Columns.Contains(src.Columns[j].ColumnName))
{
NewRow[src.Columns[j].ColumnName] = CurRow[j];
}
}
catch { }
}
if (alistColumns != null && alistValue != null)
{
for (int idx = 0; idx < alistColumns.Count; idx++)
{
try
{
if (dest.Columns.Contains(alistColumns[idx].ToString()))
{
NewRow[alistColumns[idx].ToString()] = alistValue[idx];
}
}
catch { }
}
}
dest.Rows.Add(NewRow);
}
}
public static bool GridContainsColumn(ref UltraGrid grid, string strColumn)
{
for (int i = 0; i < grid.DisplayLayout.Bands[0].Columns.Count; i++)
{
if (grid.DisplayLayout.Bands[0].Columns[i].Key.Equals(strColumn))
return true;
}
return false;
}
public static bool GridContainsColumn(ref UltraGrid grid, int BandIndex, string strColumn)
{
if (BandIndex <= grid.DisplayLayout.Bands.Count - 1)
{
for (int i = 0; i < grid.DisplayLayout.Bands[BandIndex].Columns.Count; i++)
{
if (grid.DisplayLayout.Bands[BandIndex].Columns[i].Key.Equals(strColumn))
return true;
}
}
return false;
}
public static bool SetMyComboEditor(ref UltraComboEditor cbEdt, ref ValueList vlist, bool bNull)
{
if (cbEdt == null || vlist == null)
{
return false;
}
cbEdt.Items.Clear();
if (bNull)
{
cbEdt.Items.Add(null, "");
}
for (int i = 0; i < vlist.ValueListItems.Count; i++)
{
try
{
cbEdt.Items.Add(vlist.ValueListItems[i].DataValue, vlist.ValueListItems[i].DisplayText);
}
catch { }
}
return true;
}
public static bool SetMyComboEditor(ref UltraComboEditor cbEdt, ref DataTable table, string strColumnDisplay, string strColumnValue, bool bNull)
{
if (cbEdt == null || table == null || !table.Columns.Contains(strColumnDisplay) || !table.Columns.Contains(strColumnValue))
{
return false;
}
string strText = "";
object objValue = null;
cbEdt.Items.Clear();
if (bNull)
{
cbEdt.Items.Add(null, "");
}
for (int i = 0; i < table.Rows.Count; i++)
{
try
{
strText = Convert.ToString(table.Rows[i][strColumnDisplay]);
objValue = table.Rows[i][strColumnValue];
cbEdt.Items.Add(objValue, strText);
}
catch { }
}
return true;
}
public static bool SetMyComboEditor(ref UltraComboEditor cbEdt, ref DataTable table, string strColumnDisplay, string strColumnValue, string[] strColumnTag, bool bNull)
{
if (cbEdt == null || table == null || !table.Columns.Contains(strColumnDisplay) || !table.Columns.Contains(strColumnValue))
{
return false;
}
for (int i = 0; i < strColumnTag.Length; i++)
{
if (!table.Columns.Contains(strColumnTag[i]))
{
return false;
}
}
string strText = "";
object objValue = null;
cbEdt.Items.Clear();
if (bNull)
{
cbEdt.Items.Add(null, "");
}
Hashtable htbl;
for (int i = 0; i < table.Rows.Count; i++)
{
try
{
strText = Convert.ToString(table.Rows[i][strColumnDisplay]);
objValue = table.Rows[i][strColumnValue];
cbEdt.Items.Add(objValue, strText);
htbl = new Hashtable();
for (int j = 0; j < strColumnTag.Length; j++)
{
try
{
if (!htbl.Contains(strColumnTag[j]))
htbl.Add(strColumnTag[j], table.Rows[i][strColumnTag[j]]);
}
catch { }
}
cbEdt.Items[i].Tag = htbl;
}
catch { }
}
return true;
}
public static void InitUserControl(ref UltraDataSource ultDataSource, ref UltraGrid ultraGrid)
{
try
{
int iColumnsCount = ultDataSource.Band.Columns.Count;
object[] obj = new object[iColumnsCount];
ultDataSource.Rows.Clear();
for (int i = 0; i < ultDataSource.Band.Columns.Count; i++)
{
try
{
if (ultDataSource.Band.Columns[i].DataType == typeof(Bitmap) ||
ultDataSource.Band.Columns[i].DataType == typeof(Image))
obj[i] = null;
else if (ultDataSource.Band.Columns[i].DataType == typeof(DateTime))
obj[i] = DBNull.Value;
else if (ultDataSource.Band.Columns[i].DataType == typeof(decimal) ||
ultDataSource.Band.Columns[i].DataType == typeof(double) ||
ultDataSource.Band.Columns[i].DataType == typeof(Single))
obj[i] = 0;
else
obj[i] = "";
}
catch { }
}
ultDataSource.Rows.Add(obj);
ultraGrid.UpdateData();
}
catch { }
}
public static void SetUltraGridCellReadOnly(ref UltraGrid ultraGrid, bool bReadOnly)
{
try
{
for (int i = 0; i < ultraGrid.DisplayLayout.Bands[0].Columns.Count; i++)
{
try
{
ultraGrid.DisplayLayout.Bands[0].Columns[i].CellActivation = (bReadOnly ? Activation.ActivateOnly : Activation.AllowEdit);
ultraGrid.DisplayLayout.Bands[0].Columns[i].CellAppearance.BackColor = (bReadOnly ? Color.LightBlue : Color.White);
}
catch { }
}
}
catch { }
}
public static void ResetUltraDataSource(ref UltraDataSource ultDataSource, ref UltraGrid ultraGrid)
{
try
{
if (ultDataSource.Rows.Count == 0) return;
for (int i = 0; i < ultDataSource.Band.Columns.Count; i++)
{
try
{
if (ultDataSource.Band.Columns[i].DataType == typeof(Bitmap) ||
ultDataSource.Band.Columns[i].DataType == typeof(Image))
ultDataSource.Rows[0][i] = null;
else if (ultDataSource.Band.Columns[i].DataType == typeof(DateTime))
ultDataSource.Rows[0][i] = DBNull.Value;
else if (ultDataSource.Band.Columns[i].DataType == typeof(decimal) ||
ultDataSource.Band.Columns[i].DataType == typeof(double) ||
ultDataSource.Band.Columns[i].DataType == typeof(Single))
ultDataSource.Rows[0][i] = 0;
else
ultDataSource.Rows[0][i] = "";
}
catch { }
}
ultraGrid.UpdateData();
}
catch { }
}
public static void SetDataSourceValue(ref UltraDataSource ultDataSource, ref UltraGrid ultraGrid, Hashtable Values)
{
try
{
if (ultDataSource.Rows.Count == 0 || Values == null) return;
string Key = "";
ArrayList Keys = new ArrayList(Values.Keys);
for (int i = 0; i < Keys.Count; i++)
{
try
{
Key = Keys[i].ToString();
ultDataSource.Rows[0][Key] = Values[Key];
}
catch { }
}
ultraGrid.UpdateData();
}
catch { }
}
public static ValueList InitValueListComparisonOperator()
{
ValueList vlist_ComparisonOperator = new ValueList();
vlist_ComparisonOperator.ValueListItems.Add(" = ", "等于");
vlist_ComparisonOperator.ValueListItems.Add(" > ", "大于");
vlist_ComparisonOperator.ValueListItems.Add(" >= ", "大于等于");
vlist_ComparisonOperator.ValueListItems.Add(" < ", "小于");
vlist_ComparisonOperator.ValueListItems.Add(" <= ", "小于等于");
vlist_ComparisonOperator.ValueListItems.Add(" <> ", "不等于");
return vlist_ComparisonOperator;
}
public static ValueList InitValueListLgic()
{
ValueList vlist_Logic = new ValueList();
vlist_Logic.ValueListItems.Add("1", "是");
vlist_Logic.ValueListItems.Add("0", "否");
return vlist_Logic;
}
public static ValueList GetValuelistBanci()
{
ValueList vlist = new ValueList();
try
{
//两班倒
vlist.ValueListItems.Add("3", "大夜");
vlist.ValueListItems.Add("1", "白班");
vlist.ValueListItems.Add("2", "小夜");
}
catch { }
return vlist;
}
public static ValueList GetValuelistBanzu()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("1", "甲班");
vlist.ValueListItems.Add("2", "乙班");
vlist.ValueListItems.Add("3", "丙班");
vlist.ValueListItems.Add("4", "丁班");
}
catch { }
return vlist;
}
public static string GetShiftClass(string strCode)
{
try
{
switch (strCode)
{
//两班倒
case "1":
return "白班";
case "3":
return "大夜";
case "2":
return "小夜";
default:
return "";
}
}
catch { }
return "";
}
public static string GetShiftGroup(string strCode)
{
try
{
switch (strCode)
{
case "1":
return "甲班";
case "2":
return "乙班";
case "3":
return "丙班";
case "4":
return "丁班";
default:
return "";
}
}
catch { }
return "";
}
public static bool IsValidShiftClass(string strCode)
{
return (strCode.Equals("1") || strCode.Equals("2") || strCode.Equals("3"));
}
public static bool IsValidShiftGroup(string strCode)
{
return (strCode.Equals("1") || strCode.Equals("2") || strCode.Equals("3") || strCode.Equals("4"));
}
public static DataSet GetProductInfo(OpeBase ob)
{
string strInfo = "产品";
string strSql = "";
strSql += Convert.ToString("select t.producttypecode basecode, t.producttypename basename").Trim() + " ";
strSql += Convert.ToString(" from (select *").Trim() + " ";
strSql += Convert.ToString(" from lims.com_producttype_gh t").Trim() + " ";
strSql += Convert.ToString(" start with t.sortcode not in").Trim() + " ";
strSql += Convert.ToString(" (select distinct t.producttypecode").Trim() + " ";
strSql += Convert.ToString(" from lims.com_producttype_gh t)").Trim() + " ";
strSql += Convert.ToString(" connect by prior t.producttypecode = t.sortcode) t").Trim() + " ";
strSql += Convert.ToString(" where t.flag = '0'").Trim() + " ";
strSql += Convert.ToString(" order by t.producttypecode").Trim();
return GetDataCommon(strSql, strInfo, ob);
}
public static DataSet GetProductSortInfo(OpeBase ob)
{
string strInfo = "产品类别";
string strSql = "select * from com_base_info t where t.sortcode = '2051' and t.memo in ('200601', '200602', '200603') order by t.basecode";
return GetDataCommon(strSql, strInfo, ob);
}
public static DataSet GetCustomerInfo(OpeBase ob)
{
string strInfo = "客户";
string strSql = "select t.buyer_id, t.buyer_name from slm_buyerinfo t order by t.buyer_name";
return GetDataCommon(strSql, strInfo, ob);
}
public static DataSet GetSteelInfo(string strLargeFlag, OpeBase ob)
{
string strInfo = "牌号";
string strSql = "";
strSql += Convert.ToString("select t.steelcode, t.steel steel, t.style largeflag").Trim() + " ";
strSql += Convert.ToString(" from com_steel t").Trim() + " ";
strSql += Convert.ToString(" where 1 = 1").Trim() + " " + (string.IsNullOrEmpty(strLargeFlag) ? "" : " and t.steeltype = '" + strLargeFlag + "' ");
strSql += Convert.ToString(" order by t.style, t.steel").Trim();
return GetDataCommon(strSql, strInfo, ob);
}
public static DataSet GetBaseInfo(string strSortCode, OpeBase ob)
{
string strInfo = "基础";
string strSql = "select t.basecode, t.basename, t.sortcode"
+ " from com_base_info t"
+ " where 1 = 1"
+ " and t.sortcode in (" + strSortCode + ") "
+ " order by t.sortcode, t.basename";
return GetDataCommon(strSql, strInfo, ob);
}
public static DataSet GetBaseInfo1(string strSortCode,string strCkType, OpeBase ob)
{
string strInfo = "";
string strSql = " select t.buttressno, (select buttressname from ydm_bs_buttressconfig where buttressno = t.buttressno) buttressname from ydm_bs_buttressconfig t ,com_base_info t1 where t.managementno='" + strSortCode + "' "
+ " and t.storagesort='A' and t.storageattr=t1.basecode and t1.cktype='" + strCkType + "'";
return GetDataCommon(strSql, strInfo, ob);
}
public static DataSet GetBaseInfoRecursive(string strInfo, string strSortCode, CodeName eCodeName, OpeBase ob)
{
string strSql = "select t.basecode, t.basename"
+ " from (select *"
+ " from com_base_info t"
+ " start with t.sortcode = '" + strSortCode + "'"
+ " connect by prior t.basecode = t.sortcode) t"
+ " where t.flag = '0'"
+ " order by " + (eCodeName == CodeName.Code ? "t.basecode" : "t.basename");
return GetDataCommon(strSql, strInfo, ob);
}
public static ValueList GetValuelistWeightStatus()
{
ValueList vlist = new ValueList();
try
{
vlist.ValueListItems.Add("01", "轧钢库");
vlist.ValueListItems.Add("02", "移送待接收");
vlist.ValueListItems.Add("03", "物流库");
vlist.ValueListItems.Add("04", "退库待接收");
}
catch { }
return vlist;
}
public static ValueList GeneralValuelist(ref Hashtable htbl)
{
if (htbl == null)
{
return null;
}
ArrayList alist = new ArrayList(htbl.Keys);
ValueList vlist = new ValueList();
for (int i = 0; i < alist.Count; i++)
{
try
{
if (htbl.Contains(alist[i]))
{
vlist.ValueListItems.Add(alist[i], Convert.ToString(htbl[alist[i]]));
}
}
catch { }
}
return vlist;
}
public static ValueList GeneralValuelist(ref DataTable table, string strKey, string strText)
{
if (table == null || !table.Columns.Contains(strKey) || !table.Columns.Contains(strText))
{
return null;
}
ArrayList alist = new ArrayList();
ValueList vlist = new ValueList();
for (int i = 0; i < table.Rows.Count; i++)
{
try
{
if (!alist.Contains(table.Rows[i][strKey]))
{
alist.Add(table.Rows[i][strKey]);
vlist.ValueListItems.Add(table.Rows[i][strKey], Convert.ToString(table.Rows[i][strText]));
}
}
catch { }
}
return vlist;
}
public static void SetGridValuelist(ref UltraGrid myGrid, string strColumn, ref ValueList vlist)
{
try
{
if (GridContainsColumn(ref myGrid, strColumn))
{
myGrid.DisplayLayout.Bands[0].Columns[strColumn].ValueList = vlist;
}
}
catch { }
finally
{
myGrid.DisplayLayout.Bands[0].Columns[strColumn].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
}
public static void SetGridValuelist(ref UltraGrid myGrid, int BandIndex, string strColumn, ref ValueList vlist)
{
try
{
if (GridContainsColumn(ref myGrid, BandIndex, strColumn))
{
myGrid.DisplayLayout.Bands[BandIndex].Columns[strColumn].ValueList = vlist;
}
}
catch { }
finally
{
myGrid.DisplayLayout.Bands[BandIndex].Columns[strColumn].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList;
}
}
public static Point SetChildWindowLocation(Size ChildWindowSize)
{
int width = Cursor.Position.X + ChildWindowSize.Width - Screen.PrimaryScreen.Bounds.Width;
int height = Cursor.Position.Y + ChildWindowSize.Height - Screen.PrimaryScreen.Bounds.Height + 30;
width = (width > 0) ? (Cursor.Position.X - width) : Cursor.Position.X; // X坐标
height = (height > 0) ? (Cursor.Position.Y - height + 10) : (Cursor.Position.Y + 10); // Y坐标
return new Point(width, height);
}
public static void FixedWeightInfoHeaders(ref UltraGrid ultraGrid, ArrayList alistColumns)
{
try
{
if (ultraGrid == null || alistColumns == null || alistColumns.Count == 0)
{
return;
}
ultraGrid.DisplayLayout.UseFixedHeaders = true;
for (int i = 0; i < alistColumns.Count; i++)
{
try
{
if (GridContainsColumn(ref ultraGrid, alistColumns[i].ToString()))
{
ultraGrid.DisplayLayout.Bands[0].Columns[alistColumns[i].ToString()].Header.Fixed = true;
ultraGrid.DisplayLayout.Bands[0].Columns[alistColumns[i].ToString()].Header.FixedHeaderIndicator = FixedHeaderIndicator.None;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
public static void FixedWeightInfoHeaders(ref UltraGrid ultraGrid, int BandIndex, ArrayList alistColumns)
{
try
{
if (ultraGrid == null || alistColumns == null || alistColumns.Count == 0 ||
BandIndex < 0 || BandIndex > ultraGrid.DisplayLayout.Bands.Count - 1)
{
return;
}
ultraGrid.DisplayLayout.UseFixedHeaders = true;
for (int i = 0; i < alistColumns.Count; i++)
{
try
{
if (GridContainsColumn(ref ultraGrid, alistColumns[i].ToString()))
{
ultraGrid.DisplayLayout.Bands[BandIndex].Columns[alistColumns[i].ToString()].Header.Fixed = true;
ultraGrid.DisplayLayout.Bands[BandIndex].Columns[alistColumns[i].ToString()].Header.FixedHeaderIndicator = FixedHeaderIndicator.None;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
public static void SetGridColumnsReadOnly(ref UltraGrid ultraGrid, ArrayList alistAllowEdit, ArrayList alistActivateOnly, ArrayList alistNoEdit, ArrayList alistDisabled)
{
try
{
for (int i = 0; i < ultraGrid.Rows.Count; i++)
{
if (alistAllowEdit != null && alistAllowEdit.Count > 0)
{
for (int j = 0; j < alistAllowEdit.Count; j++)
{
try
{
if (GridContainsColumn(ref ultraGrid, alistAllowEdit[j].ToString()))
{
ultraGrid.Rows[i].Cells[alistAllowEdit[j].ToString()].Activation = Activation.AllowEdit;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
if (alistActivateOnly != null && alistActivateOnly.Count > 0)
{
for (int j = 0; j < alistActivateOnly.Count; j++)
{
try
{
if (GridContainsColumn(ref ultraGrid, alistActivateOnly[j].ToString()))
{
ultraGrid.Rows[i].Cells[alistActivateOnly[j].ToString()].Activation = Activation.ActivateOnly;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
if (alistNoEdit != null && alistNoEdit.Count > 0)
{
for (int j = 0; j < alistNoEdit.Count; j++)
{
try
{
if (GridContainsColumn(ref ultraGrid, alistNoEdit[j].ToString()))
{
ultraGrid.Rows[i].Cells[alistNoEdit[j].ToString()].Activation = Activation.NoEdit;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
if (alistDisabled != null && alistDisabled.Count > 0)
{
for (int j = 0; j < alistDisabled.Count; j++)
{
try
{
if (GridContainsColumn(ref ultraGrid, alistDisabled[j].ToString()))
{
ultraGrid.Rows[i].Cells[alistDisabled[j].ToString()].Activation = Activation.Disabled;
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
public static bool HasCheckedRows(ref UltraGrid ultraGrid, string strColumnCondition, object value, string strOutColumn, out ArrayList alistValue, out string strMsg)
{
strMsg = "";
alistValue = new ArrayList();
try
{
if (ultraGrid == null || ultraGrid.Rows.Count == 0)
{
return false;
}
if (!string.IsNullOrEmpty(strColumnCondition))
{
if (!GridContainsColumn(ref ultraGrid, 0, strColumnCondition))
{
strMsg = "不存在条件字段【" + strColumnCondition + "】!";
return false;
}
}
if (string.IsNullOrEmpty(strOutColumn))
{
strMsg = "未指定输出字段【" + strOutColumn + "】!";
return false;
}
if (!GridContainsColumn(ref ultraGrid, 0, strOutColumn))
{
strMsg = "不存在输出字段【" + strOutColumn + "】!";
return false;
}
for (int i = 0; i < ultraGrid.Rows.Count; i++)
{
if (!string.IsNullOrEmpty(strColumnCondition))
{
if (ultraGrid.Rows[i].Cells[strColumnCondition].Value.Equals(value))
{
alistValue.Add(ultraGrid.Rows[i].Cells[strOutColumn].Value);
}
}
else
{
alistValue.Add(ultraGrid.Rows[i].Cells[strOutColumn].Value);
}
}
return true;
}
catch (Exception ex)
{
strMsg = ex.Message;
alistValue = null;
}
return false;
}
public static void SetUltraGridAppearance(Control Parent)
{
UltraGrid grid = null;
foreach (Control ctrl in Parent.Controls)
{
try
{
if (ctrl.GetType().Equals(typeof(UltraGrid)))
{
grid = (UltraGrid)ctrl;
if (grid == null)
{
continue;
}
try
{
if (grid.DisplayLayout.Bands.Count > 0)
{
if (grid.DisplayLayout.Bands[0].CardView)
{
continue;
}
grid.DisplayLayout.UseFixedHeaders = true;
grid.DisplayLayout.ViewStyleBand = ViewStyleBand.Vertical;
grid.DisplayLayout.GroupByBox.Prompt = "将需要分组的列拖到此处";
grid.DisplayLayout.Override.MaxSelectedRows = 0;
grid.DisplayLayout.Override.SelectTypeRow = SelectType.Single;
grid.DisplayLayout.Override.SelectTypeCol = SelectType.None;
grid.DisplayLayout.Override.BorderStyleCell = UIElementBorderStyle.Solid;
grid.DisplayLayout.Override.BorderStyleRow = UIElementBorderStyle.Solid;
grid.DisplayLayout.Override.WrapHeaderText = DefaultableBoolean.True;
grid.DisplayLayout.Override.DataErrorRowAppearance.BackColor = Color.Lime;
grid.DisplayLayout.Override.SupportDataErrorInfo = SupportDataErrorInfo.RowsOnly;
grid.DisplayLayout.CaptionVisible = DefaultableBoolean.False;
grid.DisplayLayout.Override.HeaderStyle = HeaderStyle.Standard;
grid.DisplayLayout.Override.MinRowHeight = 22;
grid.DisplayLayout.Override.RowSelectors = DefaultableBoolean.True;
grid.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.RowIndex;
grid.DisplayLayout.Override.CellClickAction = CellClickAction.EditAndSelectText;
grid.DisplayLayout.Override.ActiveRowAppearance.FontData.Bold = DefaultableBoolean.True;
grid.DisplayLayout.Override.ActiveRowAppearance.ForeColor = Color.Empty;
grid.DisplayLayout.Override.ActiveRowAppearance.BackColor = Color.Empty;
grid.DisplayLayout.Override.RowAppearance.BackColor = Color.White;
grid.DisplayLayout.Override.RowAppearance.BorderColor = Color.DarkGray;
grid.DisplayLayout.Override.RowAppearance.TextVAlign = VAlign.Middle;
grid.DisplayLayout.Override.RowAlternateAppearance.BackColor = Color.GhostWhite;// Color.FromArgb(229, 255, 229);
grid.DisplayLayout.Override.RowSelectorAppearance.BackColor = Color.LightSteelBlue;
grid.DisplayLayout.Override.HeaderAppearance.BackColor = Color.LightSteelBlue;
}
}
catch { }
try
{
if (grid.DisplayLayout.Bands.Count > 1)
{
grid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackColor = Color.FromArgb(233, 242, 199);
grid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackColor = Color.FromArgb(170, 184, 131);
grid.DisplayLayout.Bands[1].Override.HeaderAppearance.BackGradientStyle = GradientStyle.Vertical;
grid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackColor = Color.FromArgb(233, 242, 199);
grid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackColor = Color.FromArgb(170, 184, 131);
grid.DisplayLayout.Bands[1].Override.RowSelectorAppearance.BackGradientStyle = GradientStyle.Vertical;
}
}
catch { }
try
{
foreach (UltraGridBand band in grid.DisplayLayout.Bands)
{
band.Override.AllowRowLayoutCellSizing = RowLayoutSizing.None;
band.Override.AllowRowLayoutCellSpanSizing = GridBagLayoutAllowSpanSizing.None;
band.Override.AllowRowLayoutColMoving = GridBagLayoutAllowMoving.None;
band.Override.AllowRowLayoutLabelSizing = RowLayoutSizing.Horizontal;
band.Override.AllowRowLayoutLabelSpanSizing = GridBagLayoutAllowSpanSizing.None;
}
}
catch { }
try
{
grid.KeyDown += new KeyEventHandler(grid_KeyDown);
}
catch { }
try
{
grid.DoubleClickCell += new DoubleClickCellEventHandler(grid_DoubleClickCell);
}
catch { }
if (grid.DataSource != null)
RefreshAndAutoSize(grid);
}
else
{
SetUltraGridAppearance(ctrl);
}
}
catch (Exception ex)
{
Debug.WriteLine(ex.Message);
}
}
}
public static bool GetHashtableMinKeyValue(Hashtable htbl, out int iValue)
{
iValue = 0;
if (htbl == null || htbl.Count == 0)
{
return false;
}
try
{
ArrayList alist = new ArrayList(htbl.Keys);
int iKey = 0;
for (int idx = 0; idx < alist.Count; idx++)
{
if (idx == 0)
{
iKey = Convert.ToInt32(alist[idx]);
iValue = Convert.ToInt32(htbl[alist[idx]]);
}
else if (Convert.ToInt32(alist[idx]) < iKey)
{
iKey = Convert.ToInt32(alist[idx]);
iValue = Convert.ToInt32(htbl[alist[idx]]);
}
}
return true;
}
catch
{
return false;
}
}
public static bool GetHashtableMaxKeyValue(Hashtable htbl, out int iValue)
{
iValue = 0;
if (htbl == null || htbl.Count == 0)
{
return false;
}
try
{
ArrayList alist = new ArrayList(htbl.Keys);
int iKey = 0;
for (int idx = 0; idx < alist.Count; idx++)
{
if (idx == 0)
{
iKey = Convert.ToInt32(alist[idx]);
iValue = Convert.ToInt32(htbl[alist[idx]]);
}
else if (Convert.ToInt32(alist[idx]) > iKey)
{
iKey = Convert.ToInt32(alist[idx]);
iValue = Convert.ToInt32(htbl[alist[idx]]);
}
}
return true;
}
catch
{
return false;
}
}
#region ultraGrid事件
static void grid_KeyDown(object sender, KeyEventArgs e)
{
try
{
UltraGrid grid = (UltraGrid)sender;
if (sender == null)
{
return;
}
UltraGridCell cell = grid.ActiveCell;
if (cell != null)
{
bool bOK = false;
int iRow = cell.Row.Index;
int iColumn = cell.Column.Index;
if (e.KeyCode == Keys.Up)
{
iRow--;
if (iRow >= 0)
{
bOK = true;
}
}
else if (e.KeyCode == Keys.Down)
{
iRow++;
if (cell.Band.Index == 0)
{
if (iRow <= grid.Rows.Count - 1)
{
bOK = true;
}
}
else
{
if (iRow <= cell.Row.ParentRow.ChildBands[cell.Band.Key].Rows.Count - 1)
{
bOK = true;
}
}
}
else if (e.KeyCode == Keys.Left)
{
Hashtable htbl = new Hashtable();
int iCurr = cell.Column.RowLayoutColumnInfo.OriginX;
for (int i = 0; i < cell.Band.Columns.Count; i++)
{
if (!cell.Band.Columns[i].Hidden && cell.Band.Columns[i].RowLayoutColumnInfo.LabelPosition != LabelPosition.LabelOnly)
{
if (cell.Band.Columns[i].RowLayoutColumnInfo.OriginX < iCurr)
{
if (!htbl.Contains(cell.Band.Columns[i].RowLayoutColumnInfo.OriginX))
{
htbl.Add(cell.Band.Columns[i].RowLayoutColumnInfo.OriginX, cell.Band.Columns[i].Index);
}
}
}
}
if (GetHashtableMaxKeyValue(htbl, out iColumn))
{
bOK = true;
}
}
else if (e.KeyCode == Keys.Right)
{
Hashtable htbl = new Hashtable();
int iCurr = cell.Column.RowLayoutColumnInfo.OriginX;
for (int i = 0; i < cell.Band.Columns.Count; i++)
{
if (!cell.Band.Columns[i].Hidden && cell.Band.Columns[i].RowLayoutColumnInfo.LabelPosition != LabelPosition.LabelOnly)
{
if (cell.Band.Columns[i].RowLayoutColumnInfo.OriginX > iCurr)
{
if (!htbl.Contains(cell.Band.Columns[i].RowLayoutColumnInfo.OriginX))
{
htbl.Add(cell.Band.Columns[i].RowLayoutColumnInfo.OriginX, cell.Band.Columns[i].Index);
}
}
}
}
if (GetHashtableMinKeyValue(htbl, out iColumn))
{
bOK = true;
}
}
if (bOK)
{
if (cell.Band.Index == 0)
{
grid.ActiveCell = grid.Rows[iRow].Cells[iColumn];
}
else
{
grid.ActiveCell = cell.Row.ParentRow.ChildBands[cell.Band.Key].Rows[iRow].Cells[iColumn];
}
grid.PerformAction(UltraGridAction.EnterEditMode);
}
}
}
catch { }
}
static void grid_DoubleClickCell(object sender, DoubleClickCellEventArgs e)
{
try
{
if (e.Cell.Row.HasChild())
{
if (e.Cell.Row.IsExpanded)
{
e.Cell.Row.CollapseAll();
}
else
{
e.Cell.Row.ExpandAll();
}
}
}
catch { }
}
#endregion
public static bool IPCheck(string IP)
{
string Segment = @"(25[0-5]|2[0-4]\d|1\d\d|[1-9]?\d)";
return Regex.IsMatch(IP, ("^" + Segment + @"\." + Segment + @"\." + Segment + @"\." + Segment + "$"));
}
public static bool Pinging(string IP)
{
try
{
Ping ping = new Ping();
PingOptions options = new PingOptions();
options.DontFragment = true;
byte[] buffer = Encoding.ASCII.GetBytes("TEST PING");
PingReply reply = ping.Send(IP, 3000, buffer, options);
if (reply.Status == IPStatus.Success)
{
return true;
}
}
catch { }
return false;
}
public static bool CheckComboBoxSelection(UltraComboEditor cbEdit, string Caption, bool MustSelect, bool ShowError, out string Message)
{
Message = "";
try
{
if (cbEdit != null)
{
if (MustSelect)
{
if (cbEdit.SelectedIndex < 0)
{
Message = cbEdit.Text.Trim().Length > 0 ? Caption + "不正确,请从列表中选取!" : "请选择" + Caption + "!";
if (ShowError)
{
MessageBox.Show(Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
return false;
}
}
else
{
if (cbEdit.SelectedIndex < 0 && cbEdit.Text.Trim().Length > 0)
{
Message = Caption + "不正确,请从列表中选取!";
if (ShowError)
{
MessageBox.Show(Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
return false;
}
}
}
return true;
}
catch (Exception ex)
{
Message = Caption + "验证出错!\n" + ex.Message;
if (ShowError)
{
MessageBox.Show(Message, "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
}
return false;
}
}
public static void ResetHashtable(ref Hashtable htbl)
{
if (htbl == null)
{
htbl = new Hashtable();
}
else
{
htbl.Clear();
}
}
public static void ResetArraylist(ref ArrayList alist)
{
if (alist == null)
{
alist = new ArrayList();
}
else
{
alist.Clear();
}
}
public static ValueList GetClassTime(string strClass)
{
ValueList vlist = new ValueList();
try
{
if (strClass == "1" || strClass == "2" || strClass == "3")
{
int iHour = 0;
if (strClass == "1")
{
iHour = 8;
}
else if (strClass == "2")
{
iHour = 16;
}
else if (strClass == "3")
{
iHour = 0;
}
DateTime today = DateTime.Today.AddHours(iHour);
string strValue = "";
for (int i = 0; i < 8; i++)
{
strValue = today.AddHours(i).ToString("HH:mm") + "-" + today.AddHours(i + 1).AddMinutes(-1).ToString("HH:mm");
vlist.ValueListItems.Add(strValue, strValue);
}
}
}
catch { }
return vlist;
}
public static bool GetShift(string DatetimeExpression, out string Shift, OpeBase Ob)
{
string strInfo = "班次";
string strSql = "select mes_lg_common.getlgshift1(" + DatetimeExpression + ") from dual";
DataSet ds = GetDataCommon(strSql, strInfo, Ob);
if (ds != null && ds.Tables.Count > 0 && ds.Tables[0].Rows.Count > 0)
{
Shift = ds.Tables[0].Rows[0][0].ToString();
return true;
}
Shift = "";
return false;
}
public static void SetGridGroupBy(ref UltraGrid myGrid1, bool bAllowGroupBy)
{
try
{
if (!bAllowGroupBy)
{
for (int i = 0; i < myGrid1.DisplayLayout.Bands[0].Columns.Count; i++)
{
try
{
if (myGrid1.DisplayLayout.Bands[0].Columns[i].IsGroupByColumn)
myGrid1.DisplayLayout.Bands[0].Columns[i].ResetIsGroupByColumn();
}
catch { }
}
}
myGrid1.DisplayLayout.GroupByBox.Hidden = !bAllowGroupBy;
}
catch { }
}
public static void SetUltraGridRowFilter(ref UltraGrid myGrid1, bool bAllowFilter)
{
try
{
if (bAllowFilter)
{
if (myGrid1.DisplayLayout.Override.FilterUIType != FilterUIType.FilterRow)
myGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.FilterRow;
for (int i = 0; i < myGrid1.DisplayLayout.Bands.Count; i++)
{
for (int j = 0; j < myGrid1.DisplayLayout.Bands[i].Columns.Count; j++)
{
try
{
if (!myGrid1.DisplayLayout.Bands[i].Columns[j].Hidden &&
myGrid1.DisplayLayout.Bands[i].Columns[j].RowLayoutColumnInfo.LabelPosition != LabelPosition.LabelOnly)
myGrid1.DisplayLayout.Bands[i].Columns[j].AllowRowFiltering = Infragistics.Win.DefaultableBoolean.True;
}
catch { }
}
}
}
else
{
if (myGrid1.DisplayLayout.Override.FilterUIType != FilterUIType.HeaderIcons)
myGrid1.DisplayLayout.Override.FilterUIType = FilterUIType.HeaderIcons;
for (int i = 0; i < myGrid1.DisplayLayout.Bands.Count; i++)
{
try
{
myGrid1.DisplayLayout.Bands[i].ColumnFilters.ClearAllFilters();
}
catch { }
for (int j = 0; j < myGrid1.DisplayLayout.Bands[i].Columns.Count; j++)
{
try
{
myGrid1.DisplayLayout.Bands[i].Columns[j].AllowRowFiltering = Infragistics.Win.DefaultableBoolean.False;
}
catch { }
}
}
}
}
catch { }
}
public static void SetUltraGridRowSort(ref UltraGrid myGrid1, bool bAllowSort)
{
try
{
if (bAllowSort)
{
myGrid1.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.SortMulti;
}
else
{
for (int i = 0; i < myGrid1.DisplayLayout.Bands.Count; i++)
{
try
{
for (int j = 0; j < myGrid1.DisplayLayout.Bands[i].Columns.Count; j++)
{
myGrid1.DisplayLayout.Bands[i].Columns[j].SortIndicator = SortIndicator.None;
}
}
catch { }
}
myGrid1.DisplayLayout.Override.HeaderClickAction = HeaderClickAction.Default;
}
}
catch { }
}
public static void SetStaticsInfoSum(ref UltraGrid myGrid1, ArrayList alistColumns, bool clearExists)
{
try
{
UltraGridBand band = myGrid1.DisplayLayout.Bands[0];
if (clearExists)
band.Summaries.Clear();
band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
for (int i = 0; i < alistColumns.Count; i++)
{
try
{
SummarySettings summary = band.Summaries.Add(SummaryType.Sum, band.Columns[alistColumns[i].ToString()]);
summary.SummaryDisplayArea = SummaryDisplayAreas.BottomFixed;
summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
summary.DisplayFormat = "{0}";
summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
summary.Appearance.TextVAlign = Infragistics.Win.VAlign.Middle;
summary.Appearance.FontData.Bold = DefaultableBoolean.True;
}
catch { }
}
}
catch { }
}
public static void SetUltraGridActiveCell(ref UltraGrid ultraGrid, int RowIndexNo, string ColumnName, bool EnterEditMode)
{
try
{
if (ultraGrid != null && RowIndexNo >= 0 && ultraGrid.Rows.Count >= RowIndexNo + 1)
{
ultraGrid.ActiveCell = ultraGrid.Rows[RowIndexNo].Cells[ColumnName];
if (EnterEditMode)
ultraGrid.PerformAction(UltraGridAction.EnterEditMode);
}
}
catch { }
}
public static string GetOracleDebugMethod(object[] ar)
{
string retstr = "";
Int32 num = 1;
//获取数组类型存储过程的 数组调试参数
for (Int32 i = 0; i < ar.Length; i++)
{
if (ar[i] is ArrayList)
{
retstr = retstr + "v" + num.ToString() + " str_ary_type:=new str_ary_type(";
for (Int32 s = 0; s < ((ArrayList)ar[i]).Count; s++)
{
retstr = retstr + "'" + ((ArrayList)ar[i])[s] + "',";
}
retstr = retstr.Substring(0, retstr.Length - 1) + ");\n";
num = num + 1;
}
else
{
retstr = retstr + "v" + num.ToString() + " varchar2(50):= '" + ar[i].ToString() + "';\n";
num = num + 1;
}
}
return retstr;
}
}
}