마크정리화면에서 에디터통합 작업 중 일단 화면 open 성공

This commit is contained in:
2026-01-22 23:00:08 +09:00
parent d40ffda4fd
commit 0f0f745964
11 changed files with 374 additions and 103 deletions

View File

@@ -1,25 +1,25 @@
//using Microsoft.Office.Interop.Excel; //using Microsoft.Office.Interop.Excel;
namespace ExcelTest namespace ExcelTest
{ {
public class MacEditorParameter
{
public string ISBN13 { get; set; }
public string URL { get; set; }
public string MarcIdx { get; set; }
public string Grade { get; set; }
public string User { get; set; }
public string SaveDate { get; set; }
public string ListIdx { get; set; }
public string BookName { get; set; } public class MacEditorParameter
public string Author { get; set; } {
public string Publisher { get; set; } public string ISBN13 { get; set; }
public string Price { get; set; } public string URL { get; set; }
public string MarcIdx { get; set; }
public string Grade { get; set; }
public string User { get; set; }
public string SaveDate { get; set; }
public string ListIdx { get; set; }
public string BookName { get; set; }
public string Author { get; set; }
public string Publisher { get; set; }
public string Price { get; set; }
public string Remark1 { get; set; } public string Remark1 { get; set; }
public string Remark2 { get; set; } public string Remark2 { get; set; }
} }
} }

View File

