diff --git a/unimarc/.vs/unimarc/FileContentIndex/d6574f49-a2e3-4823-80e4-a3bcfdd7b101.vsidx b/unimarc/.vs/unimarc/FileContentIndex/0ee88110-fda0-4351-a63c-a59ad95eebd0.vsidx similarity index 79% rename from unimarc/.vs/unimarc/FileContentIndex/d6574f49-a2e3-4823-80e4-a3bcfdd7b101.vsidx rename to unimarc/.vs/unimarc/FileContentIndex/0ee88110-fda0-4351-a63c-a59ad95eebd0.vsidx index 2a26a53..4e0d423 100644 Binary files a/unimarc/.vs/unimarc/FileContentIndex/d6574f49-a2e3-4823-80e4-a3bcfdd7b101.vsidx and b/unimarc/.vs/unimarc/FileContentIndex/0ee88110-fda0-4351-a63c-a59ad95eebd0.vsidx differ diff --git a/unimarc/.vs/unimarc/FileContentIndex/336dff4a-a5dc-4e62-af8b-908f8abdf796.vsidx b/unimarc/.vs/unimarc/FileContentIndex/336dff4a-a5dc-4e62-af8b-908f8abdf796.vsidx new file mode 100644 index 0000000..317b177 Binary files /dev/null and b/unimarc/.vs/unimarc/FileContentIndex/336dff4a-a5dc-4e62-af8b-908f8abdf796.vsidx differ diff --git a/unimarc/.vs/unimarc/FileContentIndex/588734e5-2dd3-478a-a657-582bad511001.vsidx b/unimarc/.vs/unimarc/FileContentIndex/588734e5-2dd3-478a-a657-582bad511001.vsidx deleted file mode 100644 index 5b2a4b0..0000000 Binary files a/unimarc/.vs/unimarc/FileContentIndex/588734e5-2dd3-478a-a657-582bad511001.vsidx and /dev/null differ diff --git a/unimarc/.vs/unimarc/FileContentIndex/97e578d3-855e-4ecd-98f9-9fc61ddee57b.vsidx b/unimarc/.vs/unimarc/FileContentIndex/97e578d3-855e-4ecd-98f9-9fc61ddee57b.vsidx new file mode 100644 index 0000000..3a85faf Binary files /dev/null and b/unimarc/.vs/unimarc/FileContentIndex/97e578d3-855e-4ecd-98f9-9fc61ddee57b.vsidx differ diff --git a/unimarc/.vs/unimarc/FileContentIndex/a7cea060-a0f6-43df-a2da-7901ddfd0d07.vsidx b/unimarc/.vs/unimarc/FileContentIndex/a7cea060-a0f6-43df-a2da-7901ddfd0d07.vsidx deleted file mode 100644 index 4e6797c..0000000 Binary files a/unimarc/.vs/unimarc/FileContentIndex/a7cea060-a0f6-43df-a2da-7901ddfd0d07.vsidx and /dev/null differ diff --git a/unimarc/.vs/unimarc/FileContentIndex/bf6ef1e1-1f8e-42ac-9f4b-90a4b3f3282b.vsidx b/unimarc/.vs/unimarc/FileContentIndex/bf6ef1e1-1f8e-42ac-9f4b-90a4b3f3282b.vsidx deleted file mode 100644 index 8506a72..0000000 Binary files a/unimarc/.vs/unimarc/FileContentIndex/bf6ef1e1-1f8e-42ac-9f4b-90a4b3f3282b.vsidx and /dev/null differ diff --git a/unimarc/.vs/unimarc/FileContentIndex/e3185dd4-107c-45df-8481-4ea61fde1044.vsidx b/unimarc/.vs/unimarc/FileContentIndex/e3185dd4-107c-45df-8481-4ea61fde1044.vsidx new file mode 100644 index 0000000..916739a Binary files /dev/null and b/unimarc/.vs/unimarc/FileContentIndex/e3185dd4-107c-45df-8481-4ea61fde1044.vsidx differ diff --git a/unimarc/.vs/unimarc/v17/.suo b/unimarc/.vs/unimarc/v17/.suo index c32f2d1..f79ea34 100644 Binary files a/unimarc/.vs/unimarc/v17/.suo and b/unimarc/.vs/unimarc/v17/.suo differ diff --git a/unimarc/unimarc/Skill.cs b/unimarc/unimarc/Skill.cs index ecf6709..2ef4477 100644 --- a/unimarc/unimarc/Skill.cs +++ b/unimarc/unimarc/Skill.cs @@ -176,9 +176,12 @@ namespace WindowsFormsApp1 /// KeyDown의 KeyEventArgs "e" public void DataGrid_to_Delete(object sender, KeyEventArgs e) { - int rowIndex = ((DataGridView)sender).CurrentCell.RowIndex; - int columnIndex = ((DataGridView)sender).CurrentCell.ColumnIndex; - ((DataGridView)sender).Rows[rowIndex].Cells[columnIndex].Value = ""; + if (e.KeyCode == Keys.Delete) + { + int rowIndex = ((DataGridView)sender).CurrentCell.RowIndex; + int columnIndex = ((DataGridView)sender).CurrentCell.ColumnIndex; + ((DataGridView)sender).Rows[rowIndex].Cells[columnIndex].Value = ""; + } } /// /// RowPostPaint 이벤트 핸들러 @@ -1564,6 +1567,11 @@ namespace WindowsFormsApp1 for (int a = 0; a < array_text.Length; a++) { if (a == 0) { total.Add("0"); } + else if (a == 1) + { + int b = Convert.ToInt32(total[total.Count - 1]); + total.Add(b.ToString()); + } else if (a > 1) { int b = Convert.ToInt32(total[total.Count - 1]); @@ -1647,10 +1655,77 @@ namespace WindowsFormsApp1 break; } result += value.ToString(); + result = result.PadLeft(count, '0'); return result; } #endregion + + /// + /// 추가하고 싶은 태그를 뷰형태의 마크에 추가하는 함수. + /// + /// 추가할 태그 (태그명\t지시기호\t태그내용) + /// 뷰형태의 마크 + /// + public string AddTagInMarc(string Tag, string TypeView) + { + if (Tag.Length < 3) return ""; + + int TargetTagNum = Convert.ToInt32(Tag.Substring(0, 3)); + + string[] SplitView = TypeView.Split('\n'); + List View = new List(SplitView); + + int ViewCount = 0; + foreach (string LineMarc in View) + { + string LineTag = LineMarc.Substring(0, 3); + int TagNum = Convert.ToInt32(LineTag); + + if (TargetTagNum == TagNum) + { + View[ViewCount] = Tag; + break; + } + else if (TargetTagNum < TagNum) + { + View.Insert(ViewCount, Tag); + break; + } + ViewCount++; + } + return string.Join("\n", View); + } + + /// + /// 해당하는 태그 모두 삭제 + /// + /// + /// + /// + public string RemoveTagNumber(string ViewMarc, string RemoveNumber) + { + if (ViewMarc.Length < 3) return ""; + + List SplitMarc = new List(ViewMarc.Split('\n')); + + int idx = -1, count = 0; + for (int a = 0; a < SplitMarc.Count; a++) + { + if (SplitMarc[a].StartsWith(RemoveNumber)) + { + if (idx < 0) + idx = a; + count++; + } + } + + if (idx >= 0) + SplitMarc.RemoveRange(idx, count); + + return String.Join("\n", SplitMarc); + } + /// /// 색상 변경함수(richTextBox에만 적용) /// @@ -1720,7 +1795,7 @@ namespace WindowsFormsApp1 if (start < 0) { - int tag_num = Convert.ToInt16(s_tag[b]); + int tag_num = Convert.ToInt32(s_tag[b]); if (tag_num < 10) result[b] = tmp; else @@ -1752,6 +1827,57 @@ namespace WindowsFormsApp1 } return result; } + + /// + /// 뷰 마크 데이터에서 태그를 검색하되, 조건에 적용된 마크가 있을 경우에 리턴이 가능. + /// + /// 뷰마크 데이터 + /// 추출할 태그 (ex. 245a) + /// 조건 태그 (ex. 245b) + /// + public string TakeTag_ConditionContent(string ViewMarc, string SearchTag, string Condition) + { + string[] ary = ViewMarc.Split('▲'); + + string SearchTagNum = SearchTag.Substring(0, 3); + string SearchTagAlpha = "▼" + SearchTag.Substring(3); + + string ConditionTagNum = Condition.Substring(0, 3); + bool isCondition = false; + string ConditionTagAlpha = "▼" + Condition.Substring(3); + + foreach (string item in ary) + { + string[] TagArray = item.Split('\t'); + if (item.StartsWith(ConditionTagNum)) + { + foreach (string Condi in TagArray) + { + if (Condi.Contains(ConditionTagAlpha)) + isCondition = true; + } + } + } + + if (isCondition) + return ""; + + string result = ""; + foreach (string item in ary) + { + string[] TagArray = item.Split('\t'); + if (item.StartsWith(SearchTagNum)) + { + foreach (string SearchItem in TagArray) + { + if (SearchItem.Contains(ConditionTagAlpha)) + result = GetMiddelString(SearchItem, SearchTagAlpha, "▼").Replace("▲", ""); + } + } + } + return result; + } + public string TakeTag_FilterJisi(string marc, string search, string searchJisi) { string[] ary = marc.Split(''); @@ -1883,907 +2009,6 @@ namespace WindowsFormsApp1 return result; } - public string ApplyMark(string ViewMarc) - { - List SplitMarc = new List(ViewMarc.Split('\n')); - - for (int a = 0; a < SplitMarc.Count; a++) - { - if (SplitMarc[a].Length < 2) continue; - string ContentTag = SplitMarc[a].Substring(0, 3); - - SplitMarc[a] = GudoSub(ContentTag, SplitMarc[a]); - SplitMarc[a] = JiSiSUB(ContentTag, SplitMarc[a]); - } - return String.Join("\n", SplitMarc); - } - - #region 구두점 서브 - - /// - /// 구두점 입력하는 종합함수 - /// - /// 태그넘버 - /// 태그내용 - /// 구두점 적용된 태그내용 - public string GudoSub(string ContentTag, string Content) - { - switch (ContentTag) - { - case "020": Content = Gudo020(Content); break; - case "110": Content = Gudo110(Content); break; - case "245": Content = Gudo245(Content); break; - case "246": Content = Gudo246(Content); break; - case "260": Content = Gudo260(Content); break; - case "300": Content = Gudo300(Content); break; - case "440": Content = Gudo440(Content); break; - case "490": Content = Gudo490(Content); break; - case "830": Content = Gudo830(Content); break; - } - return Content; - } - - /// - /// 020구두점 적용 - /// - /// 020태그 내용 - /// 020태그 구두점 적용된 내용 - private string Gudo020(string Content) - { - string[] SplitContent = Content.Split('▼'); - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // $c 앞에 $g가 있을 경우 $c 앞에 ":" - if (SplitContent[a].StartsWith("c")) - if (SplitContent[a - 1].StartsWith("g")) - if (!SplitContent[a - 1].EndsWith(":")) - SplitContent[a - 1] += ":"; - } - - return string.Join("▼", SplitContent); - } - - /// - /// 110구두점 적용 - /// - /// 110태그 내용 - /// 110태그 구두점 적용된 내용 - private string Gudo110(string Content) - { - string[] SplitContent = Content.Split('▼'); - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // $a 뒤에 $b가 있는 경우 $b앞에 "." - if (SplitContent[a].StartsWith("b")) - if (SplitContent[a - 1].StartsWith("a")) - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - - // $b 뒤에 $b가 있는 경우 $b앞에 "." - if (SplitContent[a].StartsWith("b")) - if (SplitContent[a - 1].StartsWith("b")) - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - } - - return string.Join("▼", SplitContent); - } - - /// - /// 245구두점 적용 - /// - /// 245태그 내용 - /// 245태그 구두점 적용된 내용 - private string Gudo245(string Content) - { - string[] SplitContent = Content.Split('▼'); - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // 두번째 $a 앞에 ":" - if (SplitContent[a - 1].StartsWith("a")) - if (SplitContent[a].StartsWith("a")) - if (!SplitContent[a - 1].EndsWith(":")) - SplitContent[a - 1] += ":"; - - // $b 앞에 ":"적용 - if (SplitContent[a].StartsWith("b")) - if (!SplitContent[a - 1].EndsWith(":")) - SplitContent[a - 1] += ":"; - - // $x 앞에 "=" 적용 - if (SplitContent[a].StartsWith("x")) - if (!SplitContent[a - 1].EndsWith("=")) - SplitContent[a - 1] += "="; - - // $d 앞에 "/" 적용 - if (SplitContent[a].StartsWith("d")) - if (!SplitContent[a - 1].EndsWith("/")) - SplitContent[a - 1] += "/"; - - // $n 앞에 "." 적용 - if (SplitContent[a].StartsWith("n")) - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - - // $e 앞에 "," 적용 - if (SplitContent[a].StartsWith("e")) - if (!SplitContent[a - 1].EndsWith(",")) - SplitContent[a - 1] += ","; - - // $p 앞에 $n이 나온 경우 "," 적용, $p앞에 $n이 없는 경우 "." 적용 - if (SplitContent[a].StartsWith("p")) - { - if (SplitContent[a - 1].StartsWith("n")) - { - if (!SplitContent[a - 1].EndsWith(",")) - SplitContent[a - 1] += ","; - } - else - { - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - } - } - - // TODO : $e 논의 필요 (역할어가 필요함) - if (SplitContent[a].StartsWith("e")) - { - } - } - - return string.Join("▼", SplitContent); - } - - /// - /// 246구두점 적용 - /// - /// 246태그 내용 - /// 246태그 구두점 적용된 내용 - private string Gudo246(string Content) - { - string[] SplitContent = Content.Split('▼'); - char[] Gudo = { ';', ':', '.', ',', '/' }; - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // $a 앞에 $i가 나온경우 $a 앞에 ":"적용 - if (SplitContent[a].StartsWith("a")) - if (SplitContent[a - 1].StartsWith("i")) - if (!SplitContent[a - 1].EndsWith(":")) - SplitContent[a - 1] += ":"; - - // $b 앞에는 ":"적용 - if (SplitContent[a].StartsWith("b")) - if (!SplitContent[a - 1].EndsWith(":")) - SplitContent[a - 1] += ":"; - - // $n 앞에는 "." 적용 - if (SplitContent[a].StartsWith("n")) - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - - // $p 앞에 $n이 나온 경우 "," 적용, $p앞에 $n이 없는 경우 "."적용 - if (SplitContent[a].StartsWith("p")) - { - if (SplitContent[a - 1].StartsWith("n")) - { - if (!SplitContent[a - 1].EndsWith(",")) - SplitContent[a - 1] += ","; - } - else - { - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - } - } - - // $g 앞에는 "" - if (SplitContent[a].StartsWith("g")) - { - SplitContent[a - 1].TrimEnd(Gudo); - SplitContent[a - 1].TrimEnd(' '); - } - } - - return string.Join("▼", SplitContent); - } - - /// - /// 260구두점 적용 - /// - /// 260태그 내용 - /// 260태그 구두점 적용된 내용 - private string Gudo260(string Content) - { - string[] SplitContent = Content.Split('▼'); - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // 두번째 $a 앞에 ";" - if (SplitContent[a].StartsWith("a")) - if (!SplitContent[a - 1].EndsWith(";")) - SplitContent[a - 1] += ";"; - - // $b 앞에는 ":" 적용 - if (SplitContent[a].StartsWith("b")) - if (!SplitContent[a - 1].EndsWith(":")) - SplitContent[a - 1] += ":"; - - // $c 앞에는 "," 적용 - if (SplitContent[a].StartsWith("c")) - if (!SplitContent[a - 1].EndsWith(",")) - SplitContent[a - 1] += ","; - } - - return string.Join("▼", SplitContent); - } - - /// - /// 300구두점 적용 - /// - /// 300태그 내용 - /// 300태그 구두점 적용된 내용 - private string Gudo300(string Content) - { - string[] SplitContent = Content.Split('▼'); - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // $b 앞에는 ":" 적용 - if (SplitContent[a].StartsWith("b")) - if (!SplitContent[a - 1].EndsWith(":")) - SplitContent[a - 1] += ":"; - - // $c 앞에는 ";" 적용 - if (SplitContent[a].StartsWith("c")) - if (!SplitContent[a - 1].EndsWith(";")) - SplitContent[a - 1] += ";"; - - // $e 앞에는 "+" 적용 - if (SplitContent[a].StartsWith("e")) - if (!SplitContent[a - 1].EndsWith("+")) - SplitContent[a - 1] += "+"; - } - - return string.Join("▼", SplitContent); - } - - /// - /// 440구두점 적용 - /// - /// 440태그 내용 - /// 440태그 구두점 적용된 내용 - private string Gudo440(string Content) - { - string[] SplitContent = Content.Split('▼'); - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // $n 앞에는 "." 적용 - if (SplitContent[a].StartsWith("n")) - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - - // $p 앞에 $n이 나온 경우 "," 적용, $p앞에 $n이 없는 경우 "."적용 - if (SplitContent[a].StartsWith("p")) - { - if (SplitContent[a - 1].StartsWith("n")) - { - if (SplitContent[a - 1].EndsWith(",")) - SplitContent[a - 1] += ","; - } - else - { - if (SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - } - } - - // $v 앞에는 ";" 적용 - if (SplitContent[a].StartsWith("v")) - if (!SplitContent[a - 1].EndsWith(";")) - SplitContent[a - 1] += ";"; - - // $x 앞에는 "=" 적용 - if (SplitContent[a].StartsWith("x")) - if (!SplitContent[a - 1].EndsWith("=")) - SplitContent[a - 1] += "="; - } - - return string.Join("▼", SplitContent); - } - - /// - /// 490구두점 적용(TODO: 논의후 함수개발) - /// - /// 490태그 내용 - /// 490태그 구두점 적용된 내용 - private string Gudo490(string Content) - { - string[] SplitContent = Content.Split('▼'); - - return string.Join("▼", SplitContent); - } - - /// - /// 830구두점 적용 - /// - /// 830태그 내용 - /// 830태그 구두점 적용된 내용 - private string Gudo830(string Content) - { - string[] SplitContent = Content.Split('▼'); - - for (int a = 0; a < SplitContent.Length; a++) - { - if (a <= 1) continue; - - // $n 앞에는 "." 적용 - if (SplitContent[a].StartsWith("n")) - if (!SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - - // $p 앞에 $n이 나온 경우 "," 적용, $p앞에 $n이 없는 경우 "."적용 - if (SplitContent[a].StartsWith("p")) - { - if (SplitContent[a - 1].StartsWith("n")) - { - if (SplitContent[a - 1].EndsWith(",")) - SplitContent[a - 1] += ","; - } - else - { - if (SplitContent[a - 1].EndsWith(".")) - SplitContent[a - 1] += "."; - } - } - - // $v 앞에는 ";" 적용 - if (SplitContent[a].StartsWith("v")) - if (!SplitContent[a - 1].EndsWith(";")) - SplitContent[a - 1] += ";"; - } - - return string.Join("▼", SplitContent); - } - #endregion - - #region 지시기호 서브 - - /// - /// 지시기호 입력하는 종합함수 - /// - /// 태그넘버 - /// 태그내용 - /// 지시기호 적용된 태그내용 - private string JiSiSUB(string ContentTag, string Content) - { - switch (ContentTag) - { - case "020": Content = JiSi020(Content); break; - case "041": Content = JiSi041(Content); break; - case "049": Content = JiSi049(Content); break; - case "082": Content = JiSi082(Content); break; - case "100": Content = JiSi100(Content); break; - case "110": Content = JiSi110(Content); break; - case "245": Content = JiSi245(Content); break; - case "250": Content = JiSi250(Content); break; - case "260": Content = JiSi260(Content); break; - case "300": Content = JiSi300(Content); break; - case "440": Content = JiSi440(Content); break; - case "490": Content = JiSi490(Content); break; - case "500": Content = JiSi500(Content); break; - case "504": Content = JiSi504(Content); break; - case "521": Content = JiSi521(Content); break; - case "525": Content = JiSi525(Content); break; - case "536": Content = JiSi536(Content); break; - case "546": Content = JiSi546(Content); break; - case "586": Content = JiSi586(Content); break; - case "650": Content = JiSi650(Content); break; - case "653": Content = JiSi653(Content); break; - case "700": Content = JiSi700(Content); break; - case "710": Content = JiSi710(Content); break; - case "740": Content = JiSi740(Content); break; - case "830": Content = JiSi830(Content); break; - case "900": Content = JiSi900(Content); break; - case "910": Content = JiSi910(Content); break; - case "940": Content = JiSi940(Content); break; - case "950": Content = JiSi950(Content); break; - } - return Content; - } - - /// - /// 020 지시기호 설정 - /// - /// 020태그내용 - /// 020 지시기호 적용된 내용 - private string JiSi020(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - if (SplitContent[2].Contains("(")) - SplitContent[1] = "1 "; - else - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 100 지시기호 설정 - /// - /// 100태그내용 - /// 100 지시기호 적용된 내용 - private string JiSi100(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "1 "; - - return string.Join("\t", SplitContent); - } - - /// - /// 110 지시기호 설정 - /// - /// 110태그내용 - /// 110 지시기호 적용된 내용 - private string JiSi110(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 041 지시기호 설정 - /// - /// 041 태그내용 - /// 041 지시기호 적용된 내용 - private string JiSi041(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "1 "; - - return string.Join("\t", SplitContent); - } - - /// - /// 049 지시기호 설정 - /// - /// 049 태그내용 - /// 049 지시기호 적용된 내용 - private string JiSi049(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "0 "; - - return string.Join("\t", SplitContent); - } - - /// - /// 082 지시기호 설정 - /// - /// 082 태그내용 - /// 082 지시기호 적용된 내용 - private string JiSi082(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "0 "; - - return string.Join("\t", SplitContent); - } - - /// - /// 245 지시기호 설정 - /// - /// 245 태그내용 - /// 245 지시기호 적용된 내용 - private string JiSi245(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - if (SplitContent[2].Contains("(")) - SplitContent[1] = "00"; - else - SplitContent[1] = "20"; - - return string.Join("\t", SplitContent); - } - - /// - /// 250 지시기호 설정 - /// - /// 250 태그내용 - /// 250 지시기호 적용된 내용 - private string JiSi250(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 260 지시기호 설정 - /// - /// 260 태그내용 - /// 260 지시기호 적용된 내용 - private string JiSi260(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 300 지시기호 설정 - /// - /// 300 태그내용 - /// 300 지시기호 적용된 내용 - private string JiSi300(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 440 지시기호 설정 - /// - /// 440 태그내용 - /// 440 지시기호 적용된 내용 - private string JiSi440(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - if (SplitContent[2].Contains("(")) - SplitContent[1] = "10"; - else - SplitContent[1] = "00"; - - return string.Join("\t", SplitContent); - } - - /// - /// 500 지시기호 설정 - /// - /// 500 태그내용 - /// 500 지시기호 적용된 내용 - private string JiSi500(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 490 지시기호 설정 - /// - /// 490 태그내용 - /// 490 지시기호 적용된 내용 - private string JiSi490(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "1 "; - - return string.Join("\t", SplitContent); - } - - /// - /// 504 지시기호 설정 - /// - /// 504 태그내용 - /// 504 지시기호 적용된 내용 - private string JiSi504(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 521 지시기호 설정 - /// - /// 521 태그내용 - /// 521 지시기호 적용된 내용 - private string JiSi521(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 525 지시기호 설정 - /// - /// 525 태그내용 - /// 525 지시기호 적용된 내용 - private string JiSi525(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 536 지시기호 설정 - /// - /// 536 태그내용 - /// 536 지시기호 적용된 내용 - private string JiSi536(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 546 지시기호 설정 - /// - /// 546 태그내용 - /// 546 지시기호 적용된 내용 - private string JiSi546(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 586 지시기호 설정 - /// - /// 586 태그내용 - /// 586 지시기호 적용된 내용 - private string JiSi586(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 650 지시기호 설정 - /// - /// 650 태그내용 - /// 650 지시기호 적용된 내용 - private string JiSi650(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " 8"; - - return string.Join("\t", SplitContent); - } - - /// - /// 653 지시기호 설정 - /// - /// 653 태그내용 - /// 653 지시기호 적용된 내용 - private string JiSi653(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 700 지시기호 설정 - /// - /// 700 태그내용 - /// 700 지시기호 적용된 내용 - private string JiSi700(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "1 "; - - return string.Join("\t", SplitContent); - } - - /// - /// 710 지시기호 설정 - /// - /// 710 태그내용 - /// 710 지시기호 적용된 내용 - private string JiSi710(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " "; - - return string.Join("\t", SplitContent); - } - - /// - /// 740 지시기호 설정 - /// - /// 740 태그내용 - /// 740 지시기호 적용된 내용 - private string JiSi740(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "02"; - - return string.Join("\t", SplitContent); - } - - /// - /// 830 지시기호 설정 - /// - /// 830 태그내용 - /// 830 지시기호 적용된 내용 - private string JiSi830(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " 0"; - - return string.Join("\t", SplitContent); - } - - /// - /// 900 지시기호 설정 - /// - /// 900 태그내용 - /// 900 지시기호 적용된 내용 - private string JiSi900(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "10"; - - return string.Join("\t", SplitContent); - } - - /// - /// 910 지시기호 설정 - /// - /// 910 태그내용 - /// 910 지시기호 적용된 내용 - private string JiSi910(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = " 0"; - - return string.Join("\t", SplitContent); - } - - /// - /// 940 지시기호 설정 - /// - /// 940 태그내용 - /// 940 지시기호 적용된 내용 - private string JiSi940(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "0 "; - - return string.Join("\t", SplitContent); - } - - /// - /// 950 지시기호 설정 - /// - /// 950 태그내용 - /// 950 지시기호 적용된 내용 - private string JiSi950(string Content) - { - string[] SplitContent = Content.Split('\t'); - - if (SplitContent.Length < 2) return ""; - - SplitContent[1] = "0 "; - - return string.Join("\t", SplitContent); - } - #endregion - /// /// 텍스트박스 숫자만 입력받는 함수. KeyPress함수에 적용 /// diff --git a/unimarc/unimarc/bin/Debug/UniMarc.exe b/unimarc/unimarc/bin/Debug/UniMarc.exe index fb65919..8185f38 100644 Binary files a/unimarc/unimarc/bin/Debug/UniMarc.exe and b/unimarc/unimarc/bin/Debug/UniMarc.exe differ diff --git a/unimarc/unimarc/bin/Debug/UniMarc.pdb b/unimarc/unimarc/bin/Debug/UniMarc.pdb index 7ab0008..55d9a0d 100644 Binary files a/unimarc/unimarc/bin/Debug/UniMarc.pdb and b/unimarc/unimarc/bin/Debug/UniMarc.pdb differ diff --git a/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll b/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll index c2d5713..1d5c20b 100644 Binary files a/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll and b/unimarc/unimarc/bin/Debug/ko/UniMarc.resources.dll differ diff --git a/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache b/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache index fde6072..d9faa7b 100644 Binary files a/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache and b/unimarc/unimarc/obj/Debug/DesignTimeResolveAssemblyReferencesInput.cache differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache b/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache index 1c6083d..c4ca988 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache and b/unimarc/unimarc/obj/Debug/UniMarc.csproj.GenerateResource.cache differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.exe b/unimarc/unimarc/obj/Debug/UniMarc.exe index fb65919..8185f38 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.exe and b/unimarc/unimarc/obj/Debug/UniMarc.exe differ diff --git a/unimarc/unimarc/obj/Debug/UniMarc.pdb b/unimarc/unimarc/obj/Debug/UniMarc.pdb index 7ab0008..55d9a0d 100644 Binary files a/unimarc/unimarc/obj/Debug/UniMarc.pdb and b/unimarc/unimarc/obj/Debug/UniMarc.pdb differ diff --git a/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll b/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll index c2d5713..1d5c20b 100644 Binary files a/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll and b/unimarc/unimarc/obj/Debug/ko/UniMarc.resources.dll differ diff --git a/unimarc/unimarc/납품관리/Commodity_Search.cs b/unimarc/unimarc/납품관리/Commodity_Search.cs index 32e7cbe..e305497 100644 --- a/unimarc/unimarc/납품관리/Commodity_Search.cs +++ b/unimarc/unimarc/납품관리/Commodity_Search.cs @@ -186,6 +186,7 @@ namespace WindowsFormsApp1.Delivery dc.lbl_ID.Text = dataGridView1.Rows[idx].Cells["DLS_ID"].Value.ToString(); dc.lbl_PW.Text = dataGridView1.Rows[idx].Cells["DLS_PW"].Value.ToString(); dc.lbl_Area.Text = dataGridView1.Rows[idx].Cells["DLS_Area"].Value.ToString(); + dc.SetArea(dataGridView1.Rows[idx].Cells["DLS_Area"].Value.ToString(), true); } if (sl != null) { sl.tb_SearchClient.Text = value; @@ -193,6 +194,7 @@ namespace WindowsFormsApp1.Delivery sl.lbl_ID.Text = dataGridView1.Rows[idx].Cells["DLS_ID"].Value.ToString(); sl.lbl_PW.Text = dataGridView1.Rows[idx].Cells["DLS_PW"].Value.ToString(); sl.lbl_Area.Text = dataGridView1.Rows[idx].Cells["DLS_Area"].Value.ToString(); + sl.SetArea(dataGridView1.Rows[idx].Cells["DLS_Area"].Value.ToString(), true); } } } diff --git a/unimarc/unimarc/마크/DLS_Copy.Designer.cs b/unimarc/unimarc/마크/DLS_Copy.Designer.cs index cdbd249..a9500cd 100644 --- a/unimarc/unimarc/마크/DLS_Copy.Designer.cs +++ b/unimarc/unimarc/마크/DLS_Copy.Designer.cs @@ -98,9 +98,9 @@ // this.panel8.Controls.Add(this.dataGridView1); this.panel8.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel8.Location = new System.Drawing.Point(0, 105); + this.panel8.Location = new System.Drawing.Point(0, 103); this.panel8.Name = "panel8"; - this.panel8.Size = new System.Drawing.Size(362, 627); + this.panel8.Size = new System.Drawing.Size(362, 629); this.panel8.TabIndex = 5; // // dataGridView1 @@ -117,7 +117,7 @@ this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.RowHeadersWidth = 31; this.dataGridView1.RowTemplate.Height = 23; - this.dataGridView1.Size = new System.Drawing.Size(362, 627); + this.dataGridView1.Size = new System.Drawing.Size(362, 629); this.dataGridView1.TabIndex = 0; this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint); this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown); @@ -146,7 +146,7 @@ this.panel5.Controls.Add(this.chk_spChar); this.panel5.Controls.Add(this.btn_ApplyFilter); this.panel5.Dock = System.Windows.Forms.DockStyle.Top; - this.panel5.Location = new System.Drawing.Point(0, 70); + this.panel5.Location = new System.Drawing.Point(0, 68); this.panel5.Name = "panel5"; this.panel5.Size = new System.Drawing.Size(362, 35); this.panel5.TabIndex = 4; @@ -189,7 +189,7 @@ this.panel3.Controls.Add(this.btn_Search); this.panel3.Controls.Add(this.rBtn_BookName); this.panel3.Dock = System.Windows.Forms.DockStyle.Top; - this.panel3.Location = new System.Drawing.Point(0, 35); + this.panel3.Location = new System.Drawing.Point(0, 33); this.panel3.Name = "panel3"; this.panel3.Size = new System.Drawing.Size(362, 35); this.panel3.TabIndex = 4; @@ -261,7 +261,7 @@ this.panel2.Dock = System.Windows.Forms.DockStyle.Top; this.panel2.Location = new System.Drawing.Point(0, 0); this.panel2.Name = "panel2"; - this.panel2.Size = new System.Drawing.Size(362, 35); + this.panel2.Size = new System.Drawing.Size(362, 33); this.panel2.TabIndex = 3; // // btn_Connect diff --git a/unimarc/unimarc/마크/DLS_Copy.cs b/unimarc/unimarc/마크/DLS_Copy.cs index 57c6aee..3daf7c4 100644 --- a/unimarc/unimarc/마크/DLS_Copy.cs +++ b/unimarc/unimarc/마크/DLS_Copy.cs @@ -69,40 +69,13 @@ namespace WindowsFormsApp1.Mac return; } - string dlsArea = lbl_Area.Text; - string code = SetArea(dlsArea); - string url = ""; + string url = webBrowser1.Url.AbsoluteUri; - webBrowser1.Navigate("https://reading.jnei.go.kr"); - - Delay(4000); - - HtmlElementCollection combo = webBrowser1.Document.GetElementsByTagName("option"); - foreach (HtmlElement Select in combo) - { - if (Select.Id == code) - url = Select.GetAttribute("value"); - } - url = url.Replace("http", "https"); - - //webBrowser1.Navigate(url + "/r/newReading/member/loginForm.jsp"); webBrowser1.Document.GetElementById("headerLoginBtn").InvokeMember("click"); - bool isWebComplite = false; - - while (!isWebComplite) - { - Delay(1000); - if (tb_URL.Text.Contains("/r/newReading/member/loginForm.jsp")) - { - isWebComplite = true; - break; - } - } - + Delay(5000); - - if (isWebComplite) - DLS_Login(url); + + DLS_Login(url); } #region Connect_SUB @@ -112,24 +85,13 @@ namespace WindowsFormsApp1.Mac MessageBox.Show("ID 혹은 PW가 없습니다."); return; } - string ID = lbl_ID.Text; - string PW = lbl_PW.Text; + string ID = lbl_ID.Text, PW = lbl_PW.Text; + url = webBrowser1.Document.GetElementById(SetArea(lbl_Area.Text)).GetAttribute("value"); - HtmlElementCollection input = webBrowser1.Document.GetElementsByTagName("input"); - foreach (HtmlElement login in input) - { - if (login.Id == "s_id") - login.SetAttribute("value", ID); - if (login.Id == "s_pwd") - login.SetAttribute("value", PW); - } + webBrowser1.Document.GetElementById("s_id").SetAttribute("value", ID); + webBrowser1.Document.GetElementById("s_pwd").SetAttribute("value", PW); - HtmlElementCollection button = webBrowser1.Document.GetElementsByTagName("button"); - foreach (HtmlElement SearchButton in button) - { - if (SearchButton.Id == "s_login") - SearchButton.InvokeMember("click"); - } + webBrowser1.Document.GetElementById("s_login").InvokeMember("click"); Delay(4000); webBrowser1.Navigate(url + "/r/dls_new/bookInfo/collectionFormMA.jsp"); @@ -269,7 +231,7 @@ namespace WindowsFormsApp1.Mac /// DLS지역 코드 변환 /// /// 코드 - string SetArea(string dlsArea) + public string SetArea(string dlsArea, bool move = false) { string[] Area = { "서울", "부산", "대구", "인천", "광주", @@ -294,6 +256,9 @@ namespace WindowsFormsApp1.Mac idx++; } + if (move) + webBrowser1.Navigate(webBrowser1.Document.GetElementById(Code[idx]).GetAttribute("value")); + return Code[idx]; } diff --git a/unimarc/unimarc/마크/DLS_Lookup.cs b/unimarc/unimarc/마크/DLS_Lookup.cs index 745a186..616e6d4 100644 --- a/unimarc/unimarc/마크/DLS_Lookup.cs +++ b/unimarc/unimarc/마크/DLS_Lookup.cs @@ -93,40 +93,13 @@ namespace WindowsFormsApp1.DLS return; } - string dlsArea = lbl_Area.Text; - string code = SetArea(dlsArea); - string url = ""; + string url = webBrowser1.Url.AbsoluteUri; - webBrowser1.Navigate("https://reading.jnei.go.kr"); - - Delay(4000); - - HtmlElementCollection combo = webBrowser1.Document.GetElementsByTagName("option"); - foreach (HtmlElement Select in combo) - { - if (Select.Id == code) - url = Select.GetAttribute("value"); - } - url = url.Replace("http", "https"); - - //webBrowser1.Navigate(url + "/r/newReading/member/loginForm.jsp"); webBrowser1.Document.GetElementById("headerLoginBtn").InvokeMember("click"); - bool isWebComplite = false; - - while (!isWebComplite) - { - Delay(1000); - if (tb_URL.Text.Contains("/r/newReading/member/loginForm.jsp")) - { - isWebComplite = true; - break; - } - } Delay(5000); - if (isWebComplite) - DLS_Login(url); + DLS_Login(url); } #region Connect_SUB @@ -137,24 +110,13 @@ namespace WindowsFormsApp1.DLS MessageBox.Show("ID 혹은 PW가 없습니다."); return; } - string ID = lbl_ID.Text; - string PW = lbl_PW.Text; + string ID = lbl_ID.Text, PW = lbl_PW.Text; + url = webBrowser1.Document.GetElementById(SetArea(lbl_Area.Text)).GetAttribute("value"); - HtmlElementCollection input = webBrowser1.Document.GetElementsByTagName("input"); - foreach (HtmlElement login in input) - { - if (login.Id == "s_id") - login.SetAttribute("value", ID); - if (login.Id == "s_pwd") - login.SetAttribute("value", PW); - } + webBrowser1.Document.GetElementById("s_id").SetAttribute("value", ID); + webBrowser1.Document.GetElementById("s_pwd").SetAttribute("value", PW); - HtmlElementCollection button = webBrowser1.Document.GetElementsByTagName("button"); - foreach (HtmlElement SearchButton in button) - { - if (SearchButton.Id == "s_login") - SearchButton.InvokeMember("click"); - } + webBrowser1.Document.GetElementById("s_login").InvokeMember("click"); Delay(4000); webBrowser1.Navigate(url + "/r/dls_new/bookInfo/collectionFormMA.jsp"); @@ -165,7 +127,7 @@ namespace WindowsFormsApp1.DLS /// DLS지역 코드 변환 /// /// 코드 - string SetArea(string dlsArea) + public string SetArea(string dlsArea, bool move = false) { string[] Area = { "서울", "부산", "대구", "인천", "광주", @@ -185,12 +147,14 @@ namespace WindowsFormsApp1.DLS foreach (string code in Area) { if (code == dlsArea) - { break; - } + idx++; } + if (move) + webBrowser1.Navigate(webBrowser1.Document.GetElementById(Code[idx]).GetAttribute("value")); + return Code[idx]; } diff --git a/unimarc/unimarc/마크/Marc.cs b/unimarc/unimarc/마크/Marc.cs index 59914df..bd4ecbc 100644 --- a/unimarc/unimarc/마크/Marc.cs +++ b/unimarc/unimarc/마크/Marc.cs @@ -3326,7 +3326,9 @@ namespace ExcelTest { Skill_Grid sg = new Skill_Grid(); sg.Excel_to_DataGridView(sender, e); - sg.DataGrid_to_Delete(sender, e); + + if (e.KeyCode == Keys.Delete) + sg.DataGrid_to_Delete(sender, e); } private void btn_FilterReturn_Click(object sender, EventArgs e) diff --git a/unimarc/unimarc/마크/Marc_Macro_Sub.cs b/unimarc/unimarc/마크/Marc_Macro_Sub.cs index 85203c0..96c1e5f 100644 --- a/unimarc/unimarc/마크/Marc_Macro_Sub.cs +++ b/unimarc/unimarc/마크/Marc_Macro_Sub.cs @@ -4,6 +4,7 @@ using System.Linq; using System.Text; using System.Threading.Tasks; using System.Web.UI.WebControls; +using System.Windows.Forms; using WindowsFormsApp1; namespace UniMarc.마크 @@ -77,15 +78,18 @@ namespace UniMarc.마크 { "48", "245", "245가 괄호 시작일 경우 [20], 괄호 시작이 아니며 100이나 110태그 사용시 [10], 해당 없을시 [00]" }, - ///////// + { "49", "525", "525a를 500a로 변환 후 삭제" }, + { "50", "440", "440a를 830a로 복사" }, + { "51", "440", "440x를 490a로 복사" }, + { "52", "049", "049v를 090c로 복사" }, + { "53", "020", "020c를 950b로 복사" }, - // { "49", "245", "245b -> 740a로 복사" }, - // { "50", "440", "440a -> 830a로 복사" }, - // { "51", "440", "440x -> 490a로 복사" }, + { "54", "100", "태그삭제" }, + { "55", "110", "태그삭제" }, + + ///////// // { "52", "440", "440n p x -> 490v [p-n-v 순서]로 변환" }, // { "53", "440", "440n p x -> 830 n p v로 변환" }, - // - // { "54", "525", "525a를 500a로 부출 후 삭제" }, }; @@ -113,21 +117,58 @@ namespace UniMarc.마크 if (SplitMarc[a].Length < 2) continue; string ContentTag = SplitMarc[a].Substring(0, 3); - TargetMarc = ViewMarc; - SplitMarc[a] = Macro_Index(idx, ContentTag, SplitMarc[a]); + TargetMarc = string.Join("\n", SplitMarc); + string MacroData = Macro_Index(idx, ContentTag, SplitMarc[a]); + SplitMarc[a] = MacroData; + } + + List result = new List(); + foreach (string Macro in SplitMarc) + { + if (Macro == "") + continue; + result.Add(Macro); + } + + foreach (string i in idx) + { + ViewMarc = ChangeTagByIndex(i, ViewMarc); } // 반출용 마크로 변환 - + return st.made_Ori_marc(String.Join("\n", result)); + } - return st.made_Ori_marc(String.Join("\n", SplitMarc)); + private string ChangeTagByIndex(string idx, string ViewMarc) + { + // 525a를 500a로 부출 후 삭제 + if (idx == "49") + ViewMarc = TagToOtherTag("525", "a", "500", "a", ViewMarc, " ", true); + // 440a를 830a로 복사 + if (idx == "50") + ViewMarc = TagToOtherTag("440", "a", "830", "a", ViewMarc); + // 440x를 490a로 복사 + if (idx == "51") + ViewMarc = TagToOtherTag("440", "a", "490", "a", ViewMarc); + // 049v를 090c로 복사 + if (idx == "52") + ViewMarc = TagToOtherTag("049", "v", "090", "c", ViewMarc); + // 020c를 950b로 복사 + if (idx == "53") + ViewMarc = TagToOtherTag("020", "c", "950", "b", ViewMarc); + + + return ViewMarc; } private string Macro_Index(string[] idx, string ContentTag, string Content) { - string Target = Content; + string[] SplitContent = Content.Split('\t'); + string Jisi = SplitContent[1]; + string Target = SplitContent[2]; foreach (string i in idx) { + Jisi = ChangeJisi(i, ContentTag, Jisi); switch (ContentTag) { case "020": Target = Index_020(i, Target.Split('▼')); break; @@ -145,6 +186,7 @@ namespace UniMarc.마크 case "500": Target = Index_500(i, Target.Split('▼')); break; case "505": Target = Index_505(i, Target.Split('▼')); break; case "520": Target = Index_520(i, Target.Split('▼')); break; + case "525": Target = Index_525(i, Target.Split('▼')); break; case "536": Target = Index_536(i, Target.Split('▼')); break; case "546": Target = Index_546(i, Target.Split('▼')); break; case "650": Target = Index_650(i, Target.Split('▼')); break; @@ -158,9 +200,36 @@ namespace UniMarc.마크 case "950": Target = Index_950(i, Target.Split('▼')); break; } } - return Target; + if (Target == "" || !Target.Contains("▲")) + return ""; + + return string.Format("{0}\t{1}\t{2}", ContentTag, Jisi, Target); } + + string ChangeJisi(string idx, string TagNum, string Jisi) + { + if (idx == "34" && TagNum == "049") return "0 "; + if (idx == "35" && TagNum == "100") return "1 "; + if (idx == "36" && TagNum == "100") return " "; + if (idx == "37" && TagNum == "490") return "10"; + if (idx == "38" && TagNum == "500") return " "; + if (idx == "39" && TagNum == "505") return "00"; + if (idx == "40" && TagNum == "700") return "1 "; + if (idx == "41" && TagNum == "710") return " "; + if (idx == "42" && TagNum == "740") return "02"; + if (idx == "43" && TagNum == "830") return " 0"; + if (idx == "44" && TagNum == "900") return "10"; + if (idx == "45" && TagNum == "910") return " 0"; + if (idx == "46" && TagNum == "940") return "0 "; + if (idx == "47" && TagNum == "950") return "0 "; + return Jisi; + } + + + #region IDX TAG NUM + + /// /// 020 매크로 /// @@ -168,6 +237,7 @@ namespace UniMarc.마크 /// 020태그 매크로 적용된 내용 private string Index_020(string idx, string[] SplitContent) { + for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; @@ -189,11 +259,10 @@ namespace UniMarc.마크 /// 매크로 적용된 내용 private string Index_049(string idx, string[] SplitContent) { + for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "34") SplitContent[a] = "0 "; } return string.Join("▼", SplitContent); } @@ -213,21 +282,18 @@ namespace UniMarc.마크 if (a <= -1) continue; } - return string.Join("▼", SplitContent); } private string Index_100(string idx, string[] SplitContent) { + if (idx == "54") + return ""; isAuthorTag = true; for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "35") SplitContent[a] = "1 "; - if (a == 0 && idx == "36") SplitContent[a] = " "; } - return string.Join("▼", SplitContent); } @@ -238,6 +304,8 @@ namespace UniMarc.마크 /// 110태그 매크로 적용된 내용 private string Index_110(string idx, string[] SplitContent) { + if (idx == "55") + return ""; isAuthorTag = true; for (int a = 0; a < SplitContent.Length; a++) { @@ -297,11 +365,11 @@ namespace UniMarc.마크 if (SplitContent[a].StartsWith("a") && idx == "48") { if (SplitContent[a].Contains("(")) - SplitContent[0] = "20"; + SplitContent[1] = "20"; else if (isAuthorTag) - SplitContent[0] = "10"; + SplitContent[1] = "10"; else - SplitContent[0] = "00"; + SplitContent[1] = "00"; } // 두번째 $a 앞에 ":" @@ -465,13 +533,6 @@ namespace UniMarc.마크 private string Index_440(string idx, string[] SplitContent) { - // 440a -> 830a로 복사 - if (idx == "50") - return TagToOtherTag("440", "a", "830", "a", TargetMarc); - - // 440x -> 490a로 복사 - if (idx == "51") - return TagToOtherTag("440", "a", "490", "a", TargetMarc); for (int a = 0; a < SplitContent.Length; a++) { @@ -517,8 +578,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "37") SplitContent[a] = "10"; } return string.Join("▼", SplitContent); } @@ -529,8 +588,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "38") SplitContent[a] = " "; } return string.Join("▼", SplitContent); } @@ -541,8 +598,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "39") SplitContent[a] = "00"; } return string.Join("▼", SplitContent); } @@ -558,6 +613,17 @@ namespace UniMarc.마크 return string.Join("▼", SplitContent); } + + private string Index_525(string idx, string[] SplitContent) + { + + for (int a = 0; a < SplitContent.Length; a++) + { + if (a <= 1) continue; + } + + return string.Join("▼", SplitContent); + } private string Index_536(string idx, string[] SplitContent) { if (idx == "31") return ""; @@ -597,8 +663,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "40") SplitContent[a] = "1 "; } return string.Join("▼", SplitContent); } @@ -609,8 +673,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "41") SplitContent[a] = " "; } return string.Join("▼", SplitContent); } @@ -621,8 +683,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "42") SplitContent[a] = "02"; } return string.Join("▼", SplitContent); } @@ -633,8 +693,6 @@ namespace UniMarc.마크 { if (a <= 1) continue; - if (a == 0 && idx == "43") SplitContent[a] = " 0"; - // $n 앞에는 "." 적용 if (SplitContent[a].StartsWith("n") && idx == "25") if (!SplitContent[a - 1].EndsWith(".")) @@ -670,8 +728,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "44") SplitContent[a] = "10"; } return string.Join("▼", SplitContent); } @@ -682,8 +738,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "45") SplitContent[a] = " 0"; } return string.Join("▼", SplitContent); } @@ -694,8 +748,6 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "46") SplitContent[a] = "0 "; } return string.Join("▼", SplitContent); } @@ -706,11 +758,10 @@ namespace UniMarc.마크 for (int a = 0; a < SplitContent.Length; a++) { if (a <= -1) continue; - - if (a == 0 && idx == "47") SplitContent[a] = "0 "; } return string.Join("▼", SplitContent); } + #endregion /// diff --git a/unimarc/unimarc/마크/Marc_Plan.Designer.cs b/unimarc/unimarc/마크/Marc_Plan.Designer.cs index 21770a5..ed441ba 100644 --- a/unimarc/unimarc/마크/Marc_Plan.Designer.cs +++ b/unimarc/unimarc/마크/Marc_Plan.Designer.cs @@ -28,16 +28,17 @@ /// private void InitializeComponent() { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle8 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle9 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle10 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle11 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle12 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle13 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle14 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle5 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle6 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle7 = new System.Windows.Forms.DataGridViewCellStyle(); System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Marc_Plan)); this.panel1 = new System.Windows.Forms.Panel(); this.panel4 = new System.Windows.Forms.Panel(); + this.btn_ApplyMacro = new System.Windows.Forms.Button(); this.btn_Save = new System.Windows.Forms.Button(); this.btn_Excel = new System.Windows.Forms.Button(); this.cb_EncodingType = new System.Windows.Forms.ComboBox(); @@ -80,6 +81,8 @@ this.marc = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.search_tag = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.colCheck = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.WorkCopy = new System.Windows.Forms.DataGridViewTextBoxColumn(); + this.WorkFix = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.checkBox1 = new System.Windows.Forms.CheckBox(); this.panel2 = new System.Windows.Forms.Panel(); this.panel5 = new System.Windows.Forms.Panel(); @@ -127,8 +130,6 @@ this.panel7 = new System.Windows.Forms.Panel(); this.printDocument1 = new System.Drawing.Printing.PrintDocument(); this.printPreviewDialog1 = new System.Windows.Forms.PrintPreviewDialog(); - this.WorkCopy = new System.Windows.Forms.DataGridViewTextBoxColumn(); - this.WorkFix = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.panel1.SuspendLayout(); this.panel4.SuspendLayout(); this.panel3.SuspendLayout(); @@ -147,12 +148,13 @@ 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(1462, 35); + this.panel1.Size = new System.Drawing.Size(1661, 35); this.panel1.TabIndex = 0; // // panel4 // this.panel4.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle; + this.panel4.Controls.Add(this.btn_ApplyMacro); this.panel4.Controls.Add(this.btn_Save); this.panel4.Controls.Add(this.btn_Excel); this.panel4.Controls.Add(this.cb_EncodingType); @@ -162,6 +164,16 @@ this.panel4.Size = new System.Drawing.Size(457, 29); this.panel4.TabIndex = 9; // + // btn_ApplyMacro + // + this.btn_ApplyMacro.Location = new System.Drawing.Point(95, 2); + this.btn_ApplyMacro.Name = "btn_ApplyMacro"; + this.btn_ApplyMacro.Size = new System.Drawing.Size(86, 23); + this.btn_ApplyMacro.TabIndex = 11; + this.btn_ApplyMacro.Text = "매크로 적용"; + this.btn_ApplyMacro.UseVisualStyleBackColor = true; + this.btn_ApplyMacro.Click += new System.EventHandler(this.btn_ApplyMacro_Click); + // // btn_Save // this.btn_Save.Location = new System.Drawing.Point(3, 2); @@ -174,7 +186,7 @@ // // btn_Excel // - this.btn_Excel.Location = new System.Drawing.Point(338, 2); + this.btn_Excel.Location = new System.Drawing.Point(377, 2); this.btn_Excel.Name = "btn_Excel"; this.btn_Excel.Size = new System.Drawing.Size(75, 23); this.btn_Excel.TabIndex = 8; @@ -186,14 +198,14 @@ // this.cb_EncodingType.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList; this.cb_EncodingType.FormattingEnabled = true; - this.cb_EncodingType.Location = new System.Drawing.Point(130, 3); + this.cb_EncodingType.Location = new System.Drawing.Point(212, 3); this.cb_EncodingType.Name = "cb_EncodingType"; this.cb_EncodingType.Size = new System.Drawing.Size(81, 20); this.cb_EncodingType.TabIndex = 9; // // btn_Output // - this.btn_Output.Location = new System.Drawing.Point(217, 2); + this.btn_Output.Location = new System.Drawing.Point(299, 2); this.btn_Output.Name = "btn_Output"; this.btn_Output.Size = new System.Drawing.Size(75, 23); this.btn_Output.TabIndex = 9; @@ -357,14 +369,14 @@ this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control; this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.None; this.dataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single; - dataGridViewCellStyle8.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle8.BackColor = System.Drawing.SystemColors.AppWorkspace; - dataGridViewCellStyle8.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - dataGridViewCellStyle8.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle8.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle8.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle8.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle8; + dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.AppWorkspace; + dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; this.dataGridView1.ColumnHeadersHeight = 25; this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing; this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { @@ -397,11 +409,12 @@ this.dataGridView1.Location = new System.Drawing.Point(0, 0); this.dataGridView1.Name = "dataGridView1"; this.dataGridView1.RowTemplate.Height = 23; - this.dataGridView1.Size = new System.Drawing.Size(1462, 549); + this.dataGridView1.Size = new System.Drawing.Size(1661, 549); this.dataGridView1.TabIndex = 1; this.dataGridView1.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellClick); this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick); this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint); + this.dataGridView1.SortCompare += new System.Windows.Forms.DataGridViewSortCompareEventHandler(this.dataGridView1_SortCompare); this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown); // // idx @@ -421,8 +434,8 @@ // // reg_num // - dataGridViewCellStyle9.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.reg_num.DefaultCellStyle = dataGridViewCellStyle9; + dataGridViewCellStyle2.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.reg_num.DefaultCellStyle = dataGridViewCellStyle2; this.reg_num.FillWeight = 130.9363F; this.reg_num.HeaderText = "등록번호"; this.reg_num.Name = "reg_num"; @@ -430,8 +443,8 @@ // // class_code // - dataGridViewCellStyle10.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.class_code.DefaultCellStyle = dataGridViewCellStyle10; + dataGridViewCellStyle3.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.class_code.DefaultCellStyle = dataGridViewCellStyle3; this.class_code.FillWeight = 76.41504F; this.class_code.HeaderText = "분류"; this.class_code.Name = "class_code"; @@ -439,8 +452,8 @@ // // author_code // - dataGridViewCellStyle11.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.author_code.DefaultCellStyle = dataGridViewCellStyle11; + dataGridViewCellStyle4.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.author_code.DefaultCellStyle = dataGridViewCellStyle4; this.author_code.FillWeight = 77.02635F; this.author_code.HeaderText = "저자기호"; this.author_code.Name = "author_code"; @@ -448,8 +461,8 @@ // // volume // - dataGridViewCellStyle12.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.volume.DefaultCellStyle = dataGridViewCellStyle12; + dataGridViewCellStyle5.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.volume.DefaultCellStyle = dataGridViewCellStyle5; this.volume.FillWeight = 38.80909F; this.volume.HeaderText = "V"; this.volume.Name = "volume"; @@ -458,8 +471,8 @@ // // copy // - dataGridViewCellStyle13.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.copy.DefaultCellStyle = dataGridViewCellStyle13; + dataGridViewCellStyle6.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.copy.DefaultCellStyle = dataGridViewCellStyle6; this.copy.FillWeight = 40.14827F; this.copy.HeaderText = "C"; this.copy.Name = "copy"; @@ -468,8 +481,8 @@ // // prefix // - dataGridViewCellStyle14.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); - this.prefix.DefaultCellStyle = dataGridViewCellStyle14; + dataGridViewCellStyle7.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(255))))); + this.prefix.DefaultCellStyle = dataGridViewCellStyle7; this.prefix.FillWeight = 41.51828F; this.prefix.HeaderText = "F"; this.prefix.Name = "prefix"; @@ -558,7 +571,6 @@ // this.marc.HeaderText = "마크"; this.marc.Name = "marc"; - this.marc.Visible = false; // // search_tag // @@ -579,13 +591,23 @@ this.colCheck.TrueValue = "T"; this.colCheck.Width = 27; // + // WorkCopy + // + this.WorkCopy.HeaderText = "복본 작업용 열"; + this.WorkCopy.Name = "WorkCopy"; + // + // WorkFix + // + this.WorkFix.HeaderText = "별치 작업용 열"; + this.WorkFix.Name = "WorkFix"; + // // checkBox1 // this.checkBox1.AutoSize = true; this.checkBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.None; this.checkBox1.Checked = true; this.checkBox1.CheckState = System.Windows.Forms.CheckState.Checked; - this.checkBox1.Location = new System.Drawing.Point(1420, 6); + this.checkBox1.Location = new System.Drawing.Point(1520, 6); this.checkBox1.Name = "checkBox1"; this.checkBox1.Size = new System.Drawing.Size(15, 14); this.checkBox1.TabIndex = 2; @@ -614,7 +636,7 @@ this.panel5.Dock = System.Windows.Forms.DockStyle.Top; this.panel5.Location = new System.Drawing.Point(0, 35); this.panel5.Name = "panel5"; - this.panel5.Size = new System.Drawing.Size(1462, 35); + this.panel5.Size = new System.Drawing.Size(1661, 35); this.panel5.TabIndex = 9; // // chkBox_AllowDrop @@ -673,7 +695,7 @@ this.panel6.Dock = System.Windows.Forms.DockStyle.Bottom; this.panel6.Location = new System.Drawing.Point(0, 619); this.panel6.Name = "panel6"; - this.panel6.Size = new System.Drawing.Size(1462, 59); + this.panel6.Size = new System.Drawing.Size(1661, 59); this.panel6.TabIndex = 10; // // chk_Alignment @@ -1060,7 +1082,7 @@ this.panel7.Dock = System.Windows.Forms.DockStyle.Fill; this.panel7.Location = new System.Drawing.Point(0, 70); this.panel7.Name = "panel7"; - this.panel7.Size = new System.Drawing.Size(1462, 549); + this.panel7.Size = new System.Drawing.Size(1661, 549); this.panel7.TabIndex = 11; // // printDocument1 @@ -1078,21 +1100,11 @@ this.printPreviewDialog1.Name = "printPreviewDialog1"; this.printPreviewDialog1.Visible = false; // - // WorkCopy - // - this.WorkCopy.HeaderText = "복본 작업용 열"; - this.WorkCopy.Name = "WorkCopy"; - // - // WorkFix - // - this.WorkFix.HeaderText = "별치 작업용 열"; - this.WorkFix.Name = "WorkFix"; - // // Marc_Plan // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; - this.ClientSize = new System.Drawing.Size(1462, 678); + this.ClientSize = new System.Drawing.Size(1661, 678); this.Controls.Add(this.panel7); this.Controls.Add(this.panel6); this.Controls.Add(this.panel5); @@ -1129,28 +1141,6 @@ private System.Windows.Forms.Label label2; private System.Windows.Forms.Label label1; private System.Windows.Forms.Button btn_ChangeTag; - private System.Windows.Forms.DataGridViewTextBoxColumn idx; - private System.Windows.Forms.DataGridViewTextBoxColumn num; - private System.Windows.Forms.DataGridViewTextBoxColumn reg_num; - private System.Windows.Forms.DataGridViewTextBoxColumn class_code; - private System.Windows.Forms.DataGridViewTextBoxColumn author_code; - private System.Windows.Forms.DataGridViewTextBoxColumn volume; - private System.Windows.Forms.DataGridViewTextBoxColumn copy; - private System.Windows.Forms.DataGridViewTextBoxColumn prefix; - private System.Windows.Forms.DataGridViewTextBoxColumn gu; - private System.Windows.Forms.DataGridViewTextBoxColumn ISBN; - private System.Windows.Forms.DataGridViewTextBoxColumn book_name; - private System.Windows.Forms.DataGridViewTextBoxColumn s_book_name1; - private System.Windows.Forms.DataGridViewTextBoxColumn s_book_num1; - private System.Windows.Forms.DataGridViewTextBoxColumn s_book_name2; - private System.Windows.Forms.DataGridViewTextBoxColumn s_book_num2; - private System.Windows.Forms.DataGridViewTextBoxColumn author; - private System.Windows.Forms.DataGridViewTextBoxColumn book_comp; - private System.Windows.Forms.DataGridViewTextBoxColumn price; - private System.Windows.Forms.DataGridViewTextBoxColumn midx; - private System.Windows.Forms.DataGridViewTextBoxColumn marc; - private System.Windows.Forms.DataGridViewTextBoxColumn search_tag; - private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; private System.Windows.Forms.Panel panel3; private System.Windows.Forms.ComboBox cb_authorType; private System.Windows.Forms.ComboBox cb_divType; @@ -1210,6 +1200,29 @@ private System.Windows.Forms.CheckBox chk_Alignment; private System.Windows.Forms.TextBox tb_NumSize; private System.Windows.Forms.Label label24; + private System.Windows.Forms.Button btn_ApplyMacro; + private System.Windows.Forms.DataGridViewTextBoxColumn idx; + private System.Windows.Forms.DataGridViewTextBoxColumn num; + private System.Windows.Forms.DataGridViewTextBoxColumn reg_num; + private System.Windows.Forms.DataGridViewTextBoxColumn class_code; + private System.Windows.Forms.DataGridViewTextBoxColumn author_code; + private System.Windows.Forms.DataGridViewTextBoxColumn volume; + private System.Windows.Forms.DataGridViewTextBoxColumn copy; + private System.Windows.Forms.DataGridViewTextBoxColumn prefix; + private System.Windows.Forms.DataGridViewTextBoxColumn gu; + private System.Windows.Forms.DataGridViewTextBoxColumn ISBN; + private System.Windows.Forms.DataGridViewTextBoxColumn book_name; + private System.Windows.Forms.DataGridViewTextBoxColumn s_book_name1; + private System.Windows.Forms.DataGridViewTextBoxColumn s_book_num1; + private System.Windows.Forms.DataGridViewTextBoxColumn s_book_name2; + private System.Windows.Forms.DataGridViewTextBoxColumn s_book_num2; + private System.Windows.Forms.DataGridViewTextBoxColumn author; + private System.Windows.Forms.DataGridViewTextBoxColumn book_comp; + private System.Windows.Forms.DataGridViewTextBoxColumn price; + private System.Windows.Forms.DataGridViewTextBoxColumn midx; + private System.Windows.Forms.DataGridViewTextBoxColumn marc; + private System.Windows.Forms.DataGridViewTextBoxColumn search_tag; + private System.Windows.Forms.DataGridViewCheckBoxColumn colCheck; private System.Windows.Forms.DataGridViewTextBoxColumn WorkCopy; private System.Windows.Forms.DataGridViewTextBoxColumn WorkFix; } diff --git a/unimarc/unimarc/마크/Marc_Plan.cs b/unimarc/unimarc/마크/Marc_Plan.cs index 2d9ca2b..6a58c77 100644 --- a/unimarc/unimarc/마크/Marc_Plan.cs +++ b/unimarc/unimarc/마크/Marc_Plan.cs @@ -1,4 +1,5 @@ -using System; +using ExcelTest; +using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; @@ -65,6 +66,7 @@ namespace WindowsFormsApp1.Mac } #region SelectList_Sub + public void mk_Grid(string ListName, string date, string[] Grid) { btn_Select_List.Text = ListName; @@ -74,7 +76,10 @@ namespace WindowsFormsApp1.Mac string Table = "Specs_Marc"; String_Text st = new String_Text(); + + // L V C F A B string[] GetTag = { "049v", "049c", "049f" }; + string[] GetTag2 = { "090a", "090b" }; // idx // 연번 등록번호 분류기호 저자기호 V(049v,볼륨) // C(049c,복본) F(049f,별치) 구분(이용자) ISBN 도서명 @@ -116,10 +121,29 @@ namespace WindowsFormsApp1.Mac if (a % 16 == 13) Grid[17] = ary[a]; // price if (a % 16 == 14) Grid[18] = ary[a]; // midx if (a % 16 == 15) { Grid[19] = ary[a]; // marc + string[] vcf = st.Take_Tag(ary[a], GetTag); Grid[5] = vcf[0]; Grid[6] = vcf[1]; Grid[7] = vcf[2]; + + string[] ab = st.Take_Tag(ary[a], GetTag2); + if (ab[0] != "") + Grid[19] = Grid[19].Replace(ab[0], Grid[3]); + if (ab[1] != "") + Grid[19] = Grid[19].Replace(ab[1], Grid[4]); + + vcf = new string[] { "", "", "" }; + vcf[0] = string.Format("▼a{0}", Grid[3]); + vcf[1] = string.Format("▼b{0}", Grid[4]); + if (Grid[5] != "") + vcf[2] = string.Format("▼c{0}", Grid[5]); + string AddTag = string.Format("090\t \t{0}{1}{2}▲", vcf[0], vcf[1], vcf[2]); + string TypeView = ConvertMarcType(Grid[19]); + Grid[19] = st.made_Ori_marc(AddTagInMarc(AddTag, TypeView)); + + + dataGridView1.Rows.Add(Grid); } } @@ -472,7 +496,63 @@ namespace WindowsFormsApp1.Mac private void btn_Output_Click(object sender, EventArgs e) { String_Text st = new String_Text(); - Set_Macro sm = new Set_Macro(); + string Marc_data = string.Empty; + + string FileEncodingType = ""; + + switch (cb_EncodingType.SelectedIndex) + { + case 0: FileEncodingType = "ANSI"; break; + case 1: FileEncodingType = "UTF-8"; break; + case 2: FileEncodingType = "UniCode"; break; + default: break; + } + + for (int a = 0; a < dataGridView1.Rows.Count; a++) + { + if (dataGridView1.Rows[a].Cells["marc"].Value.ToString() == "" && + dataGridView1.Rows[a].Cells["marc"].Value == null) + continue; + + if (dataGridView1.Rows[a].Cells["colCheck"].Value.ToString() != "T") + continue; + + string marc = dataGridView1.Rows[a].Cells["Marc"].Value.ToString().Replace("₩", "\\"); + marc = st.ConvertMarcType(marc); + marc = st.made_Ori_marc(marc, FileEncodingType); + + Marc_data += marc; + } + + string FileName; + SaveFileDialog saveFileDialog = new SaveFileDialog(); + saveFileDialog.Title = "저장 경로를 지정하세요."; + saveFileDialog.OverwritePrompt = true; + saveFileDialog.Filter = "마크 파일 (*.mrc)|*.mrc|모든 파일 (*.*)|*.*"; + + if (saveFileDialog.ShowDialog() == DialogResult.OK) + { + if (FileEncodingType == "ANSI") { + FileName = saveFileDialog.FileName; + File.WriteAllText(FileName, Marc_data, Encoding.Default); + } + else if (FileEncodingType == "UTF-8") { + FileName = saveFileDialog.FileName; + File.WriteAllText(FileName, Marc_data, Encoding.UTF8); + } + else if (FileEncodingType == "UniCode") { + FileName = saveFileDialog.FileName; + File.WriteAllText(FileName, Marc_data, Encoding.Unicode); + } + } + MessageBox.Show("반출되었습니다!"); + + } + + private void btn_ApplyMacro_Click(object sender, EventArgs e) + { + Set_Macro sm = new Set_Macro(this, dataGridView1); + String_Text st = new String_Text(); string FileEncodingType = ""; @@ -501,7 +581,7 @@ namespace WindowsFormsApp1.Mac } sm.ViewMarcArray = MarcArray; - sm.FileType = FileEncodingType; + // sm.FileType = FileEncodingType; sm.Show(); } @@ -554,6 +634,9 @@ namespace WindowsFormsApp1.Mac private void dataGridView1_CellValueChanged(object sender, DataGridViewCellEventArgs e) { + String_Text st = new String_Text(); + + int row = e.RowIndex; int col = dataGridView1.CurrentCell.ColumnIndex; @@ -567,8 +650,9 @@ namespace WindowsFormsApp1.Mac } string Marc = dataGridView1.Rows[row].Cells["marc"].Value.ToString(); + string TypeView = ConvertMarcType(Marc); + string AddTag; - string AddTag = ""; if (col == 2 || col == 5 || col == 6 || col == 7) { string L = dataGridView1.Rows[row].Cells[2].Value.ToString(); @@ -589,12 +673,14 @@ namespace WindowsFormsApp1.Mac F = string.Format("▼f{0}", F); AddTag = string.Format("049\t \t{0}{1}{2}{3}▲", L, V, C, F); + + TypeView = AddTagInMarc(AddTag, TypeView); } if (col == 3 || col == 4 || col == 5) { string A = dataGridView1.Rows[row].Cells[3].Value.ToString(); string B = dataGridView1.Rows[row].Cells[4].Value.ToString(); - string C = dataGridView1.Rows[row].Cells[5].Value.ToString(); + string V = dataGridView1.Rows[row].Cells[5].Value.ToString(); if (A != "") A = string.Format("▼a{0}", A); @@ -602,17 +688,14 @@ namespace WindowsFormsApp1.Mac if (B != "") B = string.Format("▼b{0}", B); - if (C != "") - C = string.Format("▼c{0}", C); + if (V != "") + V = string.Format("▼c{0}", V); - AddTag = string.Format("090\t \t{0}{1}{2}▲", A, B, C); + AddTag = string.Format("090\t \t{0}{1}{2}▲", A, B, V); + + TypeView = AddTagInMarc(AddTag, TypeView); } - string TypeView = ConvertMarcType(Marc); - - string AddMarc = AddTagInMarc(AddTag, TypeView); - - String_Text st = new String_Text(); - dataGridView1.Rows[row].Cells["marc"].Value = st.made_Ori_marc(AddMarc); + dataGridView1.Rows[row].Cells["marc"].Value = st.made_Ori_marc(TypeView); } } @@ -664,6 +747,12 @@ namespace WindowsFormsApp1.Mac return result; } + /// + /// 추가하고 싶은 태그를 뷰형태의 마크에 추가하는 함수. + /// + /// 추가할 태그 (태그명\t지시기호\t태그내용) + /// 뷰형태의 마크 + /// string AddTagInMarc(string Tag, string TypeView) { if (Tag.Length < 3) return ""; @@ -820,6 +909,9 @@ namespace WindowsFormsApp1.Mac List result = new List(); for (int a = 0; a < dataGridView1.Rows.Count; a++) { + if (dataGridView1.Rows[a].Cells["colCheck"].Value.ToString() != "T") + continue; + string classSymbol = dataGridView1.Rows[a].Cells["class_code"].Value.ToString(); string authorSymbol = dataGridView1.Rows[a].Cells["author_code"].Value.ToString(); string count = dataGridView1.Rows[a].Cells["copy"].Value.ToString(); @@ -895,5 +987,15 @@ namespace WindowsFormsApp1.Mac { tb_NumSize.Enabled = chk_Num.Checked; } + + private void dataGridView1_SortCompare(object sender, DataGridViewSortCompareEventArgs e) + { + if (e.Column.Name.Equals("num")) + { + int a = int.Parse(e.CellValue1.ToString()), b = int.Parse(e.CellValue2.ToString()); + e.SortResult = a.CompareTo(b); + e.Handled = true; + } + } } } diff --git a/unimarc/unimarc/마크/Marc_mkList.cs b/unimarc/unimarc/마크/Marc_mkList.cs index cbb9f92..f33c660 100644 --- a/unimarc/unimarc/마크/Marc_mkList.cs +++ b/unimarc/unimarc/마크/Marc_mkList.cs @@ -154,6 +154,7 @@ namespace UniMarc.마크 // 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] = marc.List_Book.Rows[row[a]].Cells["db_marc"].Value.ToString(); insert_marc_data[15] = marc.List_Book.Rows[row[a]].Cells["url"].Value.ToString(); insert_marc_data[16] = marc.List_Book.Rows[row[a]].Cells["count"].Value.ToString(); @@ -177,11 +178,26 @@ namespace UniMarc.마크 //UPDATE: [22.09.20 추가] 245d에 [외]가 있는 경우 저자가 아닌 출판사로 저자기호 생성 if (Author_res[3].IndexOf("[외]") > -1) Author[0] = Marc[5]; + string tmp_ViewMarc = st.ConvertMarcType(insert_marc_data[14]); + + // 마크에서 추출한 데이터 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; + } } + // 마크 분류기호 설정값대로 적용 + 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; diff --git a/unimarc/unimarc/마크/Set_Macro.Designer.cs b/unimarc/unimarc/마크/Set_Macro.Designer.cs index 6fbd9d2..8c716be 100644 --- a/unimarc/unimarc/마크/Set_Macro.Designer.cs +++ b/unimarc/unimarc/마크/Set_Macro.Designer.cs @@ -28,11 +28,11 @@ /// private void InitializeComponent() { - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle(); - System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle2 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle(); + System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle4 = new System.Windows.Forms.DataGridViewCellStyle(); this.panel1 = new System.Windows.Forms.Panel(); this.cb_EncodingType = new System.Windows.Forms.ComboBox(); - this.btn_MakeFile = new System.Windows.Forms.Button(); + this.btn_ApplyMacro = new System.Windows.Forms.Button(); this.cb_SearchList = new System.Windows.Forms.ComboBox(); this.btn_ListRemove = new System.Windows.Forms.Button(); this.btn_ListSave = new System.Windows.Forms.Button(); @@ -40,11 +40,11 @@ this.btn_Close = new System.Windows.Forms.Button(); this.label1 = new System.Windows.Forms.Label(); this.MacroGrid = new System.Windows.Forms.DataGridView(); - this.panel3 = new System.Windows.Forms.Panel(); this.idx = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.TagNum = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Macro = new System.Windows.Forms.DataGridViewTextBoxColumn(); this.Check = new System.Windows.Forms.DataGridViewCheckBoxColumn(); + this.panel3 = new System.Windows.Forms.Panel(); this.panel1.SuspendLayout(); ((System.ComponentModel.ISupportInitialize)(this.MacroGrid)).BeginInit(); this.panel3.SuspendLayout(); @@ -54,7 +54,7 @@ // this.panel1.BackColor = System.Drawing.SystemColors.AppWorkspace; this.panel1.Controls.Add(this.cb_EncodingType); - this.panel1.Controls.Add(this.btn_MakeFile); + this.panel1.Controls.Add(this.btn_ApplyMacro); this.panel1.Controls.Add(this.cb_SearchList); this.panel1.Controls.Add(this.btn_ListRemove); this.panel1.Controls.Add(this.btn_ListSave); @@ -80,15 +80,15 @@ this.cb_EncodingType.Size = new System.Drawing.Size(81, 20); this.cb_EncodingType.TabIndex = 10; // - // btn_MakeFile + // btn_ApplyMacro // - this.btn_MakeFile.Location = new System.Drawing.Point(668, 6); - this.btn_MakeFile.Name = "btn_MakeFile"; - this.btn_MakeFile.Size = new System.Drawing.Size(75, 23); - this.btn_MakeFile.TabIndex = 5; - this.btn_MakeFile.Text = "마크 반출"; - this.btn_MakeFile.UseVisualStyleBackColor = true; - this.btn_MakeFile.Click += new System.EventHandler(this.btn_MakeFile_Click); + this.btn_ApplyMacro.Location = new System.Drawing.Point(668, 6); + this.btn_ApplyMacro.Name = "btn_ApplyMacro"; + this.btn_ApplyMacro.Size = new System.Drawing.Size(78, 23); + this.btn_ApplyMacro.TabIndex = 5; + this.btn_ApplyMacro.Text = "매크로 적용"; + this.btn_ApplyMacro.UseVisualStyleBackColor = true; + this.btn_ApplyMacro.Click += new System.EventHandler(this.btn_ApplyMacro_Click); // // cb_SearchList // @@ -153,14 +153,14 @@ // this.MacroGrid.AllowUserToAddRows = false; this.MacroGrid.AllowUserToDeleteRows = false; - dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control; - dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); - dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText; - dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight; - dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText; - dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True; - this.MacroGrid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1; + dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control; + dataGridViewCellStyle3.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); + dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText; + dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight; + dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText; + dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True; + this.MacroGrid.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3; this.MacroGrid.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize; this.MacroGrid.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] { this.idx, @@ -176,15 +176,6 @@ this.MacroGrid.TabIndex = 0; this.MacroGrid.CellClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.MacroGrid_CellClick); // - // panel3 - // - this.panel3.Controls.Add(this.MacroGrid); - this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; - this.panel3.Location = new System.Drawing.Point(0, 35); - this.panel3.Name = "panel3"; - this.panel3.Size = new System.Drawing.Size(900, 572); - this.panel3.TabIndex = 3; - // // idx // this.idx.HeaderText = "idx"; @@ -195,8 +186,8 @@ // // TagNum // - dataGridViewCellStyle2.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; - this.TagNum.DefaultCellStyle = dataGridViewCellStyle2; + dataGridViewCellStyle4.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter; + this.TagNum.DefaultCellStyle = dataGridViewCellStyle4; this.TagNum.HeaderText = "태그번호"; this.TagNum.Name = "TagNum"; this.TagNum.ReadOnly = true; @@ -217,6 +208,15 @@ this.Check.TrueValue = "T"; this.Check.Width = 40; // + // panel3 + // + this.panel3.Controls.Add(this.MacroGrid); + this.panel3.Dock = System.Windows.Forms.DockStyle.Fill; + this.panel3.Location = new System.Drawing.Point(0, 35); + this.panel3.Name = "panel3"; + this.panel3.Size = new System.Drawing.Size(900, 572); + this.panel3.TabIndex = 3; + // // Set_Macro // this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); @@ -247,7 +247,7 @@ private System.Windows.Forms.Button btn_ListRemove; private System.Windows.Forms.DataGridViewCheckBoxColumn Save_Check; private System.Windows.Forms.ComboBox cb_SearchList; - private System.Windows.Forms.Button btn_MakeFile; + private System.Windows.Forms.Button btn_ApplyMacro; private System.Windows.Forms.ComboBox cb_EncodingType; private System.Windows.Forms.DataGridViewTextBoxColumn idx; private System.Windows.Forms.DataGridViewTextBoxColumn TagNum; diff --git a/unimarc/unimarc/마크/Set_Macro.cs b/unimarc/unimarc/마크/Set_Macro.cs index e4e940c..4315516 100644 --- a/unimarc/unimarc/마크/Set_Macro.cs +++ b/unimarc/unimarc/마크/Set_Macro.cs @@ -16,8 +16,10 @@ namespace WindowsFormsApp1.Mac public partial class Set_Macro : Form { Main main; + Marc_Plan mp; Helper_DB db = new Helper_DB(); Macro_Gudu gudu = new Macro_Gudu(); + DataGridView TargetGrid; string compidx = UniMarc.Properties.Settings.Default.compidx; public string[] ViewMarcArray { get; set; } public string FileType { get; set; } @@ -28,6 +30,13 @@ namespace WindowsFormsApp1.Mac main = _main; } + public Set_Macro(Marc_Plan _mp, DataGridView mpGrid) + { + InitializeComponent(); + mp = _mp; + TargetGrid = mpGrid; + } + public Set_Macro() { InitializeComponent(); @@ -87,8 +96,32 @@ namespace WindowsFormsApp1.Mac } } - private void btn_MakeFile_Click(object sender, EventArgs e) + private void btn_ApplyMacro_Click(object sender, EventArgs e) { + Macro_Gudu macro = new Macro_Gudu(); + List idxArray = new List(); + + for (int a = 0; a < MacroGrid.Rows.Count; a++) + { + if (MacroGrid.Rows[a].Cells["Check"].Value.ToString().Contains("T")) + idxArray.Add(MacroGrid.Rows[a].Cells["idx"].Value.ToString()); + } + + int count = 0; + for (int a = 0; a < TargetGrid.Rows.Count; a++) + { + if (TargetGrid.Rows[a].Cells["marc"].Value.ToString() == "" && + TargetGrid.Rows[a].Cells["marc"].Value == null) + continue; + + if (TargetGrid.Rows[a].Cells["colCheck"].Value.ToString() != "T") + continue; + + TargetGrid.Rows[a].Cells["marc"].Value = macro.MacroMarc(ViewMarcArray[count], idxArray); + count++; + } + MessageBox.Show("적용되었습니다!"); + /* Macro_Gudu macro = new Macro_Gudu(FileType); string Marc_data = ""; List idxArray = new List(); @@ -132,6 +165,7 @@ namespace WindowsFormsApp1.Mac } MessageBox.Show("반출되었습니다!"); + */ } private void btn_AddList_Click(object sender, EventArgs e) @@ -143,15 +177,22 @@ namespace WindowsFormsApp1.Mac { string user = UniMarc.Properties.Settings.Default.User; string compidx = UniMarc.Properties.Settings.Default.compidx; + string MacroIndex = ""; + for (int a = 0; a < MacroGrid.Rows.Count; a++) + { + if (MacroGrid.Rows[a].Cells["Check"].Value.ToString() == "T") + MacroIndex += MacroGrid.Rows[a].Cells["idx"].Value.ToString() + "^"; + } + MacroIndex.TrimEnd('^'); string Table = "Comp_SaveMacro"; - if (db.DB_Send_CMD_Search(string.Format("SELECT * FROM {0} WHERE \"compidx\" = {1} AND \"{2}\" = \"{3}\"", Table, compidx, "listname", value)).Length > 2) + if (db.DB_Send_CMD_Search(string.Format("SELECT * FROM {0} WHERE `compidx` = \"{1}\" AND `{2}` = \"{3}\"", Table, compidx, "listname", value)).Length > 2) { MessageBox.Show("중복된 목록명이 있습니다!"); return; } - string[] Insert_Tbl = { "compidx", "listname", "user" }; - string[] Insert_Col = { compidx, value, user }; + string[] Insert_Tbl = { "compidx", "listname", "user", "Macroidx" }; + string[] Insert_Col = { compidx, value, user, MacroIndex }; string cmd = db.DB_INSERT(Table, Insert_Tbl, Insert_Col); db.DB_Send_CMD_reVoid(cmd); @@ -166,13 +207,14 @@ namespace WindowsFormsApp1.Mac string listname = cb_SearchList.Text; for (int a = 0; a < MacroGrid.Rows.Count; a++) { - MacroIndex += MacroGrid.Rows[a].Cells["idx"].Value.ToString() + "^"; + if (MacroGrid.Rows[a].Cells["Check"].Value.ToString() == "T") + MacroIndex += MacroGrid.Rows[a].Cells["idx"].Value.ToString() + "^"; } MacroIndex.TrimEnd('^'); string Table = "Comp_SaveMacro"; string[] Search_T = { "compidx", "listname" }; - string[] Search_C = { compidx, listname }; + string[] Search_C = { compidx , listname }; if (db.DB_Send_CMD_Search(db.More_DB_Search(Table, Search_T, Search_C)).Length < 2) {