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 {
}
}
}
}