@@ -982,10 +982,6 @@ namespace ExcelTest
comboBox9.Enabled = false; comboBox9.Enabled = false;
} }
private void marcEditorControl1_Load(object sender, EventArgs e)
{
}
private void button1_Click_1(object sender, EventArgs e) private void button1_Click_1(object sender, EventArgs e)
{ {

View File

@@ -593,7 +593,6 @@
this.marcEditorControl1.Name = "marcEditorControl1"; this.marcEditorControl1.Name = "marcEditorControl1";
this.marcEditorControl1.Size = new System.Drawing.Size(1083, 634); this.marcEditorControl1.Size = new System.Drawing.Size(1083, 634);
this.marcEditorControl1.TabIndex = 0; this.marcEditorControl1.TabIndex = 0;
this.marcEditorControl1.Load += new System.EventHandler(this.marcEditorControl1_Load);
// //
// panel3 // panel3
// //

View File

@@ -2377,7 +2377,6 @@
this.Font = new System.Drawing.Font("돋움", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129))); this.Font = new System.Drawing.Font("돋움", 10F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
this.Name = "MarcEditorControl"; this.Name = "MarcEditorControl";
this.Size = new System.Drawing.Size(1341, 878); this.Size = new System.Drawing.Size(1341, 878);
this.Load += new System.EventHandler(this.Marc_Load);
this.SizeChanged += new System.EventHandler(this.MarcEditorControl_SizeChanged); this.SizeChanged += new System.EventHandler(this.MarcEditorControl_SizeChanged);
this.panel3.ResumeLayout(false); this.panel3.ResumeLayout(false);
this.tabControl1.ResumeLayout(false); this.tabControl1.ResumeLayout(false);

View File

@@ -59,9 +59,10 @@ namespace ExcelTest
public MarcEditorControl() public MarcEditorControl()
{ {
InitializeComponent(); InitializeComponent();
Marc_Load();
} }
private void Marc_Load(object sender, EventArgs e) private void Marc_Load()
{ {
#region ComboBox Item Setting #region ComboBox Item Setting
// 이용자 9 // 이용자 9
@@ -109,11 +110,11 @@ namespace ExcelTest
/// <param name="user"></param> /// <param name="user"></param>
/// <param name="saveDate"></param> /// <param name="saveDate"></param>
/// <param name="listIdx"></param> /// <param name="listIdx"></param>
public void LoadBookData(string dbMarc,MacEditorParameter _param) public void LoadBookData(string dbMarc, MacEditorParameter _param)
{ {
mLoadCompleted = false; mLoadCompleted = false;
Param = _param; Param = _param;
lbl_SaveData.Text = $"[{Param.User}] [{Param.SaveDate}]"; lbl_SaveData.Text = $"[{Param.User}] [{Param.SaveDate}]";
lbl_ISBN.Text = $"[{Param.ISBN13}]"; lbl_ISBN.Text = $"[{Param.ISBN13}]";
@@ -138,6 +139,10 @@ namespace ExcelTest
pictureBox1.Tag = _param.URL; pictureBox1.Tag = _param.URL;
} }
//그레이드값이 없다면 비활성화.
cb_grade.Enabled = Param.Grade != null;
label6.Enabled = cb_grade.Enabled;
richTextBox1.Text = ""; richTextBox1.Text = "";
@@ -146,14 +151,14 @@ namespace ExcelTest
if (!check_Marc) if (!check_Marc)
{ {
richTextBox1.Text = Make_Empty(); richTextBox1.Text = Make_Empty();
} }
else else
{ {
etc1.Text = Param.Remark1; etc1.Text = Param.Remark1;
etc2.Text = Param.Remark2; etc2.Text = Param.Remark2;
//ReadRemark(); //ReadRemark();
} }
Create_008(); Create_008();
st.Color_change("▼", richTextBox1); st.Color_change("▼", richTextBox1);
@@ -295,7 +300,7 @@ namespace ExcelTest
return; return;
} }
int TabIndex = tabControl1.SelectedIndex; int TabIndex = tabControl1.SelectedIndex;
if (TabIndex == 1) if (TabIndex == 1)
{ {
MessageBox.Show("[칸채우기]가 아닌 [마크 편집] 탭에서 저장해주세요!"); MessageBox.Show("[칸채우기]가 아닌 [마크 편집] 탭에서 저장해주세요!");
@@ -323,7 +328,7 @@ namespace ExcelTest
string tag056 = Tag056(); string tag056 = Tag056();
string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); string date = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
string orimarc = st.made_Ori_marc(richTextBox1).Replace(@"\", "₩"); string orimarc = st.made_Ori_marc(richTextBox1).Replace(@"\", "₩");
// 필수태그 확인 // 필수태그 확인
if (!isMustTag(orimarc)) if (!isMustTag(orimarc))
{ {
@@ -347,7 +352,7 @@ namespace ExcelTest
#region Save_Click_Sub #region Save_Click_Sub
/// <summary> /// <summary>
/// 마크 오류체크 (형식체크) /// 마크 오류체크 (형식체크)
/// </summary> /// </summary>

View File

@@ -62,9 +62,24 @@ namespace WindowsFormsApp1.Mac
{ {
tb_ISBN.Text = ""; tb_ISBN.Text = "";
Marc_Plan_Sub_SelectList sub = new Marc_Plan_Sub_SelectList(this); Marc_Plan_Sub_SelectList sub = new Marc_Plan_Sub_SelectList();
sub.TopMost = true; sub.TopMost = true;
sub.Show(); if (sub.ShowDialog() == DialogResult.OK)
{
if (sub.ResultFileRows != null && sub.ResultFileRows.Count > 0)
{
this.dataGridView1.Rows.Clear();
foreach (var row in sub.ResultFileRows)
{
this.dataGridView1.Rows.Add(row);
}
}
else if (!string.IsNullOrEmpty(sub.ResultIdx))
{
mk_Grid(sub.ResultListName, sub.ResultDate);
mk_Panel(sub.ResultIdx, sub.ResultListName, sub.ResultDate);
}
}
dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged); dataGridView1.CellValueChanged += new DataGridViewCellEventHandler(dataGridView1_CellValueChanged);
} }
@@ -205,6 +220,47 @@ namespace WindowsFormsApp1.Mac
} }
} }
private (string marc, MacEditorParameter p) GetBookData(int row)
{
string bookName = dataGridView1.Rows[row].Cells["book_name"].Value.ToString();
string author = dataGridView1.Rows[row].Cells["author"].Value.ToString();
string publisher = dataGridView1.Rows[row].Cells["book_comp"].Value.ToString();
string price = dataGridView1.Rows[row].Cells["price"].Value.ToString();
string isbn = dataGridView1.Rows[row].Cells["ISBN"].Value.ToString();
string idx = dataGridView1.Rows[row].Cells["idx"].Value.ToString();
string midx = dataGridView1.Rows[row].Cells["midx"].Value.ToString();
string marc = dataGridView1.Rows[row].Cells["marc"].Value.ToString();
string cmd = string.Format("SELECT `user`, `editDate`, `etc1`, `etc2` FROM `Specs_Marc` WHERE `idx` = \"{0}\"", midx);
string res = db.DB_Send_CMD_Search(cmd);
string[] aryResultData = res.Split('|');
string remark1 = "";
string remark2 = "";
if (aryResultData.Length > 1) {
// lbl_SaveData.Text = string.Format("[{0}] [{1}]", aryResultData[0], aryResultData[1]);
remark1 = aryResultData[2];
remark2 = aryResultData[3];
}
var p = new MacEditorParameter
{
ISBN13 = isbn,
ListIdx = idx,
MarcIdx = midx,
SaveDate = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"), // temporary
User = main.botUserLabel.Text,
BookName = bookName,
Author = author,
Publisher = publisher,
Price = price,
Remark1 = remark1,
Remark2 = remark2,
Grade = null,
};
return (marc, p);
}
private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e) private void dataGridView1_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{ {
int row = e.RowIndex; int row = e.RowIndex;
@@ -214,20 +270,19 @@ namespace WindowsFormsApp1.Mac
if (dataGridView1.Rows[row].Cells[col].ReadOnly) if (dataGridView1.Rows[row].Cells[col].ReadOnly)
{ {
string[] Marc = {
dataGridView1.Rows[row].Cells["marc"].Value.ToString(),
dataGridView1.Rows[row].Cells["midx"].Value.ToString(),
dataGridView1.Rows[row].Cells["num"].Value.ToString(),
dataGridView1.Rows[row].Cells["idx"].Value.ToString(),
dataGridView1.Rows[row].Cells["ISBN"].Value.ToString()
};
string[] symbol_Type = {
cb_FirstAuthor.Text, cb_authorTypeK.Text, cb_authorTypeE.Text, cb_FirstBook.Text,
cb_divType.Text, cb_divNum.Text
};
if (chkEditorTest.Checked) if (chkEditorTest.Checked)
{ {
string[] Marc = {
dataGridView1.Rows[row].Cells["marc"].Value.ToString(),
dataGridView1.Rows[row].Cells["midx"].Value.ToString(),
dataGridView1.Rows[row].Cells["num"].Value.ToString(),
dataGridView1.Rows[row].Cells["idx"].Value.ToString(),
dataGridView1.Rows[row].Cells["ISBN"].Value.ToString()
};
string[] symbol_Type = {
cb_FirstAuthor.Text, cb_authorTypeK.Text, cb_authorTypeE.Text, cb_FirstBook.Text,
cb_divType.Text, cb_divNum.Text
};
Marc_Plan_Sub_MarcEdit me = new Marc_Plan_Sub_MarcEdit(this); Marc_Plan_Sub_MarcEdit me = new Marc_Plan_Sub_MarcEdit(this);
me.row = row; me.row = row;
me.UserName = main.botUserLabel.Text; me.UserName = main.botUserLabel.Text;
@@ -237,11 +292,81 @@ namespace WindowsFormsApp1.Mac
} }
else else
{ {
UTIL.MsgE("test version"); int currentEditorRow = row;
var f = new Marc_Plan_Sub_MarcEdit2("",""); string isbn = dataGridView1.Rows[row].Cells["ISBN"].Value.ToString();
string marcData = dataGridView1.Rows[row].Cells["marc"].Value.ToString();
var f = new Marc_Plan_Sub_MarcEdit2(isbn, marcData);
var data = GetBookData(currentEditorRow);
f.LoadBook(data.marc, data.p);
f.RequestNext += (s, args) =>
{
if (currentEditorRow < dataGridView1.RowCount - 1)
{
currentEditorRow++;
var nextData = GetBookData(currentEditorRow);
f.LoadBook(nextData.marc, nextData.p);
// Optional: Sync grid selection
dataGridView1.ClearSelection();
dataGridView1.Rows[currentEditorRow].Selected = true;
// Ensure visible
dataGridView1.FirstDisplayedScrollingRowIndex = currentEditorRow;
}
};
f.RequestPrev += (s, args) =>
{
if (currentEditorRow > 0)
{
currentEditorRow--;
var prevData = GetBookData(currentEditorRow);
f.LoadBook(prevData.marc, prevData.p);
// Optional: Sync grid selection
dataGridView1.ClearSelection();
dataGridView1.Rows[currentEditorRow].Selected = true;
// Ensure visible
dataGridView1.FirstDisplayedScrollingRowIndex = currentEditorRow;
}
};
f.BookUpdated += (s, args) =>
{
dataGridView1.Rows[currentEditorRow].Cells["book_name"].Value = args.BookName;
dataGridView1.Rows[currentEditorRow].Cells["marc"].Value = args.Marc;
};
f.RequestFillBlankData += (s, args) =>
{
var dataList = new List<string[]>();
string currentIsbn = dataGridView1.Rows[currentEditorRow].Cells["ISBN"].Value.ToString();
for (int a = 0; a < dataGridView1.Rows.Count; a++)
{
// Criteria for "Fill Blank" candidates.
// Original legacy logic used Red color. Here we check if db_marc (marc column) is empty or too short.
string mData = dataGridView1.Rows[a].Cells["marc"].Value?.ToString() ?? "";
if (mData.Length < 10) // Assuming usage of "Red" roughly equates to invalid/missing MARC
{
string[] rowData = {
a.ToString(),
dataGridView1.Rows[a].Cells["ISBN"].Value?.ToString() ?? "",
dataGridView1.Rows[a].Cells["book_name"].Value?.ToString() ?? "",
dataGridView1.Rows[a].Cells["author"].Value?.ToString() ?? "",
dataGridView1.Rows[a].Cells["book_comp"].Value?.ToString() ?? "",
dataGridView1.Rows[a].Cells["price"].Value?.ToString() ?? "", // 'pay' in Marc2 might be 'price' here? Checked GetBookData: yes, price.
""
};
dataList.Add(rowData);
}
}
f.OpenFillBlank(dataList, currentIsbn);
};
f.Show(); f.Show();
} }
} }
} }

