From f9d29c7629c258529c79dbc7503d57916bfea6c7 Mon Sep 17 00:00:00 2001 From: LGram16 Date: Wed, 4 Feb 2026 22:31:27 +0900 Subject: [PATCH] =?UTF-8?q?marc2=EC=97=90=EC=84=9C=20=EB=A7=88=ED=81=AC?= =?UTF-8?q?=EB=AA=A9=EB=A1=9D=EC=83=9D=EC=84=B1=EC=8B=9C=20=EC=83=89?= =?UTF-8?q?=EC=83=81=EB=B6=88=EC=9D=BC=EC=B9=98=EB=A1=9C=20=EB=8D=B0?= =?UTF-8?q?=EC=9D=B4=ED=84=B0=20=EC=83=9D=EC=84=B1=EA=B0=AF=EC=88=98?= =?UTF-8?q?=EA=B0=80=20=EB=8B=AC=EB=9D=BC=EC=A7=84=20=EB=B6=80=EB=B6=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95,=20=EC=97=B0=EA=B2=B0=EB=90=9C=20=ED=8F=BC?= =?UTF-8?q?=EB=93=A4=EB=95=8C=EB=AC=B8=EC=97=90=20addmarc2=20=EB=8F=84=20?= =?UTF-8?q?=EC=88=98=EC=A0=95=ED=95=98=EA=B3=A0=20marcopyselect2=20?= =?UTF-8?q?=EC=83=9D=EC=84=B1,=20marc=5Fmklist2=20=EC=83=9D=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- unimarc/unimarc/Properties/AssemblyInfo.cs | 4 +- unimarc/unimarc/UniMarc.csproj | 18 + unimarc/unimarc/마크/AddMarc2.cs | 2 +- unimarc/unimarc/마크/Marc2.cs | 200 +++---- unimarc/unimarc/마크/Marc2.designer.cs | 50 +- unimarc/unimarc/마크/MarcCopySelect.cs | 23 - .../unimarc/마크/MarcCopySelect2.Designer.cs | 224 ++++++++ unimarc/unimarc/마크/MarcCopySelect2.cs | 496 ++++++++++++++++++ unimarc/unimarc/마크/MarcCopySelect2.resx | 120 +++++ unimarc/unimarc/마크/Marc_mkList.cs | 208 +------- unimarc/unimarc/마크/Marc_mkList2.Designer.cs | 437 +++++++++++++++ unimarc/unimarc/마크/Marc_mkList2.cs | 406 ++++++++++++++ unimarc/unimarc/마크/Marc_mkList2.resx | 120 +++++ 13 files changed, 1917 insertions(+), 391 deletions(-) create mode 100644 unimarc/unimarc/마크/MarcCopySelect2.Designer.cs create mode 100644 unimarc/unimarc/마크/MarcCopySelect2.cs create mode 100644 unimarc/unimarc/마크/MarcCopySelect2.resx create mode 100644 unimarc/unimarc/마크/Marc_mkList2.Designer.cs create mode 100644 unimarc/unimarc/마크/Marc_mkList2.cs create mode 100644 unimarc/unimarc/마크/Marc_mkList2.resx diff --git a/unimarc/unimarc/Properties/AssemblyInfo.cs b/unimarc/unimarc/Properties/AssemblyInfo.cs index b92f691..bc4be21 100644 --- a/unimarc/unimarc/Properties/AssemblyInfo.cs +++ b/unimarc/unimarc/Properties/AssemblyInfo.cs @@ -32,5 +32,5 @@ using System.Runtime.InteropServices; // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 번호를 // 기본값으로 할 수 있습니다. // [assembly: AssemblyVersion("1.0.*")] -[assembly: AssemblyVersion("2026.02.03.2240")] -[assembly: AssemblyFileVersion("2026.02.03.2240")] +[assembly: AssemblyVersion("2026.02.04.2230")] +[assembly: AssemblyFileVersion("2026.02.04.2230")] diff --git a/unimarc/unimarc/UniMarc.csproj b/unimarc/unimarc/UniMarc.csproj index ab871ee..ee6673c 100644 --- a/unimarc/unimarc/UniMarc.csproj +++ b/unimarc/unimarc/UniMarc.csproj @@ -367,6 +367,12 @@ Mac_List_Add.cs + + Form + + + MarcCopySelect2.cs + Form @@ -497,6 +503,12 @@ Mac_Stat_Stat.cs + + Form + + + Marc_mkList2.cs + Form @@ -1083,6 +1095,9 @@ Mac_List_Add.cs + + MarcCopySelect2.cs + MarcCopySelect.cs @@ -1146,6 +1161,9 @@ Mac_Stat_Stat.cs + + Marc_mkList2.cs + Marc_mkList.cs diff --git a/unimarc/unimarc/마크/AddMarc2.cs b/unimarc/unimarc/마크/AddMarc2.cs index 6e9ea1e..1b5f213 100644 --- a/unimarc/unimarc/마크/AddMarc2.cs +++ b/unimarc/unimarc/마크/AddMarc2.cs @@ -95,7 +95,7 @@ namespace UniMarc string SearchText = tb_Search.Text; string SearchCol = cb_SearchCol.SelectedItem.ToString(); - MarcCopySelect mcs = new MarcCopySelect(this); + var mcs = new MarcCopySelect2(this); mcs.Init(SearchCol, SearchText); mcs.Show(); } diff --git a/unimarc/unimarc/마크/Marc2.cs b/unimarc/unimarc/마크/Marc2.cs index 6f5849d..168ca6d 100644 --- a/unimarc/unimarc/마크/Marc2.cs +++ b/unimarc/unimarc/마크/Marc2.cs @@ -1,4 +1,5 @@ using AR; +using arCtl.TinyListview; using System; using System.Collections.Generic; using System.ComponentModel; @@ -38,7 +39,7 @@ namespace UniMarc Skill_Search_Text search_Text = new Skill_Search_Text(); String_Text st = new String_Text(); Mac_List ml; - BindingList dataList = new BindingList(); + public BindingList dataList = new BindingList(); MacListItem pItem = null; protected override bool ProcessCmdKey(ref Message msg, Keys keyData) @@ -202,7 +203,8 @@ namespace UniMarc /// void chk_Marc() { - for (int a = 0; a < List_Book.Rows.Count; a++) + + foreach (var dr in this.dataList) // (int a = 0; a < this.dataList.Count; a++) { string Area = // 0 1 @@ -215,7 +217,9 @@ namespace UniMarc string Table = "Marc"; string[] sear_tbl = { "ISBN" }; - string[] sear_col = { List_Book.Rows[a].Cells["ISBN13"].Value.ToString() }; + + var isbn = dr.ISBN13;//.isbn List_Book.Rows[a].Cells["ISBN13"].Value?.ToString() ?? string.Empty; + string[] sear_col = { isbn }; //if (List_Book.Rows[a].Cells["marc_idx"].Value.ToString() != "0") {//여기 조건이 이상함.. 여기 조건때문에 순서가 잘 못 뜨는 경우 발생.. // sear_tbl[0] = "idx"; @@ -229,10 +233,10 @@ namespace UniMarc string[] Chk_Arr = Chk_Res.Split('|'); bool isMyData = true; - if (Chk_Arr.Length < 2) + if (Chk_Arr.Length < 2) //마크DB에서 데이터가 없다면? { - List_Book.Rows[a].Cells["grade"].Value = "3"; - List_Book.Rows[a].DefaultCellStyle.ForeColor = Color.Red; + dr.Grade = "3"; //List_Book.Rows[a].Cells["grade"].Value = "3"; + dr.ForeColor = Color.Red;//List_Book.Rows[a].DefaultCellStyle.ForeColor = Color.Red; continue; } @@ -242,31 +246,30 @@ namespace UniMarc string[] MarcData = { Chk_Arr[2], Chk_Arr[4], Chk_Arr[6] }; string[] CheckData = { Chk_Arr[3], Chk_Arr[5], Chk_Arr[7] }; - List_Book.Rows[a].DefaultCellStyle.ForeColor = SetGradeColor(Chk_Arr[8], isMyData); // Temporary, chk_Marc updates item below - List_Book.Rows[a].Cells["marc_idx"].Value = Chk_Arr[0]; - List_Book.Rows[a].Cells["db_marc"].Value = MarcData[0];//NewestMarc(MarcData, CheckData); - List_Book.Rows[a].Cells["grade"].Value = Chk_Arr[8]; - // text008.Text = Chk_Arr[9]; - List_Book.Rows[a].Cells["user"].Value = Chk_Arr[10]; - List_Book.Rows[a].Cells["SaveDate"].Value = Chk_Arr[11]; + dr.ForeColor = SetGradeColor(Chk_Arr[8], isMyData); // Temporary, chk_Marc updates item below + dr.MarcIdx = Chk_Arr[0]; //List_Book.Rows[a].Cells["marc_idx"].Value = Chk_Arr[0]; + dr.DbMarc = MarcData[0];// List_Book.Rows[a].Cells["db_marc"].Value = MarcData[0];//NewestMarc(MarcData, CheckData); + dr.Grade = Chk_Arr[8];// List_Book.Rows[a].Cells["grade"].Value = Chk_Arr[8]; + // text008.Text = Chk_Arr[9]; + dr.User = Chk_Arr[10];// List_Book.Rows[a].Cells["user"].Value = Chk_Arr[10]; + dr.SaveDate = Chk_Arr[11];// List_Book.Rows[a].Cells["SaveDate"].Value = Chk_Arr[11]; - var item = List_Book.Rows[a].DataBoundItem as MarcBookItem; + //var item = List_Book.Rows[a].DataBoundItem as MarcBookItem; Color gradeColor = SetGradeColor(Chk_Arr[8], isMyData); - if (item != null) item.ForeColor = gradeColor; - List_Book.Rows[a].DefaultCellStyle.ForeColor = gradeColor; + dr.ForeColor = gradeColor; + //if (item != null) item.ForeColor = gradeColor; + //List_Book.Rows[a].DefaultCellStyle.ForeColor = gradeColor; if (isMyData) { Color saveColor = GetSaveDateColor(Chk_Arr[11]); - if (item != null) item.BackColor = saveColor; - List_Book.Rows[a].DefaultCellStyle.BackColor = saveColor; + dr.BackColor = saveColor; } else { string FindCompCmd = string.Format("SELECT `comp_name` FROM `Comp` WHERE `idx` = {0}", Chk_Arr[1]); - List_Book.Rows[a].Cells["user"].Value = db.DB_Send_CMD_Search(FindCompCmd).Replace("|", ""); - List_Book.Rows[a].DefaultCellStyle.BackColor = Color.LightGray; - if (item != null) item.BackColor = Color.LightGray; + dr.User = db.DB_Send_CMD_Search(FindCompCmd).Replace("|", ""); + dr.BackColor = Color.LightGray; } } } @@ -338,6 +341,11 @@ namespace UniMarc List_Book.Rows[e.RowIndex].DefaultCellStyle.ForeColor = item.ForeColor; List_Book.Rows[e.RowIndex].DefaultCellStyle.BackColor = item.BackColor; } + else + { + List_Book.Rows[e.RowIndex].DefaultCellStyle.ForeColor = Color.Gray; + List_Book.Rows[e.RowIndex].DefaultCellStyle.BackColor = Color.DimGray; + } } @@ -523,12 +531,14 @@ namespace UniMarc private void btn_CopySelect_Click(object sender, EventArgs e) { //TODO: 마크 물리는쪽 - int row = List_Book.CurrentCell.RowIndex; - string isbn = List_Book.Rows[row].Cells["ISBN13"].Value.ToString(); + //int row = List_Book.CurrentCell.RowIndex; + //string isbn = List_Book.Rows[row].Cells["ISBN13"].Value.ToString(); + //var item = List_Book.CurrentRow.DataBoundItem as MarcBookItem; - MarcCopySelect copySelect = new MarcCopySelect(this); - copySelect.MarcFormRowIndex = row; - copySelect.Init("isbn", isbn); + var dr = this.bs1.Current as MarcBookItem; + + var copySelect = new MarcCopySelect2(this,dr); + copySelect.Init("isbn", dr.ISBN13); copySelect.Show(); } @@ -537,25 +547,21 @@ namespace UniMarc /// /// /// [0] idx, [1] compidx, [2] user, [3] date, [4] grade, [5] tag008, [6] marc - public void SelectMarc_Sub(int row, string[] GridData) + public void SelectMarc_Sub(MarcBookItem row, string[] GridData) { - List_Book.Rows[row].Cells["marc_idx"].Value = GridData[0]; - List_Book.Rows[row].Cells["user"].Value = GridData[2]; - List_Book.Rows[row].Cells["SaveDate"].Value = GridData[4]; - List_Book.Rows[row].Cells["grade"].Value = GridData[3]; + row.MarcIdx = GridData[0]; + row.User= GridData[2]; + row.SaveDate = GridData[4]; + row.Grade= GridData[3]; // text008.Text = GridData[5]; - List_Book.Rows[row].Cells["db_marc"].Value = GridData[6]; + row.DbMarc= GridData[6]; mOldMarc = GridData[6]; - List_Book.Rows[row].DefaultCellStyle.ForeColor = SetGradeColor(GridData[4]); - List_Book.Rows[row].DefaultCellStyle.BackColor = Color.Yellow; - var item = List_Book.Rows[row].DataBoundItem as MarcBookItem; - if (item != null) - { - item.ForeColor = List_Book.Rows[row].DefaultCellStyle.ForeColor; - item.BackColor = Color.Yellow; - } - - if (List_Book.CurrentRow != null && List_Book.CurrentRow.Index == row) + + row.ForeColor = SetGradeColor(row.Grade); + row.BackColor = Color.Yellow; + + var currentitem = this.bs1.Current as MarcBookItem; + if (currentitem != null && currentitem == row) { List_Book_SelectionChanged(null, null); } @@ -563,99 +569,6 @@ namespace UniMarc private void MarcEditorControl_BookSaved(object sender, MarcEditorControl.BookSavedEventArgs e) { - /* [기존 방식: UI 직접 수정 로직 주석 처리] - string table_name = "Marc"; - - //데이터인덱스를 찾아서 값을 업데이트한다. - var item = this.dataList.Where(t => t.ListIdx == e.Param.ListIdx).FirstOrDefault(); - - string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - string orimarc = e.DBMarc;// st.made_Ori_marc(richTextBox1).Replace(@"\", "₩"); - string Midx = List_Book.Rows[SaveRowIdx].Cells["marc_idx"].Value.ToString(); - string SaveDate = List_Book.Rows[SaveRowIdx].Cells["SaveDate"].Value.ToString(); - string SaveUser = List_Book.Rows[SaveRowIdx].Cells["user"].Value.ToString(); - bool IsCoverDate = false; - - if (SaveDate != "") - { - // 마지막 수정일로부터 2일이 지났는지, 마지막 저장자가 사용자인지 확인 - TimeSpan sp = spspsp(SaveDate, date); - IsCoverDate = IsCoverData(sp.Days, SaveUser); - } - - // true일 경우 INSERT, false일 경우 UPDATE - bool isNewData = Midx != "" ? false : true; - - - if (List_Book.Rows[SaveRowIdx].DefaultCellStyle.ForeColor == Color.Orange || - List_Book.Rows[SaveRowIdx].DefaultCellStyle.ForeColor == Color.Red) - { - string[] Insert_tbl = { - "ISBN", "서명", "저자", "출판사", - "가격", "marc", "비고1", "비고2", "url", - "grade", "marc_chk", "user", "division", "008tag", - "date", "compidx" }; - string[] Insert_col = { - e.Param.ISBN13, e.Param.BookName, e.Param.Author, e.Param.Publisher, - e.Param.Price, orimarc, e.Param.Remark1, e.Param.Remark2, e.Param.URL, - e.Param.Grade, "1", mUserName, e.Param.tag056, e.Param.text008, - date, mCompidx }; - - string Incmd = db.DB_INSERT(table_name, Insert_tbl, Insert_col); - PUB.log.Add("INSERT", string.Format("{0}({1},{2}) : {3}", mUserName, mCompidx, List_Book.Rows[SaveRowIdx].DefaultCellStyle.ForeColor, Incmd)); - long newIdx = db.DB_Send_CMD_Insert_GetIdx(Incmd); - if (newIdx > 0) - { - Midx = newIdx.ToString(); - List_Book.Rows[SaveRowIdx].Cells["marc_idx"].Value = Midx; - isNewData = true; - } - } - else - { - string[] Edit_tbl = { - "compidx", "marc", "marc_chk", "marc1", "marc_chk1", "비고1", - "비고2", "url", "division", "008tag", "date", - "user", "grade" }; - string[] Edit_col = { - mCompidx, orimarc, "1", mOldMarc , "0", e.Param.Remark1, - e.Param.Remark2, e.Param.URL, e.Param.tag056,e.Param.text008, date, - mUserName, e.Param.Grade }; - string[] Sear_tbl = { "idx", "compidx" }; - string[] Sear_col = { Midx, mCompidx }; - if (e.Param.ISBN13 == null || e.Param.ISBN13 == "") - { - MessageBox.Show("ISBN 데이터가 없습니다."); - return; - } - - string U_cmd = db.More_Update(table_name, Edit_tbl, Edit_col, Sear_tbl, Sear_col); - PUB.log.Add("Update", string.Format("{0}({1},{2}) : {3}", mUserName, mCompidx, List_Book.Rows[SaveRowIdx].DefaultCellStyle.ForeColor, U_cmd.Replace("\r", " ").Replace("\n", " "))); - Helper_DB.ExcuteNonQuery(U_cmd); - isNewData = false; - } - - List_Book.Rows[SaveRowIdx].Cells["grade"].Value = e.Param.Grade; - List_Book.Rows[SaveRowIdx].Cells["SaveDate"].Value = e.SaveDate; - List_Book.Rows[SaveRowIdx].Cells["user"].Value = mUserName; - List_Book.Rows[SaveRowIdx].Cells["db_marc"].Value = e.DBMarc; - - List_Book.Rows[SaveRowIdx].DefaultCellStyle.ForeColor = SetGradeColor(grade.ToString()); - - var item = List_Book.Rows[SaveRowIdx].DataBoundItem as MarcBookItem; - if (item != null) item.ForeColor = List_Book.Rows[SaveRowIdx].DefaultCellStyle.ForeColor; - - // (신규 추가 시 위에서 이미 Midx를 할당함) - - - string UpdateListIndex = string.Format("UPDATE `Obj_List_Book` SET `m_idx` = {0} WHERE `idx` = {1} AND 'compidx' ={2};", - Midx, List_Book.Rows[SaveRowIdx].Cells["list_idx"].Value.ToString(), mCompidx); - PUB.log.Add("MarcUpdate", string.Format("{0}({1}) : {2}", mUserName, mCompidx, UpdateListIndex)); - Helper_DB.ExcuteNonQuery(UpdateListIndex); - MessageBox.Show("저장되었습니다!"); - */ - - // [신규 방식: 데이터 객체(Item) 중심 로직] var item = this.dataList.Where(t => t.ListIdx == e.Param.ListIdx).FirstOrDefault(); if (item == null) return; @@ -683,7 +596,7 @@ namespace UniMarc else { string[] Edit_tbl = { "compidx", "marc", "marc_chk", "marc1", "marc_chk1", "비고1", "비고2", "url", "division", "008tag", "date", "user", "grade" }; - string[] Edit_col = { mCompidx, newsavedMarc, "1", e.Param.OriginalMarc , "0", e.Param.Remark1, e.Param.Remark2, e.Param.URL, e.Param.tag056,e.Param.text008, date, mUserName, e.Param.Grade }; + string[] Edit_col = { mCompidx, newsavedMarc, "1", e.Param.OriginalMarc, "0", e.Param.Remark1, e.Param.Remark2, e.Param.URL, e.Param.tag056, e.Param.text008, date, mUserName, e.Param.Grade }; string[] Sear_tbl = { "idx", "compidx" }; string[] Sear_col = { item.MarcIdx, mCompidx }; @@ -813,11 +726,17 @@ namespace UniMarc private void btn_mk_marcList_Click(object sender, EventArgs e) { - Marc_mkList mkList = new Marc_mkList(this); + var mkList = new Marc_mkList2(this); mkList.StartPosition = FormStartPosition.CenterScreen; mkList.Show(); } #region 마크생성목록_Sub + + /// + /// 글자색이 빨간색이 아니라면 True 를 반환합니다. + /// + /// + /// public bool Check_BackColor(int row) { if (List_Book.Rows[row].DefaultCellStyle.ForeColor != Color.Red) @@ -825,6 +744,11 @@ namespace UniMarc return false; } + /// + /// ColCheck 값이 V 라면 True 를 반환합니다. + /// + /// + /// public bool Check_List_V(int row) { if (List_Book.Rows[row].Cells["colCheck"].Value.ToString() == "V") @@ -836,7 +760,7 @@ namespace UniMarc private void checkBox3_CheckedChanged(object sender, EventArgs e) { - bool isCheck = checkBox3.Checked; + bool isCheck = chkColCheck.Checked; if (isCheck) { for (int a = 0; a < List_Book.Rows.Count; a++) diff --git a/unimarc/unimarc/마크/Marc2.designer.cs b/unimarc/unimarc/마크/Marc2.designer.cs index 23e68ce..23f880b 100644 --- a/unimarc/unimarc/마크/Marc2.designer.cs +++ b/unimarc/unimarc/마크/Marc2.designer.cs @@ -69,11 +69,12 @@ this.btn_CopySelect = new System.Windows.Forms.Button(); this.btn_FilterReturn = new System.Windows.Forms.Button(); this.btn_Search = new System.Windows.Forms.Button(); - this.checkBox3 = new System.Windows.Forms.CheckBox(); + this.chkColCheck = new System.Windows.Forms.CheckBox(); this.tbCustName = new System.Windows.Forms.Button(); this.lbCustIDX = new System.Windows.Forms.Label(); this.btCopy = new System.Windows.Forms.Button(); this.panel2 = new System.Windows.Forms.Panel(); + this.marcEditorControl1 = new UniMarc.MarcEditorControl(); this.panel3 = new System.Windows.Forms.Panel(); this.panel4 = new System.Windows.Forms.Panel(); this.lbl_BookList = new System.Windows.Forms.Label(); @@ -89,7 +90,6 @@ this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton(); this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton(); - this.marcEditorControl1 = new UniMarc.MarcEditorControl(); this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator(); this.toolStripLabel1 = new System.Windows.Forms.ToolStripLabel(); this.lbListIdx = new System.Windows.Forms.ToolStripLabel(); @@ -491,18 +491,18 @@ this.btn_Search.UseVisualStyleBackColor = true; this.btn_Search.Click += new System.EventHandler(this.btn_Search_Click); // - // checkBox3 + // chkColCheck // - this.checkBox3.AutoSize = true; - this.checkBox3.BackColor = System.Drawing.Color.White; - this.checkBox3.Checked = true; - this.checkBox3.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBox3.Location = new System.Drawing.Point(511, 109); - this.checkBox3.Name = "checkBox3"; - this.checkBox3.Size = new System.Drawing.Size(15, 14); - this.checkBox3.TabIndex = 227; - this.checkBox3.UseVisualStyleBackColor = false; - this.checkBox3.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); + this.chkColCheck.AutoSize = true; + this.chkColCheck.BackColor = System.Drawing.Color.White; + this.chkColCheck.Checked = true; + this.chkColCheck.CheckState = System.Windows.Forms.CheckState.Checked; + this.chkColCheck.Location = new System.Drawing.Point(511, 109); + this.chkColCheck.Name = "chkColCheck"; + this.chkColCheck.Size = new System.Drawing.Size(15, 14); + this.chkColCheck.TabIndex = 227; + this.chkColCheck.UseVisualStyleBackColor = false; + this.chkColCheck.CheckedChanged += new System.EventHandler(this.checkBox3_CheckedChanged); // // tbCustName // @@ -548,10 +548,20 @@ this.panel2.Size = new System.Drawing.Size(1083, 658); this.panel2.TabIndex = 325; // + // marcEditorControl1 + // + this.marcEditorControl1.BackColor = System.Drawing.Color.Gray; + this.marcEditorControl1.Dock = System.Windows.Forms.DockStyle.Fill; + this.marcEditorControl1.Font = new System.Drawing.Font("돋움", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.marcEditorControl1.Location = new System.Drawing.Point(0, 0); + this.marcEditorControl1.Name = "marcEditorControl1"; + this.marcEditorControl1.Size = new System.Drawing.Size(1083, 658); + this.marcEditorControl1.TabIndex = 0; + // // panel3 // this.panel3.BackColor = System.Drawing.Color.White; - this.panel3.Controls.Add(this.checkBox3); + this.panel3.Controls.Add(this.chkColCheck); this.panel3.Controls.Add(this.List_Book); this.panel3.Controls.Add(this.panel1); this.panel3.Controls.Add(this.panel4); @@ -701,16 +711,6 @@ this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(24, 24); this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동"; // - // marcEditorControl1 - // - this.marcEditorControl1.BackColor = System.Drawing.Color.Gray; - this.marcEditorControl1.Dock = System.Windows.Forms.DockStyle.Fill; - this.marcEditorControl1.Font = new System.Drawing.Font("돋움", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - this.marcEditorControl1.Location = new System.Drawing.Point(0, 0); - this.marcEditorControl1.Name = "marcEditorControl1"; - this.marcEditorControl1.Size = new System.Drawing.Size(1083, 658); - this.marcEditorControl1.TabIndex = 0; - // // toolStripSeparator1 // this.toolStripSeparator1.Name = "toolStripSeparator1"; @@ -768,7 +768,7 @@ private System.Windows.Forms.Button btn_Search; private System.Windows.Forms.Button btn_mk_marcList; public System.Windows.Forms.DataGridView List_Book; - private System.Windows.Forms.CheckBox checkBox3; + private System.Windows.Forms.CheckBox chkColCheck; diff --git a/unimarc/unimarc/마크/MarcCopySelect.cs b/unimarc/unimarc/마크/MarcCopySelect.cs index 7009efe..d6c7ed0 100644 --- a/unimarc/unimarc/마크/MarcCopySelect.cs +++ b/unimarc/unimarc/마크/MarcCopySelect.cs @@ -15,9 +15,7 @@ namespace UniMarc { Helper_DB db = new Helper_DB(); Marc m; - Marc2 m2; AddMarc am; - AddMarc2 am2; CD_LP cp; public int MarcFormRowIndex; @@ -25,25 +23,12 @@ namespace UniMarc { InitializeComponent(); } - public MarcCopySelect(AddMarc2 cD) - { - InitializeComponent(); - am2 = cD; - db.DBcon(); - } public MarcCopySelect(CD_LP cD) { InitializeComponent(); cp = cD; db.DBcon(); } - public MarcCopySelect(Marc2 _m) - { - InitializeComponent(); - m2 = _m; - db.DBcon(); - } - public MarcCopySelect(Marc _m) { InitializeComponent(); @@ -426,8 +411,6 @@ namespace UniMarc if (m != null) m.SelectMarc_Sub(MarcFormRowIndex, GridData); - if(m2 != null) - m2.SelectMarc_Sub(MarcFormRowIndex, GridData); if (am != null) { @@ -435,12 +418,6 @@ namespace UniMarc string isbn = dataGridView1.Rows[row].Cells["isbn"].Value.ToString(); am.SelectMarc_Sub(Marc, isbn, GridData); } - if (am2 != null) - { - string Marc = richTextBox1.Text; - string isbn = dataGridView1.Rows[row].Cells["isbn"].Value.ToString(); - am2.SelectMarc_Sub(Marc, isbn, GridData); - } this.Close(); } diff --git a/unimarc/unimarc/마크/MarcCopySelect2.Designer.cs b/unimarc/unimarc/마크/MarcCopySelect2.Designer.cs new file mode 100644 index 0000000..9eaea9a --- /dev/null +++ b/unimarc/unimarc/마크/MarcCopySelect2.Designer.cs @@ -0,0 +1,224 @@ + +namespace UniMarc +{ + partial class MarcCopySelect2 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + this.dataGridView1 = new System.Windows.Forms.DataGridView(); + this.panel1 = new System.Windows.Forms.Panel(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.btn_Search = new System.Windows.Forms.Button(); + this.tb_SearchBox = new System.Windows.Forms.TextBox(); + this.cb_SearchFilter = new System.Windows.Forms.ComboBox(); + this.btn_ShowDeleteMarc = new System.Windows.Forms.Button(); + this.btn_Close = new System.Windows.Forms.Button(); + this.btn_Delete = new System.Windows.Forms.Button(); + this.panel2 = new System.Windows.Forms.Panel(); + this.richTextBox1 = new System.Windows.Forms.RichTextBox(); + this.panel3 = new System.Windows.Forms.Panel(); + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel3.SuspendLayout(); + this.SuspendLayout(); + // + // dataGridView1 + // + this.dataGridView1.AllowUserToAddRows = false; + this.dataGridView1.AllowUserToDeleteRows = false; + this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.None; + dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle2.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle2.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle2.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle2.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle2.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle2.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle2; + this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; + this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill; + this.dataGridView1.Location = new System.Drawing.Point(0, 0); + this.dataGridView1.Name = "dataGridView1"; + this.dataGridView1.ReadOnly = true; + this.dataGridView1.RowTemplate.Height = 23; + this.dataGridView1.Size = new System.Drawing.Size(1109, 106); + this.dataGridView1.TabIndex = 0; + this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick); + this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick); + this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown); + // + // panel1 + // + this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel1.Controls.Add(this.progressBar1); + this.panel1.Controls.Add(this.btn_Search); + this.panel1.Controls.Add(this.tb_SearchBox); + this.panel1.Controls.Add(this.cb_SearchFilter); + this.panel1.Controls.Add(this.btn_ShowDeleteMarc); + this.panel1.Controls.Add(this.btn_Close); + this.panel1.Controls.Add(this.btn_Delete); + this.panel1.Dock = System.Windows.Forms.DockStyle.Top; + this.panel1.Location = new System.Drawing.Point(0, 0); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(1109, 33); + this.panel1.TabIndex = 1; + // + // progressBar1 + // + this.progressBar1.Location = new System.Drawing.Point(434, 4); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(160, 23); + this.progressBar1.TabIndex = 5; + // + // btn_Search + // + this.btn_Search.Location = new System.Drawing.Point(353, 4); + this.btn_Search.Name = "btn_Search"; + this.btn_Search.Size = new System.Drawing.Size(75, 23); + this.btn_Search.TabIndex = 4; + this.btn_Search.Text = "검 색"; + this.btn_Search.UseVisualStyleBackColor = true; + this.btn_Search.Click += new System.EventHandler(this.btn_Search_Click); + // + // tb_SearchBox + // + this.tb_SearchBox.Location = new System.Drawing.Point(109, 5); + this.tb_SearchBox.Name = "tb_SearchBox"; + this.tb_SearchBox.Size = new System.Drawing.Size(238, 21); + this.tb_SearchBox.TabIndex = 3; + this.tb_SearchBox.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tb_SearchBox_KeyDown); + // + // cb_SearchFilter + // + this.cb_SearchFilter.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_SearchFilter.FormattingEnabled = true; + this.cb_SearchFilter.Items.AddRange(new object[] { + "도서명", + "저자", + "출판사"}); + this.cb_SearchFilter.Location = new System.Drawing.Point(11, 5); + this.cb_SearchFilter.Name = "cb_SearchFilter"; + this.cb_SearchFilter.Size = new System.Drawing.Size(91, 20); + this.cb_SearchFilter.TabIndex = 2; + // + // btn_ShowDeleteMarc + // + this.btn_ShowDeleteMarc.Location = new System.Drawing.Point(844, 4); + this.btn_ShowDeleteMarc.Name = "btn_ShowDeleteMarc"; + this.btn_ShowDeleteMarc.Size = new System.Drawing.Size(93, 23); + this.btn_ShowDeleteMarc.TabIndex = 1; + this.btn_ShowDeleteMarc.Text = "삭제 마크 확인"; + this.btn_ShowDeleteMarc.UseVisualStyleBackColor = true; + this.btn_ShowDeleteMarc.Click += new System.EventHandler(this.btn_ShowDeleteMarc_Click); + // + // btn_Close + // + this.btn_Close.Location = new System.Drawing.Point(1021, 4); + this.btn_Close.Name = "btn_Close"; + this.btn_Close.Size = new System.Drawing.Size(75, 23); + this.btn_Close.TabIndex = 0; + this.btn_Close.Text = "닫 기"; + this.btn_Close.UseVisualStyleBackColor = true; + this.btn_Close.Click += new System.EventHandler(this.btn_Close_Click); + // + // btn_Delete + // + this.btn_Delete.Location = new System.Drawing.Point(943, 4); + this.btn_Delete.Name = "btn_Delete"; + this.btn_Delete.Size = new System.Drawing.Size(75, 23); + this.btn_Delete.TabIndex = 0; + this.btn_Delete.Text = "마크 삭제"; + this.btn_Delete.UseVisualStyleBackColor = true; + this.btn_Delete.Click += new System.EventHandler(this.btn_Delete_Click); + // + // panel2 + // + this.panel2.Controls.Add(this.dataGridView1); + this.panel2.Dock = System.Windows.Forms.DockStyle.Top; + this.panel2.Location = new System.Drawing.Point(0, 33); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(1109, 106); + this.panel2.TabIndex = 2; + // + // richTextBox1 + // + this.richTextBox1.BackColor = System.Drawing.Color.LightGray; + this.richTextBox1.BorderStyle = System.Windows.Forms.BorderStyle.None; + this.richTextBox1.Dock = System.Windows.Forms.DockStyle.Fill; + this.richTextBox1.Font = new System.Drawing.Font("굴림체", 11.25F); + this.richTextBox1.Location = new System.Drawing.Point(0, 0); + this.richTextBox1.Name = "richTextBox1"; + this.richTextBox1.Size = new System.Drawing.Size(1109, 540); + this.richTextBox1.TabIndex = 0; + this.richTextBox1.Text = ""; + // + // panel3 + // + this.panel3.Controls.Add(this.richTextBox1); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(0, 139); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(1109, 540); + this.panel3.TabIndex = 3; + // + // MarcCopySelect + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(1109, 679); + this.Controls.Add(this.panel3); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Name = "MarcCopySelect"; + this.Text = "마크 선택"; + ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit(); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel3.ResumeLayout(false); + this.ResumeLayout(false); + + } + + #endregion + + private System.Windows.Forms.DataGridView dataGridView1; + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.RichTextBox richTextBox1; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.Button btn_Close; + private System.Windows.Forms.Button btn_Delete; + private System.Windows.Forms.Button btn_ShowDeleteMarc; + private System.Windows.Forms.ComboBox cb_SearchFilter; + private System.Windows.Forms.Button btn_Search; + private System.Windows.Forms.TextBox tb_SearchBox; + private System.Windows.Forms.ProgressBar progressBar1; + } +} \ No newline at end of file diff --git a/unimarc/unimarc/마크/MarcCopySelect2.cs b/unimarc/unimarc/마크/MarcCopySelect2.cs new file mode 100644 index 0000000..c3fc243 --- /dev/null +++ b/unimarc/unimarc/마크/MarcCopySelect2.cs @@ -0,0 +1,496 @@ +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; +using static System.Windows.Forms.VisualStyles.VisualStyleElement; + +namespace UniMarc +{ + public partial class MarcCopySelect2 : Form + { + Helper_DB db = new Helper_DB(); + Marc2 m2; + AddMarc2 am2; + MarcBookItem item; + + public MarcCopySelect2() + { + InitializeComponent(); + } + public MarcCopySelect2(AddMarc2 cD) + { + InitializeComponent(); + am2 = cD; + db.DBcon(); + } + public MarcCopySelect2(Marc2 _m,MarcBookItem _item) + { + InitializeComponent(); + m2 = _m; + this.item = _item; + db.DBcon(); + } + + private void tb_SearchBox_KeyDown(object sender, KeyEventArgs e) + { + if (e.KeyCode == Keys.Enter) + btn_Search_Click(null, null); + } + + private void btn_Search_Click(object sender, EventArgs e) + { + if (cb_SearchFilter.SelectedIndex < 0) return; + + dataGridView1.Rows.Clear(); + richTextBox1.Text = ""; + + string search_Col = ""; + string search_Target = tb_SearchBox.Text; + switch (cb_SearchFilter.SelectedIndex) + { + case 0: + search_Col = "ISBN"; + break; + case 1: + search_Col = "서명"; + break; + case 2: + search_Col = "저자"; + break; + case 3: + search_Col = "출판사"; + break; + } + Init(search_Col, search_Target); + } + + public void Init(string search_col, string search_Target, string CD_LP) + { + SettingGrid_CDLP(); + + btn_ShowDeleteMarc.Visible = false; + btn_Delete.Visible = false; + + if (search_Target == "") return; + + string Area = "`idx`, `Code`, `user`, `date`, `Marc`"; + string Table = "DVD_Marc"; + string Query = string.Format("SELECT {0} FROM {1} WHERE `{2}` = \"{3}\"", Area, Table, search_col, search_Target); + string Result = db.DB_Send_CMD_Search(Query); + string[] GridData = Result.Split('|'); + + InputGrid_CDLP(GridData); + } + + private void SettingGrid_CDLP() + { + DataGridView dgv = dataGridView1; + dgv.Columns.Add("idx", "idx"); + dgv.Columns.Add("code", "CODE"); + dgv.Columns.Add("user", "수정자"); + dgv.Columns.Add("date", "수정시각"); + dgv.Columns.Add("marc", "Marc"); + + dgv.Columns["idx"].Visible = false; + dgv.Columns["user"].Width = 120; + dgv.Columns["date"].Width = 120; + dgv.Columns["marc"].Width = 300; + } + + private void InputGrid_CDLP(string[] Value) + { + progressBar1.Value = 0; + progressBar1.Maximum = Value.Length / 5; + + string[] Grid = { "", "", "", "", "" }; + + for (int a = 0; a < Value.Length; a++) + { + if (a % 5 == 0) Grid[0] = Value[a]; // idx + if (a % 5 == 1) Grid[1] = Value[a]; // CODE + if (a % 5 == 2) Grid[2] = Value[a]; // user + if (a % 5 == 3) Grid[3] = Value[a]; // date + if (a % 5 == 4) + { + Grid[4] = Value[a]; // marc + dataGridView1.Rows.Add(Grid); + progressBar1.Value += 1; + } + } + + for (int a = 0; a < dataGridView1.Rows.Count; a++) + { + string savedate = dataGridView1.Rows[a].Cells["date"].Value.ToString(); + SaveDataCheck(savedate, a); + } + } + + public void Init(string search_col, string search_Target) + { + SettingGrid_Book(); + if (search_Target == "") return; + + // 0 1 2 3 4 + string Area = "`idx`, `compidx`, `ISBN`, `서명`, `저자`, " + + // 5 6 7 8 9 + "`출판사`, `user`, `date`, `grade`, `008tag`, " + + // 10 11 12 13 14 15 + "`marc`, `marc_chk`, `marc1`, `marc_chk1`, `marc2`, `marc_chk2`"; + string Table = "Marc"; + + string Query = string.Format("SELECT {0} FROM {1} WHERE `{2}` like \"%{3}%\";", Area, Table, search_col, search_Target); + string Result = db.DB_Send_CMD_Search(Query); + string[] GridData = Result.Split('|'); + + InputGrid(GridData); + } + + private void SettingGrid_Book() + { + DataGridView dgv = dataGridView1; + dgv.Columns.Add("idx", "idx"); + dgv.Columns.Add("compidx", "compidx"); + dgv.Columns.Add("isbn", "ISBN"); + dgv.Columns.Add("Title", "서명"); + dgv.Columns.Add("Author", "저자"); + dgv.Columns.Add("Comp", "출판사"); + dgv.Columns.Add("user", "수정자"); + dgv.Columns.Add("date", "수정시각"); + dgv.Columns.Add("grade", "등급"); + dgv.Columns.Add("tag008", "008Tag"); + dgv.Columns.Add("marc", "Marc"); + + dgv.Columns["idx"].Visible = false; + dgv.Columns["compidx"].Visible = false; + dgv.Columns["user"].Width = 120; + dgv.Columns["date"].Width = 120; + dgv.Columns["grade"].Width = 60; + dgv.Columns["tag008"].Width = 150; + dgv.Columns["marc"].Width = 200; + } + + private void InputGrid(string[] Value) + { + progressBar1.Value = 0; + progressBar1.Maximum = Value.Length / 16; + + string[] Grid = { + "", "", "", "", "", + "", "", "", "", "", + "" }; + string[] MarcData = { "", "", "", "", "", "" }; + + for (int a = 0; a < Value.Length; a++) + { + if (a % 16 == 0) Grid[0] = Value[a]; // idx + if (a % 16 == 1) Grid[1] = Value[a]; // compidx + if (a % 16 == 2) Grid[2] = Value[a]; // isbn + if (a % 16 == 3) Grid[3] = Value[a]; // 서명 + if (a % 16 == 4) Grid[4] = Value[a]; // 저자 + if (a % 16 == 5) Grid[5] = Value[a]; // 출판사 + if (a % 16 == 6) Grid[6] = Value[a]; // user + if (a % 16 == 7) Grid[7] = Value[a]; // date + if (a % 16 == 8) Grid[8] = ChangeGrade(Value[a]); // grade + if (a % 16 == 9) Grid[9] = Value[a]; // 008tag + if (a % 16 == 10) MarcData[0] = Value[a]; // marc + if (a % 16 == 11) MarcData[1] = Value[a]; // marc_chk + if (a % 16 == 12) MarcData[2] = Value[a]; // marc1 + if (a % 16 == 13) MarcData[3] = Value[a]; // marc_chk1 + if (a % 16 == 14) MarcData[4] = Value[a]; // marc2 + if (a % 16 == 15) { MarcData[5] = Value[a]; // marc_chk2 + Grid[10] = RealMarc(MarcData); + dataGridView1.Rows.Add(Grid); + progressBar1.Value += 1; + } + } + + for (int a = 0; a < dataGridView1.Rows.Count; a++) + { + string compidx = dataGridView1.Rows[a].Cells["compidx"].Value.ToString(); + string grade = dataGridView1.Rows[a].Cells["grade"].Value.ToString(); + string savedate = dataGridView1.Rows[a].Cells["date"].Value.ToString(); + + bool isMyData = true; + + if (compidx != PUB.user.CompanyIdx) { + isMyData = false; + string FindCompCmd = string.Format("SELECT `comp_name` FROM `Comp` WHERE `idx` = {0}", compidx); + dataGridView1.Rows[a].Cells["user"].Value = db.DB_Send_CMD_Search(FindCompCmd).Replace("|", ""); + dataGridView1.Rows[a].DefaultCellStyle.BackColor = Color.LightGray; + } + + dataGridView1.Rows[a].DefaultCellStyle.ForeColor = SetGradeColor(grade, isMyData); + SaveDataCheck(savedate, a); + } + } + + private string ChangeGrade(string Grade) + { + switch (Grade) + { + case "0": + return "A"; + case "1": + return "B"; + case "2": + return "C"; + case "3": + return "D"; + + case "A": + return "0"; + case "B": + return "1"; + case "C": + return "2"; + case "D": + return "3"; + + default: + return "D"; + } + } + + private Color SetGradeColor(string Grade, bool isMyData = true) + { + if (!isMyData) + return Color.Orange; + + switch (Grade) + { + case "A": + return Color.Blue; + case "B": + return Color.Black; + case "C": + return Color.Gray; + case "D": + return Color.Red; + + default: + return Color.Black; + } + } + + private void SaveDataCheck(string Date, int row) + { + DateTime SaveDate = DateTime.ParseExact(Date, "yyyy-MM-dd HH:mm:ss", + System.Globalization.CultureInfo.InvariantCulture, System.Globalization.DateTimeStyles.None); + DateTime TargetDate = DateTime.Today.AddDays(-14); + + int result = DateTime.Compare(SaveDate, TargetDate); + + if (result >= 0) // SaveDate가 같거나 큼 + dataGridView1.Rows[row].DefaultCellStyle.BackColor = Color.Yellow; + + else // TargetDate가 큼 + dataGridView1.Rows[row].DefaultCellStyle.BackColor = Color.White; + } + + private string RealMarc(string[] MarcData) + { + string result = ""; + if (MarcData[1] == "1") + result = MarcData[0]; + + if (MarcData[3] == "1") + result = MarcData[2]; + + if (MarcData[5] == "1") + result = MarcData[4]; + + return result; + } + + private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e) + { + String_Text st = new String_Text(); + int row = e.RowIndex; + + if (row < 0) return; + + view_Marc(row); + + st.Color_change("▼", richTextBox1); + st.Color_change("▲", richTextBox1); + } + + /// + /// 마크데이터가 있는지 확인하고 메모장으로 출력 + /// + /// 해당 데이터의 row값 + /// + void view_Marc(int row) + { + // 마크 데이터 + string Marc_data = dataGridView1.Rows[row].Cells["marc"].Value.ToString(); + + if (Marc_data.Length < 3) return; + + string result = string.Empty; + + List TagNum = new List(); // 태그번호 + List field = new List(); // 가변길이필드 저장 + + // 특수기호 육안으로 확인하기 쉽게 변환 + Marc_data = Marc_data.Replace("", "▼"); + Marc_data = Marc_data.Replace("", "▲"); + Marc_data = Marc_data.Replace("₩", "\\"); + // string leader = Marc_data.Substring(0, 24); + + int startidx = 0; + string[] data = Marc_data.Substring(24).Split('▲'); // 리더부를 제외한 디렉터리, 가변길이필드 저장 + + // List에 필요한 데이터 집어넣는 작업. + for (int a = 1; a < data.Length - 1; a++) + { + TagNum.Add(data[0].Substring(startidx, 3)); + startidx += 12; + field.Add(data[a] + "▲"); + } + + // List에 들어간 데이터를 메모장에 출력시키는 작업. + for (int a = 0; a < TagNum.Count; a++) + { + string res = TagNum[a]; + if (field[a].IndexOf("▼") == -1) + { + res += "\t \t" + field[a]; + } + else + { + string temp = field[a].Insert(2, "\t"); + res += "\t" + temp; + } + result += res + "\n"; + } + richTextBox1.Text = result; + return; + } + + private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) + { + int row = e.RowIndex; + SelectMarc(row); + } + + void SelectMarc(int row) + { + string[] GridData = { + dataGridView1.Rows[row].Cells["idx"].Value.ToString(), + dataGridView1.Rows[row].Cells["compidx"].Value.ToString(), + dataGridView1.Rows[row].Cells["user"].Value.ToString(), + ChangeGrade(dataGridView1.Rows[row].Cells["grade"].Value.ToString()), + dataGridView1.Rows[row].Cells["date"].Value.ToString(), + dataGridView1.Rows[row].Cells["tag008"].Value.ToString(), + dataGridView1.Rows[row].Cells["marc"].Value.ToString() + }; + + if(m2 != null) + { + m2.SelectMarc_Sub(this.item, GridData); + } + + + if (am2 != null) + { + string Marc = richTextBox1.Text; + string isbn = dataGridView1.Rows[row].Cells["isbn"].Value.ToString(); + am2.SelectMarc_Sub(Marc, isbn, GridData); + } + this.Close(); + } + + private void btn_Close_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void btn_Delete_Click(object sender, EventArgs e) + { + if (dataGridView1.CurrentCell.RowIndex < -1) + return; + + int row = dataGridView1.CurrentCell.RowIndex; + + string idx = dataGridView1.Rows[row].Cells["idx"].Value.ToString(); + + string User = PUB.user.UserName; + string compidx = PUB.user.CompanyIdx; + string NowDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + + string SelectArea = "`compidx`, `grade`, `ISBN`, `서명`, `총서명`, " + + "`저자`, `출판사`, `출판년월`, `가격`, `008tag`, " + + "`division`, `user`, `비고1`, `비고2`, `url`, " + + "`marc`, `marc_chk`, `marc1`, `marc_chk1`, `marc2`, `marc_chk2`"; + + string SelectCMD = string.Format("SELECT {0} FROM {1} WHERE `idx` = {2};", SelectArea, "Marc", idx); + string SelectRes = db.self_Made_Cmd(SelectCMD); + string[] SelectAry = SelectRes.Split('|'); + + if (SelectAry[0] != compidx) + { + MessageBox.Show("해당 마크를 삭제할 권한이 없습니다.", "삭제"); + return; + } + + if (MessageBox.Show("삭제하시겠습니까?", "삭제!", MessageBoxButtons.OKCancel) == DialogResult.Cancel) + return; + + string[] InsertCol = { + "compidx", "grade", "ISBN", "서명", "총서명", + "저자", "출판사", "출판년월", "가격", "008tag", + "division", "user", "비고1", "비고2", "url", + "date", "user_Del", "marc" + }; + + string marc = ""; + + if (SelectAry[16] == "1") + marc = SelectAry[15]; + else if (SelectAry[18] == "1") + marc = SelectAry[17]; + else if (SelectAry[20] == "1") + marc = SelectAry[19]; + + string[] InsertData = { + SelectAry[0], SelectAry[1], SelectAry[2], SelectAry[3], SelectAry[4], + SelectAry[5], SelectAry[6], SelectAry[7], SelectAry[8], SelectAry[9], + SelectAry[10], SelectAry[11], SelectAry[12], SelectAry[13], SelectAry[14], + NowDate, User, marc + }; + + string InsertCmd = db.DB_INSERT("Marc_Del", InsertCol, InsertData); + Helper_DB.ExcuteNonQuery(InsertCmd); + + string DeleteCmd = string.Format("DELETE FROM `Marc` WHERE `idx` = {0};", idx); + Helper_DB.ExcuteNonQuery(DeleteCmd); + + dataGridView1.Rows.Remove(dataGridView1.Rows[row]); + } + + private void btn_ShowDeleteMarc_Click(object sender, EventArgs e) + { + ShowDeleteMarc showDeleteMarc = new ShowDeleteMarc(); + showDeleteMarc.Show(); + } + + private void dataGridView1_KeyDown(object sender, KeyEventArgs e) + { + + if (e.KeyCode == Keys.Enter) + { + if (dataGridView1.CurrentCell.RowIndex < 0) + return; + + int row = dataGridView1.CurrentCell.RowIndex; + SelectMarc(row); + } + } + } +} diff --git a/unimarc/unimarc/마크/MarcCopySelect2.resx b/unimarc/unimarc/마크/MarcCopySelect2.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/unimarc/unimarc/마크/MarcCopySelect2.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file diff --git a/unimarc/unimarc/마크/Marc_mkList.cs b/unimarc/unimarc/마크/Marc_mkList.cs index cf61161..c5ddc71 100644 --- a/unimarc/unimarc/마크/Marc_mkList.cs +++ b/unimarc/unimarc/마크/Marc_mkList.cs @@ -18,13 +18,7 @@ namespace UniMarc Marc marc; CD_LP cp; Helper_DB db = new Helper_DB(); - Marc2 marc2; - public Marc_mkList(Marc2 _mae) - { - InitializeComponent(); - marc2 = _mae; - } - + public Marc_mkList(Marc _marc) { InitializeComponent(); @@ -203,192 +197,14 @@ namespace UniMarc if (marc != null) ExportOld(); - else if (marc2 != null) - ExportNew(); - } - void ExportNew() - { - String_Text st = new String_Text(); - var marccnt1 = marc2?.List_Book.RowCount ?? 0; - - if (marccnt1 < 1) - { - UTIL.MsgE("마크데이터 목록이 존재하지 않습니다"); - return; - } - - string listName = tb_listName.Text; - string Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); - string outnum = tb_outnum.Text + "차"; - string user = PUB.user.UserName;// Properties.Settings.Default.User; - - var marc = this.marc2; - - bool isAuthor = false; - bool isBook = false; - if (cb_FirstAuthor.SelectedIndex == 0) - isAuthor = true; - if (cb_FirstBook.SelectedIndex == 0) - isBook = true; - bool[] isType = { isAuthor, isBook }; - - // 시방서 목록 DB에 들어갈 것들. - string[] insert_list_col = { - "compidx", "work_list", "date", "state", "gu", - "first_Author", "symbol_Author","symbol_AuthorE", "book_Author", "divType", "divNum", - "etc", "user" - }; - string[] insert_list_data = { - PUB.user.CompanyIdx, listName, Time, "진행", cb_listType.Text, - cb_FirstAuthor.Text, cb_authorTypeK.Text, cb_authorTypeE.Text, cb_FirstBook.Text, cb_divType.Text, cb_divNum.Text, - rtb_etc.Text, user - }; - string cmdByList = db.DB_INSERT("Specs_List", insert_list_col, insert_list_data); - - // 시방서 마크 DB에 들어갈 것들. - string[] insert_marc_col = { - "compidx", "work_list", "date", "ISBN", "book_name", - "s_book_name1", "s_book_num1", "author", "book_comp", "pubdate", - "price", "tag008", "class_symbol", "author_symbol", "marc", - "imageURL", "count", "num", "out_num", "midx", - "editDate", "user" - }; - - string[] insert_marc_data = { - PUB.user.CompanyIdx, listName, Time, "", "", - "", "", "", "", "", - "", "", "", "", "", - "", "", "", "", "", - Time, user - }; // 마크에서 추출 ( 3 ~ 12 ) - - int[] row = checkGridRow(); - int num = 0; - progressBar1.Maximum = row.Length + 1; - string cmdByMarc = string.Format("INSERT INTO {0} {1} value", "Specs_Marc", db.DB_INSERT_SUB("", insert_marc_col)); - - bool CountSplit = chk_countSplit.Checked; - int listCount = 1; - int addCount = 1; - - // 필터링하여 DB에 집어넣는 작업 - for (int a = 0; a < row.Length; a++) - { - if (Convert.ToString(marc.List_Book.Rows[row[a]].Cells["db_marc"].Value) == "") - continue; - - num += 1; - int.TryParse(Convert.ToString(marc.List_Book.Rows[row[a]].Cells["count"].Value), out listCount); - - // ISBN, book_name, s_book_name1, s_book_num1, author, book_comp, pubdate, price, tag008, class_symbol - string[] Search = { "020a", "245a", "440a", "440v", "245d", "260b", "260c", "950b", "008", "056a" }; - - insert_marc_data[14] = Convert.ToString(marc.List_Book.Rows[row[a]].Cells["db_marc"].Value); - insert_marc_data[15] = Convert.ToString(marc.List_Book.Rows[row[a]].Cells["url"].Value); - insert_marc_data[16] = addCount.ToString(); - if (rb_basicNum.Checked) - insert_marc_data[17] = Convert.ToString(marc.List_Book.Rows[row[a]].Cells["num"].Value); - else - insert_marc_data[17] = num.ToString(); - insert_marc_data[18] = outnum; - insert_marc_data[19] = Convert.ToString(marc.List_Book.Rows[row[a]].Cells["marc_idx"].Value); - insert_marc_data[20] = Convert.ToString(marc.List_Book.Rows[row[a]].Cells["SaveDate"].Value); - insert_marc_data[21] = Convert.ToString(marc.List_Book.Rows[row[a]].Cells["user"].Value); - - string[] Marc = st.Take_Tag(insert_marc_data[14], Search); - string[] Author = { "", Marc[1] }; // 저자, 도서명 - - // 100, 110, 111태그중 한개라도 있으면 저자로 인식. - string[] Author_Search = { "100a", "110a", "111a", "245d" }; - string[] Author_res = st.Take_Tag(insert_marc_data[14], Author_Search); - - if (Author_res[0].Length > 1) Author[0] = Author_res[0]; - if (Author_res[1].Length > 1) Author[0] = Author_res[1]; - if (Author_res[2].Length > 1) Author[0] = Author_res[2]; - - if (chk_CompSymbol.Checked) - if (Author_res[3].IndexOf("[외]") > -1) - Author[0] = Marc[5]; - - string tmp_ViewMarc = st.ConvertMarcType(insert_marc_data[14], out string errmessage); - - // 마크에서 추출한 데이터 DB에 적용하기 위한 반복문 - for (int b = 0; b < Marc.Length; b++) - { - insert_marc_data[b + 3] = Marc[b]; - - // 분류기호 설정값적용대로 가져오기. - if (b == 9) - { - string class_symbol = st.TakeTag_ConditionContent(tmp_ViewMarc, "056a", "056" + cb_divNum.Text); - if (class_symbol != "") - insert_marc_data[b + 3] = class_symbol; - } - } - - // 22.10.24 740태그 삭제 - tmp_ViewMarc = st.RemoveTagNumber(tmp_ViewMarc, "740"); - - // 마크 분류기호 설정값대로 적용 - tmp_ViewMarc = st.RemoveTagNumber(tmp_ViewMarc, "056"); - tmp_ViewMarc = st.AddTagInMarc(string.Format("056\t \t▼a{0}▼2{1}▲", insert_marc_data[12], cb_divNum.Text), tmp_ViewMarc); - insert_marc_data[14] = st.made_Ori_marc(tmp_ViewMarc); - - if (Author[0].Length < 1) - { - MessageBox.Show(row[a] + "번째의 저자를 확인해주세요. \n (100a, 110a, 111a 중 1개 필수)"); - return; - } - - Author[0] = Regex.Replace(Author[0], @"[^a-zA-Z0-9가-힣_]", "", RegexOptions.Singleline); - Author[1] = st.RemoveWordInBracket(Author[1]); - Author[1] = Regex.Replace(Author[1], @"[^a-zA-Z0-9가-힣_]", "", RegexOptions.Singleline); - - AuthorSymbol.Symbol sb = new AuthorSymbol.Symbol(); - string authorTypeK = cb_authorTypeK.SelectedItem.ToString(); - string authorTypeE = cb_authorTypeE.SelectedItem.ToString(); - - string res_Author = ""; - if (chk_CompSymbol.Checked == false || cmb_author_four.Text == "출판사+서명") - res_Author = sb.SymbolAuthor(Author[0], Author[1], authorTypeK, authorTypeE, isType); - else //서명+출판사는 뒤집어서 입력한다 251110 - res_Author = sb.SymbolAuthor(Author[1], Author[0], authorTypeK, authorTypeE, isType); - - insert_marc_data[13] = res_Author; - - cmdByMarc += db.DB_INSERT_SUB("value", insert_marc_data) + ","; - - if (CountSplit && listCount > addCount) - { - a--; - addCount++; - continue; - } - else - { - addCount = 1; - progressBar1.PerformStep(); - } - } - - cmdByMarc = cmdByMarc.TrimEnd(','); - cmdByMarc += ";"; - - Helper_DB.ExcuteNonQuery(cmdByList); - Helper_DB.ExcuteNonQuery(cmdByMarc); - progressBar1.PerformStep(); - - if (progressBar1.Value == progressBar1.Maximum) - { - label2.Text = "완료되었습니다!"; - } } + void ExportOld() { String_Text st = new String_Text(); var marccnt2 = marc?.List_Book.RowCount ?? 0; - if ( marccnt2 < 1) + if (marccnt2 < 1) { UTIL.MsgE("마크데이터 목록이 존재하지 않습니다"); return; @@ -555,7 +371,7 @@ namespace UniMarc if (progressBar1.Value == progressBar1.Maximum) { - label2.Text = "완료되었습니다!"; + label2.Text = $"완료되었습니다!({row.Length}건)"; } } @@ -564,12 +380,12 @@ namespace UniMarc { List GridRow = new List(); - if(marc != null) + if (marc != null) { for (int a = 0; a < marc.List_Book.Rows.Count; a++) { bool isSuccess = true; - if (!marc.Check_BackColor(a) && marc.Check_List_V(a)) + if (marc.Check_BackColor(a) == false && marc.Check_List_V(a)) isSuccess = false; if (isSuccess) @@ -577,18 +393,6 @@ namespace UniMarc } } - else if(marc2 != null) - { - for (int a = 0; a < marc2.List_Book.Rows.Count; a++) - { - bool isSuccess = true; - if (!marc2.Check_BackColor(a) && marc2.Check_List_V(a)) - isSuccess = false; - - if (isSuccess) - GridRow.Add(a); - } - } int[] Result = GridRow.ToArray(); return Result; diff --git a/unimarc/unimarc/마크/Marc_mkList2.Designer.cs b/unimarc/unimarc/마크/Marc_mkList2.Designer.cs new file mode 100644 index 0000000..476566c --- /dev/null +++ b/unimarc/unimarc/마크/Marc_mkList2.Designer.cs @@ -0,0 +1,437 @@ + +namespace UniMarc +{ + partial class Marc_mkList2 + { + /// + /// Required designer variable. + /// + private System.ComponentModel.IContainer components = null; + + /// + /// Clean up any resources being used. + /// + /// true if managed resources should be disposed; otherwise, false. + protected override void Dispose(bool disposing) + { + if (disposing && (components != null)) + { + components.Dispose(); + } + base.Dispose(disposing); + } + + #region Windows Form Designer generated code + + /// + /// Required method for Designer support - do not modify + /// the contents of this method with the code editor. + /// + private void InitializeComponent() + { + this.panel1 = new System.Windows.Forms.Panel(); + this.rb_autoNum = new System.Windows.Forms.RadioButton(); + this.rb_basicNum = new System.Windows.Forms.RadioButton(); + this.cb_listType = new System.Windows.Forms.ComboBox(); + this.panel2 = new System.Windows.Forms.Panel(); + this.chk_countSplit = new System.Windows.Forms.CheckBox(); + this.btn_mkList = new System.Windows.Forms.Button(); + this.btn_Close = new System.Windows.Forms.Button(); + this.panel3 = new System.Windows.Forms.Panel(); + this.chk_CompSymbol = new System.Windows.Forms.CheckBox(); + this.cb_authorTypeK = new System.Windows.Forms.ComboBox(); + this.cb_divType = new System.Windows.Forms.ComboBox(); + this.cb_divNum = new System.Windows.Forms.ComboBox(); + this.cb_FirstBook = new System.Windows.Forms.ComboBox(); + this.cb_FirstAuthor = new System.Windows.Forms.ComboBox(); + this.label1 = new System.Windows.Forms.Label(); + this.panel4 = new System.Windows.Forms.Panel(); + this.tb_listName = new System.Windows.Forms.TextBox(); + this.label3 = new System.Windows.Forms.Label(); + this.label2 = new System.Windows.Forms.Label(); + this.progressBar1 = new System.Windows.Forms.ProgressBar(); + this.groupBox1 = new System.Windows.Forms.GroupBox(); + this.rtb_etc = new System.Windows.Forms.RichTextBox(); + this.tb_outnum = new System.Windows.Forms.TextBox(); + this.label4 = new System.Windows.Forms.Label(); + this.chkPijunja = new System.Windows.Forms.CheckBox(); + this.cb_authorTypeE = new System.Windows.Forms.ComboBox(); + this.label5 = new System.Windows.Forms.Label(); + this.label6 = new System.Windows.Forms.Label(); + this.cmb_author_four = new System.Windows.Forms.ComboBox(); + this.panel1.SuspendLayout(); + this.panel2.SuspendLayout(); + this.panel3.SuspendLayout(); + this.panel4.SuspendLayout(); + this.groupBox1.SuspendLayout(); + this.SuspendLayout(); + // + // panel1 + // + this.panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel1.Controls.Add(this.rb_autoNum); + this.panel1.Controls.Add(this.rb_basicNum); + this.panel1.Controls.Add(this.cb_listType); + this.panel1.Location = new System.Drawing.Point(12, 6); + this.panel1.Name = "panel1"; + this.panel1.Size = new System.Drawing.Size(234, 30); + this.panel1.TabIndex = 0; + // + // rb_autoNum + // + this.rb_autoNum.AutoSize = true; + this.rb_autoNum.Location = new System.Drawing.Point(88, 6); + this.rb_autoNum.Name = "rb_autoNum"; + this.rb_autoNum.Size = new System.Drawing.Size(71, 16); + this.rb_autoNum.TabIndex = 0; + this.rb_autoNum.TabStop = true; + this.rb_autoNum.Text = "자동연번"; + this.rb_autoNum.UseVisualStyleBackColor = true; + // + // rb_basicNum + // + this.rb_basicNum.AutoSize = true; + this.rb_basicNum.Location = new System.Drawing.Point(11, 6); + this.rb_basicNum.Name = "rb_basicNum"; + this.rb_basicNum.Size = new System.Drawing.Size(71, 16); + this.rb_basicNum.TabIndex = 0; + this.rb_basicNum.TabStop = true; + this.rb_basicNum.Text = "기존연번"; + this.rb_basicNum.UseVisualStyleBackColor = true; + // + // cb_listType + // + this.cb_listType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_listType.FormattingEnabled = true; + this.cb_listType.Location = new System.Drawing.Point(165, 4); + this.cb_listType.Name = "cb_listType"; + this.cb_listType.Size = new System.Drawing.Size(61, 20); + this.cb_listType.TabIndex = 1; + // + // panel2 + // + this.panel2.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel2.Controls.Add(this.chk_countSplit); + this.panel2.Location = new System.Drawing.Point(252, 6); + this.panel2.Name = "panel2"; + this.panel2.Size = new System.Drawing.Size(76, 30); + this.panel2.TabIndex = 0; + // + // chk_countSplit + // + this.chk_countSplit.AutoSize = true; + this.chk_countSplit.Location = new System.Drawing.Point(5, 7); + this.chk_countSplit.Name = "chk_countSplit"; + this.chk_countSplit.Size = new System.Drawing.Size(72, 16); + this.chk_countSplit.TabIndex = 0; + this.chk_countSplit.Text = "수량분리"; + this.chk_countSplit.UseVisualStyleBackColor = true; + // + // btn_mkList + // + this.btn_mkList.Location = new System.Drawing.Point(425, 10); + this.btn_mkList.Name = "btn_mkList"; + this.btn_mkList.Size = new System.Drawing.Size(75, 23); + this.btn_mkList.TabIndex = 1; + this.btn_mkList.Text = "목록생성"; + this.btn_mkList.UseVisualStyleBackColor = true; + this.btn_mkList.Click += new System.EventHandler(this.btn_mkList_Click); + // + // btn_Close + // + this.btn_Close.Location = new System.Drawing.Point(506, 10); + this.btn_Close.Name = "btn_Close"; + this.btn_Close.Size = new System.Drawing.Size(75, 23); + this.btn_Close.TabIndex = 1; + this.btn_Close.Text = "닫 기"; + this.btn_Close.UseVisualStyleBackColor = true; + this.btn_Close.Click += new System.EventHandler(this.btn_Close_Click); + // + // panel3 + // + this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel3.Controls.Add(this.cmb_author_four); + this.panel3.Controls.Add(this.label6); + this.panel3.Controls.Add(this.label5); + this.panel3.Controls.Add(this.cb_authorTypeE); + this.panel3.Controls.Add(this.chkPijunja); + this.panel3.Controls.Add(this.chk_CompSymbol); + this.panel3.Controls.Add(this.cb_authorTypeK); + this.panel3.Controls.Add(this.cb_divType); + this.panel3.Controls.Add(this.cb_divNum); + this.panel3.Controls.Add(this.cb_FirstBook); + this.panel3.Controls.Add(this.cb_FirstAuthor); + this.panel3.Controls.Add(this.label1); + this.panel3.Location = new System.Drawing.Point(12, 42); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(569, 91); + this.panel3.TabIndex = 2; + // + // chk_CompSymbol + // + this.chk_CompSymbol.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.chk_CompSymbol.AutoSize = true; + this.chk_CompSymbol.Location = new System.Drawing.Point(11, 65); + this.chk_CompSymbol.Name = "chk_CompSymbol"; + this.chk_CompSymbol.Size = new System.Drawing.Size(242, 16); + this.chk_CompSymbol.TabIndex = 2; + this.chk_CompSymbol.Text = "4인 이상 저자시 출판사로 저자기호 생성"; + this.chk_CompSymbol.UseVisualStyleBackColor = true; + this.chk_CompSymbol.CheckedChanged += new System.EventHandler(this.chk_CompSymbol_CheckedChanged); + // + // cb_authorTypeK + // + this.cb_authorTypeK.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_authorTypeK.FormattingEnabled = true; + this.cb_authorTypeK.Location = new System.Drawing.Point(136, 4); + this.cb_authorTypeK.Name = "cb_authorTypeK"; + this.cb_authorTypeK.Size = new System.Drawing.Size(171, 20); + this.cb_authorTypeK.TabIndex = 1; + // + // cb_divType + // + this.cb_divType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_divType.FormattingEnabled = true; + this.cb_divType.Location = new System.Drawing.Point(464, 4); + this.cb_divType.Name = "cb_divType"; + this.cb_divType.Size = new System.Drawing.Size(88, 20); + this.cb_divType.TabIndex = 1; + this.cb_divType.SelectedIndexChanged += new System.EventHandler(this.cb_divType_SelectedIndexChanged); + // + // cb_divNum + // + this.cb_divNum.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_divNum.FormattingEnabled = true; + this.cb_divNum.Location = new System.Drawing.Point(464, 30); + this.cb_divNum.Name = "cb_divNum"; + this.cb_divNum.Size = new System.Drawing.Size(88, 20); + this.cb_divNum.TabIndex = 1; + // + // cb_FirstBook + // + this.cb_FirstBook.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_FirstBook.FormattingEnabled = true; + this.cb_FirstBook.Location = new System.Drawing.Point(336, 4); + this.cb_FirstBook.Name = "cb_FirstBook"; + this.cb_FirstBook.Size = new System.Drawing.Size(61, 20); + this.cb_FirstBook.TabIndex = 1; + // + // cb_FirstAuthor + // + this.cb_FirstAuthor.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_FirstAuthor.FormattingEnabled = true; + this.cb_FirstAuthor.Location = new System.Drawing.Point(68, 4); + this.cb_FirstAuthor.Name = "cb_FirstAuthor"; + this.cb_FirstAuthor.Size = new System.Drawing.Size(61, 20); + this.cb_FirstAuthor.TabIndex = 1; + // + // label1 + // + this.label1.AutoSize = true; + this.label1.Location = new System.Drawing.Point(9, 8); + this.label1.Name = "label1"; + this.label1.Size = new System.Drawing.Size(53, 12); + this.label1.TabIndex = 1; + this.label1.Text = "저자기호"; + // + // panel4 + // + this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel4.Controls.Add(this.tb_listName); + this.panel4.Controls.Add(this.label3); + this.panel4.Location = new System.Drawing.Point(12, 139); + this.panel4.Name = "panel4"; + this.panel4.Size = new System.Drawing.Size(569, 30); + this.panel4.TabIndex = 2; + // + // tb_listName + // + this.tb_listName.Location = new System.Drawing.Point(68, 4); + this.tb_listName.Name = "tb_listName"; + this.tb_listName.Size = new System.Drawing.Size(496, 21); + this.tb_listName.TabIndex = 2; + // + // label3 + // + this.label3.AutoSize = true; + this.label3.Location = new System.Drawing.Point(9, 8); + this.label3.Name = "label3"; + this.label3.Size = new System.Drawing.Size(49, 12); + this.label3.TabIndex = 1; + this.label3.Text = "목 록 명"; + // + // label2 + // + this.label2.AutoSize = true; + this.label2.Font = new System.Drawing.Font("굴림", 9.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + this.label2.Location = new System.Drawing.Point(134, 189); + this.label2.Name = "label2"; + this.label2.Size = new System.Drawing.Size(345, 13); + this.label2.TabIndex = 1; + this.label2.Text = "저장된 마크만 반출됩니다. 저자기호를 확인해주세요."; + // + // progressBar1 + // + this.progressBar1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.progressBar1.Location = new System.Drawing.Point(10, 411); + this.progressBar1.Name = "progressBar1"; + this.progressBar1.Size = new System.Drawing.Size(570, 23); + this.progressBar1.Step = 1; + this.progressBar1.Style = System.Windows.Forms.ProgressBarStyle.Continuous; + this.progressBar1.TabIndex = 3; + // + // groupBox1 + // + this.groupBox1.Controls.Add(this.rtb_etc); + this.groupBox1.Dock = System.Windows.Forms.DockStyle.Bottom; + this.groupBox1.Location = new System.Drawing.Point(10, 224); + this.groupBox1.Name = "groupBox1"; + this.groupBox1.Size = new System.Drawing.Size(570, 187); + this.groupBox1.TabIndex = 4; + this.groupBox1.TabStop = false; + this.groupBox1.Text = "비 고 란"; + // + // rtb_etc + // + this.rtb_etc.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.rtb_etc.Dock = System.Windows.Forms.DockStyle.Fill; + this.rtb_etc.Location = new System.Drawing.Point(3, 17); + this.rtb_etc.Name = "rtb_etc"; + this.rtb_etc.Size = new System.Drawing.Size(564, 167); + this.rtb_etc.TabIndex = 0; + this.rtb_etc.Text = ""; + // + // tb_outnum + // + this.tb_outnum.Location = new System.Drawing.Point(340, 11); + this.tb_outnum.Name = "tb_outnum"; + this.tb_outnum.Size = new System.Drawing.Size(31, 21); + this.tb_outnum.TabIndex = 5; + this.tb_outnum.Text = "0"; + this.tb_outnum.TextAlign = System.Windows.Forms.HorizontalAlignment.Center; + // + // label4 + // + this.label4.AutoSize = true; + this.label4.Location = new System.Drawing.Point(377, 15); + this.label4.Name = "label4"; + this.label4.Size = new System.Drawing.Size(17, 12); + this.label4.TabIndex = 3; + this.label4.Text = "차"; + // + // chkPijunja + // + this.chkPijunja.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Bottom | System.Windows.Forms.AnchorStyles.Left))); + this.chkPijunja.AutoSize = true; + this.chkPijunja.Enabled = false; + this.chkPijunja.Location = new System.Drawing.Point(468, 65); + this.chkPijunja.Name = "chkPijunja"; + this.chkPijunja.Size = new System.Drawing.Size(84, 16); + this.chkPijunja.TabIndex = 3; + this.chkPijunja.Text = "피전자적용"; + this.chkPijunja.UseVisualStyleBackColor = true; + // + // cb_authorTypeE + // + this.cb_authorTypeE.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cb_authorTypeE.FormattingEnabled = true; + this.cb_authorTypeE.Location = new System.Drawing.Point(136, 30); + this.cb_authorTypeE.Name = "cb_authorTypeE"; + this.cb_authorTypeE.Size = new System.Drawing.Size(171, 20); + this.cb_authorTypeE.TabIndex = 4; + // + // label5 + // + this.label5.AutoSize = true; + this.label5.Location = new System.Drawing.Point(313, 8); + this.label5.Name = "label5"; + this.label5.Size = new System.Drawing.Size(17, 12); + this.label5.TabIndex = 6; + this.label5.Text = "한"; + // + // label6 + // + this.label6.AutoSize = true; + this.label6.Location = new System.Drawing.Point(313, 33); + this.label6.Name = "label6"; + this.label6.Size = new System.Drawing.Size(17, 12); + this.label6.TabIndex = 7; + this.label6.Text = "영"; + // + // cmb_author_four + // + this.cmb_author_four.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; + this.cmb_author_four.FormattingEnabled = true; + this.cmb_author_four.Location = new System.Drawing.Point(259, 63); + this.cmb_author_four.Name = "cmb_author_four"; + this.cmb_author_four.Size = new System.Drawing.Size(138, 20); + this.cmb_author_four.TabIndex = 8; + // + // Marc_mkList + // + this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); + this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; + this.ClientSize = new System.Drawing.Size(590, 444); + this.Controls.Add(this.label4); + this.Controls.Add(this.tb_outnum); + this.Controls.Add(this.groupBox1); + this.Controls.Add(this.progressBar1); + this.Controls.Add(this.panel4); + this.Controls.Add(this.label2); + this.Controls.Add(this.panel3); + this.Controls.Add(this.btn_Close); + this.Controls.Add(this.btn_mkList); + this.Controls.Add(this.panel2); + this.Controls.Add(this.panel1); + this.Name = "Marc_mkList"; + this.Padding = new System.Windows.Forms.Padding(10); + this.Text = "마크목록생성"; + this.Load += new System.EventHandler(this.Marc_mkList_Load); + this.panel1.ResumeLayout(false); + this.panel1.PerformLayout(); + this.panel2.ResumeLayout(false); + this.panel2.PerformLayout(); + this.panel3.ResumeLayout(false); + this.panel3.PerformLayout(); + this.panel4.ResumeLayout(false); + this.panel4.PerformLayout(); + this.groupBox1.ResumeLayout(false); + this.ResumeLayout(false); + this.PerformLayout(); + + } + + #endregion + + private System.Windows.Forms.Panel panel1; + private System.Windows.Forms.ComboBox cb_listType; + private System.Windows.Forms.RadioButton rb_autoNum; + private System.Windows.Forms.RadioButton rb_basicNum; + private System.Windows.Forms.Panel panel2; + private System.Windows.Forms.CheckBox chk_countSplit; + private System.Windows.Forms.Button btn_mkList; + private System.Windows.Forms.Button btn_Close; + private System.Windows.Forms.Panel panel3; + private System.Windows.Forms.ComboBox cb_authorTypeK; + private System.Windows.Forms.Label label1; + private System.Windows.Forms.ComboBox cb_FirstBook; + private System.Windows.Forms.ComboBox cb_FirstAuthor; + private System.Windows.Forms.Panel panel4; + private System.Windows.Forms.Label label2; + private System.Windows.Forms.TextBox tb_listName; + private System.Windows.Forms.Label label3; + private System.Windows.Forms.ProgressBar progressBar1; + private System.Windows.Forms.ComboBox cb_divType; + private System.Windows.Forms.ComboBox cb_divNum; + private System.Windows.Forms.GroupBox groupBox1; + private System.Windows.Forms.RichTextBox rtb_etc; + private System.Windows.Forms.TextBox tb_outnum; + private System.Windows.Forms.Label label4; + private System.Windows.Forms.CheckBox chk_CompSymbol; + private System.Windows.Forms.CheckBox chkPijunja; + private System.Windows.Forms.ComboBox cb_authorTypeE; + private System.Windows.Forms.Label label6; + private System.Windows.Forms.Label label5; + private System.Windows.Forms.ComboBox cmb_author_four; + } +} \ No newline at end of file diff --git a/unimarc/unimarc/마크/Marc_mkList2.cs b/unimarc/unimarc/마크/Marc_mkList2.cs new file mode 100644 index 0000000..63d8fdb --- /dev/null +++ b/unimarc/unimarc/마크/Marc_mkList2.cs @@ -0,0 +1,406 @@ +using AR; +using Org.BouncyCastle.Pkcs; +using System; +using System.Collections.Generic; +using System.ComponentModel; +using System.Data; +using System.Drawing; +using System.Linq; +using System.Text; +using System.Text.RegularExpressions; +using System.Threading.Tasks; +using System.Windows.Forms; + +namespace UniMarc +{ + public partial class Marc_mkList2 : Form + { + Helper_DB db = new Helper_DB(); + Marc2 marc2; + public Marc_mkList2(Marc2 _mae) + { + InitializeComponent(); + marc2 = _mae; + } + + + + private void Marc_mkList_Load(object sender, EventArgs e) + { + db.DBcon(); + + #region panel1 set + rb_basicNum.Checked = true; + rb_autoNum.Enabled = false; + + + string[] type = { "정리" }; + cb_listType.Items.AddRange(type); + cb_listType.SelectedIndex = 0; + #endregion + + #region panel2 set 저자기호 // 분류기호 + + AuthorSymbol.Symbol symbol = new AuthorSymbol.Symbol(); + + // 저자기호 + string[] First = symbol.authorBook; + cb_FirstAuthor.Items.AddRange(First); + cb_FirstAuthor.SelectedIndex = 0; + + string[] authorType = symbol.authorType; + cb_authorTypeK.Items.AddRange(authorType); + cb_authorTypeK.SelectedIndex = 0; + + cb_authorTypeE.Items.AddRange(authorType); + cb_authorTypeE.SelectedIndex = 0; + + string[] Book = symbol.authorBook; + cb_FirstBook.Items.AddRange(Book); + cb_FirstBook.SelectedIndex = 0; + + // 분류기호 + string[] divType = { "KDC", "DDC" }; + cb_divType.Items.AddRange(divType); + cb_divType.SelectedIndex = 0; + + //4인이상저장 + string[] author_four = { "출판사+서명", "서명+출판사" }; + cmb_author_four.Items.AddRange(author_four); + cb_divType.SelectedIndex = 0; + + #endregion + + if (marc2 != null) + { + //customer idx 값이 있다면 그것을 사용한다. + if (int.TryParse(marc2.lbCustIDX.Text, out int custidx) == true && custidx > 0) + { + //string mCompidx = PUB.user.CompanyIdx; + var dt = Helper_DB.GetDT("Client", "c_sangho,c_author_first,c_author_typeK,c_author_typeE,c_author_firstbook,c_author_divtype,c_author_divnum,c_author_four,c_pijunja,c_author_four_use", $"campanyidx = {PUB.user.CompanyIdx} AND idx = {custidx}"); + if (dt != null && dt.Rows.Count > 0) + { + var row = dt.Rows[0]; + + // 저자기호 첫글자 설정 (c_author_first) + if (!string.IsNullOrEmpty(row["c_author_first"].ToString())) + { + int idx = cb_FirstAuthor.FindStringExact(row["c_author_first"].ToString()); + if (idx >= 0) cb_FirstAuthor.SelectedIndex = idx; + } + + // 저자기호 타입 설정 (c_author_typeK 또는 c_author_typeE) + if (!string.IsNullOrEmpty(row["c_author_typeK"].ToString())) + { + int idx = cb_authorTypeK.FindStringExact(row["c_author_typeK"].ToString()); + if (idx >= 0) cb_authorTypeK.SelectedIndex = idx; + } + + // 저자기호 타입 설정 (c_author_typeE 또는 c_author_typeE) + if (!string.IsNullOrEmpty(row["c_author_typeE"].ToString())) + { + int idx = cb_authorTypeE.FindStringExact(row["c_author_typeE"].ToString()); + if (idx >= 0) cb_authorTypeE.SelectedIndex = idx; + } + + // 도서기호 첫글자 설정 (c_author_firstbook) + if (!string.IsNullOrEmpty(row["c_author_firstbook"].ToString())) + { + int idx = cb_FirstBook.FindStringExact(row["c_author_firstbook"].ToString()); + if (idx >= 0) cb_FirstBook.SelectedIndex = idx; + } + + // 분류기호 타입 설정 (c_author_divtype) + if (!string.IsNullOrEmpty(row["c_author_divtype"].ToString())) + { + int idx = cb_divType.FindStringExact(row["c_author_divtype"].ToString()); + if (idx >= 0) cb_divType.SelectedIndex = idx; + } + + // 분류기호 자릿수 설정 (c_author_divnum) + if (!string.IsNullOrEmpty(row["c_author_divnum"].ToString())) + { + int idx = cb_divNum.FindStringExact(row["c_author_divnum"].ToString()); + if (idx >= 0) cb_divNum.SelectedIndex = idx; + } + + // 4인이상 저장(c_author_four) + if (!string.IsNullOrEmpty(row["c_author_four"].ToString())) + { + int idx = cmb_author_four.FindStringExact(row["c_author_four"].ToString()); + if (idx >= 0) cmb_author_four.SelectedIndex = idx; + } + + // 피전자적용 + if (!string.IsNullOrEmpty(row["c_pijunja"].ToString())) + { + string chkvalue = row["c_pijunja"].ToString().Trim(); + chkPijunja.Checked = (chkvalue == "1" || chkvalue.ToUpper() == "Y" || chkvalue.ToUpper() == "TRUE"); + } + else + { + chkPijunja.Checked = false; + } + + // 4인이상저자(사용여부) + if (!string.IsNullOrEmpty(row["c_author_four_use"].ToString())) + { + string chkvalue = row["c_author_four_use"].ToString().Trim(); + chk_CompSymbol.Checked = (chkvalue == "1" || chkvalue.ToUpper() == "Y" || chkvalue.ToUpper() == "TRUE"); + } + else + { + chk_CompSymbol.Checked = false; + } + + + } + } + } + } + + private void cb_divType_SelectedIndexChanged(object sender, EventArgs e) + { + cb_divNum.Items.Clear(); + if (((ComboBox)sender).SelectedIndex == 0) + { + string[] divNum = { "4", "5", "6" }; + cb_divNum.Items.AddRange(divNum); + } + else + { + string[] divNum = { "21", "22", "23" }; + cb_divNum.Items.AddRange(divNum); + } + cb_divNum.SelectedIndex = 0; + } + + private void btn_mkList_Click(object sender, EventArgs e) + { + + if (tb_listName.Text == "") + { + UTIL.MsgE("목록명을 입력해주세요!"); + return; + } + if (tb_outnum.Text == "") + { + UTIL.MsgE("차수가 비어있습니다."); + return; + } + if (marc2 != null) + ExportNew(); + } + void ExportNew() + { + String_Text st = new String_Text(); + var marccnt1 = marc2?.List_Book.RowCount ?? 0; + + if (marccnt1 < 1) + { + UTIL.MsgE("마크데이터 목록이 존재하지 않습니다"); + return; + } + + string listName = tb_listName.Text; + string Time = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); + string outnum = tb_outnum.Text + "차"; + string user = PUB.user.UserName;// Properties.Settings.Default.User; + + var marc = this.marc2; + + bool isAuthor = false; + bool isBook = false; + if (cb_FirstAuthor.SelectedIndex == 0) + isAuthor = true; + if (cb_FirstBook.SelectedIndex == 0) + isBook = true; + bool[] isType = { isAuthor, isBook }; + + // 시방서 목록 DB에 들어갈 것들. + string[] insert_list_col = { + "compidx", "work_list", "date", "state", "gu", + "first_Author", "symbol_Author","symbol_AuthorE", "book_Author", "divType", "divNum", + "etc", "user" + }; + string[] insert_list_data = { + PUB.user.CompanyIdx, listName, Time, "진행", cb_listType.Text, + cb_FirstAuthor.Text, cb_authorTypeK.Text, cb_authorTypeE.Text, cb_FirstBook.Text, cb_divType.Text, cb_divNum.Text, + rtb_etc.Text, user + }; + string cmdByList = db.DB_INSERT("Specs_List", insert_list_col, insert_list_data); + + // 시방서 마크 DB에 들어갈 것들. + string[] insert_marc_col = { + "compidx", "work_list", "date", "ISBN", "book_name", + "s_book_name1", "s_book_num1", "author", "book_comp", "pubdate", + "price", "tag008", "class_symbol", "author_symbol", "marc", + "imageURL", "count", "num", "out_num", "midx", + "editDate", "user" + }; + + string[] insert_marc_data = { + PUB.user.CompanyIdx, listName, Time, "", "", + "", "", "", "", "", + "", "", "", "", "", + "", "", "", "", "", + Time, user + }; // 마크에서 추출 ( 3 ~ 12 ) + + var row = checkGridRow(); + int num = 0; + progressBar1.Maximum = row.Count + 1; + string cmdByMarc = string.Format("INSERT INTO {0} {1} value", "Specs_Marc", db.DB_INSERT_SUB("", insert_marc_col)); + + bool CountSplit = chk_countSplit.Checked; + int listCount = 1; + int addCount = 1; + + // 필터링하여 DB에 집어넣는 작업 + for(int a = 0; a < row.Count; a++) + { + var dr = row[a]; + progressBar1.PerformStep(); + if (dr.DbMarc.isEmpty()) continue;// + + num += 1; + + int.TryParse(Convert.ToString(dr.Count), out listCount); + + // ISBN, book_name, s_book_name1, s_book_num1, author, book_comp, pubdate, price, tag008, class_symbol + string[] Search = { "020a", "245a", "440a", "440v", "245d", "260b", "260c", "950b", "008", "056a" }; + + insert_marc_data[14] = dr.DbMarc;// Convert.ToString(marc.List_Book.Rows[row[a]].Cells["db_marc"].Value); + insert_marc_data[15] = dr.Url;// Convert.ToString(marc.List_Book.Rows[row[a]].Cells["url"].Value); + insert_marc_data[16] = addCount.ToString(); + if (rb_basicNum.Checked) + insert_marc_data[17] = dr.Num;// Convert.ToString(marc.List_Book.Rows[row[a]].Cells["num"].Value); + else + insert_marc_data[17] = num.ToString(); + insert_marc_data[18] = outnum; + insert_marc_data[19] = dr.MarcIdx;// Convert.ToString(marc.List_Book.Rows[row[a]].Cells["marc_idx"].Value); + insert_marc_data[20] = dr.SaveDate;// Convert.ToString(marc.List_Book.Rows[row[a]].Cells["SaveDate"].Value); + insert_marc_data[21] = dr.User;// Convert.ToString(marc.List_Book.Rows[row[a]].Cells["user"].Value); + + string[] Marc = st.Take_Tag(insert_marc_data[14], Search); + string[] Author = { "", Marc[1] }; // 저자, 도서명 + + // 100, 110, 111태그중 한개라도 있으면 저자로 인식. + string[] Author_Search = { "100a", "110a", "111a", "245d" }; + string[] Author_res = st.Take_Tag(insert_marc_data[14], Author_Search); + + if (Author_res[0].Length > 1) Author[0] = Author_res[0]; + if (Author_res[1].Length > 1) Author[0] = Author_res[1]; + if (Author_res[2].Length > 1) Author[0] = Author_res[2]; + + if (chk_CompSymbol.Checked) + if (Author_res[3].IndexOf("[외]") > -1) + Author[0] = Marc[5]; + + string tmp_ViewMarc = st.ConvertMarcType(insert_marc_data[14], out string errmessage); + + // 마크에서 추출한 데이터 DB에 적용하기 위한 반복문 + for (int b = 0; b < Marc.Length; b++) + { + insert_marc_data[b + 3] = Marc[b]; + + // 분류기호 설정값적용대로 가져오기. + if (b == 9) + { + string class_symbol = st.TakeTag_ConditionContent(tmp_ViewMarc, "056a", "056" + cb_divNum.Text); + if (class_symbol != "") + insert_marc_data[b + 3] = class_symbol; + } + } + + // 22.10.24 740태그 삭제 + tmp_ViewMarc = st.RemoveTagNumber(tmp_ViewMarc, "740"); + + // 마크 분류기호 설정값대로 적용 + tmp_ViewMarc = st.RemoveTagNumber(tmp_ViewMarc, "056"); + tmp_ViewMarc = st.AddTagInMarc(string.Format("056\t \t▼a{0}▼2{1}▲", insert_marc_data[12], cb_divNum.Text), tmp_ViewMarc); + insert_marc_data[14] = st.made_Ori_marc(tmp_ViewMarc); + + if (Author[0].Length < 1) + { + MessageBox.Show( $"{a}번 줄,인덱스({dr.ListIdx})의 저자를 확인해주세요(ISBN:{dr.ISBN13}). \n (100a, 110a, 111a 중 1개 필수)"); + return; + } + + Author[0] = Regex.Replace(Author[0], @"[^a-zA-Z0-9가-힣_]", "", RegexOptions.Singleline); + Author[1] = st.RemoveWordInBracket(Author[1]); + Author[1] = Regex.Replace(Author[1], @"[^a-zA-Z0-9가-힣_]", "", RegexOptions.Singleline); + + AuthorSymbol.Symbol sb = new AuthorSymbol.Symbol(); + string authorTypeK = cb_authorTypeK.SelectedItem.ToString(); + string authorTypeE = cb_authorTypeE.SelectedItem.ToString(); + + string res_Author = ""; + if (chk_CompSymbol.Checked == false || cmb_author_four.Text == "출판사+서명") + res_Author = sb.SymbolAuthor(Author[0], Author[1], authorTypeK, authorTypeE, isType); + else //서명+출판사는 뒤집어서 입력한다 251110 + res_Author = sb.SymbolAuthor(Author[1], Author[0], authorTypeK, authorTypeE, isType); + + insert_marc_data[13] = res_Author; + + cmdByMarc += db.DB_INSERT_SUB("value", insert_marc_data) + ","; + + if (CountSplit && listCount > addCount) + { + a--; + addCount++; + continue; + } + else + { + addCount = 1; + + } + } + + cmdByMarc = cmdByMarc.TrimEnd(','); + cmdByMarc += ";"; + + Helper_DB.ExcuteNonQuery(cmdByList); + Helper_DB.ExcuteNonQuery(cmdByMarc); + progressBar1.PerformStep(); + + if (progressBar1.Value == progressBar1.Maximum) + { + label2.Text = $"완료되었습니다!({row.Count})"; + } + } + + + #region mkList_Sub + List checkGridRow() + { + List GridRow = new List(); + + if (marc2 != null) + { + foreach (MarcBookItem item in marc2.dataList) // for (int a = 0; a < marc2.List_Book.Rows.Count; a++) + { + bool isSuccess = true; + if (item.ForeColor == Color.Red && item.ColCheck=="V")// marc2.Check_List_V(a)) //빨간색이고 체크된거는 제외? + isSuccess = false; + + if (isSuccess) + GridRow.Add(item); + } + } + return GridRow; + } + #endregion + + private void btn_Close_Click(object sender, EventArgs e) + { + this.Close(); + } + + private void chk_CompSymbol_CheckedChanged(object sender, EventArgs e) + { + cmb_author_four.Enabled = chk_CompSymbol.Checked; + } + } +} diff --git a/unimarc/unimarc/마크/Marc_mkList2.resx b/unimarc/unimarc/마크/Marc_mkList2.resx new file mode 100644 index 0000000..1af7de1 --- /dev/null +++ b/unimarc/unimarc/마크/Marc_mkList2.resx @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + \ No newline at end of file