Files
Groupware/SubProject/FPM0000/fSPMaster.cs
2022-05-10 11:18:06 +09:00

183 lines
5.3 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 FPM0000
{
public partial class fSPMaster :FCOMMON.fBase
{
int idx = -1;
public fSPMaster()
{
InitializeComponent();
this.dsMSSQL.SPMaster.TableNewRow += minutes_TableNewRow;
}
void minutes_TableNewRow(object sender, DataTableNewRowEventArgs e)
{
//e.Row["wuid"] = FCOMMON.info.Login.no;
//e.Row["wdate"] = DateTime.Now;
//e.Row["stime"] = DateTime.Now;
//e.Row["etime"] = DateTime.Now.AddHours(1);
//e.Row["title"] = "Subject";
}
private void __Load(object sender, EventArgs e)
{
this.Show();
Application.DoEvents();
refreshDivision();
}
void refreshData(string div)
{
//refresh data
// this.dv1.AutoResizeColumns();
}
void refreshDivision()
{
//모든 디비젼을 가져와서 우측을 다시 생성한다
var taDiv = new DSMssqlTableAdapters.DivListTableAdapter();
var dt = taDiv.GetData();
this.listView1.Items.Clear();
var bta = this.listView1.Items.Add( "전체보기");
bta.BackColor = Color.HotPink;
bta.Tag = "";
foreach(DSMssql.DivListRow dr in dt.Rows)
{
var bt = this.listView1.Items.Add(dr.Division);
bt.Tag = dr.Division;
}
}
private void listView1_SelectedIndexChanged(object sender, EventArgs e)
{
//지정된 Division을 필터링한다
if (listView1.FocusedItem == null) return;
ListViewItem bt = this.listView1.FocusedItem ;
if (bt.Tag.ToString() == "")
{
var dlg = Util.MsgQ("전체 보기는 데이터 통신량과 시간이 오래 소요됩니다\n" +
"Division을 알고 있다면 아래 Division 목록을 먼저 선택하고 검색 하세요");
if (dlg != DialogResult.Yes) return;
label2.Text = "전체보기";
label2.Tag = "";
this.ta.FillByAll(this.dsMSSQL.SPMaster);
}
else
{
label2.Text = bt.Text;
this.ta.Fill(this.dsMSSQL.SPMaster, bt.Tag.ToString());
}
label2.Tag = bt.Tag;
tbFind.Focus();
tbFind.SelectAll();
}
private void autoColumnSizeToolStripMenuItem_Click(object sender, EventArgs e)
{
// this.dv1.AutoResizeColumns();
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
if(label2.Tag != null)
refreshData(label2.Tag.ToString());
}
private void dv1_DoubleClick(object sender, EventArgs e)
{
}
private void bs_CurrentChanged(object sender, EventArgs e)
{
idx = -1;
var drv = bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as DSMssql.SPMasterRow;//.minutesRow;
idx = dr.ID;
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
try
{
var cnt = this.ta.Update(this.dsMSSQL.SPMaster);
}
catch (Exception ex)
{
FCOMMON.Util.MsgE(ex.Message);
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
refreshDivision();
}
void Find()
{
var txt = tbFind.Text.Trim();
if (txt == "")
{
if(bs.Filter != "")
{
bs.Filter = "";
tbFind.BackColor = Color.WhiteSmoke;
}
tbFind.Focus();
return;
}
//검색어가 잇으므로 검색을 수행한다
var cols = new string[] { "SIDNo","Storage","Location",
"PartName","PartNo","Memo","CostCenter","Enrollee"};
string filter = "";
foreach(var col in cols)
{
if (filter != "") filter += " or ";
filter += col + " like '%"+ txt.Replace("'","''") +"%' ";
}
try
{
this.bs.Filter = filter;
tbFind.BackColor = Color.Lime;
tbFind.SelectAll();
}catch (Exception ex)
{
this.bs.Filter = "";
tbFind.BackColor = Color.Red;
Util.MsgE(ex.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
Find();
}
private void tbFind_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
Find();
}
}
}