Files
Groupware/Project/_Common/fUserList.cs
2020-11-09 08:20:03 +09:00

212 lines
7.0 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;
namespace Project._Common
{
public partial class fUserList : FCOMMON.fBase
{
public fUserList()
{
InitializeComponent();
this.dsMSSQL.Users.TableNewRow += Users_TableNewRow;
this.FormClosed += __Closed;
}
void __Closed(object sender, FormClosedEventArgs e)
{
var form = this as Form;
Pub.SetFormStatus(ref form, this.Name, false);
}
void Users_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
e.Row["wuid"] = FCOMMON.info.Login.no;
e.Row["wdate"] = DateTime.Now;
e.Row["password"] = Pub.MakePasswordEnc("0");
e.Row["level"] = 1;
e.Row["dept"] = cmbdept.Text;
}
private void __Load(object sender, EventArgs e)
{
var form = this as Form;
Pub.SetFormStatus(ref form, this.Name, true);
this.Show();
Application.DoEvents();
cmbdept.Enabled = FCOMMON.info.Login.level > 9;
if (FCOMMON.info.Login.level > 4)
{
this.dvc_id.Visible = true;
this.btDevel.Visible = true;
this.dv1.EditMode = DataGridViewEditMode.EditOnKeystrokeOrF2;
}
else
{
this.dv1.EditMode = DataGridViewEditMode.EditProgrammatically;
this.dv1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
this.btDevel.Visible = true;
this.textBox1.Enabled = false;
this.dvc_id.Visible = true;
this.dvc_level.Visible = false;
this.usersBindingNavigatorSaveItem.Enabled = false;
this.bindingNavigatorAddNewItem.Enabled = false;
this.bindingNavigatorDeleteItem.Enabled = false;
}
//부서목록 업데이트
var db = new EEEntitiesMain();
var GrpList = db.UserGroup.Where(t => t.gcode != null && t.permission != null && t.gcode != "" && t.permission > 0);
//var tagrp = new dsMSSQLTableAdapters.UserGroupTableAdapter();
//var grplist = tagrp.GetData();
this.cmbdept.Items.Clear();
//var deptList = FCOMMON.DBM.getGroupList("dept", "users");
foreach (var item in GrpList)
this.cmbdept.Items.Add(item.dept);
this.cmbdept.Text = FCOMMON.info.Login.dept;
btRef.PerformClick();
}
private void usersBindingNavigatorSaveItem_Click(object sender, EventArgs e)
{
this.Validate();
this.bs.EndEdit();
this.tam.UpdateAll(this.dsMSSQL);
}
private void iDChangeToolStripMenuItem_Click(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsMSSQL.UsersRow;
var f = new fNewID(dr.id);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var newid = f.tbIDN.Text.Trim();
if (this.dsMSSQL.Users.Select("id='" + newid + "'").Length != 0)
{
Util.MsgE("Exist id - error");
return;
}
else
{
this.Validate();
this.bs.EndEdit();
dr.id = newid;
dr.EndEdit();
this.bs.EndEdit();
}
}
}
private void passwordChangeToolStripMenuItem_Click(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsMSSQL.UsersRow;
var currentPassword = dr.password;
_Common.fNewPassword f = new fNewPassword(dr.id);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
var encpassO = Pub.MakePasswordEnc(f.tbPassO.Text);
var encpassN = Pub.MakePasswordEnc(f.tbPass1.Text);
if (currentPassword != encpassO)
{
Util.MsgE("Old password error");
return;
}
else
{
this.Validate();
this.bs.EndEdit();
dr.password = encpassN;
dr.EndEdit();
this.bs.EndEdit();
}
}
}
private void mailToolStripMenuItem_Click(object sender, EventArgs e)
{
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsMSSQL.UsersRow;
if (dr.email.isEmpty()) return;
string cmd = "mailto:" + dr.email;
Util.RunExplorer(cmd);
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
foreach (dsMSSQL.UsersRow dr in this.dsMSSQL.Users.Rows)
{
var name = dr.name;
var newname = name.Split(' ')[0];
dr.name = newname;
dr.EndEdit();
}
}
private void btRef_Click(object sender, EventArgs e)
{
RefreshList();
}
void RefreshList()
{
//read data
if (tbProcess.Text.Trim() == "") tbProcess.Text = "%";
this.dsMSSQL.Users.Clear();
var db = new EEEntitiesMain();
if (tbProcess.Text.Trim() != "" && tbProcess.Text.Trim() != "%")
this.bs.DataSource = db.vGroupUser.Where(t => t.dept == this.cmbdept.Text && t.processs.Contains(tbProcess.Text.Trim()));
else
this.bs.DataSource = db.vGroupUser.Where(t => t.dept == this.cmbdept.Text);
//this.ta.Fill(this.dsMSSQL.Users, this.cmbdept.Text, tbProcess.Text.Trim());
//this.dsMSSQL.Users.AcceptChanges();
this.dv1.AutoResizeColumns();
}
private void autoResizeColumnToolStripMenuItem_Click(object sender, EventArgs e)
{
this.dv1.AutoResizeColumns();
}
private void bindingNavigatorDeleteItem_Click(object sender, EventArgs e)
{
//삭제
}
private void bindingNavigatorAddNewItem_Click(object sender, EventArgs e)
{
//추가
var f = new fAddNewUser(this.cmbdept.Text.Trim());
if (f.ShowDialog() == DialogResult.OK)
{
RefreshList();
}
}
}
}