View File

@@ -29,33 +29,20 @@ namespace UniMarc.마크
/// </summary> /// </summary>
private void InitializeComponent() private void InitializeComponent()
{ {
this.marcEditorControl1 = new ExcelTest.MarcEditorControl();
this.SuspendLayout(); this.SuspendLayout();
// //
// 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(1337, 768);
this.marcEditorControl1.TabIndex = 1;
//
// Marc_Plan_Sub_MarcEdit2 // Marc_Plan_Sub_MarcEdit2
// //
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F); this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font; this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
this.ClientSize = new System.Drawing.Size(1337, 768); this.ClientSize = new System.Drawing.Size(1337, 768);
this.Controls.Add(this.marcEditorControl1);
this.Name = "Marc_Plan_Sub_MarcEdit2"; this.Name = "Marc_Plan_Sub_MarcEdit2";
this.Text = "마크편집"; this.Text = "마크편집";
this.Load += new System.EventHandler(this.Marc_Plan_Sub_MarcEdit2_Load);
this.ResumeLayout(false); this.ResumeLayout(false);
} }
#endregion #endregion
public ExcelTest.MarcEditorControl marcEditorControl1;
} }
} }

View File

@@ -24,11 +24,148 @@ namespace UniMarc.마크
String_Text st = new String_Text(); String_Text st = new String_Text();
Search_Infor si; Search_Infor si;
Help008Tag tag008 = new Help008Tag(); Help008Tag tag008 = new Help008Tag();
MarcEditorControl marcEditorControl1;
public Marc_Plan_Sub_MarcEdit2(string isbn,string marcstring) public Marc_Plan_Sub_MarcEdit2(string isbn,string marcstring)
{ {
InitializeComponent(); InitializeComponent();
db.DBcon(); db.DBcon();
marcEditorControl1 = new MarcEditorControl();
marcEditorControl1.db = this.db;
marcEditorControl1.FillBlankClicked += MarcEditorControl_FillBlankClicked;
marcEditorControl1.BookSaved += MarcEditorControl_BookSaved;
marcEditorControl1.NextButton += MarcEditorControl1_NextButton;
marcEditorControl1.PrevButton += MarcEditorControl1_PrevButton;
marcEditorControl1.Dock = DockStyle.Fill;
this.StartPosition = FormStartPosition.CenterScreen;
this.Controls.Add(marcEditorControl1);
this.KeyPreview = true;
this.KeyDown += (s1, e1) => {
if(e1.KeyCode == Keys.Escape)
{
this.Close();
}
};
}
public event EventHandler RequestNext;
public event EventHandler RequestPrev;
public class BookUpdatedEventArgs : EventArgs
{
public string BookName { get; set; }
public string Marc { get; set; }
}
public event EventHandler RequestFillBlankData;
public void OpenFillBlank(List<string[]> gridData, string currentIsbn)
{
var fb = new UniMarc.Marc_FillBlank(this);
foreach (var rowData in gridData)
{
fb.InitFillBlank(rowData);
}
fb.ISBN = currentIsbn;
fb.Show();
}
private void MarcEditorControl_FillBlankClicked(object sender, EventArgs e)
{
RequestFillBlankData?.Invoke(this, EventArgs.Empty);
}
public event EventHandler<BookUpdatedEventArgs> BookUpdated;
private void MarcEditorControl_BookSaved(object sender, ExcelTest.MarcEditorControl.BookSavedEventArgs e)
{
// Update Specs_Marc table
string oriMarc = e.DBMarc;
string etc1 = e.griddata.Remark1 ?? "";
string etc2 = e.griddata.Remark2 ?? "";
string tag008 = e.text008;
// 등록번호 분류기호 저자기호 볼륨 복본
// 별치 총서명 총서번호 저자 출판사
// 정가 ISBN
string[] Search_Tag = {
"049l", "090a", "090b", "049v", "049c",
"049f", "440a", "440v", "245d", "260b",
"950b", "020a"
};
string[] SearchBookTag = st.Take_Tag(oriMarc, Search_Tag);
// 도서명 (본서명 = 대등서명 : 부서명)
string[] BookTag = { "245a", "245x", "245b" };
string[] BookNameTag = st.Take_Tag(oriMarc, BookTag);
string BookName = mk_BookName(BookNameTag);
string Table = "Specs_Marc";
string[] Search_Col = { "idx" };
// Current ListIdx (Wait, idx in Marc_Plan corresponds to ListIdx in Parameter?)
// In Marc_Plan: ListIdx = idx.
string listIdx = e.griddata.ListIdx;
string[] Search_data = { listIdx };
string[] Update_Col = {
"marc", "book_name", "etc1", "etc2",
"r_num", "class_symbol", "author_symbol", "prefix", "s_book_name1",
"s_book_num1", "author", "book_comp", "price", "ISBN", "tag008"
};
string[] Update_data = {
oriMarc, BookName, etc1, etc2,
SearchBookTag[0], SearchBookTag[1], SearchBookTag[2], SearchBookTag[5], SearchBookTag[6],
SearchBookTag[7], SearchBookTag[8], SearchBookTag[9], SearchBookTag[10], SearchBookTag[11], tag008
};
string cmd = db.More_Update(Table, Update_Col, Update_data, Search_Col, Search_data);
db.DB_Send_CMD_reVoid(cmd);
// Notify Parent
BookUpdated?.Invoke(this, new BookUpdatedEventArgs { BookName = BookName, Marc = oriMarc });
MessageBox.Show("저장되었습니다!");
}
private string mk_BookName(string[] book_name)
{
string a245 = book_name[0]; // 도서명
string x245 = book_name[1]; // 대동서명
string b245 = book_name[2]; // 부서명
string result = a245;
if (x245 != "")
result += " = " + x245;
if (b245 != "")
result += " : " + b245;
return result;
}
private void MarcEditorControl1_PrevButton(object sender, EventArgs e)
{
RequestPrev?.Invoke(this, EventArgs.Empty);
}
private void MarcEditorControl1_NextButton(object sender, EventArgs e)
{
RequestNext?.Invoke(this, EventArgs.Empty);
}
public void LoadBook(string dbMarc, MacEditorParameter p)
{
this.Text = $"마크편집({p.ISBN13})-{p.BookName}";
marcEditorControl1.LoadBookData(dbMarc, p);
}
private void Marc_Plan_Sub_MarcEdit2_Load(object sender, EventArgs e)
{
this.Show();
Application.DoEvents();
} }
} }
} }

