299 lines
11 KiB
C#
299 lines
11 KiB
C#
using FCOMMON;
|
|
using System;
|
|
using System.Data;
|
|
using System.Drawing;
|
|
using System.Linq;
|
|
using System.Windows.Forms;
|
|
|
|
namespace FCM0000
|
|
{
|
|
public partial class fCode : FCOMMON.fBase
|
|
{
|
|
string defaultgubun = "";
|
|
string defafilter = "";
|
|
public fCode(string gubun = "",string filter="")
|
|
{
|
|
InitializeComponent();
|
|
this.defaultgubun = gubun;
|
|
this.defafilter = filter;
|
|
Properties.Settings.Default["gwcs"] = FCOMMON.info.CS;
|
|
this.dsMSSQL.Common.TableNewRow += Common_TableNewRow;
|
|
if (FCOMMON.info.Login.level >= 9) toolStripButton1.Visible = true;
|
|
}
|
|
|
|
void Common_TableNewRow(object sender, DataTableNewRowEventArgs e)
|
|
{
|
|
e.Row["gcode"] = FCOMMON.info.Login.gcode;
|
|
e.Row["wuid"] = FCOMMON.info.Login.no;
|
|
e.Row["wdate"] = DateTime.Now;
|
|
string grp = "99";
|
|
if (this.cmbList.SelectedIndex > 0)
|
|
{
|
|
var title = cmbList.Text.Split(']');
|
|
grp = title[0].Substring(1);
|
|
}
|
|
e.Row["grp"] = grp;
|
|
}
|
|
|
|
private void __Load(object sender, EventArgs e)
|
|
{
|
|
if(this.defaultgubun.isEmpty()==false)
|
|
{
|
|
commonDataGridView.AllowUserToAddRows = false;
|
|
commonDataGridView.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
|
|
btAddNew.Visible = false;
|
|
}
|
|
else
|
|
{
|
|
btCancle.Visible = false;
|
|
}
|
|
|
|
|
|
this.Show();
|
|
Application.DoEvents();
|
|
|
|
if (this.WindowState == FormWindowState.Minimized) this.WindowState = FormWindowState.Normal;
|
|
if (this.RestoreBounds.X + this.RestoreBounds.Width < 300 && this.RestoreBounds.X < 0)
|
|
this.Location = new Point(0, 0);
|
|
|
|
|
|
toolStripButton1.Visible = FCOMMON.info.Login.no == "dev";
|
|
// this.TopMost=true;
|
|
// this.Activate();
|
|
|
|
|
|
//자동선택해준다.
|
|
if (defaultgubun.isEmpty() == false)
|
|
{
|
|
RefreshCodeList();
|
|
var idx = -1;
|
|
for (int i = 0; i < this.cmbList.Items.Count; i++)
|
|
{
|
|
var itemname = $"[{i:00}]";
|
|
var item = cmbList.Items[i];
|
|
if (item.ToString().StartsWith($"[{defaultgubun}]"))
|
|
{
|
|
idx = i;
|
|
break;
|
|
}
|
|
}
|
|
if(idx > -1)
|
|
{
|
|
this.cmbList.SelectedIndex = idx;
|
|
this.cmbList.Enabled = false;
|
|
}
|
|
cmbList_SelectedIndexChanged(null, null);
|
|
|
|
}
|
|
else cmbList_SelectedIndexChanged(null, null);
|
|
}
|
|
void RefreshCodeList()
|
|
{
|
|
//공용코드목록을 가져온다.
|
|
cmbList.Items.Clear();
|
|
var codelist = FCOMMON.DBM.getCodeList();
|
|
cmbList.Items.Add("-- Code Group List --");
|
|
foreach (var item in codelist)
|
|
{
|
|
cmbList.Items.Add(string.Format("[{0}] {1}", item.Key, item.Value));
|
|
}
|
|
}
|
|
void RefreshCodeData()
|
|
{
|
|
string grp = "99";
|
|
if (cmbList.SelectedIndex > 0)
|
|
{
|
|
var title = cmbList.Text.Split(']');
|
|
grp = title[0].Substring(1);
|
|
}
|
|
try
|
|
{
|
|
this.ta.Fill(this.dsMSSQL.Common, grp, FCOMMON.info.Login.gcode);
|
|
this.bs.Filter = this.defafilter;
|
|
this.dsMSSQL.Common.AcceptChanges();
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
FCOMMON.Util.MsgE("Query Error\n\n" + ex.Message);
|
|
}
|
|
}
|
|
|
|
private void commonBindingNavigatorSaveItem_Click(object sender, EventArgs e)
|
|
{
|
|
this.Validate();
|
|
this.bs.EndEdit();
|
|
this.tam.UpdateAll(this.dsMSSQL);
|
|
this.dsMSSQL.Common.AcceptChanges();
|
|
if (this.cmbList.SelectedIndex <= 0)
|
|
{
|
|
cmbList_SelectedIndexChanged(null, null);
|
|
}
|
|
|
|
|
|
}
|
|
|
|
private void cmbList_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (this.dsMSSQL.HasChanges())
|
|
{
|
|
var dlg = FCOMMON.Util.MsgQ(
|
|
"변경된 자료가 손실됩니다.\n\n" +
|
|
"목록을 새로고침 하시겠습니까?");
|
|
if (dlg != System.Windows.Forms.DialogResult.Yes) return;
|
|
}
|
|
if (cmbList.SelectedIndex <= 0)
|
|
{
|
|
RefreshCodeList();
|
|
RefreshCodeData();
|
|
}
|
|
else if (cmbList.SelectedIndex > 0)
|
|
RefreshCodeData();
|
|
}
|
|
|
|
private void 코드일괄생성ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
var drows = this.dsMSSQL.Common.Select(this.bs.Filter, "memo");
|
|
for (int i = 1; i <= drows.Length; i++)
|
|
{
|
|
drows[i - 1]["code"] = i.ToString("000");
|
|
}
|
|
}
|
|
|
|
private void title가져오기ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
var f = new FCOMMON.fInputTextBox();
|
|
if (f.ShowDialog() == DialogResult.OK)
|
|
{
|
|
var data = f.textBox1.Text.Trim();
|
|
data = data.Replace("\r", "");
|
|
var lines = data.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
var dlg = FCOMMON.Util.MsgQ(lines.Count().ToString() + "건의 자료가 있습니다. 입력할까요?");
|
|
if (dlg == DialogResult.Yes)
|
|
{
|
|
foreach (var item in lines)
|
|
{
|
|
if (item.Trim().Equals("")) continue;
|
|
|
|
if (this.dsMSSQL.Common.Where(t => t.memo == item.Trim()).Any() == false)
|
|
{
|
|
var newdr = this.dsMSSQL.Common.NewCommonRow();
|
|
newdr.memo = item;
|
|
this.dsMSSQL.Common.AddCommonRow(newdr);
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
private void s가져오기ToolStripMenuItem_Click(object sender, EventArgs e)
|
|
{
|
|
var f = new FCOMMON.fInputTextBox();
|
|
if (f.ShowDialog() == DialogResult.OK)
|
|
{
|
|
var data = f.textBox1.Text.Trim();
|
|
data = data.Replace("\r", "");
|
|
var lines = data.Split(new string[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);
|
|
|
|
var dlg = FCOMMON.Util.MsgQ(lines.Count().ToString() + "건의 자료가 있습니다. 입력할까요?");
|
|
if (dlg == DialogResult.Yes)
|
|
{
|
|
int r = 0;
|
|
foreach (var item in lines)
|
|
{
|
|
if (r < this.dsMSSQL.Common.Count)
|
|
this.dsMSSQL.Common.Rows[r]["svalue"] = item;
|
|
|
|
r += 1;
|
|
//if (item.Trim().Equals("")) continue;
|
|
|
|
//if (this.dsMSSQL.Common.Where(t => t.memo == item.Trim()).Any() == false)
|
|
//{
|
|
// var newdr = this.dsMSSQL.Common.NewCommonRow();
|
|
// newdr.memo = item;
|
|
// this.dsMSSQL.Common.AddCommonRow(newdr);
|
|
//}
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
private void toolStripButton2_Click(object sender, EventArgs e)
|
|
{
|
|
//누락된 목록을 생성합니다
|
|
var gcode = FCOMMON.info.Login.gcode;
|
|
var uid = FCOMMON.info.Login.no;
|
|
if (cmbList.SelectedIndex <= 0)
|
|
{
|
|
if (FCOMMON.Util.MsgQ("없는 목록을 기본값에서 생성 할까요?") != DialogResult.Yes) return;
|
|
|
|
var sql = "insert into Common(gcode,grp,code,svalue,ivalue,fvalue,memo,wuid,wdate)" +
|
|
$" select '{gcode}',grp,code,svalue,ivalue,fvalue,memo,'{uid}',getdate() from Common where gcode = 'EET1P' and grp = '99'" +
|
|
$" and code not in (select code from Common where gcode = '{gcode}' and grp = '99')";
|
|
var cnt = FCOMMON.DBM.ExecuteNonQuery(sql);
|
|
FCOMMON.Util.MsgI($"{cnt}건의 목록이 생성 되었습니다");
|
|
RefreshCodeList();
|
|
}
|
|
else
|
|
{
|
|
string grp = "99";
|
|
var title = cmbList.Text.Split(']');
|
|
grp = title[0].Substring(1);
|
|
if (FCOMMON.Util.MsgQ($"[{cmbList.Text}] 세부항목을 기본값에서 생성 할까요?") != DialogResult.Yes) return;
|
|
|
|
var sql = "insert into Common(gcode,grp,code,svalue,ivalue,fvalue,memo,wuid,wdate)" +
|
|
$" select '{gcode}',grp,code,svalue,ivalue,fvalue,memo,'{uid}',getdate() from Common where gcode = 'EET1P' and grp = '{grp}'" +
|
|
$" and code not in (select code from Common where gcode = '{gcode}' and grp = '{grp}')";
|
|
var cnt = FCOMMON.DBM.ExecuteNonQuery(sql);
|
|
FCOMMON.Util.MsgI($"{cnt}건의 목록이 생성 되었습니다");
|
|
RefreshCodeData();
|
|
}
|
|
|
|
}
|
|
|
|
private void commonDataGridView_CellContentClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void btAdd_Click(object sender, EventArgs e)
|
|
{
|
|
|
|
}
|
|
|
|
private void commonDataGridView_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
|
|
{
|
|
|
|
if (e.RowIndex < 0 || e.ColumnIndex < 0) return;
|
|
if (this.defaultgubun.isEmpty()) return;
|
|
|
|
this.Validate();
|
|
this.bs.EndEdit();
|
|
if (this.dsMSSQL.Common.GetChanges() != null)
|
|
{
|
|
Util.MsgE("변경된 내용이 있습니다. 저장 후 다시 시도하세요");
|
|
return;
|
|
}
|
|
|
|
var drv = bs.Current as DataRowView;
|
|
if (drv == null) return;
|
|
var dr = drv.Row as dsMSSQL.CommonRow;
|
|
SelectedTitle = dr.memo;
|
|
|
|
//선택된것으로 한다.
|
|
DialogResult = DialogResult.OK;
|
|
}
|
|
public string SelectedTitle { get; set; } = "";
|
|
|
|
private void toolStripButton2_Click_1(object sender, EventArgs e)
|
|
{
|
|
this.SelectedTitle = string.Empty;
|
|
this.DialogResult = DialogResult.OK;
|
|
}
|
|
}
|
|
}
|