| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548 |
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Text;
- using Infragistics.Win.UltraWinGrid;
- using System.Drawing;
- using System.Collections;
- using Infragistics.Win.UltraWinEditors;
- using System.Data;
- using Core.Mes.Client.Comm.Server;
- using CoreFS.CA06;
- using Infragistics.Win.UltraWinMaskedEdit;
- using Infragistics.Win;
- using System.Text.RegularExpressions;
- using System.Speech.Synthesis;
- namespace Core.StlMes.Client.PipeLeaveFactory.Tool
- {
- public static class BaseHelper
- {
- /// <summary>
- /// UltraGrid可读
- /// </summary>
- /// <param name="ugr">UltraGrid</param>
- /// <param name="keys">可编辑列</param>
- public static void setOtherColumnReadOnly(UltraGrid ugr, string[] keys)
- {
- keys.ToArray();
- foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns)
- {
- if (!keys.Contains(ugc.Key))
- {
- ugc.CellActivation = Activation.ActivateOnly;
- }
- }
- }
- /// <summary>
- /// UltraGrid可读
- /// </summary>
- /// <param name="ugr">UltraGrid</param>
- /// <param name="keys">可编辑列</param>
- public static void setOtherColumnReadOnlyN(UltraGrid ugr, string[] keys)
- {
- keys.ToArray();
- foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[0].Columns)
- {
- if (!keys.Contains(ugc.Key))
- {
- ugc.CellActivation = Activation.ActivateOnly;
- }
- }
- foreach (UltraGridColumn ugc in ugr.DisplayLayout.Bands[1].Columns)
- {
- if (!keys.Contains(ugc.Key))
- {
- ugc.CellActivation = Activation.ActivateOnly;
- }
- }
- }
- /// <summary>
- /// UltraGrid激活某行
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="keys">列名</param>
- /// <param name="values">对应的值</param>
- public static void UltraGridLocation(UltraGrid ug, String[] keys, String[] values)
- {
- if (ug.Rows.Count == 0)
- {
- return;
- }
- if (keys.Length == 0 || values.Length == 0 || values.Length != keys.Length)
- {
- return;
- }
- foreach (UltraGridRow ugr in ug.Rows)
- {
- Boolean flag = true;
- for (int i = 0; i < keys.Length; i++)
- {
- if (!ugr.Cells[keys[i]].Value.ToString().Equals(values[i]))
- {
- flag = false;
- }
- }
- if (flag == true)
- {
- ugr.Activate();
- return;
- }
- }
- }
- /// <summary>
- /// 设置列字段显示位置在右
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="columnsKeys">要设置的列</param>
- public static void InitCellPosition(UltraGrid ug, string[] columnsKeys)
- {
- columnsKeys.ToArray();
- foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
- {
- if (columnsKeys.Contains(ugc.Key.ToString()))
- {
- ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
- }
- }
- }
- /// <summary>
- /// 设置列字段显示位置在右
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="columnsKeys">要设置的列</param>
- public static void InitCellPosition(UltraGrid ug, string[] columnsKeys, string[] columnsChildKeys)
- {
- columnsKeys.ToArray();
- foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
- {
- if (columnsKeys.Contains(ugc.Key.ToString()))
- {
- ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
- }
- }
- if (columnsChildKeys.Length > 0)
- {
- columnsChildKeys.ToArray();
- foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[1].Columns)
- {
- if (columnsChildKeys.Contains(ugc.Key.ToString()))
- {
- ugc.CellAppearance.TextHAlign = Infragistics.Win.HAlign.Right;
- }
- }
- }
- }
- /// <summary>
- /// 列求和
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="columnKeys">列数组</param>
- public static void GridColumnSum(UltraGrid ug, string[] columnKeys, string[] descritions)
- {
- if (columnKeys.Length == 0 || descritions.Length != columnKeys.Length)
- {
- return;
- }
- for (int i = 0; i < columnKeys.Length; i++)
- {
- SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
- summary.DisplayFormat = "{0}"+ descritions[i];
- summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
- }
- }
- /// <summary>
- /// 列求和重量
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="columnKeys">列数组(重量)</param>
- public static void GridColumnSum(UltraGrid ug, string[] columnKeys)
- {
- if (columnKeys.Length == 0 )
- {
- return;
- }
- for (int i = 0; i < columnKeys.Length; i++)
- {
- SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
- summary.DisplayFormat = "{0:N3}";
- summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
- }
- }
- /// <summary>
- /// 列求和支数
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="columnKeys">列数组(支)</param>
- public static void GridColumnCount(UltraGrid ug, string[] columnKeys)
- {
- if (columnKeys.Length == 0)
- {
- return;
- }
- for (int i = 0; i < columnKeys.Length; i++)
- {
- SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
- summary.DisplayFormat = "{0:N0}";
- summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
- }
- }
- /// <summary>
- /// 列求和长度
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="columnKeys">列数组(长度)</param>
- public static void GridColumnCountLen(UltraGrid ug, string[] columnKeys)
- {
- if (columnKeys.Length == 0)
- {
- return;
- }
- for (int i = 0; i < columnKeys.Length; i++)
- {
- SummarySettings summary = ug.DisplayLayout.Bands[0].Summaries.Add(SummaryType.Sum, ug.DisplayLayout.Bands[0].Columns[columnKeys[i]], SummaryPosition.UseSummaryPositionColumn);
- summary.DisplayFormat = "{0:N3}";
- summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
- }
- }
- /// <summary>
- /// 设置UltraGrid行颜色
- /// </summary>
- /// <param name="ug">UltraGrid</param>
- /// <param name="columnKeys">列</param>
- /// <param name="values">值</param>
- /// <param name="color">颜色</param>
- public static void SetUltraGridRowColor(UltraGrid ug, string[] columnKeys, string[] values, Color color)
- {
- if (ug.Rows.Count == 0 || columnKeys.Length == 0 || values.Length == 0 || color == null || values.Length != columnKeys.Length)
- {
- return;
- }
- foreach (UltraGridRow ugr in ug.Rows)
- {
- Boolean flag = true;
- for (int i = 0; i < columnKeys.Length; i++)
- {
- if (!ugr.Cells[columnKeys[i]].Value.ToString().Equals(values[i]))
- {
- flag = false;
- }
- }
- if (flag)
- {
- ugr.Appearance.BackColor = color;
- }
- }
- }
- /// <summary>
- /// 合并单元格
- /// </summary>
- /// <param name="ug"></param>
- /// <param name="columnKeys"></param>
- public static void MergedCell(UltraGrid ug, string[] columnKeys)
- {
- if (columnKeys.Length == 0)
- {
- return;
- }
- ug.DisplayLayout.Override.MergedCellStyle = MergedCellStyle.Never;
- for (int i = 0; i < columnKeys.Length; i++)
- {
- ug.DisplayLayout.Bands[0].Columns[columnKeys[i]].MergedCellStyle = MergedCellStyle.Always;
- }
- }
- /// <summary>
- /// 销售组织权限
- /// </summary>
- /// <param name="validDataPurviewIds">数据权限</param>
- /// <param name="ob"></param>
- /// <returns>字符串数组</returns>
- public static string[] InitPermissions(string[] validDataPurviewIds, OpeBase ob)
- {
- string[] arr = null;
- DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.WarehousePermissions.getSalgPermissions", new object[] { validDataPurviewIds }, ob);
- if (dt != null && dt.Rows.Count > 0)
- {
- arr = new string[dt.Rows.Count];
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- arr[i] = dt.Rows[i][0].ToString();
- }
- }
- return arr;
- }
- /// <summary>
- /// 初始年份
- /// </summary>
- /// <param name="uce"></param>
- public static void InitYear(UltraComboEditor uce)
- {
- DataTable dtYear = new DataTable();
- dtYear.Columns.Add("YEAR");
- for (int i = 2000; i < 2200; i++)
- {
- DataRow dr = dtYear.NewRow();
- dr["YEAR"] = i.ToString();
- dtYear.Rows.Add(dr);
- }
- uce.DataSource = dtYear;
- uce.DisplayMember = "YEAR";
- uce.ValueMember = "YEAR";
- }
- /// <summary>
- /// 初始月份
- /// </summary>
- /// <param name="uce"></param>
- public static void InitMonth(UltraComboEditor uce)
- {
- DataTable dtMonth = new DataTable();
- dtMonth.Columns.Add("MONTH");
- for (int i = 1; i < 13; i++)
- {
- DataRow dr = dtMonth.NewRow();
- dr["MONTH"] = string.Format("{0:00}", i);
- dtMonth.Rows.Add(dr);
- }
- uce.DataSource = dtMonth;
- uce.DisplayMember = "MONTH";
- uce.ValueMember = "MONTH";
- }
- /// <summary>
- /// 订货单位(销售组织权限)
- /// </summary>
- /// <param name="uce"></param>
- /// <param name="jurisdictions"></param>
- public static void InitOrderUnit(UltraComboEditor uce, string[] jurisdictions, OpeBase ob)
- {
- if (jurisdictions.Length == 0)
- {
- uce.DataSource = null;
- return;
- }
- DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.WarehousePermissions.getOrderUnitBySalg", new object[] { jurisdictions }, ob);
- uce.DataSource = dt;
- uce.DisplayMember = "CUSTOMER_NM";
- uce.ValueMember = "CUSTOMER_NO";
- }
- /// <summary>
- /// 收货单位(销售组织权限)
- /// </summary>
- /// <param name="uce"></param>
- /// <param name="jurisdictions"></param>
- public static void InitReceivingUnit(UltraComboEditor uce, string[] jurisdictions, OpeBase ob)
- {
- if (jurisdictions.Length == 0)
- {
- uce.DataSource = null;
- return;
- }
- DataTable dt = ServerHelper.GetData("com.steering.pss.ydm.base.WarehousePermissions.getReceivingUnitBySalg", new object[] { jurisdictions }, ob);
- uce.DataSource = dt;
- uce.DisplayMember = "CUSTOMER_NM";
- uce.ValueMember = "CUSTOMER_NO";
- }
- /// <summary>
- /// 设置ULTRAGIRD列的颜色
- /// </summary>
- /// <param name="ug">ultragrid</param>
- /// <param name="arr">列Key</param>
- /// <param name="color">颜色</param>
- public static void setUltraGridColumnColor(UltraGrid ug, string[] arr, Color color)
- {
- if (arr == null || arr.Length == 0 || ug == null)
- {
- return;
- }
- arr.ToArray();
- foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
- {
- if (arr.Contains(ugc.Key.ToString()))
- {
- ugc.CellAppearance.BackColor = color;
- }
- }
- }
- /// <summary>
- /// 设置列显示位数重量
- /// </summary>
- /// <param name="ug"></param>
- /// <param name="arr"></param>
- public static void setUltraGridColumnMaxInput(UltraGrid ug, string[] arr)
- {
- if (ug == null || arr == null || arr.Length == 0)
- {
- return;
- }
- arr.ToArray();
- foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
- {
- if (arr.Contains(ugc.Key.ToString()))
- {
- ugc.MaskDisplayMode = MaskMode.IncludeLiterals;
- ugc.MaskInput = "{LOC}n,nnn,nnn.nnn";
- }
- }
- }
- /// <summary>
- /// 设置列显示位数长度
- /// </summary>
- /// <param name="ug"></param>
- /// <param name="arr"></param>
- public static void setUltraGridColumnMaxInputLen(UltraGrid ug, string[] arr)
- {
- if (ug == null || arr == null || arr.Length == 0)
- {
- return;
- }
- arr.ToArray();
- foreach (UltraGridColumn ugc in ug.DisplayLayout.Bands[0].Columns)
- {
- if (arr.Contains(ugc.Key.ToString()))
- {
- ugc.MaskDisplayMode = MaskMode.IncludeLiterals;
- ugc.MaskInput = "{LOC}n,nnn,nnn.nnn";
- }
- }
- }
- /// <summary>
- /// 过滤
- /// </summary>
- /// <param name="myGrid1">ultraGrid</param>
- /// <param name="bAllowFilter">true 显示,false 隐藏</param>
- 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++)
- {
- if (myGrid1.DisplayLayout.Bands[i].CardView) continue;
- 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++)
- {
- if (myGrid1.DisplayLayout.Bands[i].CardView) continue;
- 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 { }
- }
- /// <summary>
- /// 获取指定的料位号信息
- /// </summary>
- /// <param name="sortCode">快速索引码,参数数组</param>
- /// <param name="ob">界面OB对象</param>
- /// <returns></returns>
- public static DataTable getLocationInfo(ArrayList sortCode, OpeBase ob)
- {
- return ServerHelper.GetData("com.steering.pss.ydm.pipemanage.PipeManageClassInfo.queryLocation", new object[] { sortCode }, ob);
- }
- /// <summary>
- /// 绑定指定的目标仓库号
- /// </summary>
- /// <param name="sortCode">快速索引码,参数数组</param>
- /// <param name="cmb">需填充的控件</param>
- /// <param name="ob">界面OB对象</param>
- public static void BindLocationInfo(ArrayList sortCode, UltraComboEditor cmb, OpeBase ob)
- {
- DataTable table = getLocationInfo(sortCode, ob);
- cmb.DataSource = table;
- cmb.ValueMember = "LOCATION_NO";
- cmb.DisplayMember = "LOCATION_NAME";
- SetComboItemHeight(cmb);
- }
- /// <summary>
- /// 设置UltraComboEditor中的中文和非中文统一高度。
- /// </summary>
- /// <param name="cmb"></param>
- public static void SetComboItemHeight(UltraComboEditor cmb)
- {
- cmb.Update();
- foreach (ValueListItem item in cmb.Items)
- {
- if (Regex.IsMatch(item.DisplayText, @"[\u4e00-\u9fa5]+"))
- {
- item.Appearance.FontData.SizeInPoints = 9.0F;
- }
- else
- {
- item.Appearance.FontData.SizeInPoints = 10.5F;
- }
- }
- }
- public static void Speak(this string msg)
- {
- SpeechSynthesizer voice = new SpeechSynthesizer
- {
- Rate = 1,
- Volume = 100
- };
- voice.SpeakCompleted += (sender, args) => voice.Dispose();
- //设置语速,[-10,10]
- //设置音量,[0,100]
- voice.SpeakAsync(msg);
- }
- }
- }
|