Files
lserp_cs_5.0/插件库/Lskj.Main_新疆/Lskj.Main/FrmSetDesktop.cs
T
2026-07-10 15:25:05 +08:00

194 lines
7.4 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 CommonLib;
using System.Data.SqlClient;
using DevExpress.XtraEditors;
namespace Lskj.Main
{
public partial class FrmSetDesktop : FormBase
{
private DataTable dtAllTable = new DataTable();
private DataTable dtDesktopTable = new DataTable();
private SqlDataAdapter adapter = new SqlDataAdapter();
private DataSet dataSet = new DataSet();
public int userid;
public FrmSetDesktop()
{
InitializeComponent();
}
private void FrmSetDesktop_Load(object sender, EventArgs e)
{
dtAllTable = getpurviewmenus();
dtDesktopTable = getdesktopmenus();
gvMain.GridControl.DataSource = dtAllTable;
gvSelected.GridControl.DataSource = dtDesktopTable;
}
/// <summary>
/// 获取我的桌面
/// </summary>
/// <returns></returns>
private DataTable getdesktopmenus()
{
string sqlValue = string.Format("SELECT * FROM P_SystemDesktopTab where OperatorId='{0}'", userid);
adapter = SqlHelper.ExecuteAdapter(CommandType.Text, sqlValue);
if (dataSet != null && dataSet.Tables.Count > 0)
dataSet.Clear();
adapter.Fill(dataSet);
SqlCommandBuilder sb = new SqlCommandBuilder(adapter);
return dataSet.Tables[0];
}
/// <summary>
/// 获取有权限的模块
/// </summary>
/// <returns></returns>
private DataTable getpurviewmenus()
{
string sqlValue = string.Format(@"SELECT a.menuid,a.MenuCaption,SUBSTRING(menustruct,1,2) menuparent,a.menustruct, ISNULL(a.DllFileName,'') dllname,ISNULL(a.UrlParams,'') moduleid,
ISNULL(a.MobileIcon,'') url,a.purview,a.SubSysId subid,a.SubSysName subname,ISNULL(a.dirid,'') dirid,ISNULL(a.bmpspec,'') bmpspec,ISNULL(TRCReport,0) menumode
FROM (
SELECT DISTINCT 0 AS purview,b.SubSysName,c.dirid,c.bmpSpec,a.* FROM p_formMenuConfigTab a
INNER JOIN P_SubSystemTab b ON a.subsysid = b.SubSysId
LEFT JOIN p_systemdlltab c ON a.UrlParams = c.DllCoid
WHERE b.MobileShow=1 AND a.ShowPlatform=1 AND isnull(b.UseEd,0) = 1
) a
INNER JOIN (
{1}
) b ON CHARINDEX(CAST(a.menuid AS VARCHAR)+',',b.KcPurview)>0 OR CHARINDEX(CAST(a.menuid AS VARCHAR)+'|,',b.KcPurview)>0
WHERE LEN(MenuStruct)=4 and ISNULL(a.UrlParams,'')<>'' and LOWER(a.DllFileName) IN ('lskj.pubmodule.dll','lskj.pubmoduledetail.dll','lskj.report.dll','lskj.pubmoduletd.dll') and ISNULL(a.UrlParams,'') not in (select MenuId from P_SystemDesktopTab where OperatorId='{0}')", userid, getpurviews());
DataTable dtTable = SqlHelper.ExecuteDataSet(sqlValue).Tables[0];
return dtTable;
}
/// <summary>
/// 获取权限动态sql
/// </summary>
/// <returns></returns>
private string getpurviews()
{
string purviewSql = string.Format("select isnull(wmsPurview,'')+isnull(KcPurview,'')+ISNULL(crmPurview,'')+ISNULL(bomPurview,'')+ISNULL(mrpPurview,'')+ISNULL(scmPurview,'')+ISNULL(sellPurview,'')+ISNULL(RdmPurview,'')+ISNULL(hrPurview,'')+ISNULL(costPurview,'')+ISNULL(eamPurview,'')+ISNULL(FmPurview,'')+ISNULL(oaPurview,'')+ISNULL(BiPurview,'')+isnull(QmsPurview,'') as KcPurview from p_SubsysPurviewTab where employeeid={0}", userid);
string tempSql = string.Empty;
string sqlValue = "select SubsysCode code from P_SubSystemTab where ISNULL(SubsysCode,'')<>'' and mobileshow=1";
DataTable dtTable = SqlHelper.ExecuteDataSet(sqlValue).Tables[0];
foreach (DataRow item in dtTable.Rows)
{
tempSql += string.Format(" isnull({0}Purview,'')+", (item["code"] + "").Trim());
}
if (!string.IsNullOrEmpty(tempSql))
{
purviewSql = string.Format("select {0} as KcPurview from p_SubsysPurviewTab where employeeid={1}", tempSql.Trim('+'), userid);
}
return purviewSql;
}
/// <summary>
/// 双击添加
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void gvMain_DoubleClick(object sender, EventArgs e)
{
int[] rows = gvMain.GetSelectedRows();
if (rows.Count() > 0) {
DataRow s_row = gvMain.GetDataRow(rows[0]);
DataRow row = dtDesktopTable.NewRow();
row["MenuName"] = s_row["MenuCaption"];
row["MenuId"] = s_row["moduleid"];
row["OrderId"] = dtDesktopTable.Rows.Count + 1;
row["OperatorId"] = userid;
dtDesktopTable.Rows.Add(row);
dtAllTable.Rows.Remove(s_row);
}
}
/// <summary>
/// 保存
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void btnSave_Click(object sender, EventArgs e)
{
try
{
adapter.Update(gvSelected.GridControl.DataSource as DataTable);
(gvSelected.GridControl.DataSource as DataTable).AcceptChanges();
XtraMessageBox.Show("保存成功");
this.DialogResult = DialogResult.OK;
}
catch (Exception ex)
{
XtraMessageBox.Show("保存失败" + ex.Message);
}
}
/// <summary>
/// 删除模块
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsmiDel_Click(object sender, EventArgs e)
{
int[] rows = gvSelected.GetSelectedRows();
if (rows.Length > 0)
{
DataRow row = gvSelected.GetDataRow(rows[0]);
int result = SqlHelper.ExecuteNonQuery(string.Format("delete P_SystemDesktopTab where id='{0}'", row["id"]));
XtraMessageBox.Show("删除成功");
FrmSetDesktop_Load(sender, e);
}
}
/// <summary>
/// 重排序号
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void tsmiReset_Click(object sender, EventArgs e)
{
int index = 1;
foreach (DataRow item in dtDesktopTable.Rows)
{
item["OrderId"] = index++;
}
try
{
adapter.Update(gvSelected.GridControl.DataSource as DataTable);
(gvSelected.GridControl.DataSource as DataTable).AcceptChanges();
XtraMessageBox.Show("重置成功");
}
catch (Exception ex)
{
XtraMessageBox.Show("重置失败" + ex.Message);
}
}
private void btnClose_Click(object sender, EventArgs e)
{
this.Close();
}
}
}