View File

@@ -219,37 +219,37 @@ namespace UniMarc.마크
// //
// idx // idx
// //
this.idx.HeaderText = "idx";
this.idx.DataPropertyName = "Idx"; this.idx.DataPropertyName = "Idx";
this.idx.HeaderText = "idx";
this.idx.Name = "idx"; this.idx.Name = "idx";
this.idx.Visible = false; this.idx.Visible = false;
// //
// list_name // list_name
// //
this.list_name.HeaderText = "목록명";
this.list_name.DataPropertyName = "ListName"; this.list_name.DataPropertyName = "ListName";
this.list_name.HeaderText = "목록명";
this.list_name.Name = "list_name"; this.list_name.Name = "list_name";
this.list_name.Width = 500; this.list_name.Width = 500;
// //
// date // date
// //
this.date.HeaderText = "등록일시";
this.date.DataPropertyName = "Date"; this.date.DataPropertyName = "Date";
this.date.HeaderText = "등록일시";
this.date.Name = "date"; this.date.Name = "date";
this.date.Width = 130; this.date.Width = 130;
// //
// user // user
// //
this.user.HeaderText = "등록자";
this.user.DataPropertyName = "User"; this.user.DataPropertyName = "User";
this.user.HeaderText = "등록자";
this.user.Name = "user"; this.user.Name = "user";
this.user.Width = 80; this.user.Width = 80;
// //
// colCheck // colCheck
// //
this.colCheck.DataPropertyName = "ColCheck";
this.colCheck.FalseValue = "F"; this.colCheck.FalseValue = "F";
this.colCheck.HeaderText = "V"; this.colCheck.HeaderText = "V";
this.colCheck.DataPropertyName = "ColCheck";
this.colCheck.IndeterminateValue = "F"; this.colCheck.IndeterminateValue = "F";
this.colCheck.Name = "colCheck"; this.colCheck.Name = "colCheck";
this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True; this.colCheck.Resizable = System.Windows.Forms.DataGridViewTriState.True;
@@ -431,6 +431,7 @@ namespace UniMarc.마크
this.MaximizeBox = false; this.MaximizeBox = false;
this.MinimizeBox = false; this.MinimizeBox = false;
this.Name = "Marc_Plan_Sub_SelectList"; this.Name = "Marc_Plan_Sub_SelectList";
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen;
this.Text = "마크정리_목록선택"; this.Text = "마크정리_목록선택";
this.Load += new System.EventHandler(this.Marc_Plan_Sub_SelectList_Load); this.Load += new System.EventHandler(this.Marc_Plan_Sub_SelectList_Load);
this.panel1.ResumeLayout(false); this.panel1.ResumeLayout(false);

