990 lines
40 KiB
C#
990 lines
40 KiB
C#
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 CommonLib.data;
|
|
using DevExpress.Utils;
|
|
using CommonLib;
|
|
using DevExpress.XtraGrid.Views.Grid;
|
|
using System.Data.SqlClient;
|
|
using DevExpress.XtraGrid.Columns;
|
|
using Lskj.Common;
|
|
using DevExpress.XtraEditors;
|
|
using CommonLib.utils;
|
|
using System.Diagnostics;
|
|
using ExcelPlus;
|
|
using Lskj.MyControl;
|
|
|
|
namespace Lskj.PubModuleTD
|
|
{
|
|
|
|
public partial class FrmMain : FormBase
|
|
{
|
|
|
|
#region 私有属性
|
|
/// <summary>
|
|
/// 左边显示类型
|
|
/// </summary>
|
|
private int LeftType { get; set; }
|
|
/// <summary>
|
|
/// 树控件表名
|
|
/// </summary>
|
|
private string TreeSql { get; set; }
|
|
/// <summary>
|
|
/// DbDataAdapter
|
|
/// </summary>
|
|
private SqlDataAdapter da { get; set; }
|
|
/// <summary>
|
|
/// 操作Dataset
|
|
/// </summary>
|
|
private DataSet ds { get; set; }
|
|
/// <summary>
|
|
/// 调用方案
|
|
/// </summary>
|
|
private int n { get; set; }
|
|
/// <summary>
|
|
/// 系统配置表
|
|
/// </summary>
|
|
private DataRow dtSystemDlltab;
|
|
/// <summary>
|
|
/// 数据库字段配置
|
|
/// </summary>
|
|
private DataRow dtSystemwordbooktabTag3;
|
|
/// <summary>
|
|
/// 查询唯一标示
|
|
/// </summary>
|
|
private DataRow dtSystemwordbooktaNo;
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
private List<ToolStripMenuItem> tsmMenuList = new List<ToolStripMenuItem>();
|
|
/// <summary>
|
|
/// 条件颜色
|
|
/// </summary>
|
|
private DataTable dtSysColorList;
|
|
/// <summary>
|
|
/// 搜索字段
|
|
/// </summary>
|
|
private DataTable cbSearchFiled;
|
|
/// <summary>
|
|
/// 添加字段
|
|
/// </summary>
|
|
private DataTable dtFields;
|
|
/// <summary>
|
|
/// 必须录入字段
|
|
/// </summary>
|
|
private DataRow[] nullableFields;
|
|
|
|
//表格编辑
|
|
private Boolean gridEdited;
|
|
//添加条件
|
|
private string addCond;
|
|
//修改条件
|
|
private string modifyCond;
|
|
//删除条件
|
|
private string deleteCond;
|
|
private bool needModified;
|
|
|
|
|
|
private bool inSummary = false;
|
|
private DataTable dtSum = new DataTable();//统计列
|
|
|
|
private int searchHide;//是否显示搜索
|
|
private int leftWidth; //宽度
|
|
private MySearchCreateControl mcc = new MySearchCreateControl();
|
|
#endregion
|
|
|
|
#region 构造函数
|
|
public FrmMain()
|
|
{
|
|
//DevExpress.XtraGrid.Localization.GridResLocalizer.Active = new Dxper.LocalizationCHS.Win.XtraGridCHS();
|
|
//DevExpress.XtraEditors.Controls.Localizer.Active = new Dxper.LocalizationCHS.Win.XtraEditorsCHS();
|
|
//DevExpress.XtraLayout.Localization.LayoutLocalizer.Active = new Dxper.LocalizationCHS.Win.XtraLayoutCHS();
|
|
//DevExpress.XtraPrinting.Localization.PreviewLocalizer.Active = new Dxper.LocalizationCHS.Win.XtraPrintingCHS();
|
|
InitializeComponent();
|
|
ds = new DataSet();
|
|
gcMain.gridView.IndicatorWidth = 40;
|
|
gcMain.gridView.DoubleClick += new EventHandler(GridViewpub_DoubleClick);
|
|
//gcMain.gridView.RowCellClick += new RowCellClickEventHandler(gridViewMain_RowCellClick);
|
|
gcMain.gridView.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(gridMain_SelectionChanged);
|
|
//gcMain.gridView.RowStyle += new RowStyleEventHandler(gvList_RowCellStyle);
|
|
//gcHeader.gridView.RowCellClick += new RowCellClickEventHandler(gridViewLeft_RowCellClick);
|
|
gcHeader.gridView.SelectionChanged += new DevExpress.Data.SelectionChangedEventHandler(gridView_SelectionChanged);
|
|
gcHeader.gridView.OptionsBehavior.Editable = false;
|
|
|
|
gcMain.gridView.CellValueChanged += new DevExpress.XtraGrid.Views.Base.CellValueChangedEventHandler(gridBillInfo_CellValueChanged);
|
|
}
|
|
#endregion
|
|
|
|
#region 生成行号
|
|
protected void GridViewpub_CustomDrawRowIndicator(object sender, RowIndicatorCustomDrawEventArgs e)
|
|
{
|
|
e.Appearance.TextOptions.HAlignment = HorzAlignment.Center;
|
|
if (e.Info.IsRowIndicator)
|
|
{
|
|
if (e.RowHandle >= 0)
|
|
{
|
|
e.Info.DisplayText = (e.RowHandle + 1).ToString();
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 初始化数据
|
|
private void FrmGridTree_Load(object sender, EventArgs e)
|
|
{
|
|
this.Text = FormText;
|
|
gcMain.gridView.Appearance.HeaderPanel.TextOptions.HAlignment = HorzAlignment.Center;
|
|
dtSystemDlltab = SqlHelper.ExecuteDataSet("select * from P_systemDlltab where DLLCoid='" + DLLCoid + "'").Tables[0].Rows[0];
|
|
dtSystemDlltab["SQL"] = PubClass.ReqSqlParam(dtSystemDlltab["SQL"] + "", OperatorId, OperatorName);
|
|
LeftType = Convert.ToInt32(dtSystemDlltab["dllType"]);
|
|
gridEdited = (string.IsNullOrEmpty(dtSystemDlltab["selfEdit"] + "") || dtSystemDlltab["selfEdit"] + "" == "0" || dtSystemDlltab["selfEdit"] + "" == "False") ? false : true;
|
|
gcMain.gridView.OptionsBehavior.Editable = gridEdited;
|
|
|
|
btnSave.Enabled = gridEdited;
|
|
addCond = dtSystemDlltab["addCond"].ToString();
|
|
modifyCond = dtSystemDlltab["modifyCond"].ToString();
|
|
deleteCond = dtSystemDlltab["deleteCond"].ToString();
|
|
searchHide = Convert.ToInt32(dtSystemDlltab["searchHide"].ToString());
|
|
leftWidth = Convert.ToInt32(dtSystemDlltab["leftWidth"].ToString());
|
|
DataTable dtTag3 = SqlHelper.ExecuteDataSet("select * from P_systemwordbooktab where tab='" + DLLCoid + "' and fieldsqlTag=3").Tables[0];
|
|
if (dtTag3 != null && dtTag3.Rows.Count > 0)
|
|
dtSystemwordbooktabTag3 = dtTag3.Rows[0];
|
|
dtSystemwordbooktaNo = SqlHelper.ExecuteDataSet("select top 1 * from P_systemwordbooktab where tab='" + DLLCoid + "' order by orderid").Tables[0].Rows[0];
|
|
dtSysColorList = SqlHelper.ExecuteDataSet("select * from P_systemwordbookcolor where tab='" + DLLCoid + "' and useflag=0 order by orderid").Tables[0];
|
|
//加载数据
|
|
if (dtSystemDlltab["searchEnable"].ToString() == "1")
|
|
{
|
|
//InitData(dtSystemDlltab["SQL"].ToString());
|
|
}
|
|
//加载表格
|
|
InitColumns();
|
|
//初始化菜单
|
|
InitMenu();
|
|
|
|
if (searchHide == 1)
|
|
{
|
|
pl_right_where.Visible = false;
|
|
}
|
|
if (LeftType == 2)
|
|
{
|
|
string sql = "select * from p_systemwordbookgrid where fieldid=" + dtSystemwordbooktabTag3["id"] + " order by orderid";
|
|
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.FieldName = row["fieldname"]+"";
|
|
gridColumn.Name = row["fieldname"] + "";
|
|
gridColumn.VisibleIndex = i;
|
|
gridColumn.Caption = row["username"].ToString();
|
|
gridColumn.Width = Convert.ToInt32(row["width"]);
|
|
gridColumn.Visible = Convert.ToInt32(row["visible"]) == 0;
|
|
gcHeader.gridView.Columns.Add(gridColumn);
|
|
}
|
|
string leftSql = dtSystemwordbooktabTag3["fieldsql"] + "";
|
|
leftSql = PubClass.ReqSqlParam(leftSql, OperatorId, OperatorName);
|
|
gcHeader.gridControl.DataSource = SqlHelper.ExecuteDataSet(leftSql).Tables[0];
|
|
InitHeadMenu();
|
|
}
|
|
|
|
//模板添加删除修改导入导出
|
|
BtnAdd.Enabled = dtSystemDlltab["addEnable"].ToString() == "1";
|
|
BtnDel.Enabled = dtSystemDlltab["deleteEnable"].ToString() == "1";
|
|
btnSave.Enabled = dtSystemDlltab["modifyEnable"].ToString() == "1" && gridEdited;
|
|
gcMain.gridView.OptionsBehavior.Editable = dtSystemDlltab["modifyEnable"].ToString() == "1" && gridEdited;
|
|
btnImprt.Enabled = dtSystemDlltab["importEnable"].ToString() == "1";
|
|
btnExport.Enabled = dtSystemDlltab["exportEnable"].ToString() == "1";
|
|
needModified = dtSystemDlltab["modifyEnable"].ToString() == "1";
|
|
SearchCraeteControl();
|
|
|
|
//查询统计列
|
|
string isSumSql = "select * from p_systemwordbooktab where tab='" + DLLCoid + "' and isnull(vislble,0)=0 and isnull(calcExpr,'')<>''order by calcOrder asc";
|
|
dtSum = SqlHelper.ExecuteDataSet(isSumSql).Tables[0];
|
|
}
|
|
public void SearchCraeteControl()
|
|
{
|
|
string sql = string.Format("exec p_getControlLocation '{0}','{1}','{2}'", dtSystemwordbooktabTag3["fieldKey"], DLLCoid, OperatorName);
|
|
DataTable dt = SqlHelper.ExecuteDataSet(sql).Tables[0];
|
|
string condSql = string.Format("select * from p_systembillsourcecond where formKey='{0}'", dtSystemwordbooktabTag3["fieldKey"]);
|
|
mcc.LoginId = OperatorId;
|
|
mcc.LoginName = OperatorName;
|
|
mcc.SearchSql = dtSystemwordbooktabTag3["fieldsql"] + " where 1=1 ";
|
|
mcc.ctr = pl_right_where;
|
|
mcc.gce = gcHeader.gridControl;
|
|
//mcc.gcLeft = gcLeft;
|
|
//mcc.tvLeft = tvList;
|
|
mcc.dllType = LeftType;
|
|
mcc.condDt = SqlHelper.ExecuteDataSet(condSql).Tables[0];
|
|
if (dt != null && dt.Rows.Count > 0)
|
|
{
|
|
CreateControlModel cm = new CreateControlModel();
|
|
cm.dt = dt;
|
|
cm.ctr = pl_right_where;
|
|
cm.loginid = OperatorId;
|
|
cm.loginname = OperatorName;
|
|
int height = mcc.CreateControlByModel(cm);
|
|
pl_right_where.Height = height;
|
|
Control[] ctl = pl_right_where.Controls.Find("btnCondSearch", true);
|
|
if ((ctl != null) && (ctl.Length > 0))
|
|
{
|
|
(ctl[0] as SimpleButton).Width = 72;
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
///
|
|
/// </summary>
|
|
public void InitMenu()
|
|
{
|
|
GridMenu gm = new GridMenu(FormText, OperatorId, OperatorName, Privilege, DLLCoid, "", gcMain.gridControl);
|
|
gm.DirId = dtSystemDlltab["dirid"] + "";
|
|
gm.filedKey = dtSystemwordbooktaNo["fieldname"].ToString();
|
|
gm.BindGridMenuWQ(DLLCoid);
|
|
gm.OnGridMenuClickRefreshData += new EventHandler(gm_OnGridMenuClickRefreshDataDetail);
|
|
}
|
|
/// <summary>
|
|
/// 右键菜单回调函数
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void gm_OnGridMenuClickRefreshDataDetail(object sender, EventArgs e)
|
|
{
|
|
int[] rows = gcHeader.gridView.GetSelectedRows();
|
|
if (rows != null && rows.Count() > 0)
|
|
{
|
|
DataRow row = gcHeader.gridView.GetDataRow(rows[0]);
|
|
this.HandleAddButtonState(row);
|
|
initDetailData();
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 顶部右键菜单
|
|
/// </summary>
|
|
public void InitHeadMenu()
|
|
{
|
|
GridMenu gm = new GridMenu(FormText, OperatorId, OperatorName, Privilege, DLLCoid, "", gcHeader.gridControl);
|
|
gm.DirId = dtSystemDlltab["dirid"] + "";
|
|
gm.filedKey = dtSystemwordbooktaNo["fieldname"].ToString();
|
|
gm.BindGridMenuWQ(dtSystemwordbooktabTag3["fieldKey"].ToString());
|
|
gm.OnGridMenuClickRefreshData += new EventHandler(gm_OnGridMenuClickRefreshDataHeader);
|
|
}
|
|
/// <summary>
|
|
/// 右键菜单回调函数
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void gm_OnGridMenuClickRefreshDataHeader(object sender, EventArgs e)
|
|
{
|
|
gcHeader.gridControl.DataSource = SqlHelper.ExecuteDataSet(dtSystemwordbooktabTag3["fieldsql"] + "").Tables[0];
|
|
}
|
|
#endregion
|
|
|
|
#region 绑定数据
|
|
public void InitData(string sql)
|
|
{
|
|
int oldRowHandle = (gcMain.gridControl.MainView as GridView).FocusedRowHandle;
|
|
//这个绑定数据源
|
|
da = SqlHelper.ExecuteAdapter(CommandType.Text, sql);
|
|
if (ds != null && ds.Tables.Count > 0)
|
|
ds.Clear();
|
|
da.Fill(ds);
|
|
SqlCommandBuilder cb = new SqlCommandBuilder(da);
|
|
gcMain.gridControl.DataSource = ds.Tables[0];
|
|
(gcMain.gridControl.MainView as GridView).ClearSelection();
|
|
(gcMain.gridControl.MainView as GridView).FocusedRowHandle = oldRowHandle;
|
|
(gcMain.gridControl.MainView as GridView).SelectRow(oldRowHandle);
|
|
}
|
|
#endregion
|
|
|
|
#region 加载表格列
|
|
/// <summary>
|
|
/// 加载表格列头
|
|
/// </summary>
|
|
/// <param name="tab"></param>
|
|
public void InitColumns()
|
|
{
|
|
SqlParameter[] p =
|
|
{
|
|
new SqlParameter("@modid",SqlDbType.VarChar,20),
|
|
new SqlParameter("@operatorname",SqlDbType.VarChar,20)
|
|
};
|
|
p[0].Value = DLLCoid;
|
|
p[1].Value = OperatorName;
|
|
DataTable dt = SqlHelper.ExecuteDataSet(CommandType.StoredProcedure, "[p_getBaseModuleField]", "temp", p).Tables[0];
|
|
nullableFields = dt.Rows.OfType<DataRow>().Where(x => x["tagid"] + "" == "1").ToArray();
|
|
gcMain.SetColumns2(dt);
|
|
}
|
|
#endregion
|
|
|
|
#region 添加数据
|
|
/// <summary>
|
|
/// 添加数据
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void BtnAdd_Click(object sender, EventArgs e)
|
|
{
|
|
string fieldsqlid = string.Empty;
|
|
string fieldsqlname = string.Empty;
|
|
string strTag = string.Empty;
|
|
string jsonData = string.Empty;
|
|
|
|
if (!string.IsNullOrEmpty(dtSystemDlltab["AddDllName"] + ""))
|
|
{
|
|
if (LeftType == 2)
|
|
{
|
|
int[] rows = gcHeader.gridView.GetSelectedRows();
|
|
if (rows.Length == 0)
|
|
{
|
|
XtraMessageBox.Show("请选择类别", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
DataRow row = gcHeader.gridView.GetDataRow(rows[0]);
|
|
fieldsqlid = row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + "";
|
|
fieldsqlname = row[dtSystemwordbooktabTag3["fieldsqlname"] + ""] + "";
|
|
|
|
DataTable dtGcHeader = gcHeader.gridControl.DataSource as DataTable;
|
|
if (dtGcHeader != null && dtGcHeader.Rows.Count > 0)
|
|
{
|
|
DataTable dtTemp = dtGcHeader.Clone();
|
|
dtTemp.ImportRow(row);
|
|
jsonData = dtTemp.ToJson();
|
|
}
|
|
}
|
|
string[] args = {
|
|
FormText,
|
|
OperatorId,
|
|
OperatorName,
|
|
Privilege,
|
|
DLLCoid,
|
|
"",
|
|
"",
|
|
"",
|
|
fieldsqlid,
|
|
fieldsqlname,
|
|
strTag,
|
|
"",
|
|
"",
|
|
"",
|
|
jsonData
|
|
};
|
|
IForm form = PubUtil.LoadDllForm(dtSystemDlltab["AddDllName"] + "", args);
|
|
DialogResult result = form.SubForm.ShowDialog();
|
|
InitData(dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldsqlid"] + " like '" + fieldsqlid + "%' ");
|
|
}
|
|
else
|
|
{
|
|
AddRow(gcMain.gridView);
|
|
}
|
|
}
|
|
|
|
/// <summary>
|
|
/// 添加行
|
|
/// </summary>
|
|
/// <param name="view"></param>
|
|
protected void AddRow(DevExpress.XtraGrid.Views.Grid.GridView view)
|
|
{
|
|
int prevDataRowIndex = view.GetFocusedDataSourceRowIndex();
|
|
view.AddNewRow();
|
|
int[] rows = gcHeader.gridView.GetSelectedRows();
|
|
DataRow row = gcHeader.gridView.GetDataRow(rows[0]);
|
|
GridColumnCollection gcMainColumns = gcMain.gridView.Columns;
|
|
|
|
//默认值
|
|
foreach (GridColumn item in gcMain.gridView.Columns)
|
|
{
|
|
if (item.Tag is MyTagModel)
|
|
{
|
|
MyTagModel cmt = item.Tag as MyTagModel;
|
|
string defaultValue = cmt.DefaultValue;
|
|
if (string.IsNullOrEmpty(defaultValue)) continue;
|
|
|
|
List<String> list = PubClass.GetParamValue(defaultValue);
|
|
for (int i = 0; i < list.Count; i++)
|
|
{
|
|
if (list[i].Contains("##"))
|
|
{
|
|
string fileName = list[i].Replace("##", "").Replace("{", "").Replace("}", "");
|
|
defaultValue = defaultValue.Replace(list[i], row[fileName] + "");
|
|
}
|
|
}
|
|
defaultValue = PubClass.GetDefaultValue(defaultValue, OperatorId, OperatorName);
|
|
if (!string.IsNullOrEmpty(defaultValue))
|
|
{
|
|
view.SetRowCellValue(view.FocusedRowHandle, item, defaultValue);
|
|
}
|
|
}
|
|
}
|
|
//关键字段赋值
|
|
if (LeftType == 2)
|
|
{
|
|
GridColumn tmpcol = gcMain.gridView.Columns[dtSystemwordbooktabTag3["fieldname"] + ""];
|
|
view.SetRowCellValue(gcMain.gridView.FocusedRowHandle, tmpcol, row[dtSystemwordbooktabTag3["fieldsqlid"] + ""]);
|
|
view.UpdateCurrentRow();
|
|
view.ShowEditor();
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 删除数据
|
|
private void BtnDel_Click(object sender, EventArgs e)
|
|
{
|
|
int[] rowid = gcMain.gridView.GetSelectedRows();
|
|
if (rowid.Length == 0)
|
|
{
|
|
MessageBox.Show("没有选择要删除数据", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Warning);
|
|
}
|
|
else
|
|
{
|
|
if (MessageBox.Show("您确定要删除选中记录?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Question) == DialogResult.Yes)
|
|
{
|
|
string ids = string.Empty;
|
|
foreach (int rid in rowid)
|
|
{
|
|
DataRow dr = gcMain.gridView.GetDataRow(rid);
|
|
string ParmarKey = dr[dtSystemwordbooktaNo["fieldname"] + ""] + "";
|
|
if (string.IsNullOrEmpty(ParmarKey))
|
|
{
|
|
gcMain.gridView.DeleteRow(gcMain.gridView.FocusedRowHandle);
|
|
}
|
|
else
|
|
{
|
|
ids += "'" + ParmarKey + "',";
|
|
}
|
|
}
|
|
if (!string.IsNullOrEmpty(ids))
|
|
{
|
|
string sql = "delete from " + dtSystemDlltab["SQLDT1"] + " where " + dtSystemwordbooktaNo["fieldname"] + " in(" + ids.Trim(',') + ")";
|
|
SqlHelper.ExecuteNonQuery(sql);
|
|
DataRow row = gcHeader.gridView.GetDataRow(gcHeader.gridView.GetSelectedRows()[0]);
|
|
InitData(dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldsqlid"] + " = '" + row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + "' ");
|
|
//InitData(dtSystemDlltab["SQL"] + "");
|
|
MessageBox.Show("记录删除成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
|
|
SqlHelper.AddLogTab(DLLCoid, FormText + "-->删除", FormText + "[" + ids + "]", FormText, OperatorName);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("记录删除成功", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 验证是否可以删除
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void gridViewMain_RowCellClick(object sender, RowCellClickEventArgs e)
|
|
{
|
|
DataRow row = gcMain.gridView.GetDataRow(e.RowHandle);
|
|
this.HandleDelButtonState(row); // 验证删除按钮是否可以用
|
|
}
|
|
|
|
private void gridMain_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
|
|
{
|
|
int[] rowHandle = gcMain.gridView.GetSelectedRows();
|
|
if ((rowHandle == null) || (rowHandle.Length < 1))
|
|
return;
|
|
DataRow row = gcMain.gridView.GetDataRow(rowHandle[0]);
|
|
this.HandleDelButtonState(row); // 验证删除按钮是否可以用
|
|
}
|
|
|
|
#endregion
|
|
|
|
#region 查询
|
|
/// <summary>
|
|
/// 查询
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnSearch_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 保存
|
|
private void btnSave_Click(object sender, EventArgs e)
|
|
{
|
|
if (gridRequired())
|
|
{
|
|
try
|
|
{
|
|
da.Update(ds);
|
|
}
|
|
catch (DBConcurrencyException dce)
|
|
{
|
|
// 并发异常
|
|
XtraMessageBox.Show("数据已更新,请刷新后重试.");
|
|
return;
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
if (ex.Message.IndexOf("ix", StringComparison.OrdinalIgnoreCase) != -1)
|
|
{
|
|
XtraMessageBox.Show("系统检测到录入信息重复,请检查", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
else
|
|
{
|
|
XtraMessageBox.Show(ex.Message);
|
|
return;
|
|
}
|
|
}
|
|
XtraMessageBox.Show("修改成功");
|
|
}
|
|
}
|
|
/// <summary>
|
|
/// 表格必须录入验证
|
|
/// </summary>
|
|
/// <returns></returns>
|
|
private bool gridRequired()
|
|
{
|
|
DataTable dtBillItem = gcMain.gridControl.DataSource as DataTable;
|
|
DataColumnCollection dtBillRow = dtBillItem.Columns;
|
|
GridView gridView = gcMain.gridView;
|
|
GridColumnCollection gridColumns = gridView.Columns;
|
|
|
|
foreach (DataRow drGrid in dtBillItem.Rows)
|
|
{
|
|
foreach (DataRow dr in nullableFields)
|
|
{
|
|
string fieldName = dr["fieldName"] + "";
|
|
string fieldText = dr["username1"] + "";
|
|
if (string.IsNullOrEmpty(drGrid[fieldName] + ""))
|
|
{
|
|
XtraMessageBox.Show(string.Format("[{0}] 不能为空", fieldText));
|
|
gridView.Focus();
|
|
gridView.FocusedRowHandle = dtBillItem.Rows.IndexOf(drGrid);
|
|
gridView.FocusedColumn = gridColumns[fieldName];
|
|
gridView.SelectCell(gridView.FocusedRowHandle, gridColumns[fieldName]);
|
|
gridView.ShowEditorByMouse();
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 打印
|
|
private void BtnPrint_Click(object sender, EventArgs e)
|
|
{
|
|
PubClass.Preview(gcMain.gridControl);
|
|
}
|
|
#endregion
|
|
|
|
#region 修改
|
|
private void GridViewpub_DoubleClick(object sender, EventArgs e)
|
|
{
|
|
if (!string.IsNullOrEmpty(dtSystemDlltab["AddDllName"] + ""))
|
|
{
|
|
if (LeftType == 2)
|
|
{
|
|
bool isReflash = UpdateModel();
|
|
if (isReflash)
|
|
{
|
|
int[] rows = gcMain.gridView.GetSelectedRows();
|
|
if (rows.Length == 0)
|
|
return;
|
|
DataRow row = gcMain.gridView.GetDataRow(rows[0]);
|
|
InitData(dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldname"] + " like '" + row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + "%' ");
|
|
}
|
|
}
|
|
else
|
|
{
|
|
bool isReflash = UpdateModel();
|
|
if (isReflash)
|
|
{
|
|
InitData(dtSystemDlltab["SQL"].ToString());
|
|
}
|
|
}
|
|
}
|
|
}
|
|
private void tsmUpdate_Click(object sender, EventArgs e)
|
|
{
|
|
if (!string.IsNullOrEmpty(dtSystemDlltab["AddDllName"] + ""))
|
|
{
|
|
bool isReflash = UpdateModel();
|
|
if (isReflash)
|
|
{
|
|
InitData(dtSystemDlltab["SQL"] + "");
|
|
}
|
|
}
|
|
}
|
|
|
|
public bool UpdateModel()
|
|
{
|
|
int[] rows = gcMain.gridView.GetSelectedRows();
|
|
if (rows.Length > 0)
|
|
{
|
|
DataRow dr = gcMain.gridView.GetDataRow(rows[0]);
|
|
//判断修改条件是否符合
|
|
Boolean canModify = string.IsNullOrEmpty(modifyCond);
|
|
if (needModified == true)
|
|
{
|
|
string tempCond = modifyCond;
|
|
if (!canModify)
|
|
{
|
|
tempCond = PubClass.ReqSqlParam(tempCond, OperatorId, OperatorName);
|
|
tempCond = PubClass.ReqSqlWhere(dr, tempCond);
|
|
canModify = Convert.ToBoolean(Evaluator.Eval(tempCond));
|
|
}
|
|
}
|
|
else
|
|
{
|
|
canModify = false;
|
|
}
|
|
string productId = dr[dtSystemwordbooktaNo["fieldname"] + ""].ToString();
|
|
string[] args = {
|
|
FormText,
|
|
OperatorId,
|
|
OperatorName,
|
|
Privilege,
|
|
DLLCoid,
|
|
"",
|
|
Convert.ToInt32( !canModify).ToString(),
|
|
productId,
|
|
"",
|
|
"",
|
|
""
|
|
};
|
|
IForm form = PubUtil.LoadDllForm(dtSystemDlltab["AddDllName"] + "", args);
|
|
form.SubForm.ShowDialog();
|
|
}
|
|
return true;
|
|
}
|
|
#endregion
|
|
|
|
#region 动态加载菜单
|
|
/// <summary>
|
|
///动态加载菜单
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void cmsGrid_Opening(object sender, CancelEventArgs e)
|
|
{
|
|
cmsGrid.Items.Clear();
|
|
List<ToolStripMenuItem> listQQ = new List<ToolStripMenuItem>();
|
|
List<ToolStripMenuItem> listWWW = new List<ToolStripMenuItem>();
|
|
|
|
int[] rowCount = gcMain.gridView.GetSelectedRows();
|
|
if (rowCount.Length > 0)
|
|
{
|
|
DataRow row = gcMain.gridView.GetDataRow(rowCount[0]);
|
|
GridColumnCollection columns = gcMain.gridView.Columns;
|
|
for (int i = 0; i < columns.Count; i++)
|
|
{
|
|
GridColumn gcItem = columns[i];
|
|
string tag = gcItem.Tag + "";
|
|
if (tag == "qq")
|
|
{
|
|
if (!string.IsNullOrEmpty(row[gcItem.Name] + ""))
|
|
{
|
|
ToolStripMenuItem item = new ToolStripMenuItem("(" + gcItem.Caption + ")" + row[gcItem.Name] + "", global::Lskj.PubModuleTD.Properties.Resources.qq);
|
|
item.Tag = row[gcItem.Name];
|
|
item.Click += new EventHandler(item_qq_Click);
|
|
listQQ.Add(item);
|
|
}
|
|
}
|
|
if (tag == "www")
|
|
{
|
|
if (!string.IsNullOrEmpty(row[gcItem.Name] + ""))
|
|
{
|
|
ToolStripMenuItem item = new ToolStripMenuItem("(" + gcItem.Caption + ")" + row[gcItem.Name] + "", global::Lskj.PubModuleTD.Properties.Resources.www);
|
|
item.Tag = row[gcItem.Name];
|
|
item.Click += new EventHandler(item_www_Click);
|
|
listWWW.Add(item);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
cmsGrid.Items.AddRange(tsmMenuList.ToArray());
|
|
cmsGrid.Items.AddRange(listQQ.ToArray());
|
|
cmsGrid.Items.AddRange(listWWW.ToArray());
|
|
}
|
|
#endregion
|
|
|
|
#region 打开QQ
|
|
protected void item_qq_Click(object sender, EventArgs e)
|
|
{
|
|
ToolStripMenuItem t = (ToolStripMenuItem)sender;
|
|
string text = t.Tag + "";
|
|
if (string.IsNullOrEmpty(text))
|
|
{
|
|
MessageBox.Show("请输入您的QQ号码", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
Process p = new Process();
|
|
ProcessStartInfo ps = new ProcessStartInfo();
|
|
string Url = string.Format(@"tencent://message/?Menu=yes&uin={0}", text);
|
|
ps.FileName = @"iexplore.exe";
|
|
ps.Arguments = Url;
|
|
ps.UseShellExecute = true;
|
|
ps.RedirectStandardInput = false;
|
|
//ps.WindowStyle = ProcessWindowStyle.Hidden;
|
|
p.StartInfo = ps;
|
|
p.Start();
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region 打开WWW
|
|
protected void item_www_Click(object sender, EventArgs e)
|
|
{
|
|
ToolStripMenuItem t = (ToolStripMenuItem)sender;
|
|
string url = t.Tag + "";
|
|
if (string.IsNullOrEmpty(url))
|
|
{
|
|
MessageBox.Show("请输入您要打开网址", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
return;
|
|
}
|
|
System.Diagnostics.Process.Start("iexplore.exe", url);
|
|
}
|
|
#endregion
|
|
|
|
#region 顶部gird点击事件
|
|
private void gridViewLeft_RowCellClick(object sender, RowCellClickEventArgs e)
|
|
{
|
|
initDetailData();
|
|
}
|
|
|
|
private void gridView_SelectionChanged(object sender, DevExpress.Data.SelectionChangedEventArgs e)
|
|
{
|
|
initDetailData();
|
|
}
|
|
/// <summary>
|
|
/// 获取底部grid数据
|
|
/// </summary>
|
|
/// <param name="row"></param>
|
|
public void initDetailData()
|
|
{
|
|
int[] rowHandle = gcHeader.gridView.GetSelectedRows();
|
|
if ((rowHandle == null) || (rowHandle.Length < 1))
|
|
return;
|
|
DataRow row = gcHeader.gridView.GetDataRow(rowHandle[0]);
|
|
this.HandleAddButtonState(row);
|
|
string initSql = dtSystemDlltab["SQL"] + " where 1=1 and " + dtSystemwordbooktabTag3["fieldsqlid"] + " = '" + row[dtSystemwordbooktabTag3["fieldsqlid"] + ""] + "' ";
|
|
InitData(initSql);
|
|
//MessageBox.Show(initSql);
|
|
}
|
|
#endregion
|
|
|
|
#region 添加、删除按钮处理
|
|
/// <summary>
|
|
/// 处理添加按钮
|
|
/// </summary>
|
|
private void HandleAddButtonState(DataRow dr)
|
|
{
|
|
string tempCond = addCond;
|
|
bool canAdd = string.IsNullOrEmpty(addCond);
|
|
if (!string.IsNullOrEmpty(addCond))
|
|
{
|
|
tempCond = PubClass.ReqSqlWhere(dr, PubClass.ReqSqlParam(tempCond, OperatorId, OperatorName));
|
|
canAdd = Convert.ToBoolean(Evaluator.Eval(tempCond));
|
|
}
|
|
BtnAdd.Enabled = canAdd;
|
|
}
|
|
/// <summary>
|
|
/// 处理删除按钮
|
|
/// </summary>
|
|
private void HandleDelButtonState(DataRow dr)
|
|
{
|
|
string tempCond = deleteCond;
|
|
bool canDel = string.IsNullOrEmpty(deleteCond);
|
|
if (!string.IsNullOrEmpty(tempCond))
|
|
{
|
|
tempCond = PubClass.ReqSqlWhere(dr, PubClass.ReqSqlParam(tempCond, OperatorId, OperatorName));
|
|
canDel = Convert.ToBoolean(Evaluator.Eval(tempCond));
|
|
}
|
|
BtnDel.Enabled = canDel;
|
|
}
|
|
#endregion
|
|
|
|
#region 窗体关闭事件
|
|
protected override void OnClosed(EventArgs e)
|
|
{
|
|
base.OnClosed(e);
|
|
if (PubUtil.ModuleForms.ContainsKey(ModuleId))
|
|
{
|
|
DllModule dm = PubUtil.ModuleForms[ModuleId];
|
|
if (dm != null)
|
|
{
|
|
dm.ModuleForm = null;
|
|
dm.ModuleInPtr = IntPtr.Zero;
|
|
PubUtil.ModuleForms.Remove(ModuleId);
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
#region 帮助手册
|
|
private void btnHelp_Click(object sender, EventArgs e)
|
|
{
|
|
if (string.IsNullOrEmpty(DLLCoid))
|
|
{
|
|
MessageBox.Show("物料编码不存在", "提示", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
return;
|
|
}
|
|
int id = 0;
|
|
object obj = SqlHelper.ExecuteScalar(CommandType.Text, "select dirid from P_fm_DirectoryTab where ParentId=3 and PID='" + DLLCoid + "'");
|
|
id = obj == null ? 0 : Convert.ToInt32(obj);
|
|
if (id == 0)
|
|
{
|
|
string sql = "insert into P_fm_DirectoryTab (sName,ParentId,creator,SpeciesNo,relationCode,PID) values('" + DLLCoid + "',3,1,'0201',0,'" + DLLCoid + "');select @@identity";
|
|
id = Convert.ToInt32(SqlHelper.ExecuteScalar(CommandType.Text, sql));
|
|
}
|
|
string[] args =
|
|
{
|
|
FormText,
|
|
OperatorId,
|
|
OperatorName,
|
|
Privilege,
|
|
DLLCoid,
|
|
ModuleId,
|
|
id.ToString()
|
|
};
|
|
IForm form = PubUtil.LoadDllForm2("Lskj.Attachment.dll", args);
|
|
form.SubForm.ShowDialog();
|
|
|
|
}
|
|
#endregion
|
|
|
|
#region Execl 操作
|
|
/// <summary>
|
|
/// 导入操作
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnImprt_Click(object sender, EventArgs e)
|
|
{
|
|
string columnPrefix = PubClass.GetColumnPrefix(dtSystemDlltab["SQLDT1"].ToString());
|
|
frmImport frm = new frmImport(gcMain, dtSystemDlltab["SQLDT1"].ToString(),"","",OperatorId,OperatorName, columnPrefix);
|
|
frm.ShowDialog();
|
|
}
|
|
|
|
/// <summary>
|
|
/// 导出操作
|
|
/// </summary>
|
|
/// <param name="sender"></param>
|
|
/// <param name="e"></param>
|
|
private void btnExport_Click(object sender, EventArgs e)
|
|
{
|
|
PubClass.SaveXls(gcMain.gridControl);
|
|
}
|
|
#endregion
|
|
|
|
#region 行颜色
|
|
private void gvList_RowCellStyle(object sender, RowStyleEventArgs e)
|
|
{
|
|
if (e.RowHandle >= 0)
|
|
{
|
|
DataRow row = gcMain.gridView.GetDataRow(e.RowHandle);
|
|
string cond = string.Empty;
|
|
string color = string.Empty;
|
|
string forecolor = string.Empty;
|
|
foreach (DataRow dr in dtSysColorList.Rows)
|
|
{
|
|
List<string> condition = PubClass.GetParamValue(dr["condition"].ToString());
|
|
cond = dr["condition"].ToString();
|
|
foreach (string item in condition)
|
|
{
|
|
string filedName = item.Replace("{", "").Replace("}", "");
|
|
cond = cond.Replace(item, row[filedName].ToString());
|
|
}
|
|
cond = PubClass.SqlToCode(cond);
|
|
color = dr["backcolor"] + "";
|
|
forecolor = dr["forcecolor"].ToString() + "";
|
|
|
|
string obj = Evaluator.Eval(cond) + "";
|
|
if (obj.IndexOf("true", StringComparison.OrdinalIgnoreCase) != -1)
|
|
{
|
|
if (!string.IsNullOrEmpty(color))
|
|
{
|
|
System.Drawing.Color color1 = System.Drawing.ColorTranslator.FromHtml(color);
|
|
e.Appearance.BackColor = color1;
|
|
}
|
|
if (!string.IsNullOrEmpty(forecolor))
|
|
{
|
|
System.Drawing.Color foreColor = System.Drawing.ColorTranslator.FromHtml(forecolor);
|
|
e.Appearance.ForeColor = foreColor;
|
|
|
|
}
|
|
FontStyle fst = new FontStyle();
|
|
if (dr["ifBold"].ToString() == "1")
|
|
{
|
|
fst = fst | FontStyle.Bold;
|
|
}
|
|
if (dr["ifItalic"].ToString() == "1")
|
|
{
|
|
fst = fst | FontStyle.Italic;
|
|
}
|
|
if (dr["ifStrickOut"].ToString() == "1")
|
|
{
|
|
fst = fst | FontStyle.Strikeout;
|
|
}
|
|
if (dr["ifUnderLine"].ToString() == "1")
|
|
{
|
|
fst = fst | FontStyle.Underline;
|
|
}
|
|
e.Appearance.Font = new Font(e.Appearance.Font, fst);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
#endregion
|
|
|
|
private void GridViewpub_KeyDown(object sender, KeyEventArgs e)
|
|
{
|
|
if (e.Control & e.KeyCode == Keys.C)
|
|
{
|
|
Clipboard.SetDataObject((sender as GridView).GetFocusedRowCellValue((sender as GridView).FocusedColumn));
|
|
e.Handled = true;
|
|
}
|
|
}
|
|
#region 处理Grid计算
|
|
private void gridBillInfo_CellValueChanged(object sender, DevExpress.XtraGrid.Views.Base.CellValueChangedEventArgs e)
|
|
{
|
|
if (inSummary == true)
|
|
return;
|
|
inSummary = true;
|
|
try
|
|
{
|
|
DataRow gvRow = gcMain.gridView.GetDataRow(e.RowHandle);
|
|
foreach (DataRow row in dtSum.Rows)
|
|
{
|
|
string calcExpr = row["calcExpr"].ToString();
|
|
if (e.Column.FieldName != row["fieldName"].ToString())
|
|
{
|
|
List<string> listParam = PubClass.GetParamValue(calcExpr);
|
|
foreach (string str in listParam)
|
|
{
|
|
string filed = str.Replace("{", "").Replace("}", "");
|
|
string filedValue = gvRow[filed].ToString();
|
|
if (string.IsNullOrEmpty(filedValue))
|
|
filedValue = "0";
|
|
calcExpr = calcExpr.Replace(str, filedValue + "");
|
|
}
|
|
calcExpr = calcExpr.Replace("=", "==").Replace("<>", "!=").Replace("and", "&&").Replace("or", "|");
|
|
string result = Evaluator.Eval(calcExpr).ToString();
|
|
gcMain.gridView.SetRowCellValue(e.RowHandle, gcMain.gridView.Columns[row["fieldName"].ToString()], Math.Round(double.Parse(result), 2, MidpointRounding.AwayFromZero));
|
|
}
|
|
}
|
|
}
|
|
catch
|
|
{
|
|
|
|
}
|
|
inSummary = false;
|
|
}
|
|
#endregion
|
|
|
|
}
|
|
}
|