194 lines
7.4 KiB
C#
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();
|
|
}
|
|
}
|
|
}
|