레이아우슾로토 적용

This commit is contained in:
chi
2021-05-22 14:04:34 +09:00
parent 478896089f
commit e1dce272bb
24 changed files with 1991 additions and 775 deletions

View File

@@ -6,6 +6,7 @@ using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using static FPJ0000.Project.ctlLayout;
using util = FCOMMON.Util;
namespace FPJ0000
@@ -19,62 +20,106 @@ namespace FPJ0000
fn_fpcolsize = util.MakeFilePath(util.CurrentPath, "formSetting", "fp_" + this.Name + ".ini");
this.dsMSSQL.Projects.TableNewRow += Projects_TableNewRow;
this.FormClosed += __Closed;
this.ctlLayout1.itemclick += CtlLayout1_itemclick;
}
int project = -1;
int no = 0;
private void CtlLayout1_itemclick(itemdata item, MouseEventArgs e)
{
project = item.project;
no = item.no;
if (project < 1) return;
Console.WriteLine("project:" + project.ToString());
}
void __Closed(object sender, FormClosedEventArgs e)
{
this.ctlLayout1.itemclick -= CtlLayout1_itemclick;
}
private void __Load(object sender, EventArgs e)
{
this.Show();
Application.DoEvents();
refreshData();
}
void refreshData()
{
if (ctlLayout1.items == null || ctlLayout1.items.Count != 10)
{
for (int i = 1; i <= 10; i++)
{
ctlLayout1.items.Add(new itemdata()
{
no = i,
body = "",
champion = "",
duedate = "미사용"
});
}
}
foreach (var item in ctlLayout1.items)
{
item.body = string.Empty;
item.duedate = "미사용";
item.champion = "--";
item.bodyColor = ctlLayout1.BackColor;
}
ctlLayout1.Refresh();
var db = new EEEntities();
var list = db.EETGW_Project_Layout.Where(t => t.gcode == FCOMMON.info.Login.gcode).OrderBy(t => t.no).ToList();
var list = db.EETGW_Project_Layout.AsNoTracking().Where(t => t.gcode == FCOMMON.info.Login.gcode).OrderBy(t => t.no).ToList();
var maxrow = list.Max(t => t.row);
var maxcol = list.Max(t => t.col);
if (list.Any())
{
this.cmsview1.GridCount = new Point(maxcol + 1, maxrow + 1);
foreach (var item in list)
//this.cmsview1.GridCount = new Point(maxcol + 1, maxrow + 1);
foreach (var dr in list)
{
var newitem = (new CMSControl.Slot()
var data = ctlLayout1.items[dr.no - 1];
var drprj = db.vEETGW_Project_LayoutList.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.idx == dr.project).FirstOrDefault();
if (drprj == null)
{
BackColor = Color.Lime,
BorderColor = Color.Gray,
BorderSize = 2f,
Enable = true,
ForeColor = Color.Black,
Name = item.no.ToString(),
Index = (byte)item.no,
No = item.no.ToString(),
Selected = false
});
if (item.project != null)
{
var project = (int)item.project;
if (project > 0)
{
var drp = db.Projects.Where(t => t.idx == item.project && t.gcode == item.gcode).FirstOrDefault();
if (drp != null)
{
newitem.Name = drp.name;
}
}
data.bodyColor = Color.DarkMagenta;
data.body = string.Empty;
data.champion = string.Empty;
data.duedate = "미 할당";
data.project = -1;
data.reserve = string.Empty;
}
cmsview1.Slots.Add(newitem);
else
{
data.reserve = dr.reserve;
data.project = drprj.idx;
data.body = "[" + drprj.status + "] " + drprj.name;
data.champion = drprj.userManager;
data.duedate = drprj.ddate;
var isdate = DateTime.TryParse(drprj.ddate, out DateTime dt);
if (isdate)
{
if (DateTime.Now >= dt) data.bodyColor = Color.Tomato;
else data.bodyColor = ctlLayout1.BackColor;
}
else
{
data.bodyColor = ctlLayout1.BackColor;
}
}
}
}
this.cmsview1.Refresh();
ctlLayout1.Refresh();
}
@@ -242,13 +287,24 @@ namespace FPJ0000
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
SaveFileDialog sd = new SaveFileDialog();
sd.Filter = ("excel|*.xls");
var dlg = sd.ShowDialog();
if (dlg == System.Windows.Forms.DialogResult.OK)
{
if (this.project < 1) return;
FCOMMON.Util.MsgI("파일생성 완료\n\n" + sd.FileName);
var dt = ta.GetbyIDX(this.project);
if (dt == null || dt.Rows.Count < 1)
{
util.MsgE("프로젝트가 존재하지 않습니다");
return;
}
var dr = dt.Rows[0] as dsPRJ.ProjectsRow;
var f = new fProjectData(dr);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
if (util.MsgQ("저장 할까요?") == DialogResult.Yes)
{
dr.EndEdit();
ta.Update(dr);
refreshData();
}
}
}
@@ -320,20 +376,28 @@ namespace FPJ0000
var drv = this.bs.Current as DataRowView;
if (drv == null) return;
var dr = drv.Row as dsPRJ.ProjectsRow;
var f = new fProjectData(dr);
if (f.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
int curLevel = Math.Max(FCOMMON.info.Login.level, FCOMMON.DBM.getAuth(FCOMMON.DBM.eAuthType.project));
if (curLevel < 5)
{
funcSave(false); //자동저장
}
}
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
funcEdit();
var f = new FCM0000.fLovProject(string.Empty, "진행");
if (f.ShowDialog() == DialogResult.OK)
{
var db = new EEEntities();
var dr = db.EETGW_Project_Layout.Where(t => t.no == this.no && t.project == this.project).FirstOrDefault();
if (dr == null)
{
util.MsgE("기존 레이아웃 자료를 확인 할 수 없습니다");
}
else
{
dr.project = f.Index;
db.SaveChanges();
util.MsgI("프로젝트를 변경했습니다");
refreshData();
}
}
}
private void tbRequest_KeyDown(object sender, KeyEventArgs e)
@@ -497,5 +561,36 @@ namespace FPJ0000
{
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
if (this.no < 1) return;
var f = new Project.fLayoutEdit(this.no);
if (f.ShowDialog() == DialogResult.OK)
refreshData();
}
private void ToolStripMenuItem_Click(object sender, EventArgs e)
{
if(this.project < 1)
{
FCOMMON.Util.MsgE("선택된 프로젝트가 없습니다");
return;
}
var dlg = FCOMMON.Util.MsgQ("슬롯 " + this.no.ToString() + "의 프로젝트를 해제 할까요?\n" +
"해당 슬롯은 '미사용'이 됩니다");
if(dlg == DialogResult.Yes)
{
var db = new EEEntities();
var dr= db.EETGW_Project_Layout.Where(t => t.gcode == FCOMMON.info.Login.gcode && t.no == this.no).FirstOrDefault();
if(dr != null)
{
dr.project = -1;
db.SaveChanges();
refreshData();
}
}
}
}
}