1175 lines
59 KiB
C#
1175 lines
59 KiB
C#
using System;
|
|
using System.Collections.Generic;
|
|
using System.Linq;
|
|
using System.Text;
|
|
using System.Data;
|
|
using Lskj.MyControl;
|
|
using System.Drawing;
|
|
using System.Windows.Forms;
|
|
using DevExpress.XtraGrid.Views.Grid;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using System.Data.SqlClient;
|
|
using DevExpress.XtraEditors.Repository;
|
|
using DevExpress.XtraEditors.Controls;
|
|
using DevExpress.XtraGrid;
|
|
using CommonLib;
|
|
using ControlLib.inh;
|
|
using Lskj.MyControl.LookUpAdd;
|
|
using Lskj.MyControl.LookUp;
|
|
using DevExpress.Utils;
|
|
using DevExpress.XtraEditors;
|
|
using Lskj.PubUtils;
|
|
using System.Text.RegularExpressions;
|
|
using System.ComponentModel;
|
|
|
|
namespace Lskj.Common
|
|
{
|
|
public class TagModel
|
|
{
|
|
public TagModel()
|
|
{
|
|
|
|
}
|
|
/// <summary>
|
|
/// 是否保存
|
|
/// </summary>
|
|
public bool IsSave { get; set; }
|
|
/// <summary>
|
|
/// 是否为空
|
|
/// </summary>
|
|
public bool IsEmpt { get; set; }
|
|
/// <summary>
|
|
/// 提示信息
|
|
/// </summary>
|
|
public string TipMsg { get; set; }
|
|
/// <summary>
|
|
/// 控件类型
|
|
/// </summary>
|
|
public int fieldTypeId { get; set; }
|
|
/// <summary>
|
|
/// 是否情况
|
|
/// </summary>
|
|
public bool IsClear { get; set; }
|
|
/// <summary>
|
|
/// 默认值
|
|
/// </summary>
|
|
public string DefaultValue { get; set; }
|
|
/// <summary>
|
|
/// 扩展字段
|
|
/// </summary>
|
|
public object Tag { get; set; }
|
|
}
|
|
|
|
public class PubControl
|
|
{
|
|
private static GridView pubGridView { get; set; }
|
|
|
|
public static DataTable CreateControl(Control ctr, string sql, string OperatorName)
|
|
{
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
int yHeight = 0;
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]);
|
|
//日期
|
|
if (fieldTypeId == 4)
|
|
{
|
|
LabelDateEx labelText = new LabelDateEx();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
labelText.GetDateTimePicker.Enabled = false;
|
|
}
|
|
//文本
|
|
else if (fieldTypeId == 0)
|
|
{
|
|
LabelTextEx labelText = new LabelTextEx();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
labelText.GetTextBox.ReadOnly = true;
|
|
}
|
|
else if (fieldTypeId == ControlType.LabMemoEdit)
|
|
{
|
|
// Memo文本
|
|
LabelMemoEdit labelText = new LabelMemoEdit();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
labelText.getMemoEx.Properties.ReadOnly = true;
|
|
}
|
|
else if (fieldTypeId == ControlType.LabPassword)
|
|
{
|
|
// 创建密码框
|
|
LabelPasswordEx labelText = new LabelPasswordEx();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
//下拉框
|
|
else if (fieldTypeId == 1 || fieldTypeId == 2)
|
|
{
|
|
LabelComboxEx labelText = new LabelComboxEx();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
string lookupSql = row["lookupSql"].ToString();
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
{
|
|
labelText.getComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
|
|
labelText.getComboBox.Enabled = false;
|
|
}
|
|
if (!string.IsNullOrEmpty(lookupSql))
|
|
{
|
|
string keyField = row["lookupKeyField"] + "";
|
|
string resultField = row["lookupResult"] + "";
|
|
labelText.setDataSource(lookupSql, keyField, resultField);
|
|
}
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
|
|
}
|
|
else if (fieldTypeId == 5 || fieldTypeId == 6)
|
|
{
|
|
LabelAutoSearcherEx autSearch = new LabelAutoSearcherEx();
|
|
autSearch.LabelText = row["userName"].ToString();
|
|
autSearch.Parent = ctr;
|
|
autSearch.Width = Convert.ToInt32(row["controlWidth"]);
|
|
autSearch.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
|
|
ControlLib.inh.AutoSearcher txtUserName = autSearch.GetAutoSearcher;
|
|
ControlLib.inh.SearcherPropertyCollector searcherPropertyCollector1 = new ControlLib.inh.SearcherPropertyCollector();
|
|
ControlLib.inh.TFieldPropertyData tFieldPropertyData1 = new ControlLib.inh.TFieldPropertyData();
|
|
ControlLib.inh.TFieldPropertyData tFieldPropertyData2 = new ControlLib.inh.TFieldPropertyData();
|
|
txtUserName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;
|
|
//取下拉列表数据
|
|
|
|
txtUserName.MaxLength = 50;
|
|
txtUserName.Name = "txt_" + row["fieldName"];
|
|
txtUserName.searcherPropertyCollector = searcherPropertyCollector1;
|
|
txtUserName.TabIndex = 12;
|
|
txtUserName.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
tFieldPropertyData1.FieldCaption = "编码";
|
|
tFieldPropertyData1.FieldName = row["lookupKeyField"] + "";
|
|
tFieldPropertyData1.FieldWidth = 50;
|
|
tFieldPropertyData1.ShowColumn = true;
|
|
tFieldPropertyData2.FieldCaption = "名称";
|
|
tFieldPropertyData2.FieldName = row["lookupResult"] + "";
|
|
tFieldPropertyData2.FieldWidth = 150;
|
|
tFieldPropertyData2.ShowColumn = true;
|
|
|
|
searcherPropertyCollector1.ConvertToChineseSpell = true;
|
|
searcherPropertyCollector1.FieldPropertyList = new ControlLib.inh.TFieldPropertyData[] { tFieldPropertyData1, tFieldPropertyData2 };
|
|
searcherPropertyCollector1.KeyField = row["lookupKeyField"] + "";
|
|
searcherPropertyCollector1.QueryField = row["lookupResult"] + "";
|
|
searcherPropertyCollector1.QuerySQL = row["lookupSql"].ToString();
|
|
//searcherPropertyCollector1.ReturnMaxCount = 50;
|
|
searcherPropertyCollector1.ReturnValueField = row["lookupKeyField"] + "";
|
|
searcherPropertyCollector1.SearchMatchWay = ControlLib.inh.TSearchMatchWay.swFuzzy;
|
|
searcherPropertyCollector1.ShowFormHeight = 230;
|
|
searcherPropertyCollector1.ShowFormWidth = 230;
|
|
searcherPropertyCollector1.SQL = row["lookupSql"].ToString();
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
{
|
|
autSearch.GetAutoSearcher.ReadOnly = true;
|
|
}
|
|
yHeight = txtUserName.Top + txtUserName.Height;
|
|
txtUserName.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
//创建文本域
|
|
else if (fieldTypeId == 9)
|
|
{
|
|
LabelTextarea labelText = new LabelTextarea();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
if (Convert.ToInt32(row["controlWidth"]) > 0 && Convert.ToInt32(row["controlHeight"]) > 0)
|
|
{
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
labelText.Height = Convert.ToInt32(row["controlHeight"]);
|
|
}
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = "999";
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
}
|
|
if (ctr.Height < yHeight)
|
|
{
|
|
ctr.Height = yHeight + 5;
|
|
}
|
|
return dt;
|
|
}
|
|
|
|
public static DataTable CreateControl(Control ctr, Control ctr2, string sql, string OperatorName)
|
|
{
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
int yHeight = 0;
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]);
|
|
//日期
|
|
if (fieldTypeId == 4)
|
|
{
|
|
LabelDateEx labelText = new LabelDateEx();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
labelText.GetDateTimePicker.Enabled = false;
|
|
}
|
|
//文本
|
|
else if (fieldTypeId == 0)
|
|
{
|
|
LabelTextEx labelText = new LabelTextEx();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
labelText.GetTextBox.ReadOnly = true;
|
|
}
|
|
//下拉框
|
|
else if (fieldTypeId == 1 || fieldTypeId == 2)
|
|
{
|
|
LabelComboxEx labelText = new LabelComboxEx();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
string lookupSql = row["lookupSql"].ToString();
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
{
|
|
labelText.getComboBox.DropDownStyle = ComboBoxStyle.DropDownList;
|
|
labelText.getComboBox.Enabled = false;
|
|
}
|
|
if (!string.IsNullOrEmpty(lookupSql))
|
|
{
|
|
string keyField = row["lookupKeyField"] + "";
|
|
string resultField = row["lookupResult"] + "";
|
|
labelText.setDataSource(lookupSql, keyField, resultField);
|
|
}
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
|
|
}
|
|
else if (fieldTypeId == 5 || fieldTypeId == 6)
|
|
{
|
|
LabelAutoSearcherEx autSearch = new LabelAutoSearcherEx();
|
|
autSearch.LabelText = row["userName"].ToString();
|
|
autSearch.Parent = ctr;
|
|
autSearch.Width = Convert.ToInt32(row["controlWidth"]);
|
|
autSearch.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
|
|
ControlLib.inh.AutoSearcher txtUserName = autSearch.GetAutoSearcher;
|
|
ControlLib.inh.SearcherPropertyCollector searcherPropertyCollector1 = new ControlLib.inh.SearcherPropertyCollector();
|
|
ControlLib.inh.TFieldPropertyData tFieldPropertyData1 = new ControlLib.inh.TFieldPropertyData();
|
|
ControlLib.inh.TFieldPropertyData tFieldPropertyData2 = new ControlLib.inh.TFieldPropertyData();
|
|
txtUserName.AutoCompleteMode = System.Windows.Forms.AutoCompleteMode.Append;
|
|
//取下拉列表数据
|
|
|
|
txtUserName.MaxLength = 50;
|
|
txtUserName.Name = "txt_" + row["fieldName"];
|
|
txtUserName.searcherPropertyCollector = searcherPropertyCollector1;
|
|
txtUserName.TabIndex = 12;
|
|
txtUserName.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
tFieldPropertyData1.FieldCaption = "编码";
|
|
tFieldPropertyData1.FieldName = row["lookupKeyField"] + "";
|
|
tFieldPropertyData1.FieldWidth = 50;
|
|
tFieldPropertyData1.ShowColumn = true;
|
|
tFieldPropertyData2.FieldCaption = "名称";
|
|
tFieldPropertyData2.FieldName = row["lookupResult"] + "";
|
|
tFieldPropertyData2.FieldWidth = 150;
|
|
tFieldPropertyData2.ShowColumn = true;
|
|
|
|
searcherPropertyCollector1.ConvertToChineseSpell = true;
|
|
searcherPropertyCollector1.FieldPropertyList = new ControlLib.inh.TFieldPropertyData[] { tFieldPropertyData1, tFieldPropertyData2 };
|
|
searcherPropertyCollector1.KeyField = row["lookupKeyField"] + "";
|
|
searcherPropertyCollector1.QueryField = row["lookupResult"] + "";
|
|
searcherPropertyCollector1.QuerySQL = row["lookupSql"].ToString();
|
|
//searcherPropertyCollector1.ReturnMaxCount = 50;
|
|
searcherPropertyCollector1.ReturnValueField = row["lookupKeyField"] + "";
|
|
searcherPropertyCollector1.SearchMatchWay = ControlLib.inh.TSearchMatchWay.swFuzzy;
|
|
searcherPropertyCollector1.ShowFormHeight = 230;
|
|
searcherPropertyCollector1.ShowFormWidth = 230;
|
|
searcherPropertyCollector1.SQL = row["lookupSql"].ToString();
|
|
bool edited = Convert.ToBoolean(row["edited"]);
|
|
if (edited)
|
|
{
|
|
autSearch.GetAutoSearcher.ReadOnly = true;
|
|
}
|
|
yHeight = txtUserName.Top + txtUserName.Height;
|
|
txtUserName.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
//创建文本域
|
|
else if (fieldTypeId == 9)
|
|
{
|
|
LabelTextarea labelText = new LabelTextarea();
|
|
labelText.LabelText = row["userName"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
if (Convert.ToInt32(row["controlWidth"]) > 0 && Convert.ToInt32(row["controlHeight"]) > 0)
|
|
{
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
labelText.Height = Convert.ToInt32(row["controlHeight"]);
|
|
}
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = "txt_" + row["fieldName"];
|
|
labelText.Tag = "999";
|
|
labelText.Tag = new TagModel() { IsSave = true, IsClear = true, IsEmpt = Convert.ToBoolean(row["nullable"]), fieldTypeId = fieldTypeId, TipMsg = row["userName"] + "" };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
}
|
|
ctr2.Height = yHeight + 60;
|
|
return dt;
|
|
}
|
|
|
|
public static void CreateControlSearch(Control ctr, string sql, string OperatorName)
|
|
{
|
|
DataTable dt =SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
int yHeight = 0;
|
|
foreach (DataRow row in dt.Rows)
|
|
{
|
|
int fieldTypeId = Convert.ToInt32(row["controlType"]);
|
|
//日期
|
|
if (fieldTypeId == 4)
|
|
{
|
|
LabelDateEx labelText = new LabelDateEx();
|
|
labelText.LabelText = row["controlLabel"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = row["controlName"].ToString();
|
|
labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
//文本
|
|
else if (fieldTypeId == 0)
|
|
{
|
|
LabelTextEx labelText = new LabelTextEx();
|
|
labelText.LabelText = row["controlLabel"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = row["controlName"].ToString();
|
|
labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
//下拉框
|
|
else if (fieldTypeId == 1)
|
|
{
|
|
LabelComboxEx labelText = new LabelComboxEx();
|
|
labelText.LabelText = row["controlLabel"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = row["controlName"].ToString();
|
|
labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() };
|
|
string sourceSql = row["sourceSql"].ToString();
|
|
string keyField = row["keyField"] + "";
|
|
string resultField = row["resultField"] + "";
|
|
labelText.setDataSource(sourceSql, keyField, resultField);
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
//创建文本域
|
|
else if (fieldTypeId == 9)
|
|
{
|
|
LabelTextarea labelText = new LabelTextarea();
|
|
labelText.LabelText = row["controlLabel"].ToString();
|
|
labelText.Location = new Point(Convert.ToInt32(row["ControlLeft"]), Convert.ToInt32(row["controlTop"]));
|
|
labelText.Parent = ctr;
|
|
if (Convert.ToInt32(row["controlWidth"]) > 0 && Convert.ToInt32(row["controlHeight"]) > 0)
|
|
{
|
|
labelText.Width = Convert.ToInt32(row["controlWidth"]);
|
|
labelText.Height = Convert.ToInt32(row["controlHeight"]);
|
|
}
|
|
yHeight = labelText.Top + labelText.Height;
|
|
labelText.Name = row["controlName"].ToString();
|
|
labelText.Tag = new String[] { "999", row["checkCond"].ToString(), fieldTypeId.ToString() };
|
|
labelText.Text = GetDefaultValue(row["defaultValue"].ToString(), OperatorName);
|
|
}
|
|
}
|
|
if (ctr.Height < yHeight)
|
|
{
|
|
ctr.Height = yHeight + 10;
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取默认值
|
|
/// </summary>
|
|
/// <param name="value"></param>
|
|
/// <returns></returns>
|
|
public static string GetDefaultValue(string value, string OperatorName)
|
|
{
|
|
string result = value;
|
|
if (value.IndexOf('@') != -1)
|
|
{
|
|
object obj = SqlHelper.ExecuteScalar(CommandType.Text, value.Replace("@", ""));
|
|
if (obj != null)
|
|
{
|
|
result = obj.ToString();
|
|
}
|
|
}
|
|
if (value.IndexOf("operator", StringComparison.OrdinalIgnoreCase) != -1)
|
|
{
|
|
List<string> list = PubClass.GetParamValue(value);
|
|
foreach (string s in list)
|
|
{
|
|
result = value.Replace(s, OperatorName);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 获取默认值
|
|
/// </summary>
|
|
/// <param name="value"></param>
|
|
/// <returns></returns>
|
|
public static string GetDefaultValue(string value, string loginid, string OperatorName)
|
|
{
|
|
string result = value;
|
|
if (value.IndexOf('@') != -1)
|
|
{
|
|
object obj = SqlHelper.ExecuteScalar(CommandType.Text, value.Replace("@", ""));
|
|
if (obj != null)
|
|
{
|
|
result = obj.ToString();
|
|
}
|
|
}
|
|
if (value.IndexOf("loginid", StringComparison.OrdinalIgnoreCase) != -1)
|
|
{
|
|
List<string> list = PubClass.GetParamValue(value);
|
|
foreach (string s in list)
|
|
{
|
|
result = value.Replace(s, loginid);
|
|
}
|
|
}
|
|
|
|
if (value.IndexOf("loginname", StringComparison.OrdinalIgnoreCase) != -1)
|
|
{
|
|
List<string> list = PubClass.GetParamValue(value);
|
|
foreach (string s in list)
|
|
{
|
|
result = value.Replace(s, OperatorName);
|
|
}
|
|
}
|
|
return result;
|
|
}
|
|
|
|
|
|
public static void SetColumns(GridView gridView, string sql)
|
|
{
|
|
gridView.Columns.Clear();
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
DataRow row = dt.Rows[i];
|
|
GridColumn gridColumn = new GridColumn();
|
|
gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + ""=="1")?DefaultBoolean.True: DefaultBoolean.False;
|
|
gridColumn.FieldName = row["fieldname"].ToString();
|
|
gridColumn.Name = row["fieldname"].ToString();
|
|
gridColumn.VisibleIndex = i;
|
|
gridColumn.Caption = row["userName"].ToString();
|
|
gridColumn.Width = Convert.ToInt32(row["width"]);
|
|
gridColumn.Visible = true;
|
|
object obj = dt.Columns["edited"];
|
|
if (obj != null && Convert.ToInt32(row["edited"]) == 1)
|
|
{
|
|
gridColumn.OptionsColumn.AllowEdit = false;
|
|
gridColumn.OptionsColumn.ReadOnly = false;
|
|
}
|
|
int isSum = Convert.ToInt32(row["isSum"]);
|
|
//处理统计
|
|
if (isSum == 1)
|
|
{
|
|
gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0}") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "") });
|
|
}
|
|
|
|
DataColumn dc = dt.Columns["Accuracy"];
|
|
if (dc != null) {
|
|
string Accuracy = dt.Rows[i]["Accuracy"] + "";
|
|
if (!string.IsNullOrEmpty(Accuracy) && Accuracy != "0") {
|
|
gridColumn.DisplayFormat.FormatType = FormatType.Numeric;
|
|
gridColumn.DisplayFormat.FormatString = "F2";
|
|
}
|
|
}
|
|
gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
|
gridView.Columns.Add(gridColumn);
|
|
|
|
}
|
|
if (gridView.Columns.Count > 0)
|
|
{
|
|
GridColumn firstColumn = gridView.Columns[0];
|
|
if (firstColumn != null)
|
|
{
|
|
gridView.OptionsView.ShowFooter = true;
|
|
firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") });
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SetColumns(GridControl gc, string sql)
|
|
{
|
|
GridView gridView = (GridView)gc.DefaultView;
|
|
gridView.Columns.Clear();
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
DataRow row = dt.Rows[i];
|
|
GridColumn gridColumn = new GridColumn();
|
|
gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False;
|
|
gridColumn.FieldName = row["fieldname"].ToString();
|
|
gridColumn.Name = row["fieldname"].ToString();
|
|
gridColumn.VisibleIndex = i;
|
|
gridColumn.Caption = row["userName"].ToString();
|
|
gridColumn.Width = Convert.ToInt32(row["width"]);
|
|
gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
|
gridColumn.Visible = true;
|
|
object obj = dt.Columns["edited"];
|
|
|
|
if (obj != null && Convert.ToInt32(row["edited"]) == 1)
|
|
{
|
|
gridColumn.OptionsColumn.AllowEdit = false;
|
|
gridColumn.OptionsColumn.ReadOnly = false;
|
|
}
|
|
int isSum = Convert.ToInt32(row["isSum"]);
|
|
//处理统计
|
|
if (isSum == 1)
|
|
{
|
|
gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0}") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "") });
|
|
}
|
|
gridView.Columns.Add(gridColumn);
|
|
int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]);
|
|
string lookupSql = row["lookupSql"] + "";
|
|
string lookupKeyField = row["lookupKeyField"] + "";
|
|
string lookupResult = row["lookupResult"] + "";
|
|
string fieldName = row["fieldName"] + "";
|
|
if (fieldTypeId == 1 || fieldTypeId == 5)
|
|
{
|
|
GetLookUpEdit(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId, gc);
|
|
}
|
|
if (fieldTypeId == 2 || fieldTypeId == 6)
|
|
{
|
|
GetComboBox(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId);
|
|
}
|
|
DataColumn dc = dt.Columns["Accuracy"];
|
|
if (dc != null) {
|
|
string Accuracy = dt.Rows[i]["Accuracy"] + "";
|
|
if (!string.IsNullOrEmpty(Accuracy) && Accuracy != "0") {
|
|
gridColumn.DisplayFormat.FormatType = FormatType.Numeric;
|
|
gridColumn.DisplayFormat.FormatString = "F2";
|
|
}
|
|
}
|
|
}
|
|
if (gridView.Columns.Count > 0)
|
|
{
|
|
GridColumn firstColumn = gridView.Columns[0];
|
|
if (firstColumn != null)
|
|
{
|
|
gridView.OptionsView.ShowFooter = true;
|
|
firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") });
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SetColumns(GridControl gc, DataTable dt)
|
|
{
|
|
GridView gridView = (GridView)gc.DefaultView;
|
|
gridView.Columns.Clear();
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
DataRow row = dt.Rows[i];
|
|
GridColumn gridColumn = new GridColumn();
|
|
gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False;
|
|
gridColumn.FieldName = row["fieldname"].ToString();
|
|
gridColumn.Name = row["fieldname"].ToString();
|
|
gridColumn.VisibleIndex = i;
|
|
gridColumn.Caption = row["userName1"].ToString();
|
|
gridColumn.Width = Convert.ToInt32(row["width"]);
|
|
gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
|
gridColumn.Visible = true;
|
|
object obj = dt.Columns["edited"];
|
|
string dataFormat = row["DataFormat"] + "";
|
|
if (obj != null && Convert.ToInt32(row["edited"]) == 1)
|
|
{
|
|
gridColumn.OptionsColumn.AllowEdit = false;
|
|
gridColumn.OptionsColumn.ReadOnly = false;
|
|
}
|
|
int isSum = Convert.ToInt32(row["isSum"]);
|
|
//处理统计
|
|
if (isSum == 1)
|
|
{
|
|
gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0:" + dataFormat + "}") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "{0:" + dataFormat + "}") });
|
|
}
|
|
gridView.Columns.Add(gridColumn);
|
|
int fieldTypeId = Convert.ToInt32(row["fieldsqlTag"]);
|
|
string lookupSql = row["fieldsql"] + "";
|
|
string lookupKeyField = row["fieldsqlid"] + "";
|
|
string lookupResult = row["fieldsqlname"] + "";
|
|
string fieldName = row["fieldName"] + "";
|
|
if (fieldTypeId == 1 || fieldTypeId == 5)
|
|
{
|
|
GetLookUpEdit(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId, gc);
|
|
}
|
|
if (fieldTypeId == 2 || fieldTypeId == 6)
|
|
{
|
|
GetComboBox(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId);
|
|
}
|
|
//QQ和网址
|
|
if (fieldTypeId == 10)
|
|
{
|
|
gridColumn.Tag = new TagModel() { Tag="www"};
|
|
}
|
|
if (fieldTypeId == 11)
|
|
{
|
|
gridColumn.Tag = new TagModel() { Tag = "qq" };
|
|
}
|
|
CommonUtils.DataFormat(gridColumn, dataFormat, fieldTypeId);
|
|
DataColumn dc = dt.Columns["Accuracy"];
|
|
if (dc != null) {
|
|
string Accuracy = dt.Rows[i]["Accuracy"] + "";
|
|
if (!string.IsNullOrEmpty(Accuracy) && Accuracy != "0") {
|
|
gridColumn.DisplayFormat.FormatType = FormatType.Numeric;
|
|
gridColumn.DisplayFormat.FormatString = "F2";
|
|
}
|
|
}
|
|
}
|
|
if (gridView.Columns.Count > 0)
|
|
{
|
|
GridColumn firstColumn = gridView.Columns[0];
|
|
if (firstColumn != null)
|
|
{
|
|
gridView.OptionsView.ShowFooter = true;
|
|
firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") });
|
|
}
|
|
}
|
|
}
|
|
|
|
public static void SetColumns3(GridControl gc, string sql)
|
|
{
|
|
GridView gridView = (GridView)gc.DefaultView;
|
|
gridView.Columns.Clear();
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
DataRow row = dt.Rows[i];
|
|
GridColumn gridColumn = new GridColumn();
|
|
gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False;
|
|
gridColumn.FieldName = row["fieldname"].ToString();
|
|
gridColumn.Name = row["fieldname"].ToString();
|
|
gridColumn.VisibleIndex = i;
|
|
gridColumn.Caption = row["userName"].ToString();
|
|
gridColumn.Width = Convert.ToInt32(row["width"]);
|
|
gridColumn.Visible = true;
|
|
gridColumn.OptionsFilter.FilterPopupMode = FilterPopupMode.CheckedList;
|
|
gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
|
gridView.Columns.Add(gridColumn);
|
|
}
|
|
}
|
|
|
|
public static DataTable SetColumns2(GridControl gc, string sql)
|
|
{
|
|
GridView gridView = pubGridView = (GridView)gc.DefaultView;
|
|
gridView.Columns.Clear();
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
for (int i = 0; i < dt.Rows.Count; i++)
|
|
{
|
|
DataRow row = dt.Rows[i];
|
|
GridColumn gridColumn = new GridColumn();
|
|
gridColumn.OptionsColumn.AllowMerge = (row["ifMerge"] + "" == "1") ? DefaultBoolean.True : DefaultBoolean.False;
|
|
gridColumn.FieldName = row["fieldname"].ToString();
|
|
gridColumn.Name = row["fieldname"].ToString();
|
|
gridColumn.VisibleIndex = i;
|
|
gridColumn.Caption = row["userName"].ToString();
|
|
gridColumn.Width = Convert.ToInt32(row["width"]);
|
|
gridColumn.AppearanceHeader.TextOptions.HAlignment = DevExpress.Utils.HorzAlignment.Center;
|
|
gridColumn.Visible = true;
|
|
object obj = dt.Columns["isedited"];
|
|
string dataFormat = row["DataFormat"] + "";
|
|
if (obj != null && Convert.ToInt32(row["isedited"]) == 1)
|
|
{
|
|
gridColumn.OptionsColumn.AllowEdit = false;
|
|
gridColumn.OptionsColumn.ReadOnly = true;
|
|
}
|
|
int isSum = Convert.ToInt32(row["isSum"]);
|
|
//处理统计
|
|
if (isSum == 1)
|
|
{
|
|
gridColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), "{0:" + dataFormat + "}") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Sum, row["fieldname"].ToString(), null, "{0:" + dataFormat + "}") });
|
|
}
|
|
gridView.Columns.Add(gridColumn);
|
|
int fieldTypeId = Convert.ToInt32(row["fieldTypeId"]);
|
|
string lookupSql = row["lookupSql"] + "";
|
|
string lookupKeyField = row["lookupKeyField"] + "";
|
|
string lookupResult = row["lookupResult"] + "";
|
|
string fieldName = row["fieldName"] + "";
|
|
if (fieldTypeId == 1 || fieldTypeId == 5 || fieldTypeId == 15)
|
|
{
|
|
GetLookUpEdit(lookupSql, lookupKeyField, lookupResult, fieldName, gridColumn, fieldTypeId, lookupKeyField, lookupResult);
|
|
}
|
|
if (fieldTypeId == 2 || fieldTypeId == 6 || fieldTypeId == 16)
|
|
{
|
|
GetLookUpEdit(lookupSql, lookupResult, lookupKeyField, fieldName, gridColumn, fieldTypeId, lookupKeyField, lookupResult);
|
|
}
|
|
// 日期时间控件
|
|
if (fieldTypeId == 4 ||
|
|
fieldTypeId == 44 ||
|
|
fieldTypeId == 444)
|
|
{
|
|
CreateDateTime(gridColumn, fieldTypeId);
|
|
}
|
|
if (fieldTypeId == 4444 ||
|
|
fieldTypeId == 4444)
|
|
{
|
|
CreateTime(gridColumn, fieldTypeId);
|
|
}
|
|
|
|
//QQ和网址
|
|
if (fieldTypeId == 10)
|
|
{
|
|
gridColumn.Tag = new TagModel() { Tag = "www" };
|
|
}
|
|
if (fieldTypeId == 11)
|
|
{
|
|
gridColumn.Tag = new TagModel() { Tag = "qq" };
|
|
}
|
|
CommonUtils.DataFormat(gridColumn, dataFormat, fieldTypeId);
|
|
}
|
|
if (gridView.Columns.Count > 0)
|
|
{
|
|
GridColumn firstColumn = gridView.Columns[0];
|
|
if (firstColumn != null)
|
|
{
|
|
gridView.OptionsView.ShowFooter = true;
|
|
firstColumn.Summary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridColumnSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), "合计: {0:#,###}行") });
|
|
gridView.GroupSummary.AddRange(new DevExpress.XtraGrid.GridSummaryItem[] { new DevExpress.XtraGrid.GridGroupSummaryItem(DevExpress.Data.SummaryItemType.Count, firstColumn.FieldName.ToString(), null, "合计: {0:#,###}行") });
|
|
}
|
|
}
|
|
return dt;
|
|
}
|
|
|
|
private void CreateButtonEdit(GridColumn gridColumn, DataRow row) {
|
|
Lskj.MyControl.LookUp.FrmMain frmMain = new Lskj.MyControl.LookUp.FrmMain();
|
|
RepositoryItemButtonEdit btnEdit = new RepositoryItemButtonEdit();
|
|
btnEdit.ButtonClick +=new ButtonPressedEventHandler(btnEdit_ButtonClick);
|
|
gridColumn.ColumnEdit = btnEdit;
|
|
String SQL = row["fieldsql"].ToString();
|
|
SQL = GetDefaultValue(SQL, ERPInfo.Instance.EmployeeId.ToString(), ERPInfo.Instance.EmployeeName);
|
|
Dictionary<string, string> Columns = new Dictionary<string, string>();
|
|
Columns.Add(row["fieldsqlid"].ToString(), "编码");
|
|
Columns.Add(row["fieldsqlname"].ToString(), "名称");
|
|
if (SQL.IndexOf("Remark", StringComparison.OrdinalIgnoreCase) != -1)
|
|
Columns.Add("Remark", "备注");
|
|
frmMain.IsMultiple = true;
|
|
frmMain.Columns = Columns;
|
|
int fieldsqlTag = Convert.ToInt32(row["fieldsqlTag"]);
|
|
frmMain.ValueField = row["fieldsqlid"] + "";
|
|
frmMain.TextField = row["fieldsqlname"] + "";
|
|
frmMain.IsText = fieldsqlTag;
|
|
btnEdit.Tag = frmMain;
|
|
}
|
|
private static void CreateDateTime(GridColumn gridColumn, int fieldsqlTag)
|
|
{
|
|
RepositoryItemDateEdit dateEdit = new RepositoryItemDateEdit();
|
|
dateEdit.DisplayFormat.FormatString = dateEdit.EditFormat.FormatString = dateEdit.Mask.EditMask = DateFormatType.GetFormatValue(fieldsqlTag);
|
|
dateEdit.DisplayFormat.FormatType = dateEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom;
|
|
|
|
dateEdit.Closed += new ClosedEventHandler(dateEdit_Closed);
|
|
gridColumn.ColumnEdit = dateEdit;
|
|
}
|
|
private static void CreateTime(GridColumn gridColumn, int fieldsqlTag)
|
|
{
|
|
RepositoryItemTimeEdit timeEdit = new RepositoryItemTimeEdit();
|
|
timeEdit.DisplayFormat.FormatString = timeEdit.EditFormat.FormatString = timeEdit.Mask.EditMask = DateFormatType.GetFormatValue(fieldsqlTag);
|
|
timeEdit.DisplayFormat.FormatType = timeEdit.EditFormat.FormatType = DevExpress.Utils.FormatType.Custom;
|
|
gridColumn.ColumnEdit = timeEdit;
|
|
}
|
|
|
|
#region 内部事件处理
|
|
private static void dateEdit_Closed(object sender, ClosedEventArgs e)
|
|
{
|
|
if (sender is DateEdit)
|
|
{
|
|
DateEdit dateEdit = (sender as DateEdit);
|
|
string dateFormatType = dateEdit.Properties.DisplayFormat.FormatString;
|
|
dateEdit.EditValue = dateEdit.DateTime.ToString(dateFormatType);
|
|
}
|
|
}
|
|
private static void btnEdit_ButtonClick(object sender, ButtonPressedEventArgs e)
|
|
{
|
|
ButtonEdit buttonEdit = (ButtonEdit)sender;
|
|
Lskj.MyControl.LookUp.FrmMain frmMain = (Lskj.MyControl.LookUp.FrmMain)buttonEdit.Tag;
|
|
DialogResult dr = frmMain.ShowDialog();
|
|
if (dr == DialogResult.OK) {
|
|
String value = string.Empty;
|
|
if (frmMain.IsText == 13) {
|
|
value = frmMain.ReturnValue;
|
|
}
|
|
else {
|
|
value = frmMain.ReturnText;
|
|
}
|
|
buttonEdit.Text = value;
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
private static void GetComboBox(string sql, string key, string value, string colum, GridColumn gc, int fieldsqlTag)
|
|
{
|
|
RepositoryItemComboBox combobox = new RepositoryItemComboBox();
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
foreach (DataRow item in dt.Rows)
|
|
combobox.Items.Add(item[value]);
|
|
combobox.NullText = "[请选择]";
|
|
gc.ColumnEdit = combobox;
|
|
}
|
|
|
|
private static void GetLookUpEdit(string sql, string key, string value, string colum, GridColumn gc, int fieldsqlTag, GridControl gg)
|
|
{
|
|
RepositoryItemLookUpEdit combobox = new RepositoryItemLookUpEdit();
|
|
combobox.DataSource = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
combobox.DisplayMember = value;
|
|
combobox.ValueMember = key;
|
|
LookUpColumnInfo ci = new LookUpColumnInfo();
|
|
ci.Caption = "编号";
|
|
ci.FieldName = key;
|
|
ci.Visible = false;
|
|
combobox.Columns.Add(ci);
|
|
|
|
LookUpColumnInfo ci2 = new LookUpColumnInfo();
|
|
ci2.Caption = "名称";
|
|
ci2.FieldName = value;
|
|
ci2.Visible = true;
|
|
combobox.Columns.Add(ci2);
|
|
|
|
gg.RepositoryItems.Add(combobox);
|
|
if (sql.IndexOf("remark", StringComparison.OrdinalIgnoreCase) != -1)
|
|
{
|
|
LookUpColumnInfo ci3 = new LookUpColumnInfo();
|
|
ci3.Caption = "备注";
|
|
ci3.FieldName = "remark";
|
|
ci3.Visible = true;
|
|
combobox.Columns.Add(ci3);
|
|
}
|
|
combobox.NullText = "[请选择]";
|
|
combobox.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
|
|
gc.ColumnEdit = combobox;
|
|
}
|
|
/// <summary>
|
|
/// 动态加载数据源
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private static void lookUp_QueryPopUp(object sender, CancelEventArgs e)
|
|
{
|
|
if (sender is SearchLookUpEdit)
|
|
{
|
|
var focusRow = pubGridView.GetDataRow(pubGridView.FocusedRowHandle);
|
|
if (focusRow != null)
|
|
{
|
|
SearchLookUpEdit edit = (sender as SearchLookUpEdit);
|
|
LookUpTag lookUpTag = edit.Properties.Tag as LookUpTag;
|
|
|
|
if (lookUpTag != null && !string.IsNullOrEmpty(lookUpTag.Sql))
|
|
{
|
|
string sqlValue = lookUpTag.Sql.Replace("#", "").Replace("#", "");
|
|
var fieldParams = GetParamValue(sqlValue);
|
|
for (int i = 0; i < fieldParams.Count; i++)
|
|
{
|
|
string fieldName = fieldParams[i].Replace("{", "").Replace("}", "");
|
|
string fieldValue = focusRow[fieldName] + "";
|
|
sqlValue = sqlValue.Replace(fieldParams[i], fieldValue);
|
|
}
|
|
DataTable dtTable = SqlHelper.ExecuteDataSet(sqlValue).Tables[0];
|
|
edit.Properties.DataSource = dtTable;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private static void GetLookUpEdit(string sql, string key, string value, string colum, GridColumn gc, int fieldsqlTag, string listKey, string listValue)
|
|
{
|
|
sql = GetDefaultValue(sql, ERPInfo.Instance.EmployeeId.ToString(), ERPInfo.Instance.EmployeeName);
|
|
RepositoryItemSearchLookUpEdit combobox = new RepositoryItemSearchLookUpEdit();
|
|
int allWidth = 0;
|
|
if ((fieldsqlTag == 15 || fieldsqlTag == 16) && sql.Contains("#"))
|
|
{
|
|
combobox.Tag = new LookUpTag() { Sql = sql, ValueMember = key, DisplayMember = listValue };
|
|
combobox.QueryPopUp += new CancelEventHandler(lookUp_QueryPopUp);
|
|
sql = Regex.Replace(sql, "#[^##]+#", " 1=1 ");
|
|
}
|
|
DataTable dtTable = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
combobox.DataSource = dtTable;
|
|
combobox.DisplayMember = listValue;
|
|
combobox.ValueMember = key;
|
|
GridColumn ci = new GridColumn();
|
|
ci.Caption = "编号";
|
|
ci.FieldName = listKey;
|
|
allWidth += ci.Width = CalcMaxColumnWidth(dtTable, listKey);
|
|
ci.Visible = true;
|
|
combobox.View.Columns.Add(ci);
|
|
|
|
GridColumn ci2 = new GridColumn();
|
|
ci2.Caption = "名称";
|
|
ci2.FieldName = listValue;
|
|
ci2.Visible = true;
|
|
allWidth += ci2.Width = CalcMaxColumnWidth(dtTable, listValue);
|
|
combobox.View.Columns.Add(ci2);
|
|
if (sql.IndexOf("remark", StringComparison.OrdinalIgnoreCase) != -1)
|
|
{
|
|
GridColumn ci3 = new GridColumn();
|
|
ci3.Caption = "备注";
|
|
ci3.FieldName = "remark";
|
|
ci3.Visible = true;
|
|
allWidth += ci3.Width = CalcMaxColumnWidth(dtTable, "remark");
|
|
combobox.View.Columns.Add(ci3);
|
|
combobox.BestFitMode = BestFitMode.BestFit; // 3列的时候自动计算宽度,否则自动填充满表格
|
|
combobox.View.OptionsView.ColumnAutoWidth = false;
|
|
}
|
|
else
|
|
{
|
|
combobox.BestFitMode = BestFitMode.BestFitResizePopup;
|
|
}
|
|
combobox.View.OptionsView.ShowIndicator = false;
|
|
combobox.View.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
|
combobox.PopupBorderStyle = PopupBorderStyles.Flat;
|
|
combobox.ShowPopupShadow = true;
|
|
combobox.AllowNullInput = DevExpress.Utils.DefaultBoolean.False;
|
|
combobox.PopupFormSize = new Size(allWidth, 250);
|
|
combobox.ShowFooter = false; // 是否显示底部
|
|
gc.ColumnEdit = combobox;
|
|
}
|
|
/// <summary>
|
|
/// 计算最大宽度
|
|
/// </summary>
|
|
private static int CalcMaxColumnWidth(DataTable dTable, string columnName)
|
|
{
|
|
int MaxWidth = 0;
|
|
foreach (DataRow row in dTable.Rows)
|
|
{
|
|
int columnWidth = CommonUtils.GetFontWidth(row[columnName] + "");
|
|
if (columnWidth > MaxWidth)
|
|
{
|
|
MaxWidth = columnWidth;
|
|
}
|
|
}
|
|
return MaxWidth;
|
|
}
|
|
|
|
/// <summary>
|
|
/// 取指定组件值
|
|
/// </summary>
|
|
/// <param name="parent"></param>
|
|
/// <param name="list"></param>
|
|
public static string GetControlText(Control control)
|
|
{
|
|
if (control == null)
|
|
return "";
|
|
|
|
ControlModelTag cmTag = control.Tag as ControlModelTag;
|
|
if (cmTag == null)
|
|
{
|
|
return control.Text;
|
|
}
|
|
if (cmTag.fieldTypeId == ControlType.LabAutoSeacherText)
|
|
{
|
|
return control.Text;
|
|
}
|
|
else if ((cmTag.fieldTypeId == ControlType.LabAutoSeacherValue) ||
|
|
(cmTag.fieldTypeId == ControlType.LabComboxValueParam))
|
|
{
|
|
AutoSearcher te = control as AutoSearcher;
|
|
if (te == null)
|
|
te = (control as LabelAutoSearcherEx).GetAutoSearcher;
|
|
|
|
return te.ReturnValue.ToString();
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabMultiSelectValue)
|
|
{
|
|
LabelLookUp lookup = control as LabelLookUp;
|
|
return lookup.ReturnValue;
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabComboxValue)
|
|
{
|
|
LabelComboxEx Cb = control as LabelComboxEx;
|
|
return Cb.getComboBox.SelectedValue + "";
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabComboxText)
|
|
{
|
|
LabelComboxEx Cb = control as LabelComboxEx;
|
|
return Cb.getComboBox.Text;
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabDate ||
|
|
cmTag.fieldTypeId == ControlType.LabDateTime ||
|
|
cmTag.fieldTypeId == ControlType.LabDateTimeShort ||
|
|
cmTag.fieldTypeId == ControlType.LabTime ||
|
|
cmTag.fieldTypeId == ControlType.LabShortTime)
|
|
{
|
|
LabelDateEx Cb = control as LabelDateEx;
|
|
return Cb.GetDateTimePicker.Value.ToString("yyyy-MM-dd HH:mm:ss");
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabTextInt)
|
|
{
|
|
if ((control.Text.Trim() == ""))
|
|
return "0";
|
|
else
|
|
return control.Text;
|
|
}
|
|
else
|
|
{
|
|
if (cmTag.fieldTypeId != 99)
|
|
{
|
|
return control.Text;
|
|
}
|
|
}
|
|
return "0";
|
|
}
|
|
/// <summary>
|
|
/// 设置默认值
|
|
/// </summary>
|
|
/// <param name="parent"></param>
|
|
/// <param name="list"></param>
|
|
public static void SetControlText(Control control, string value)
|
|
{
|
|
if (control == null)
|
|
return;
|
|
ControlModelTag cmTag = control.Tag as ControlModelTag;
|
|
//MessageBox.Show(cmTag.fieldTypeId.ToString());
|
|
if (cmTag.fieldTypeId == ControlType.LabAutoSeacherText)
|
|
{
|
|
control.Text = value;
|
|
}
|
|
else if ((cmTag.fieldTypeId == ControlType.LabAutoSeacherValue)||(cmTag.fieldTypeId == ControlType.LabComboxValueParam))
|
|
{
|
|
AutoSearcher te = control as AutoSearcher;
|
|
if (te == null)
|
|
te = (control as LabelAutoSearcherEx).GetAutoSearcher;
|
|
//MessageBox.Show(te.Name+"____"+value);
|
|
te.ReturnValue = value;
|
|
te.SetValueSilent(value, "");
|
|
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabComboxValue)
|
|
{
|
|
LabelComboxEx Cb = control as LabelComboxEx;
|
|
if (value != "")
|
|
Cb.getComboBox.SelectedValue = value;
|
|
else
|
|
{
|
|
Cb.getComboBox.SelectedValue = 0;
|
|
}
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabComboxText)
|
|
{
|
|
LabelComboxEx Cb = control as LabelComboxEx;
|
|
Cb.getComboBox.Text = value;
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabDate ||
|
|
cmTag.fieldTypeId == ControlType.LabDateTime ||
|
|
cmTag.fieldTypeId == ControlType.LabDateTimeShort ||
|
|
cmTag.fieldTypeId == ControlType.LabTime ||
|
|
cmTag.fieldTypeId == ControlType.LabShortTime)
|
|
{
|
|
LabelDateEx Cb = control as LabelDateEx;
|
|
if (string.IsNullOrEmpty(value.Trim()))
|
|
value = DateTime.Today.ToShortDateString();
|
|
Cb.Text = value;
|
|
Cb.GetDateTimePicker.Value = Convert.ToDateTime(value);
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabMultiSelectValue)
|
|
{
|
|
LabelLookUp lookup = control as LabelLookUp;
|
|
lookup.SetValueText(value);
|
|
}
|
|
else if (cmTag.fieldTypeId == ControlType.LabMultiSelectText)
|
|
{
|
|
LabelLookUp lookup = control as LabelLookUp;
|
|
lookup.SetTextValue(value);
|
|
}
|
|
else
|
|
{
|
|
if (cmTag.fieldTypeId != 99)
|
|
{
|
|
control.Text = value;
|
|
}
|
|
}
|
|
if (cmTag.fieldTypeId == ControlType.LabTextInt && string.IsNullOrEmpty(control.Text))
|
|
{
|
|
control.Text = "0";
|
|
}
|
|
return;
|
|
}
|
|
|
|
#region 获取参数
|
|
public static List<string> GetParamValue(string param)
|
|
{
|
|
string SqlParamRegex = "{([^{])+}";
|
|
List<string> list = new List<string>();
|
|
Regex regex = new Regex(SqlParamRegex);
|
|
MatchCollection mcs = regex.Matches(param);
|
|
foreach (Match item in mcs)
|
|
{
|
|
list.Add(item.Value);
|
|
}
|
|
return list;
|
|
}
|
|
#endregion
|
|
}
|
|
}
|