=====* UniMarc [0.0148] 버전 업데이트 내용 *===== (아직 업데이트 되지않음)

** ERP 작업 전면 중단 (마크우선) **

1. 마크 정리
ㄴ> 검색태그 수정 및 추가 기능 추가.
 ㄴ> 태그가 존재하나, 식별기호가 존재하지 않는 경우를 아직 구현하지 못함.
This commit is contained in:
SeungHo Yang
2022-05-25 18:52:34 +09:00
parent adefacec6a
commit 4fdec12500
13 changed files with 144 additions and 25 deletions

Binary file not shown.

View File

@@ -42,6 +42,9 @@
this.label1 = new System.Windows.Forms.Label();
this.panel2 = new System.Windows.Forms.Panel();
this.dataGridView1 = new System.Windows.Forms.DataGridView();
this.book_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.book_comp = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Count = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.webBrowser1 = new System.Windows.Forms.WebBrowser();
this.btn_ApplyFilter = new System.Windows.Forms.Button();
this.panel3 = new System.Windows.Forms.Panel();
@@ -53,9 +56,6 @@
this.btn_OpenMemo = new System.Windows.Forms.Button();
this.chk_spChar = new System.Windows.Forms.CheckBox();
this.panel5 = new System.Windows.Forms.Panel();
this.book_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.book_comp = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Count = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.panel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.SearchCount)).BeginInit();
this.panel2.SuspendLayout();
@@ -224,6 +224,27 @@
this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown);
//
// book_name
//
this.book_name.HeaderText = "도서명(총서명)";
this.book_name.Name = "book_name";
this.book_name.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.book_name.Width = 350;
//
// book_comp
//
this.book_comp.HeaderText = "출판사";
this.book_comp.Name = "book_comp";
this.book_comp.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.book_comp.Width = 150;
//
// Count
//
this.Count.HeaderText = "검색 수";
this.Count.Name = "Count";
this.Count.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Count.Width = 70;
//
// webBrowser1
//
this.webBrowser1.Dock = System.Windows.Forms.DockStyle.Fill;
@@ -343,27 +364,6 @@
this.panel5.Size = new System.Drawing.Size(673, 738);
this.panel5.TabIndex = 4;
//
// book_name
//
this.book_name.HeaderText = "도서명(총서명)";
this.book_name.Name = "book_name";
this.book_name.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.book_name.Width = 350;
//
// book_comp
//
this.book_comp.HeaderText = "출판사";
this.book_comp.Name = "book_comp";
this.book_comp.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.book_comp.Width = 150;
//
// Count
//
this.Count.HeaderText = "검색 수";
this.Count.Name = "Count";
this.Count.SortMode = System.Windows.Forms.DataGridViewColumnSortMode.NotSortable;
this.Count.Width = 70;
//
// Check_copy
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);

View File

@@ -877,6 +877,7 @@ namespace WindowsFormsApp1.Mac
private void btn_Stop_Click(object sender, EventArgs e)
{
webBrowser1.Stop();
webBrowser1.DocumentCompleted -= this.webBrowser1_DocumentCompleted;
}
#region

View File

@@ -197,7 +197,7 @@
//
// btn_Close
//
this.btn_Close.Location = new System.Drawing.Point(903, 6);
this.btn_Close.Location = new System.Drawing.Point(919, 6);
this.btn_Close.Name = "btn_Close";
this.btn_Close.Size = new System.Drawing.Size(86, 23);
this.btn_Close.TabIndex = 5;

View File

@@ -217,6 +217,7 @@ namespace WindowsFormsApp1.Mac
}
}
#region SearchTag_KeyDown_Sub
List<string> BackUpTag = new List<string>();
private void Search_Tag()
{
@@ -237,9 +238,68 @@ namespace WindowsFormsApp1.Mac
private void btn_ChangeTag_Click(object sender, EventArgs e)
{
string msg = string.Format("『{0}』 태그를 변경하시겠습니까?", tb_SearchTag.Text);
// 아니오 선택시 아래코드 실행되지않음.
if (MessageBox.Show(msg, "태그변경", MessageBoxButtons.YesNo) == DialogResult.No) return;
if (tb_SearchTag.Text.Length <= 3)
{
MessageBox.Show("변경할 태그 검색을 양식에 맞춰주세요. ex) 245a");
return;
}
string TagNum = tb_SearchTag.Text.Substring(0, 3);
int ConvertTag = Convert.ToInt32(TagNum);
string TagName = tb_SearchTag.Text.Substring(tb_SearchTag.Text.Length - 1);
for (int a = 0; a < dataGridView1.Rows.Count; a++)
{
string Content = dataGridView1.Rows[a].Cells["search_tag"].Value.ToString();
if (Content == "") continue;
string marc = dataGridView1.Rows[a].Cells["marc"].Value.ToString();
string viewMarc = split_Marc(marc);
string MakeMarcLine = string.Format("{0}\t \t▼{1}{2}▲", TagNum, TagName, Content);
List<string> AryMarc = new List<string>(viewMarc.Split('\n'));
int index = 0;
foreach (string LineMarc in AryMarc)
{
int TagInt = Convert.ToInt32(LineMarc.Substring(0, 3));
// 해당 마크가 존재하는 태그일 경우
if (ConvertTag == TagInt)
{
string oldTag = string.Format("▼{0}{1}", TagName, BackUpTag[a]);
string newTag = string.Format("▼{0}{1}", TagName, Content);
// 해당 식별기호가 존재할 경우
if (LineMarc.Contains(oldTag))
{
AryMarc[index] = LineMarc.Replace(oldTag, newTag);
}
// 해당 식별기호가 존재하지 않을 경우
else
{
}
}
// 해당 마크가 존재하지 않는 태그일 경우
else if (ConvertTag < TagInt)
{
AryMarc.Insert(index, MakeMarcLine);
break;
}
index++;
}
dataGridView1.Rows[a].Cells["marc"].Value = string.Join("\n", AryMarc);
}
#region
/*
for (int a = 0; a < dataGridView1.Rows.Count; a++)
{
string marc = dataGridView1.Rows[a].Cells["marc"].Value.ToString();
@@ -251,9 +311,67 @@ namespace WindowsFormsApp1.Mac
if (dataGridView1.Rows[a].Cells["colCheck"].Value.ToString() == "T")
dataGridView1.Rows[a].Cells["marc"].Value = marc.Replace(BackUpTag[a], changeTag);
}
*/
#endregion
MessageBox.Show("변경되었습니다!", "태그변경");
}
/// <summary>
/// 마크데이터가 있는지 확인하고 메모장으로 출력
/// </summary>
/// <param name="row">마크 데이터</param>
/// <returns></returns>
string split_Marc(string Marc_data)
{
if (Marc_data.Length < 3) return "";
string result = string.Empty;
List<string> TagNum = new List<string>(); // 태그번호
List<string> field = new List<string>(); // 가변길이필드 저장
// 특수기호 육안으로 확인하기 쉽게 변환
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 (TagNum[a] == "008")
{
//text008.Text = field[a].Replace("▲", "");
continue;
}
else { }
if (field[a].IndexOf("▼") == -1)
{
res += "\t \t" + field[a];
}
else
{
string temp = field[a].Insert(2, "\t");
res += "\t" + temp;
}
result += res + "\n";
}
return result;
}
private void btn_Save_Click(object sender, EventArgs e)
{
string table = "Specs_Marc";