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.Data.SqlClient; using DevExpress.XtraEditors; namespace CommonLib.data { /// /// 所有窗体的基类窗体,都从这个窗体继承(主要加载icon) /// public partial class FormBase : XtraForm { #region 主平台提供属性 /// /// 属性文本 /// public string FormText { get; set; } /// /// 操作Id /// public string OperatorId { get; set; } /// /// 操作员 /// public string OperatorName { get; set; } /// /// 权限 /// public string Privilege { get; set; } /// /// 模块Id /// public String DLLCoid { get; set; } /// /// 模块Id /// public string ModuleId { get; set; } #endregion public string ModuleFileName { get; set; } //public FormBase formBase = null; public FormBase() { DevExpress.Skins.SkinManager.EnableFormSkins(); InitializeComponent(); //formBase = this; } public void UserSet() { try { //MessageBox.Show("OK"); if (SqlHelper.conn != null) { //读取配置信息 if (OperatorId == null) OperatorId = "-1"; string tmpsql = "select b.formName, b.controlName, b.controlType, a.defaultValue\n" + " from p_systemusersetdetailtab a\n" + " left join p_systemusersettab b on a.controlid = b.id\n" + " where LOWER(b.modid) = lower('" + ModuleFileName + "')\n" + " and lower(b.formname) = lower('" + this.Name + "')\n" + " and a.operatorid = " + OperatorId + "\n" + " and a.modid='" + DLLCoid + "'\n" + " and isnull(b.enabled,0) = 1"; //MessageBox.Show(tmpsql); //Clipboard.SetText(tmpsql); DataTable dts = SqlHelper.ExecuteDataSet(tmpsql).Tables[0]; if (dts.Rows.Count > 0) { foreach (DataRow dr in dts.Rows) { Control[] ctls = this.Controls.Find(dr["controlName"].ToString(), true); if (ctls != null && ctls.Length > 0) { (ctls[0] as System.Windows.Forms.ComboBox).Tag = dr["defaultValue"]+""; (ctls[0] as System.Windows.Forms.ComboBox).SelectedValueChanged += new EventHandler(FormBase_SelectedIndexChanged); } } } } } catch (Exception ex) { } } void FormBase_SelectedIndexChanged(object sender, EventArgs e) { if (!DesignMode) try { if (!(sender as System.Windows.Forms.ComboBox).Focused) { if ((sender as System.Windows.Forms.ComboBox).Tag + "" == "") { //MessageBox.Show("OK"); if ((sender as System.Windows.Forms.ComboBox).Items.Count > 0) (sender as System.Windows.Forms.ComboBox).SelectedValue = (sender as System.Windows.Forms.ComboBox).Tag = ((sender as System.Windows.Forms.ComboBox).DataSource as DataTable).Rows[0][(sender as System.Windows.Forms.ComboBox).ValueMember] + ""; } //if ((sender as System.Windows.Forms.ComboBox).Text+""=="") //{ // if ((sender as System.Windows.Forms.ComboBox).Items.Count > 0) // (sender as System.Windows.Forms.ComboBox).SelectedIndex = 0; //} else (sender as System.Windows.Forms.ComboBox).SelectedValue = (sender as System.Windows.Forms.ComboBox).Tag.ToString(); (sender as System.Windows.Forms.ComboBox).Tag = (sender as System.Windows.Forms.ComboBox).SelectedValue; } } catch (Exception ex) { } } private void FormBase_Load(object sender, EventArgs e) { if (!DesignMode) { this.Icon = new Icon(PubUtil.AbsolutelyPath + "Images/icon/a.ico"); //MessageBox.Show(PubUtil.AbsolutelyPath); string moduleName = this.GetType().Assembly.Location; moduleName = moduleName.Substring(moduleName.LastIndexOf('\\') + 1); ModuleFileName = moduleName; UserSet(); } } private void FormBase_FormClosed(object sender, FormClosedEventArgs e) { try { if (SqlHelper.conn != null) { if (!DesignMode) { //MessageBox.Show("close"); //保存配置 string tmpsql = string.Empty; //获取controlID tmpsql = "select id, controlName, controlType\n" + " from p_systemusersettab\n" + " where LOWER(modid) = LOWER('" + ModuleFileName + "')\n" + " and lower(formname) = LOWER('" + this.Name + "')\n" + " and ISNULL(enabled, 0) = 1"; //MessageBox.Show(tmpsql); //Clipboard.SetText(tmpsql); DataTable dts = SqlHelper.ExecuteDataSet(tmpsql).Tables[0]; if (dts.Rows.Count > 0) { foreach (DataRow dr in dts.Rows) { Control[] ctls = this.Controls.Find(dr["controlName"].ToString(), true); if (ctls != null && ctls.Length > 0) { tmpsql = "select * from p_systemusersetdetailtab " + "where controlid=" + dr["id"].ToString() + " and modid='" + DLLCoid + "' and operatorid=" + OperatorId; SqlDataAdapter tmpDa = SqlHelper.ExecuteAdapter(CommandType.Text, tmpsql); DataSet tmpDs = new DataSet(); tmpDa.Fill(tmpDs); SqlCommandBuilder cb = new SqlCommandBuilder(tmpDa); DataTable tmpDT = tmpDs.Tables[0]; if (tmpDT.Rows.Count > 0) { tmpDT.Rows[0]["defaultValue"] = (ctls[0] as System.Windows.Forms.ComboBox).SelectedValue; tmpDa.Update(tmpDT); } else { DataRow tmpRow = tmpDT.NewRow(); tmpRow["controlid"] = dr["id"]; tmpRow["controlName"] = dr["controlName"]; tmpRow["modid"] = DLLCoid; tmpRow["operatorid"] = OperatorId; tmpRow["defaultValue"] = (ctls[0] as System.Windows.Forms.ComboBox).SelectedValue; tmpDT.Rows.Add(tmpRow); tmpDa.Update(tmpDT); } } } } } } } catch { } } } }