View File

@@ -16,11 +16,15 @@ namespace UniMarc.마크
{ {
Helper_DB db = new Helper_DB(); Helper_DB db = new Helper_DB();
string compidx; string compidx;
Marc_Plan mp;
public Marc_Plan_Sub_SelectList(Marc_Plan _mp) public string ResultIdx { get; private set; }
public string ResultListName { get; private set; }
public string ResultDate { get; private set; }
public List<string[]> ResultFileRows { get; private set; }
public Marc_Plan_Sub_SelectList()
{ {
InitializeComponent(); InitializeComponent();
mp = _mp;
compidx = Properties.Settings.Default.compidx; compidx = Properties.Settings.Default.compidx;
} }
@@ -75,12 +79,13 @@ namespace UniMarc.마크
{ {
List<MarcPlanItem> dataList = new List<MarcPlanItem>(); List<MarcPlanItem> dataList = new List<MarcPlanItem>();
string[] grid = { "", "", "", "", "F" }; string[] grid = { "", "", "", "", "F" };
for(int a = 0; a < ary.Length; a++) for (int a = 0; a < ary.Length; a++)
{ {
if (a % 4 == 0) grid[0] = ary[a]; if (a % 4 == 0) grid[0] = ary[a];
if (a % 4 == 1) grid[1] = ary[a]; if (a % 4 == 1) grid[1] = ary[a];
if (a % 4 == 2) grid[2] = ary[a]; if (a % 4 == 2) grid[2] = ary[a];
if (a % 4 == 3) { if (a % 4 == 3)
{
grid[3] = ary[a]; grid[3] = ary[a];
MarcPlanItem item = new MarcPlanItem MarcPlanItem item = new MarcPlanItem
@@ -106,7 +111,8 @@ namespace UniMarc.마크
string name = ((Button)sender).Text; string name = ((Button)sender).Text;
int[] CheckRow = CheckIndex(); int[] CheckRow = CheckIndex();
if (CheckRow.Length != 1) { if (CheckRow.Length != 1)
{
MessageBox.Show("처리할 목록 [1]개 선택하여 주세요."); MessageBox.Show("처리할 목록 [1]개 선택하여 주세요.");
return; return;
} }
@@ -116,7 +122,7 @@ namespace UniMarc.마크
string msg = string.Format("【{0}】을(를) {1} 하시겠습니까?", dataGridView1.Rows[row].Cells["list_name"].Value.ToString(), name); string msg = string.Format("【{0}】을(를) {1} 하시겠습니까?", dataGridView1.Rows[row].Cells["list_name"].Value.ToString(), name);
if (MessageBox.Show(msg, name, MessageBoxButtons.OKCancel) == DialogResult.Cancel) if (MessageBox.Show(msg, name, MessageBoxButtons.OKCancel) == DialogResult.Cancel)
return; return;
string[] search_col = { "idx", "work_list", "date" }; string[] search_col = { "idx", "work_list", "date" };
string[] update_col = { "state" }; string[] update_col = { "state" };
string[] search_data = { string[] search_data = {
@@ -140,7 +146,8 @@ namespace UniMarc.마크
{ {
int[] CheckRow = CheckIndex(); int[] CheckRow = CheckIndex();
if (CheckRow.Length != 1) { if (CheckRow.Length != 1)
{
MessageBox.Show("수정할 목록 [1]개 선택하여 주세요."); MessageBox.Show("수정할 목록 [1]개 선택하여 주세요.");
return; return;
} }
@@ -158,7 +165,8 @@ namespace UniMarc.마크
{ {
int[] CheckRow = CheckIndex(); int[] CheckRow = CheckIndex();
if (CheckRow.Length < 2) { if (CheckRow.Length < 2)
{
MessageBox.Show("병합할 목록 [2]개이상 선택하여 주세요."); MessageBox.Show("병합할 목록 [2]개이상 선택하여 주세요.");
return; return;
} }
@@ -186,7 +194,8 @@ namespace UniMarc.마크
{ {
int[] CheckRow = CheckIndex(); int[] CheckRow = CheckIndex();
if (CheckRow.Length != 1) { if (CheckRow.Length != 1)
{
MessageBox.Show("삭제할 목록 [1]개 선택하여 주세요."); MessageBox.Show("삭제할 목록 [1]개 선택하여 주세요.");
return; return;
} }
@@ -240,27 +249,29 @@ namespace UniMarc.마크
OpenFileDialog OpenFileDialog = new OpenFileDialog(); OpenFileDialog OpenFileDialog = new OpenFileDialog();
if (OpenFileDialog.ShowDialog() == DialogResult.OK) if (OpenFileDialog.ShowDialog() == DialogResult.OK)
{ {
mp.dataGridView1.Rows.Clear(); if (OpenFileDialog.ShowDialog() == DialogResult.OK)
string filePath = OpenFileDialog.FileName;
try
{ {
System.IO.StreamReader r = new System.IO.StreamReader(filePath, Encoding.Default); //mp.dataGridView1.Rows.Clear(); // Decoupled
InputGridByFileData(r.ReadToEnd()); string filePath = OpenFileDialog.FileName;
r.Close(); try
} {
catch (Exception ex) System.IO.StreamReader r = new System.IO.StreamReader(filePath, Encoding.Default);
{ InputGridByFileData(r.ReadToEnd());
MessageBox.Show(ex.ToString()); r.Close();
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
} }
} }
} }
#region OpenFileSub #region OpenFileSub
void InputGridByFileData(string text) void InputGridByFileData(string text)
{ {
String_Text st = new String_Text(); String_Text st = new String_Text();
string[] grid = text.Split(''); string[] grid = text.Split('');
for (int a = 0; a < grid.Length - 1; a++) for (int a = 0; a < grid.Length - 1; a++)
{ {
@@ -270,14 +281,15 @@ namespace UniMarc.마크
// ISBN, 도서명, 총서명1, 총서번호1, 총서명2, 총서번호2, 출판사, 정가, 저자 // ISBN, 도서명, 총서명1, 총서번호1, 총서명2, 총서번호2, 출판사, 정가, 저자
"020a", "245a", "440a", "440v", "490a", "490v", "260b", "950b", "245d" }; "020a", "245a", "440a", "440v", "490a", "490v", "260b", "950b", "245d" };
string[] Search_Res = st.Take_Tag(grid[a], Search); string[] Search_Res = st.Take_Tag(grid[a], Search);
string[] Author_Search = { "100a", "110a", "111a" }; string[] Author_Search = { "100a", "110a", "111a" };
string[] Author_Res = st.Take_Tag(grid[a], Author_Search); string[] Author_Res = st.Take_Tag(grid[a], Author_Search);
string author_Fin = Search_Res[14]; string author_Fin = Search_Res[14];
foreach (string author in Author_Res) foreach (string author in Author_Res)
{ {
if (author != "") { if (author != "")
{
author_Fin = author; author_Fin = author;
break; break;
} }
@@ -294,10 +306,13 @@ namespace UniMarc.마크
author_Fin, Search_Res[12], Search_Res[13], "", grid[a], author_Fin, Search_Res[12], Search_Res[13], "", grid[a],
// 검색태그 // 검색태그
"", "T" }; "", "T" };
mp.dataGridView1.Rows.Add(AddGrid); if (ResultFileRows == null) ResultFileRows = new List<string[]>();
this.Close(); ResultFileRows.Add(AddGrid);
//mp.dataGridView1.Rows.Add(AddGrid);
} }
this.DialogResult = DialogResult.OK;
} }
#endregion #endregion
private void btn_Close_Click(object sender, EventArgs e) private void btn_Close_Click(object sender, EventArgs e)
@@ -307,12 +322,14 @@ namespace UniMarc.마크
private void cb_gu_SelectedIndexChanged(object sender, EventArgs e) private void cb_gu_SelectedIndexChanged(object sender, EventArgs e)
{ {
if (cb_gu.SelectedIndex == 0) { if (cb_gu.SelectedIndex == 0)
{
btn_Progress.Enabled = false; btn_Progress.Enabled = false;
btn_Complite.Enabled = true; btn_Complite.Enabled = true;
btn_Search_Click(null, e); btn_Search_Click(null, e);
} }
else { else
{
btn_Complite.Enabled = false; btn_Complite.Enabled = false;
btn_Progress.Enabled = true; btn_Progress.Enabled = true;
btn_Search_Click(null, e); btn_Search_Click(null, e);
@@ -331,8 +348,13 @@ namespace UniMarc.마크
string list_name = dataGridView1.Rows[row].Cells["list_name"].Value.ToString(); string list_name = dataGridView1.Rows[row].Cells["list_name"].Value.ToString();
string date = dataGridView1.Rows[row].Cells["date"].Value.ToString(); string date = dataGridView1.Rows[row].Cells["date"].Value.ToString();
mp.mk_Grid(list_name, date); ResultIdx = idx;
mp.mk_Panel(idx, list_name, date); ResultListName = list_name;
ResultDate = date;
this.DialogResult = DialogResult.OK;
//mp.mk_Grid(list_name, date);
//mp.mk_Panel(idx, list_name, date);
this.Close(); this.Close();
} }

View File

@@ -139,7 +139,7 @@
<data name="bindingNavigatorAddNewItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bindingNavigatorAddNewItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAVdJREFUOE/Nz0tLAmEUBmB3kWRoCUVEISFUJGb1OywiKrDsIpZdkJAkDUvDQkij vAAADrwBlbxySQAAAVdJREFUOE/Nz0tLAmEUBmB3kWRoCUVEISFUJGb1OywiKrDsIpZdkJAkDUvDQkij
UKSbVIvatKhNi9oERRAGEQXhjJdp7Hd83/eGs2jhLGQ20QtndTgP71Gp/m0KZ1XInlTjM6XG+4EG5fuK UKSbVIvatKhNi9oERRAGEQXhjJdp7Hd83/eGs2jhLGQ20QtndTgP71Gp/m0KZ1XInlTjM6XG+4EG5fuK
yaTUIN8bIMUQ0gmtcuBtX/MLPMT0yoHnuA6kuA4iruI20lAZ+DiswWuyFum4Dk+7dbiP6kHEFVDBg+tQ yaTUIN8bIMUQ0gmtcuBtX/MLPMT0yoHnuA6kuA4iruI20lAZ+DiswWuyFum4Dk+7dbiP6kHEFVDBg+tQ
My4DLbjwG3DqbcORxygHXxJakGIQRFwDEf0gwjKI4AYtzIHmHaA5Oxg/CsYPIb7YIQced+qluvTLCyIs My4DLbjwG3DqbcORxygHXxJakGIQRFwDEf0gwjKI4AYtzIHmHaA5Oxg/CsYPIb7YIQced+qluvTLCyIs
@@ -154,7 +154,7 @@
<data name="bindingNavigatorDeleteItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bindingNavigatorDeleteItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAWtJREFUOE+1kE0ow2Ecx/9X5a2UiwtKOSCTmJBMhuQlMo3IvCUHDouEXHZwIOVC vAAADrwBlbxySQAAAWtJREFUOE+1kE0ow2Ecx/9X5a2UiwtKOSCTmJBMhuQlMo3IvCUHDouEXHZwIOVC
DrhIDiQl5USy07zNa2tKf2laaRf84/J8xBCetab4XL/f76fn+SnKX4DrGLqrwbHDzywkWJlHdJYjLEbY DrhIDiQl5USy07zNa2tKf2laaRf84/J8xBCetab4XL/f76fn+SnKX4DrGLqrwbHDzywkWJlHdJYjLEbY
Wg8q4eYKlma+d1hbgF4TotWIaC+FuYmAktcXCksx2HrknBOHX1KbiTDngrXhW0kMdSBM2TA5Io+/wuI0 Wg8q4eYKlma+d1hbgF4TotWIaC+FuYmAktcXCksx2HrknBOHX1KbiTDngrXhW0kMdSBM2TA5Io+/wuI0
oiz5TcRwB7hPYazfLx3rDz7+gCsXNBb4v1SdgajTQ19TaOMP2NtFmPSIilSo0v1y7FHBnAdZMWi6aO51 oiz5TcRwB7hPYazfLx3rDz7+gCsXNBb4v1SdgajTQ19TaOMP2NtFmPSIilSo0v1y7FHBnAdZMWi6aO51
@@ -166,7 +166,7 @@
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAATFJREFUOE9jYBg0oHDW8/9NC57/z5z4+D+6HAyEtz/AKceQO/PZ/1VH3v/HpSi+ vAAADrwBlbxySQAAATFJREFUOE9jYBg0oHDW8/9NC57/z5z4+D+6HAyEtz/AKceQO/PZ/1VH3v/HpSi+
+8H/4IZrWOXAIGPK0/8L933Aqii+5+H/pfv///evvoAhBwcJPU/+T9vyHkNRRPt9sObMWf//e5WewG1A +8H/4IZrWOXAIGPK0/8L933Aqii+5+H/pfv///evvoAhBwcJPU/+T9vyHkNRRPt9sObMWf//e5WewG1A
ZNej/72rP6AoCm29B9bcuu7/f//Ov/9d8g/gNiCw+eH/uvnv4IqCW+7+X7T3//+Odf//Z8z5+d+u7ud/ ZNej/72rP6AoCm29B9bcuu7/f//Ov/9d8g/gNiCw+eH/uvnv4IqCW+7+X7T3//+Odf//Z8z5+d+u7ud/
+4ztuA3wqLr/P3/aGxRFdsW3/6fP+f3fv+vbf53Cd/8tEtbjNsC+9O7/7MmvMRTpp5z/b1L04r9K1qf/ +4ztuA3wqLr/P3/aGxRFdsW3/6fP+f3fv+vbf53Cd/8tEtbjNsC+9O7/7MmvMRTpp5z/b1L04r9K1qf/
@@ -177,7 +177,7 @@
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAALtJREFUOE9jYBgyILz9wX90MaJBfPeD/8EN18gzIL7n4f+l+///96++QLoBEe33 vAAADrwBlbxySQAAALtJREFUOE9jYBgyILz9wX90MaJBfPeD/8EN18gzIL7n4f+l+///96++QLoBEe33
wZozZ/3/71V6gjQDQlvvgTW3rvv/37/z73+X/APEGxDccvf/or3//3es+/8/Y87P/3Z1P//bZ2wn3gAQ wZozZ/3/71V6gjQDQlvvgTW3rvv/37/z73+X/APEGxDccvf/or3//3es+/8/Y87P/3Z1P//bZ2wn3gAQ
sCu+/T99zu///l3f/usUvvtvkbCeNANAQD/l/H+Tohf/VbI+/TeOXEa6ASBgkHTiv2za1/+6wfPIMwAE sCu+/T99zu///l3f/usUvvtvkbCeNANAQD/l/H+Tohf/VbI+/TeOXEa6ASBgkHTiv2za1/+6wfPIMwAE
9FMv/9fwnUa+ASCg4jGBMgMGLwAA0BRgmCws/7cAAAAASUVORK5CYII= 9FMv/9fwnUa+ASCg4jGBMgMGLwAA0BRgmCws/7cAAAAASUVORK5CYII=
@@ -186,7 +186,7 @@
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAKRJREFUOE9jYBh0oHDW8//oYiSB3JnP/id03yPfkIwpT//P2//7f0LXHfIMSeh5 vAAADrwBlbxySQAAAKRJREFUOE9jYBh0oHDW8//oYiSB3JnP/id03yPfkIwpT//P2//7f0LXHfIMSeh5
8n/2vl//O7f+/e9Wepl0QyK7Hv2fsu3X/5Klf/8nTP/73yb3LGmGBDY//N+69j1Ys3HJl//S0df+G0cu 8n/2vl//O7f+/e9Wepl0QyK7Hv2fsu3X/5Klf/8nTP/73yb3LGmGBDY//N+69j1Ys3HJl//S0df+G0cu
I94Qj6r7/0vmvoNrVnTpIV4zCNiX3v0f2PKMPM0gYJF3579NwRXyNIOAYdZt8jWDgE7aDfI1D00AAKB+ I94Qj6r7/0vmvoNrVnTpIV4zCNiX3v0f2PKMPM0gYJF3579NwRXyNIOAYdZt8jWDgE7aDfI1D00AAKB+
X6Bjq5qXAAAAAElFTkSuQmCC X6Bjq5qXAAAAAElFTkSuQmCC
@@ -195,7 +195,7 @@
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64"> <data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value> <value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAAAlwSFlzAAAO
vQAADr0BR/uQrQAAAStJREFUOE9jYBhUoHDW8//oYjAAkmta8Px/5sTHONUw5M589j+h+x5WBSC5VUfe vAAADrwBlbxySQAAAStJREFUOE9jYBhUoHDW8//oYjAAkmta8Px/5sTHONUw5M589j+h+x5WBSC5VUfe
/w9vf4BVHgwypjz9P2//7/8JXXcwFIHkFu778D+44RqGHBwk9Dz5P3vfr/+dW//+dyu9jKIQJDdty/v/ /w9vf4BVHgwypjz9P2//7/8JXXcwFIHkFu778D+44RqGHBwk9Dz5P3vfr/+dW//+dyu9jKIQJDdty/v/
/tUXcBsQ2fXo/5Rtv/6XLP37P2H63/82uWfhikFyvas//PcqPYHbgMDmh/9b174HazYu+fJfOvraf+PI /tUXcBsQ2fXo/5Rtv/6XLP37P2H63/82uWfhikFyvas//PcqPYHbgMDmh/9b174HazYu+fJfOvraf+PI
ZWANILm6+e/+u+QfwG2AR9X9/yVz38E1K7r0wBWD5PKnvflvn7EdtwH2pXf/B7Y8w9AMk8ue/Pq/RcJ6 ZWANILm6+e/+u+QfwG2AR9X9/yVz38E1K7r0wBWD5PKnvflvn7EdtwH2pXf/B7Y8w9AMk8ue/Pq/RcJ6