168 lines
		
	
	
		
			4.4 KiB
		
	
	
	
		
			C#
		
	
	
	
	
	
			
		
		
	
	
			168 lines
		
	
	
		
			4.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.Threading.Tasks;
 | |
| using System.Windows.Forms;
 | |
| 
 | |
| namespace FPJ0000.JobReport_
 | |
| {
 | |
| 	public partial class fProjectConnect : Form
 | |
| 	{
 | |
| 		public fProjectConnect(string sd, string ed)
 | |
| 		{
 | |
| 			InitializeComponent();
 | |
| 			dts.Value = DateTime.Parse(sd);
 | |
| 			dte.Value = DateTime.Parse(ed);
 | |
| 		}
 | |
| 
 | |
| 		private void fProjectConnect_Load(object sender, EventArgs e)
 | |
| 		{
 | |
| 			RefreshList();
 | |
| 		}
 | |
| 
 | |
| 		void RefreshList()
 | |
| 		{
 | |
| 			var cn = FCOMMON.DBM.getCn();
 | |
| 			var sd = dts.Value.ToShortDateString();
 | |
| 			var ed = dte.Value.ToShortDateString();
 | |
| 			var sql =
 | |
| 					$"select projectName,max(pidx) as pidx " +
 | |
| 					$" from JobReport" +
 | |
| 					$" where gcode = '{FCOMMON.info.Login.gcode}'" +
 | |
| 					$" and uid = '{FCOMMON.info.Login.no}'" +
 | |
| 					$" and pdate between '{sd}'  and '{ed}'" +
 | |
| 					$" and pidx = -1" +
 | |
| 					$" and isnull(projectname,'') <> ''" +
 | |
| 					$" group by projectName" +
 | |
| 					$" order by projectName";
 | |
| 
 | |
| 			if (cn.State == ConnectionState.Closed) cn.Open();
 | |
| 			var cmd = new System.Data.SqlClient.SqlCommand(sql, cn);
 | |
| 			var rd = cmd.ExecuteReader();
 | |
| 			listView1.Items.Clear();
 | |
| 			while (rd.Read())
 | |
| 			{
 | |
| 				var title = rd[0].ToString();
 | |
| 				var pidx = int.Parse(rd[1].ToString());
 | |
| 
 | |
| 				var lv = this.listView1.Items.Add(pidx.ToString());
 | |
| 				lv.SubItems.Add(title);
 | |
| 			}
 | |
| 
 | |
| 			rd.Close();
 | |
| 
 | |
| 			//전체프로젝트목록을 가져온다
 | |
| 			sql =
 | |
| 				$" select idx,status,name,pdate,userManager" +
 | |
| 				$" from Projects" +
 | |
| 				$" where gcode = '{FCOMMON.info.Login.gcode}'" +
 | |
| 				$" and isnull(isdel,0) = 0 and isnull(name,'') <> '' and isnull(status,'') <> '취소'" +
 | |
| 				$" order by status ,name,pdate desc";
 | |
| 			cmd.CommandText = sql;
 | |
| 			rd = cmd.ExecuteReader();
 | |
| 			//comboBox1.Items.Clear();
 | |
| 			var dt = new DataTable();
 | |
| 			dt.Columns.Add("idx");
 | |
| 			dt.Columns.Add("title");
 | |
| 			dt.Columns.Add("display");
 | |
| 			dt.Columns.Add("status");
 | |
| 			while (rd.Read())
 | |
| 			{
 | |
| 				var pidx = int.Parse(rd[0].ToString());
 | |
| 				var stats = rd[1].ToString();
 | |
| 				var title = rd[2].ToString();
 | |
| 				var pdate = rd[3].ToString();
 | |
| 				var manager = rd[4].ToString();
 | |
| 
 | |
| 				var itemtitle = $"[{pidx:00000}] ({stats}) {title} ##{manager}";
 | |
| 				dt.Rows.Add(new object[] {pidx,title,itemtitle,stats });
 | |
| 				
 | |
| 			}
 | |
| 
 | |
| 			comboBox1.DataSource = dt;
 | |
| 			comboBox1.DisplayMember = "display";
 | |
| 			comboBox1.ValueMember = "idx";
 | |
| 			comboBox1.SelectedIndex = -1;
 | |
| 
 | |
| 			rd.Close();
 | |
| 
 | |
| 			cmd.Dispose();
 | |
| 			cn.Close();
 | |
| 			cn.Dispose();
 | |
| 		}
 | |
| 
 | |
| 		private void button1_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			if (comboBox1.SelectedIndex < 0) return;
 | |
| 			var txt = comboBox1.SelectedItem as DataRowView;
 | |
| 			if (txt == null) return;
 | |
| 
 | |
| 			List<ListViewItem> lvs = new List<ListViewItem>();
 | |
| 			if(listView1.CheckedItems.Count < 1)
 | |
| 			{
 | |
| 				if (listView1.FocusedItem == null)
 | |
| 				{
 | |
| 					FCOMMON.Util.MsgE("변경할 자료를 선택하세요.");
 | |
| 					return;
 | |
| 				}
 | |
| 				else lvs.Add(listView1.FocusedItem);
 | |
| 			}
 | |
| 			else
 | |
| 			{
 | |
| 				foreach (ListViewItem item in listView1.CheckedItems)
 | |
| 					lvs.Add(item);
 | |
| 			}
 | |
| 
 | |
| 			var idx = txt["idx"].ToString();
 | |
| 			var title = txt["title"].ToString();
 | |
| 
 | |
| 
 | |
| 			var sb = new System.Text.StringBuilder();
 | |
| 			sb.AppendLine("다음 자료의 프로젝트를 연결 할까요?\n");
 | |
| 			foreach (var item in lvs)
 | |
| 				sb.Append($"[ {item.SubItems[1].Text} ]");
 | |
| 			sb.AppendLine();
 | |
| 			sb.AppendLine();
 | |
| 			sb.AppendLine($"연결대상 프로젝트 : [{idx}] {title}");
 | |
| 			if (FCOMMON.Util.MsgQ(sb.ToString()) != DialogResult.Yes) return;
 | |
| 
 | |
| 
 | |
| 
 | |
| 			var cn = FCOMMON.DBM.getCn();
 | |
| 			var sd = dts.Value.ToShortDateString();
 | |
| 			var ed = dte.Value.ToShortDateString();
 | |
| 			if (cn.State == ConnectionState.Closed) cn.Open();
 | |
| 			var cmd = new System.Data.SqlClient.SqlCommand("", cn);
 | |
| 		
 | |
| 
 | |
| 			foreach (var item in lvs)
 | |
| 			{
 | |
| 				var sql = 
 | |
| 				$" update jobreport set projectName='{title}',pidx={idx}" +
 | |
| 				$" from JobReport" +
 | |
| 				$" where gcode = '{FCOMMON.info.Login.gcode}'" +
 | |
| 				$" and uid = '{FCOMMON.info.Login.no}'" +
 | |
| 				$" and pdate between '{sd}'  and '{ed}'" +
 | |
| 				$" and pidx = -1" +
 | |
| 				$" and isnull(projectname,'') = '{item.SubItems[1].Text}'";
 | |
| 				cmd.CommandText = sql;
 | |
| 				cmd.ExecuteNonQuery();
 | |
| 			}
 | |
| 				
 | |
| 			cmd.Dispose();
 | |
| 			cn.Close();
 | |
| 			cn.Dispose();
 | |
| 
 | |
| 		}
 | |
| 
 | |
| 		private void btRefresh_Click(object sender, EventArgs e)
 | |
| 		{
 | |
| 			RefreshList();
 | |
| 		}
 | |
| 	}
 | |
| }
 | 
