| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497 |
- using System;
- using System.Collections;
- using System.Collections.Generic;
- using System.Data;
- using System.Linq;
- using System.Text;
- using System.Text.RegularExpressions;
- using Infragistics.Win;
- using Infragistics.Win.UltraWinEditors;
- using Infragistics.Win.UltraWinGrid;
- using System.Windows.Forms;
- using CoreFS.CA06;
- using Core.Mes.Client.Comm.Tool;
- using System.Drawing;
- using com.hnshituo.pur.vo;
- using System.Threading;
- namespace Pur.require_plan
- {
- class comm
- {
- /// <summary>
- /// 绑定combobox
- /// </summary>
- /// <param name="cmbx">控件名</param>
- /// <param name="dset">数据源ds</param>
- /// <param name="strVal">值</param>
- /// <param name="strName">显示名</param>
- /// <param name="filCondition">筛选条件</param>
- /// <param name="tips">是否新增</param>
- /// <param name="addItem">新增itemName</param>
- public static void FilComboboxAdd(UltraComboEditor cmbx, DataTable dt, string strVal, string strName, string filCondition, Boolean tips, String addItemName, String addItemValue)
- {
- if (dt.Columns.Count > 1)
- {
- DataView dvw = dt.DefaultView;
- dvw.RowFilter = filCondition;
- ArrayList aryTmp = new ArrayList();
- if (tips == true)
- {
- aryTmp.Add(new ValueListItem(addItemValue, addItemName));
- }
- for (int i = 0; i < dvw.Count; i++)
- {
- aryTmp.Add(new ValueListItem(dvw[i][strVal].ToString(), dvw[i][strName].ToString()));
- }
- cmbx.DataSource = aryTmp;
- cmbx.DisplayMember = "DisplayText";
- cmbx.ValueMember = "DataValue";
- SetComboItemHeight(cmbx);
- }
- }
- /// <summary>
- /// 激活输入当前值行数据
- /// </summary>
- /// <param name="ug">ultragrid</param>
- /// <param name="strColumn">列名</param>
- /// <param name="strKey">列值</param>
- public static string doActiveSelRow(UltraGrid ug, string strColumn, string strKey)
- {
- try
- {
- if (strKey != "")
- {
- foreach (UltraGridRow row in ug.Rows)
- {
- if (row.Cells[strColumn].Text.ToString() == strKey)
- {
- row.Activated = true;
- //if (row.ChildBands != null)
- //row.Expanded = true;
- }
- }
- }
- return "";
- }
- catch (Exception ex)
- {
- return ex.ToString();
- }
- }
- /// <summary>
- /// 删除子表中在父表中不存在的行
- /// </summary>
- /// <param name="dtChilds"></param>
- /// <param name="dtParents"></param>
- public static void delChildsNotExisPar(ref DataTable dtChilds, DataTable dtParents)
- {
- for (int i = 0; i < dtChilds.Rows.Count; )
- {
- bool blExist = false;
- foreach (DataRow drP in dtParents.Rows)
- {
- if (dtChilds.Rows[i]["ITEMCODE"].ToString() == drP["ITEMCODE"].ToString())
- {
- blExist = true;
- break;
- }
- }
- if (blExist == false)
- {
- dtChilds.Rows.RemoveAt(i);
- }
- else
- {
- i++;
- }
- }
- //return dtChilds;
- }
- /// <summary>
- /// 设置UltraComboEditor中的中文和非中文统一高度。
- /// </summary>
- /// <param name="cmb"></param>
- public static void SetComboItemHeight(UltraComboEditor cmb)
- {
- 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;
- }
- }
- }
- /// <summary>
- /// 绑定UltraComboEditor
- /// </summary>
- /// <param name="ucbE">控件对象</param>
- /// <param name="dt">绑定表</param>
- /// <param name="strDisplayMember">显示名称</param>
- /// <param name="strValueMember">值</param>
- public static void setUltraComboEditorBind(UltraComboEditor ucbE, DataTable dt, string strDisplayMember, string strValueMember)
- {
- strDisplayMember = strDisplayMember.Trim().ToUpper();
- strValueMember = strValueMember.Trim().ToUpper();
- if (strDisplayMember == strValueMember)
- {
- strDisplayMember = strDisplayMember + "1";
- }
- DataTable dtnew = new DataTable();
- DataColumn dcDisplayMember = new DataColumn(strDisplayMember);
- DataColumn dcValueMember = new DataColumn(strValueMember);
- dtnew.Columns.Add(dcDisplayMember);
- dtnew.Columns.Add(dcValueMember);
- Core.Mes.Client.Comm.Control.GridHelper.CopyDataToDatatable(ref dt, ref dtnew, false);
- //dtnew = getDtGroupBy_reDt(dtnew, strValueMember);
- ucbE.DataSource = dtnew;
- ucbE.DisplayMember = strDisplayMember;
- ucbE.ValueMember = strValueMember;
- SetComboItemHeight(ucbE);
- }
- /// <summary>
- /// 绑定UltraComboEditor
- /// </summary>
- /// <param name="ucbE">控件对象</param>
- /// <param name="dt">绑定表</param>
- /// <param name="strDisplayMember">显示名称</param>
- /// <param name="strValueMember">值</param>
- public static void setUltraComboEditorBind(UltraComboEditor ucbE, DataTable dt, string strDisplayMember, string strValueMember, string strFirstItemName, string strFirstItemValue)
- {
- strDisplayMember = strDisplayMember.Trim().ToUpper();
- strValueMember = strValueMember.Trim().ToUpper();
- if (strDisplayMember == strValueMember)
- {
- strDisplayMember = strDisplayMember + "1";
- }
- DataTable dtnew = new DataTable();
- DataColumn dcDisplayMember = new DataColumn(strDisplayMember);
- DataColumn dcValueMember = new DataColumn(strValueMember);
- dtnew.Columns.Add(dcDisplayMember);
- dtnew.Columns.Add(dcValueMember);
- DataRow dr = dtnew.NewRow();
- dr[strDisplayMember] = strFirstItemName;
- dr[strValueMember] = strFirstItemValue;
- dtnew.Rows.Add(dr);
- Core.Mes.Client.Comm.Control.GridHelper.CopyDataToDatatable(ref dt, ref dtnew, false);
- //dtnew = getDtGroupBy_reDt(dtnew, strValueMember);
- ucbE.DataSource = dtnew;
- ucbE.DisplayMember = strDisplayMember;
- ucbE.ValueMember = strValueMember;
- SetComboItemHeight(ucbE);
- }
- /// <summary>
- /// 绑定所有的下拉列表的数据
- /// </summary>
- public static void getUltcmbBindValueList(UltraComboEditor ultcmb, DataTable dt, string strDisplayMember, string strValueMember)
- {
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- ValueListItem vlItem = new ValueListItem(dt.Rows[i][strValueMember].ToString().Trim(), dt.Rows[i][strDisplayMember].ToString().Trim());
- ultcmb.Items.Add(vlItem);
- }
- SetComboItemHeight(ultcmb);
- }
- /// <summary>
- /// 绑定所有的下拉列表的数据
- /// </summary>
- public static void getUltcmbBindValueList1(UltraComboEditor ultcmb, DataTable dt, string strDisplayMember, string strValueMember)
- {
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- ValueListItem vlItem = new ValueListItem(dt.Rows[i][strValueMember].ToString().Trim(), dt.Rows[i][strDisplayMember].ToString().Trim());
- ultcmb.Items.Add(vlItem);
- }
- ValueListItem vlItem1 = new ValueListItem("", "/");
- ultcmb.Items.Add(vlItem1);
- SetComboItemHeight(ultcmb);
- }
- /// <summary>
- /// 判断UltraGrid是否存在相同的行
- /// </summary>
- /// <param name="ugr"></param>
- /// <param name="strColumn"></param>
- public static bool hasRepeatUgr(RowsCollection ugr, string strColumn)
- {
- foreach (UltraGridRow ugr1 in ugr)
- {
- UltraGridRow[] rows = null;
- IQueryable<UltraGridRow> queryableRow = ugr.AsQueryable();
- queryableRow = from q in queryableRow
- where q.Cells[strColumn].Value.ToString().ToUpper() == ugr1.Cells[strColumn].Value.ToString().ToUpper()
- select q;
- rows = queryableRow.ToArray();
- if (rows != null)
- {
- if (rows.Count<UltraGridRow>() > 1)
- {
- return true;
- }
- }
- }
- return false;
- }
- /// <summary>
- /// 去掉datatable某列重复值
- /// </summary>
- /// <param name="dt"></param>
- /// <param name="strColumn"></param>
- /// <returns>返回分组列的dataTable</returns>
- public static DataTable getDtGroupBy_reDt(DataTable dt, string strColumn)
- {
- if(dt==null || dt.Rows.Count==0)
- { return new DataTable(); }
- DataView dv = dt.DefaultView;
- dv.Sort = strColumn;
- dt = dv.ToTable();
- for (int i = 0; i < dt.Rows.Count; )
- {
- if (i != dt.Rows.Count-1)
- {
- if (dt.Rows[i][strColumn].ToString() == dt.Rows[i + 1][strColumn].ToString())
- {
- dt.Rows.RemoveAt(i + 1);
- }
- else
- {
- i++;
- }
- }
- else
- {
- break;
- }
- }
- return dt;
- }
- /// <summary>
- /// 去掉datatable某列重复值
- /// </summary>
- /// <param name="dt"></param>
- /// <param name="strColumn"></param>
- /// <returns>返回某一列的值</returns>
- public static ArrayList getDtGroupBy_reAl(DataTable dt, string strColumn)
- {
- ArrayList al = new ArrayList();
- var query = from t in dt.AsEnumerable()
- group t by new { t1 = t.Field<string>(strColumn) } into m
- select new
- {
- DeliverySubId = m.Key.t1,
- };
- if (query.ToList().Count > 0)
- {
- query.ToList().ForEach(q =>
- {
- if (!al.Contains(q.DeliverySubId))
- {
- al.Add(q.DeliverySubId);
- }
- });
- }
- return al;
- }
- /// <summary>
- /// 获取datatable某列值的ArrayList
- /// </summary>
- /// <param name="dt"></param>
- /// <param name="strColumn"></param>
- /// <param name="strConditionColumn">条件参数列</param>
- /// <param name="strCondition">条件</param>
- /// <returns>返回某一列的值</returns>
- public static ArrayList getDtColumnBy_reAl(DataTable dt, string strColumn,string strConditionColumn,string strCondition)
- {
- ArrayList al = new ArrayList();
- var query = from t in dt.AsEnumerable()
- where t.Field<string>(strConditionColumn) == strCondition
- select t;
- if (query.ToList().Count > 0)
- {
- query.ToList().ForEach(q =>
- {
- //if (!al.Contains(q.Field<string>(strColumn)))
- //{
- al.Add(q.Field<string>(strColumn));
- //}
- });
- }
- return al;
- }
- ///<summary>
- /// 键盘输入事件,控制只能输入数字
- /// </summary>
- /// <param name="sender"></param>
- /// <param name="e"></param>
- public static void txt_QTY_KeyPress(object sender, KeyPressEventArgs e)
- {
- if (!char.IsNumber(e.KeyChar) && e.KeyChar != (char)8)
- {
- e.Handled = true;
- }
- }
- public static string strStatu<T>(CoreFS.CA06.OpeBase ob, string strJavaPackName, object obj, params string[] strProperty)
- {
- string strPropertyName = "";
- if (strProperty.Length == 0)
- {
- strPropertyName = "Status";
- }
- else
- {
- strPropertyName = strProperty[0];
- }
- FrmBase frm = new FrmBase();
- frm.ob = ob;
- object o = frm.GetJsonService().execute<T>(strJavaPackName, "findById", new object[] { obj });
- string strStatu = o.GetType().GetProperty(strPropertyName).GetValue(o, null).ToString();
- return strStatu;
- }
- /// <summary>
- /// 打印报表预览
- /// </summary>
- /// <param name="ob"></param>
- /// <param name="strurl"></param>
- public static CoreResult printReport(CoreFS.CA06.OpeBase ob, string strurl, string strWindowName)
- {
- CoreResult core = new CoreResult();
-
- try
- {
- Thread.Sleep(500);
- core.Resultcode = 0;
- core.Resultdata = "";
- FrmRepExcel fBug = new FrmRepExcel(ob, strurl);
- fBug.AutoSize = true;
- fBug.MaximumSize = new Size(Screen.PrimaryScreen.WorkingArea.Width, Screen.PrimaryScreen.WorkingArea.Height);
- fBug.WindowState = FormWindowState.Maximized;
- fBug.Text = strWindowName;
- fBug.ShowDialog();
- return core;
- }
- catch (Exception e)
- {
- core.Resultcode = 0;
- core.Resultdata = "";
- core.Resultmsg = "预览失败:" + e.Message;
- return core;
- }
- }
- /// <summary>
- /// 获取自动生成下拉列表控件
- /// </summary>
- /// <returns></returns>
- public static UltraComboEditor getNewUltraComboEditor(Form frm)
- {
- UltraComboEditor cmb = new UltraComboEditor();
- cmb.DropDownStyle = DropDownStyle.DropDownList;
- cmb.Visible = false;
- frm.Controls.Add(cmb);
- return cmb;
- }
- /// <summary>
- /// 再次确认操作
- /// </summary>
- /// <returns></returns>
- public static Boolean ConfirmOption(string strTips)
- {
- if (strTips.LastIndexOf('?') + 1 != strTips.Length && strTips.LastIndexOf('?') + 1 != strTips.Length)
- {
- strTips += "?";
- }
- if (MessageUtil.ShowYesNoAndTips(strTips).Equals(DialogResult.Yes))
- {
- return true;
- }
- else
- {
- return false;
- }
-
- }
- /// <summary>
- /// 刷新Grid数据并根据数据调整Grid列宽(输入不需要调整列宽的列)
- /// </summary>
- /// <param name="ultraGrid">需要处理的Grid</param>
- /// <param name="cols">不需要调整列宽的列,或band的key值</param>
- public static void RefreshAndAutoSizeExceptColumns(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid, params string[] cols)
- {
- try
- {
- //转化为大写
- for (int i=0;i<cols.Length;i++)
- {
- cols[i] = cols[i].ToUpper();
- }
- //ultraGrid.DataBind();
- foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid.DisplayLayout.Bands)
- {
- if (cols.Contains(band.Key.ToUpper()))
- {
- continue;
- }
- foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in band.Columns)
- {
- if (cols.Contains(column.Key.ToUpper()))
- {
- continue;
- }
- column.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
- }
- }
- //ultraGrid.Refresh();
- }
- catch { }
- }
- /// <summary>
- /// 刷新Grid数据并根据数据调整Grid列宽(输入需要调整列宽的列)
- /// </summary>
- /// <param name="ultraGrid">需要处理的Grid</param>
- /// <param name="cols">需要调整列宽的列</param>
- public static void RefreshAndAutoSizeColumns(Infragistics.Win.UltraWinGrid.UltraGrid ultraGrid, params string[] cols)
- {
- try
- {
- //ultraGrid.DataBind();
- //转化为大写
- for (int i = 0; i < cols.Length; i++)
- {
- cols[i] = cols[i].ToUpper();
- }
- foreach (Infragistics.Win.UltraWinGrid.UltraGridBand band in ultraGrid.DisplayLayout.Bands)
- {
- foreach (Infragistics.Win.UltraWinGrid.UltraGridColumn column in band.Columns)
- {
- if (!cols.Contains(column.Key.ToUpper()))
- {
- continue;
- }
- column.PerformAutoResize(Infragistics.Win.UltraWinGrid.PerformAutoSizeType.AllRowsInBand);
- }
- }
- //ultraGrid.Refresh();
- }
- catch { }
- }
- }
- }
|