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