=====* UniMarc [0.0115] 버전관리 시작 *=====

1. 소장자료검색에서 더블클릭시 마크편집폼으로 전환

2. 마크편집에서 [저장시각, 작성자, 비고, 등급] 추가로 표시

3. 복본조사 - 특수문자, 괄호안의 문자 제거기능 추가

4. 저자기호 일괄전환 추가

5. 마크목록생성 - 수량분리기능 추가.
This commit is contained in:
SeungHo Yang
2022-01-18 17:24:47 +09:00
parent 44259a1148
commit ed81f7d1d3
31 changed files with 1478 additions and 545 deletions

View File

@@ -17,9 +17,11 @@ namespace UniMarc.마크
{
string idx;
public int row;
public string UserName = "";
Marc_Plan mp;
Helper_DB db = new Helper_DB();
String_Text st = new String_Text();
Search_Infor si;
Help008Tag tag008 = new Help008Tag();
public Marc_Plan_Sub_MarcEdit(Marc_Plan _mp)
{
@@ -27,38 +29,19 @@ namespace UniMarc.마크
mp = _mp;
db.DBcon();
}
public Marc_Plan_Sub_MarcEdit(Search_Infor _si)
{
InitializeComponent();
si = _si;
db.DBcon();
}
/// <summary>
/// 시작전 세팅작업. 필요한 데이터들을 각각의 박스들에 집어넣음.
/// </summary>
/// <param name="Marc">0:Marc 1:MarcIdx 2:연번 3:idx 4:ISBN</param>
/// <param name="Symbol_Type">저자기호 배열
/// 0:FirstAuthor 1:authorType 2:FirstBook 3:divType 4:divNum </param>
public void Init(string[] Marc, string[] Symbol_Type)
public void Init(string[] Marc)
{
#region
AuthorSymbol.Symbol sb = new AuthorSymbol.Symbol();
cb_FirstAuthor.Items.AddRange(sb.authorBook);
cb_authorType.Items.AddRange(sb.authorType);
cb_FirstBook.Items.AddRange(sb.authorFirst);
cb_FirstAuthor.SelectedItem = Symbol_Type[0];
cb_authorType.SelectedItem = Symbol_Type[1];
cb_FirstBook.SelectedItem = Symbol_Type[2];
#endregion
#region
string[] divType = { "KDC", "DDC" };
cb_divType.Items.AddRange(divType);
string[] divNum = { "4", "5", "6" };
cb_divNum.Items.AddRange(divNum);
cb_divType.SelectedItem = Symbol_Type[3];
cb_divNum.SelectedItem = Symbol_Type[4];
#endregion
// 이용자 9
comboBox1.Items.AddRange(tag008.combo1);
@@ -86,9 +69,66 @@ namespace UniMarc.마크
tb_Mcode.Text = Marc[1];
tb_num.Text = Marc[2];
idx = Marc[3];
input_picture(Marc[4]);
SetEditData();
}
public void SetEditData()
{
if (mp != null)
{
string cmd = string.Format("SELECT `user`, `editDate` FROM `Specs_Marc` WHERE `idx` = \"{0}\"", idx);
string res = db.DB_Send_CMD_Search(cmd);
string[] aryResultData = res.Split('|');
if (aryResultData.Length > 1)
lbl_SaveData.Text = string.Format("[{0}] [{1}]", aryResultData[0], aryResultData[1]);
}
else if (si != null)
{
string cmd = string.Format("SELECT `user`, `date` FROM `Marc` WHERE `idx` = \"{0}\"", tb_Mcode.Text);
string res = db.DB_Send_CMD_Search(cmd);
string[] aryResultData = res.Split('|');
if (aryResultData.Length > 1)
lbl_SaveData.Text = string.Format("[{0}] [{1}]", aryResultData[0], aryResultData[1]);
}
}
/// <summary>
/// 시작전 저자기호 세팅작업. 필요한 데이터들을 각각의 박스들에 집어넣음.
/// </summary>
/// <param name="Symbol_Type">저자기호 배열
/// 0:FirstAuthor 1:authorType 2:FirstBook 3:divType 4:divNum </param>
public void SetSymbolType(string[] Symbol_Type)
{
#region
AuthorSymbol.Symbol sb = new AuthorSymbol.Symbol();
cb_FirstAuthor.Items.AddRange(sb.authorBook);
cb_authorType.Items.AddRange(sb.authorType);
cb_FirstBook.Items.AddRange(sb.authorFirst);
cb_FirstAuthor.SelectedItem = Symbol_Type[0];
cb_authorType.SelectedItem = Symbol_Type[1];
cb_FirstBook.SelectedItem = Symbol_Type[2];
#endregion
#region
string[] divType = { "KDC", "DDC" };
cb_divType.Items.AddRange(divType);
string[] divNum = { "4", "5", "6" };
cb_divNum.Items.AddRange(divNum);
cb_divType.SelectedItem = Symbol_Type[3];
cb_divNum.SelectedItem = Symbol_Type[4];
#endregion
}
#region Init_Sub
void input_picture(string isbn)
{
@@ -339,6 +379,16 @@ namespace UniMarc.마크
{
string oriMarc = st.made_Ori_marc(richTextBox1);
if (mp != null)
Save_mp(oriMarc);
if (si != null)
Save_si(oriMarc);
}
#region Save_Sub
private void Save_mp(string oriMarc)
{
// 등록번호 분류기호 저자기호 볼륨 복본
// 별치 총서명 총서번호 저자 출판사
// 정가 ISBN
@@ -380,7 +430,69 @@ namespace UniMarc.마크
mp.dataGridView1.Rows[row].Cells["book_name"].Value = BookName;
mp.dataGridView1.Rows[row].Cells["marc"].Value = oriMarc;
}
#region Save_Sub
private void Save_si(string oriMarc)
{
string today = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string user = UserName;
string MarcIndex = tb_Mcode.Text;
string Table = "Marc";
string[] Search_Col = { "idx" };
string[] Search_data = { MarcIndex };
string[] Update_Col = { "marc", "marc_chk", "marc_chk2", "date", "user" };
string[] Update_data = { oriMarc, "1", "0", today, user };
string res = Sub_marc_chk(MarcIndex);
switch (res)
{
case "0":
Update_Col[0] = "marc1";
Update_Col[1] = "marc_chk1";
Update_Col[2] = "marc_chk";
break;
case "1":
Update_Col[0] = "marc2";
Update_Col[1] = "marc_chk2";
Update_Col[2] = "marc_chk1";
break;
case "2":
Update_Col[0] = "marc";
Update_Col[1] = "marc_chk";
Update_Col[2] = "marc_chk2";
break;
default:
break;
}
string Ucmd = db.More_Update(Table, Update_Col, Update_data, Search_Col, Search_data);
db.DB_Send_CMD_reVoid(Ucmd);
MessageBox.Show("저장되었습니다!");
si.dataGridView1.Rows[row].Cells["Marc"].Value = oriMarc;
si.dataGridView1.Rows[row].Cells["User"].Value = user;
si.dataGridView1.Rows[row].Cells["date"].Value = today;
}
private string Sub_marc_chk(string idx)
{
string Area = "`marc_chk`, `marc_chk1`, `marc_chk2`";
string cmd = db.DB_Select_Search(Area, "Marc", "idx", idx);
string db_res = db.DB_Send_CMD_Search(cmd);
string[] chk_ary = db_res.Split('|');
for (int a = 0; a < chk_ary.Length; a++)
{
if (chk_ary[a] == "1")
{
return a.ToString();
}
}
return "0";
}
/// <summary>
/// 추출해낸 태그값을 Grid에 적용
/// </summary>
@@ -447,7 +559,12 @@ namespace UniMarc.마크
private void btn_Front_Click(object sender, EventArgs e)
{
int mprow = mp.dataGridView1.Rows.Count;
int mprow = 0;
if (mp != null)
mprow = mp.dataGridView1.Rows.Count;
else if(si!=null)
mprow = si.dataGridView1.Rows.Count;
if (row < mprow - 1)
row++;
else
@@ -458,19 +575,43 @@ namespace UniMarc.마크
#region btn_FrontAndBack_Sub
private void Btn_FrontAndBack_Sub()
{
mp.dataGridView1.Rows[row].Selected = true;
if (mp != null)
FrontBack_mp();
else if (si != null)
FrontBack_si();
}
private void FrontBack_mp()
{
string[] marc = {
mp.dataGridView1.Rows[row].Cells["marc"].Value.ToString(),
mp.dataGridView1.Rows[row].Cells["midx"].Value.ToString(),
mp.dataGridView1.Rows[row].Cells["num"].Value.ToString(),
mp.dataGridView1.Rows[row].Cells["idx"].Value.ToString()
mp.dataGridView1.Rows[row].Cells["idx"].Value.ToString(),
mp.dataGridView1.Rows[row].Cells["ISBN"].Value.ToString()
};
string[] Symbol_Type = {
cb_FirstAuthor.Text, cb_authorType.Text, cb_FirstBook.Text, cb_divType.Text, cb_divNum.Text
};
Init(marc, Symbol_Type);
Init(marc);
SetSymbolType(Symbol_Type);
}
private void FrontBack_si()
{
string[] Marc = {
si.dataGridView1.Rows[row].Cells["Marc"].Value.ToString(),
si.dataGridView1.Rows[row].Cells["idx"].Value.ToString(),
"",
"",
si.dataGridView1.Rows[row].Cells["ISBN"].Value.ToString()
};
Init(Marc);
}
#endregion
private void Marc_Plan_Sub_MarcEdit_Load(object sender, EventArgs e)