diff --git a/.claude/settings.local.json b/.claude/settings.local.json
new file mode 100644
index 0000000..5557eae
--- /dev/null
+++ b/.claude/settings.local.json
@@ -0,0 +1,9 @@
+{
+ "permissions": {
+ "allow": [
+ "Bash(git add:*)"
+ ],
+ "deny": [],
+ "ask": []
+ }
+}
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index bb077c4..21dd076 100644
--- a/.gitignore
+++ b/.gitignore
@@ -36,3 +36,4 @@ OutPutMarc/
GolfTicketing/
*.msi
+/unimarc/PatchList/~$유니막 수정내역2.pptx
diff --git a/unimarc/unimarc/Helper_DB.cs b/unimarc/unimarc/Helper_DB.cs
index 62484b5..f7fbf29 100644
--- a/unimarc/unimarc/Helper_DB.cs
+++ b/unimarc/unimarc/Helper_DB.cs
@@ -68,6 +68,34 @@ namespace WindowsFormsApp1
}
}
}
+
+ public MySql.Data.MySqlClient.MySqlConnection CreateConnection()
+ {
+ PasswordConnectionInfo connectionInfo = new PasswordConnectionInfo(ServerData[0], port, ServerData[1], ServerData[2]);
+ connectionInfo.Timeout = TimeSpan.FromSeconds(30);
+ using (var client = new SshClient(connectionInfo))
+ {
+ if (conn != null)
+ {
+ conn.Close();
+ conn.Dispose();
+ }
+ client.Connect();
+ if (client.IsConnected)
+ {
+ string strConnection = string.Format(
+ "Server={0};" +
+ "Port={1};" +
+ "Database=unimarc;" +
+ "uid={2};" +
+ "pwd={3};", ServerData[0], DBData[0], DBData[1], DBData[2]);
+ return new MySqlConnection(strConnection);
+ }
+ }
+
+ return null;
+ }
+
///
/// 국중DB를 사용하고 싶을 때 미리 저장된 DB의 기본 접속정보를 이용하여 DB에 접근한다.
///
diff --git a/unimarc/unimarc/Main.Designer.cs b/unimarc/unimarc/Main.Designer.cs
index de64a14..89ed060 100644
--- a/unimarc/unimarc/Main.Designer.cs
+++ b/unimarc/unimarc/Main.Designer.cs
@@ -71,6 +71,7 @@
this.소장자료검색 = new System.Windows.Forms.ToolStripMenuItem();
this.마크정리 = new System.Windows.Forms.ToolStripMenuItem();
this.복본조사1 = new System.Windows.Forms.ToolStripMenuItem();
+ this.복본조사2 = new System.Windows.Forms.ToolStripMenuItem();
this.iSBN조회 = new System.Windows.Forms.ToolStripMenuItem();
this.dVDCDLPToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.목록 = new System.Windows.Forms.ToolStripMenuItem();
@@ -133,7 +134,7 @@
this.IPText = new System.Windows.Forms.ToolStripLabel();
this.lblStatus = new System.Windows.Forms.ToolStripLabel();
this.openFileDialog1 = new System.Windows.Forms.OpenFileDialog();
- this.복본조사2 = new System.Windows.Forms.ToolStripMenuItem();
+ this.btDevDb = new System.Windows.Forms.ToolStripMenuItem();
this.menuStrip1.SuspendLayout();
this.panel1.SuspendLayout();
this.toolStrip1.SuspendLayout();
@@ -172,28 +173,28 @@
// 사업체정보
//
this.사업체정보.Name = "사업체정보";
- this.사업체정보.Size = new System.Drawing.Size(180, 22);
+ this.사업체정보.Size = new System.Drawing.Size(175, 22);
this.사업체정보.Text = "사업체 정보";
this.사업체정보.Click += new System.EventHandler(this.사용자정보ToolStripMenuItem_Click);
//
// 사용자관리
//
this.사용자관리.Name = "사용자관리";
- this.사용자관리.Size = new System.Drawing.Size(180, 22);
+ this.사용자관리.Size = new System.Drawing.Size(175, 22);
this.사용자관리.Text = "사용자 관리";
this.사용자관리.Click += new System.EventHandler(this.사용자관리ToolStripMenuItem_Click);
//
// 납품거래처관리
//
this.납품거래처관리.Name = "납품거래처관리";
- this.납품거래처관리.Size = new System.Drawing.Size(180, 22);
+ this.납품거래처관리.Size = new System.Drawing.Size(175, 22);
this.납품거래처관리.Text = "납품 / 거래처 관리";
this.납품거래처관리.Click += new System.EventHandler(this.납품거래처관리ToolStripMenuItem_Click);
//
// 주문처관리
//
this.주문처관리.Name = "주문처관리";
- this.주문처관리.Size = new System.Drawing.Size(180, 22);
+ this.주문처관리.Size = new System.Drawing.Size(175, 22);
this.주문처관리.Text = "주문처 관리";
this.주문처관리.Click += new System.EventHandler(this.주문처관리ToolStripMenuItem_Click);
//
@@ -201,14 +202,14 @@
//
this.비밀번호변경.Enabled = false;
this.비밀번호변경.Name = "비밀번호변경";
- this.비밀번호변경.Size = new System.Drawing.Size(180, 22);
+ this.비밀번호변경.Size = new System.Drawing.Size(175, 22);
this.비밀번호변경.Text = "비밀번호 변경";
this.비밀번호변경.Click += new System.EventHandler(this.비밀번호변경ToolStripMenuItem_Click);
//
// 도서정보관리
//
this.도서정보관리.Name = "도서정보관리";
- this.도서정보관리.Size = new System.Drawing.Size(180, 22);
+ this.도서정보관리.Size = new System.Drawing.Size(175, 22);
this.도서정보관리.Text = "도서정보 관리";
this.도서정보관리.Click += new System.EventHandler(this.도서정보관리ToolStripMenuItem_Click);
//
@@ -216,7 +217,7 @@
//
this.사용대장.Enabled = false;
this.사용대장.Name = "사용대장";
- this.사용대장.Size = new System.Drawing.Size(180, 22);
+ this.사용대장.Size = new System.Drawing.Size(175, 22);
this.사용대장.Text = "사용대장";
this.사용대장.Click += new System.EventHandler(this.사용대장ToolStripMenuItem_Click);
//
@@ -237,49 +238,49 @@
// 목록등록
//
this.목록등록.Name = "목록등록";
- this.목록등록.Size = new System.Drawing.Size(180, 22);
+ this.목록등록.Size = new System.Drawing.Size(166, 22);
this.목록등록.Text = "물품등록";
this.목록등록.Click += new System.EventHandler(this.물품등록ToolStripMenuItem_Click);
//
// 목록조회
//
this.목록조회.Name = "목록조회";
- this.목록조회.Size = new System.Drawing.Size(180, 22);
+ this.목록조회.Size = new System.Drawing.Size(166, 22);
this.목록조회.Text = "목록조회";
this.목록조회.Click += new System.EventHandler(this.목록등록편의ToolStripMenuItem_Click);
//
// 목록집계
//
this.목록집계.Name = "목록집계";
- this.목록집계.Size = new System.Drawing.Size(180, 22);
+ this.목록집계.Size = new System.Drawing.Size(166, 22);
this.목록집계.Text = "목록집계";
this.목록집계.Click += new System.EventHandler(this.목록집계ToolStripMenuItem_Click);
//
// 주문입력
//
this.주문입력.Name = "주문입력";
- this.주문입력.Size = new System.Drawing.Size(180, 22);
+ this.주문입력.Size = new System.Drawing.Size(166, 22);
this.주문입력.Text = "주문입력";
this.주문입력.Click += new System.EventHandler(this.주문입력ToolStripMenuItem_Click);
//
// 입고작업
//
this.입고작업.Name = "입고작업";
- this.입고작업.Size = new System.Drawing.Size(180, 22);
+ this.입고작업.Size = new System.Drawing.Size(166, 22);
this.입고작업.Text = "입고작업";
this.입고작업.Click += new System.EventHandler(this.매입ToolStripMenuItem_Click);
//
// 재고입력및조회
//
this.재고입력및조회.Name = "재고입력및조회";
- this.재고입력및조회.Size = new System.Drawing.Size(180, 22);
+ this.재고입력및조회.Size = new System.Drawing.Size(166, 22);
this.재고입력및조회.Text = "재고입력 및 조회";
this.재고입력및조회.Click += new System.EventHandler(this.재고입력및조회ToolStripMenuItem_Click);
//
// 반품처리
//
this.반품처리.Name = "반품처리";
- this.반품처리.Size = new System.Drawing.Size(180, 22);
+ this.반품처리.Size = new System.Drawing.Size(166, 22);
this.반품처리.Text = "반품처리";
this.반품처리.Click += new System.EventHandler(this.반품처리ToolStripMenuItem_Click);
//
@@ -298,14 +299,14 @@
// 송금내역조회
//
this.송금내역조회.Name = "송금내역조회";
- this.송금내역조회.Size = new System.Drawing.Size(180, 22);
+ this.송금내역조회.Size = new System.Drawing.Size(154, 22);
this.송금내역조회.Text = "송금 내역 조회";
this.송금내역조회.Click += new System.EventHandler(this.송금내역조회ToolStripMenuItem_Click);
//
// 송금등록
//
this.송금등록.Name = "송금등록";
- this.송금등록.Size = new System.Drawing.Size(180, 22);
+ this.송금등록.Size = new System.Drawing.Size(154, 22);
this.송금등록.Text = "송금 등록";
this.송금등록.Click += new System.EventHandler(this.송금등록ToolStripMenuItem_Click);
//
@@ -316,7 +317,7 @@
this.매입장부,
this.매입미결제ToolStripMenuItem});
this.매입.Name = "매입";
- this.매입.Size = new System.Drawing.Size(180, 22);
+ this.매입.Size = new System.Drawing.Size(154, 22);
this.매입.Text = "매입";
//
// 매입집계
@@ -349,7 +350,7 @@
this.매출조회,
this.매출집계});
this.매출.Name = "매출";
- this.매출.Size = new System.Drawing.Size(180, 22);
+ this.매출.Size = new System.Drawing.Size(154, 22);
this.매출.Text = "매출";
//
// 매출입력
@@ -383,7 +384,7 @@
// 파트타임관리
//
this.파트타임관리.Name = "파트타임관리";
- this.파트타임관리.Size = new System.Drawing.Size(180, 22);
+ this.파트타임관리.Size = new System.Drawing.Size(154, 22);
this.파트타임관리.Text = "파트타임 관리";
this.파트타임관리.Click += new System.EventHandler(this.파트타임관리ToolStripMenuItem_Click);
//
@@ -409,13 +410,13 @@
this.불용어,
this.작업지시서});
this.마크설정.Name = "마크설정";
- this.마크설정.Size = new System.Drawing.Size(180, 22);
+ this.마크설정.Size = new System.Drawing.Size(156, 22);
this.마크설정.Text = "설정";
//
// 단축키설정
//
this.단축키설정.Name = "단축키설정";
- this.단축키설정.Size = new System.Drawing.Size(180, 22);
+ this.단축키설정.Size = new System.Drawing.Size(138, 22);
this.단축키설정.Text = "단축키";
this.단축키설정.Visible = false;
this.단축키설정.Click += new System.EventHandler(this.단축키설정ToolStripMenuItem_Click);
@@ -423,14 +424,14 @@
// 매크로문구
//
this.매크로문구.Name = "매크로문구";
- this.매크로문구.Size = new System.Drawing.Size(180, 22);
+ this.매크로문구.Size = new System.Drawing.Size(138, 22);
this.매크로문구.Text = "매크로 문구";
this.매크로문구.Click += new System.EventHandler(this.매크로문구설정ToolStripMenuItem_Click);
//
// 불용어
//
this.불용어.Name = "불용어";
- this.불용어.Size = new System.Drawing.Size(180, 22);
+ this.불용어.Size = new System.Drawing.Size(138, 22);
this.불용어.Text = "불용어";
this.불용어.Visible = false;
this.불용어.Click += new System.EventHandler(this.불용어ToolStripMenuItem_Click);
@@ -438,7 +439,7 @@
// 작업지시서
//
this.작업지시서.Name = "작업지시서";
- this.작업지시서.Size = new System.Drawing.Size(180, 22);
+ this.작업지시서.Size = new System.Drawing.Size(138, 22);
this.작업지시서.Text = "작업지시서";
this.작업지시서.Visible = false;
this.작업지시서.Click += new System.EventHandler(this.작업지시서ToolStripMenuItem_Click);
@@ -454,48 +455,55 @@
this.복본조사2,
this.iSBN조회});
this.마크작업.Name = "마크작업";
- this.마크작업.Size = new System.Drawing.Size(180, 22);
+ this.마크작업.Size = new System.Drawing.Size(156, 22);
this.마크작업.Text = "마크 작업";
//
// 마크작성
//
this.마크작성.Name = "마크작성";
- this.마크작성.Size = new System.Drawing.Size(180, 22);
+ this.마크작성.Size = new System.Drawing.Size(154, 22);
this.마크작성.Text = "마크 작성";
this.마크작성.Click += new System.EventHandler(this.마크작성ToolStripMenuItem_Click);
//
// 마크목록
//
this.마크목록.Name = "마크목록";
- this.마크목록.Size = new System.Drawing.Size(180, 22);
+ this.마크목록.Size = new System.Drawing.Size(154, 22);
this.마크목록.Text = "마크 목록";
this.마크목록.Click += new System.EventHandler(this.마크목록ToolStripMenuItem_Click);
//
// 소장자료검색
//
this.소장자료검색.Name = "소장자료검색";
- this.소장자료검색.Size = new System.Drawing.Size(180, 22);
+ this.소장자료검색.Size = new System.Drawing.Size(154, 22);
this.소장자료검색.Text = "소장자료검색";
this.소장자료검색.Click += new System.EventHandler(this.소장자료검색ToolStripMenuItem_Click);
//
// 마크정리
//
this.마크정리.Name = "마크정리";
- this.마크정리.Size = new System.Drawing.Size(180, 22);
+ this.마크정리.Size = new System.Drawing.Size(154, 22);
this.마크정리.Text = "마크 정리";
this.마크정리.Click += new System.EventHandler(this.마크정리ToolStripMenuItem_Click);
//
// 복본조사1
//
this.복본조사1.Name = "복본조사1";
- this.복본조사1.Size = new System.Drawing.Size(180, 22);
+ this.복본조사1.Size = new System.Drawing.Size(154, 22);
this.복본조사1.Text = "복본조사";
this.복본조사1.Click += new System.EventHandler(this.복본조사ToolStripMenuItem1_Click);
//
+ // 복본조사2
+ //
+ this.복본조사2.Name = "복본조사2";
+ this.복본조사2.Size = new System.Drawing.Size(154, 22);
+ this.복본조사2.Text = "복본조사(New)";
+ this.복본조사2.Click += new System.EventHandler(this.복본조사2_Click);
+ //
// iSBN조회
//
this.iSBN조회.Name = "iSBN조회";
- this.iSBN조회.Size = new System.Drawing.Size(180, 22);
+ this.iSBN조회.Size = new System.Drawing.Size(154, 22);
this.iSBN조회.Text = "ISBN 조회";
this.iSBN조회.Click += new System.EventHandler(this.iSBN조회ToolStripMenuItem_Click);
//
@@ -505,7 +513,7 @@
this.목록,
this.편목});
this.dVDCDLPToolStripMenuItem.Name = "dVDCDLPToolStripMenuItem";
- this.dVDCDLPToolStripMenuItem.Size = new System.Drawing.Size(180, 22);
+ this.dVDCDLPToolStripMenuItem.Size = new System.Drawing.Size(156, 22);
this.dVDCDLPToolStripMenuItem.Text = "DVD / CD / LP";
//
// 목록
@@ -529,7 +537,7 @@
this.마크반입,
this.마크반출});
this.반입및반출.Name = "반입및반출";
- this.반입및반출.Size = new System.Drawing.Size(180, 22);
+ this.반입및반출.Size = new System.Drawing.Size(156, 22);
this.반입및반출.Text = "반입 및 반출";
//
// 마크반입
@@ -554,7 +562,7 @@
this.검수,
this.저자기호});
this.부가기능.Name = "부가기능";
- this.부가기능.Size = new System.Drawing.Size(180, 22);
+ this.부가기능.Size = new System.Drawing.Size(156, 22);
this.부가기능.Text = "부가기능";
//
// 마크수집
@@ -595,7 +603,7 @@
this.DLS조회,
this.dLS복본조사});
this.DLS.Name = "DLS";
- this.DLS.Size = new System.Drawing.Size(180, 22);
+ this.DLS.Size = new System.Drawing.Size(156, 22);
this.DLS.Text = "DLS";
//
// DLS조회
@@ -619,7 +627,7 @@
this.마크통계,
this.장비관리});
this.마크기타.Name = "마크기타";
- this.마크기타.Size = new System.Drawing.Size(180, 22);
+ this.마크기타.Size = new System.Drawing.Size(156, 22);
this.마크기타.Text = "기타";
//
// 서류작성
@@ -754,7 +762,8 @@
this.매출내역ToolStripMenuItem,
this.이용자거래처조회ToolStripMenuItem,
this.마크설정ToolStripMenuItem,
- this.일괄처리관리ToolStripMenuItem});
+ this.일괄처리관리ToolStripMenuItem,
+ this.btDevDb});
this.마스터ToolStripMenuItem.Name = "마스터ToolStripMenuItem";
this.마스터ToolStripMenuItem.Size = new System.Drawing.Size(55, 20);
this.마스터ToolStripMenuItem.Text = "마스터";
@@ -764,7 +773,7 @@
this.이용자관리ToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.신규사업자등록ToolStripMenuItem});
this.이용자관리ToolStripMenuItem.Name = "이용자관리ToolStripMenuItem";
- this.이용자관리ToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
+ this.이용자관리ToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
this.이용자관리ToolStripMenuItem.Text = "이용자 관리";
//
// 신규사업자등록ToolStripMenuItem
@@ -777,35 +786,35 @@
// 공지발송ToolStripMenuItem1
//
this.공지발송ToolStripMenuItem1.Name = "공지발송ToolStripMenuItem1";
- this.공지발송ToolStripMenuItem1.Size = new System.Drawing.Size(178, 22);
+ this.공지발송ToolStripMenuItem1.Size = new System.Drawing.Size(202, 22);
this.공지발송ToolStripMenuItem1.Text = "공지 발송";
this.공지발송ToolStripMenuItem1.Click += new System.EventHandler(this.공지발송ToolStripMenuItem1_Click);
//
// 매출내역ToolStripMenuItem
//
this.매출내역ToolStripMenuItem.Name = "매출내역ToolStripMenuItem";
- this.매출내역ToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
+ this.매출내역ToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
this.매출내역ToolStripMenuItem.Text = "매출내역";
this.매출내역ToolStripMenuItem.Click += new System.EventHandler(this.매출내역ToolStripMenuItem_Click);
//
// 이용자거래처조회ToolStripMenuItem
//
this.이용자거래처조회ToolStripMenuItem.Name = "이용자거래처조회ToolStripMenuItem";
- this.이용자거래처조회ToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
+ this.이용자거래처조회ToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
this.이용자거래처조회ToolStripMenuItem.Text = "이용자 거래처 조회";
this.이용자거래처조회ToolStripMenuItem.Click += new System.EventHandler(this.이용자거래처조회ToolStripMenuItem_Click);
//
// 마크설정ToolStripMenuItem
//
this.마크설정ToolStripMenuItem.Name = "마크설정ToolStripMenuItem";
- this.마크설정ToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
+ this.마크설정ToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
this.마크설정ToolStripMenuItem.Text = "마크설정";
this.마크설정ToolStripMenuItem.Click += new System.EventHandler(this.마크설정ToolStripMenuItem_Click);
//
// 일괄처리관리ToolStripMenuItem
//
this.일괄처리관리ToolStripMenuItem.Name = "일괄처리관리ToolStripMenuItem";
- this.일괄처리관리ToolStripMenuItem.Size = new System.Drawing.Size(178, 22);
+ this.일괄처리관리ToolStripMenuItem.Size = new System.Drawing.Size(202, 22);
this.일괄처리관리ToolStripMenuItem.Text = "일괄처리 관리";
this.일괄처리관리ToolStripMenuItem.Click += new System.EventHandler(this.일괄처리관리ToolStripMenuItem_Click);
//
@@ -1067,12 +1076,14 @@
this.lblStatus.Size = new System.Drawing.Size(27, 22);
this.lblStatus.Text = "WD";
//
- // 복본조사2
+ // btDevDb
//
- this.복본조사2.Name = "복본조사2";
- this.복본조사2.Size = new System.Drawing.Size(180, 22);
- this.복본조사2.Text = "복본조사(New)";
- this.복본조사2.Click += new System.EventHandler(this.복본조사2_Click);
+ this.btDevDb.ForeColor = System.Drawing.Color.Blue;
+ this.btDevDb.Name = "btDevDb";
+ this.btDevDb.Size = new System.Drawing.Size(202, 22);
+ this.btDevDb.Text = "데이터베이스편집(개발)";
+ this.btDevDb.Visible = false;
+ this.btDevDb.Click += new System.EventHandler(this.btDevDb_Click);
//
// Main
//
@@ -1207,5 +1218,6 @@
public System.Windows.Forms.ToolStripLabel IPText;
private System.Windows.Forms.ToolStripLabel lblStatus;
private System.Windows.Forms.ToolStripMenuItem 복본조사2;
+ private System.Windows.Forms.ToolStripMenuItem btDevDb;
}
}
\ No newline at end of file
diff --git a/unimarc/unimarc/Main.cs b/unimarc/unimarc/Main.cs
index 09c8ca8..689f39f 100644
--- a/unimarc/unimarc/Main.cs
+++ b/unimarc/unimarc/Main.cs
@@ -26,6 +26,7 @@ using UniMarc.회계;
using UniMarc.마크;
using UniMarc.Properties;
using UniMarc;
+using UniMarc.개발자용;
namespace WindowsFormsApp1
@@ -42,6 +43,7 @@ namespace WindowsFormsApp1
{
InitializeComponent();
PUB.Init();
+ this.btDevDb.Visible = System.Diagnostics.Debugger.IsAttached;
}
public string User_Name { get; internal set; }
@@ -1544,5 +1546,11 @@ namespace WindowsFormsApp1
Mac_check_Copy.FormClosed += (o, ea) => Mac_check_Copy = null;
Mac_check_Copy.Show();
}
+
+ private void btDevDb_Click(object sender, EventArgs e)
+ {
+ var f = new fDevDB();
+ f.Show();
+ }
}
}
\ No newline at end of file
diff --git a/unimarc/unimarc/SearchModel/JunnamEduSearcher.cs b/unimarc/unimarc/SearchModel/JunnamEduSearcher.cs
new file mode 100644
index 0000000..9ae1f14
--- /dev/null
+++ b/unimarc/unimarc/SearchModel/JunnamEduSearcher.cs
@@ -0,0 +1,414 @@
+using System;
+using System.Threading.Tasks;
+using OpenQA.Selenium;
+using OpenQA.Selenium.Chrome;
+using OpenQA.Selenium.Support.UI;
+using System.Text.RegularExpressions;
+using WebDriverManager;
+using WebDriverManager.DriverConfigs.Impl;
+using System.IO;
+using System.Runtime.InteropServices;
+using System.Threading;
+using UniMarc.마크;
+using OpenQA.Selenium.Chromium;
+using UniMarc.SearchModel;
+using System.Runtime.CompilerServices;
+
+namespace BokBonCheck
+{
+
+
+ public class JunnamEduSearcher_Mokpo : JunnamEduSearcher
+ {
+ public JunnamEduSearcher_Mokpo(int no) : base(no)
+ {
+ SiteName = "전남교육청(목포)"; // 문화관 검색기
+ }
+
+ protected override bool SelectLibrary(WebDriverWait wait)
+ {
+ IWebElement searchBox = null;
+ try
+ {
+ var selector = "#clickAll";
+ searchBox = wait.Until(d => d.FindElement(By.CssSelector(selector)));
+ if (searchBox == null) return false;
+ if (searchBox.Selected == true)
+ {
+ SafeClick(searchBox);
+ }
+
+ selector = "#libMA";
+ searchBox = wait.Until(d => d.FindElement(By.CssSelector(selector)));
+ if (searchBox == null) return false;
+ if (searchBox.Selected == false)
+ {
+ SafeClick(searchBox);
+ }
+
+ return true;
+ }
+ catch
+ {
+ return false;
+ }
+ }
+ }
+
+ public class JunnamEduSearcher : ILibrarySearcher
+ {
+ public string SiteName { get; protected set; } = "전남교육청(전체)";
+ public string SiteUrl => "https://lib.namgu.gwangju.kr/main/bookSearch";
+
+ public int No { get; set; }
+
+ private ChromiumDriver _driver;
+
+ public JunnamEduSearcher(int no)
+ {
+ this.No = no;
+ }
+
+
+
+ public void StopDriver()
+ {
+ if (_driver != null)
+ {
+ _driver.Quit();
+ _driver.Dispose();
+ _driver = null;
+ }
+ }
+
+ public async Task StartDriver(bool showdriver = false)
+ {
+ if (_driver == null)
+ {
+ try
+ {
+ if (SeleniumHelper.IsReady == false) await SeleniumHelper.Download();
+ _driver = await SeleniumHelper.CreateDriver();
+ Console.WriteLine("NamguLibrarySearcher Driver 초기화 완료");
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine($"NamguLibrarySearcher Driver 초기화 실패: {ex.Message}");
+ throw new InvalidOperationException($"NamguLibrarySearcher Driver 초기화에 실패했습니다: {ex.Message}", ex);
+ }
+ }
+ }
+
+
+
+ virtual protected bool SelectLibrary(WebDriverWait wait)
+ {
+ IWebElement searchBox = null;
+ try
+ {
+ var selector = "#clickAll";
+ searchBox = wait.Until(d => d.FindElement(By.CssSelector(selector)));
+ if (searchBox == null) return false;
+ if (searchBox.Selected == false)
+ {
+ SafeClick(searchBox);
+ }
+ return true;
+ }
+ catch (Exception ex)
+ {
+ Console.WriteLine(ex.Message);
+ return false;
+ }
+ }
+
+ protected void SafeClick(IWebElement searchBox)
+ {
+ // 안정적인 클릭을 위한 여러 방법 시도
+ try
+ {
+ // 1. JavaScript로 클릭 시도
+ var driver = ((IWrapsDriver)searchBox).WrappedDriver;
+ ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].click();", searchBox);
+ }
+ catch
+ {
+ try
+ {
+ // 2. 요소가 보이도록 스크롤 후 클릭
+ var driver = ((IWrapsDriver)searchBox).WrappedDriver;
+ ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].scrollIntoView(true);", searchBox);
+ Thread.Sleep(500);
+ searchBox.Click();
+ }
+ catch
+ {
+ try
+ {
+ // 3. Actions 클래스 사용
+ var driver = ((IWrapsDriver)searchBox).WrappedDriver;
+ var actions = new OpenQA.Selenium.Interactions.Actions(driver);
+ actions.MoveToElement(searchBox).Click().Perform();
+ }
+ catch
+ {
+ // 4. 마지막 방법: JavaScript로 직접 체크 해제
+ var driver = ((IWrapsDriver)searchBox).WrappedDriver;
+ ((IJavaScriptExecutor)driver).ExecuteScript("arguments[0].checked = false;", searchBox);
+ }
+ }
+ }
+ }
+
+ public async Task SearchAsync(string searchTerm)
+ {
+ var result = new BookSearchResult
+ {
+ SiteName = SiteName,
+ SearchTerm = searchTerm,
+ SearchTime = DateTime.Now
+ };
+
+ try
+ {
+ // 드라이버가 없으면 자동으로 시작
+ if (_driver == null)
+ {
+ await StartDriver();
+ }
+
+ _driver.Navigate().GoToUrl(SiteUrl);
+
+ // 페이지 로딩 대기
+ var wait = new WebDriverWait(_driver, TimeSpan.FromSeconds(15));
+
+ // 모든 감지 방법이 끝나면 크롬창 최소화
+ // whale 브라우저가 최소화되어 우선해제
+ //IntPtr chromeWindow = FindWindow("Chrome_WidgetWin_1", null);
+ //if (chromeWindow != IntPtr.Zero)
+ //{
+ // ShowWindow(chromeWindow, SW_MINIMIZE);
+ //}
+
+ //대상도서관 선택
+ if (SelectLibrary(wait) == false)
+ {
+ result.ErrorMessage = "도서관선택실패";
+ result.BookCount = -1;
+ result.IsSuccess = false;
+ return result;
+ }
+
+ // 검색창 찾기 (남구통합도서관 사이트의 특정 선택자 사용)
+ IWebElement searchBox = null;
+ try
+ {
+ // 여러 가능한 선택자 시도
+ var selectors = new[]
+ {
+ "input[name='query']",
+ "input[id='query']",
+ "input[type='text']",
+ };
+
+ foreach (var selector in selectors)
+ {
+ try
+ {
+ searchBox = wait.Until(d => d.FindElement(By.CssSelector(selector)));
+ break;
+ }
+ catch
+ {
+ continue;
+ }
+ }
+
+ if (searchBox == null)
+ {
+ throw new Exception("검색창을 찾을 수 없습니다.");
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new Exception($"검색창 찾기 실패: {ex.Message}");
+ }
+
+ // 검색어 입력
+ searchBox.Clear();
+ searchBox.SendKeys(searchTerm);
+
+ // 검색 버튼 클릭
+ IWebElement searchButton = null;
+ try
+ {
+ var buttonSelectors = new[]
+ {
+ "button[type='submit']",
+ "input[type='submit']",
+ ".search-btn",
+ ".btn-search",
+ "button:contains('검색')",
+ "input[value*='검색']",
+ "button[class*='search']",
+ "input[class*='search']"
+ };
+
+ foreach (var selector in buttonSelectors)
+ {
+ try
+ {
+ searchButton = _driver.FindElement(By.CssSelector(selector));
+ break;
+ }
+ catch
+ {
+ continue;
+ }
+ }
+
+ if (searchButton == null)
+ {
+ // Enter 키로 검색 시도
+ searchBox.SendKeys(Keys.Enter);
+ }
+ else
+ {
+ searchButton.Click();
+ }
+ }
+ catch (Exception ex)
+ {
+ // Enter 키로 검색 시도
+ searchBox.SendKeys(Keys.Enter);
+ }
+
+ // 페이지 변경을 감지하는 메서드
+ await WaitForPageChange(new WebDriverWait(_driver, TimeSpan.FromSeconds(15)));
+
+ // 검색 결과 수 추출
+ var resultCount = ExtractBookCount(_driver, searchTerm, out string ermsg);
+ if (resultCount == -1)
+ {
+ result.BookCount = 0;
+ result.IsSuccess = false;
+ result.ErrorMessage = ermsg;
+ }
+ else
+ {
+ result.BookCount = resultCount;
+ result.IsSuccess = true;
+ result.ErrorMessage = ermsg;
+ }
+
+ }
+ catch (Exception ex)
+ {
+ result.IsSuccess = false;
+ result.ErrorMessage = ex.Message;
+ result.BookCount = 0;
+ }
+
+ return result;
+ }
+
+ private int ExtractBookCount(IWebDriver driver, string searchTerm, out string errmessage)
+ {
+ errmessage = string.Empty;
+ try
+ {
+ // div.search-result 내부의 span에서 '전체 N' 텍스트 추출
+ var resultDiv = driver.FindElement(By.CssSelector("div.search-result"));
+
+ var bodytext = resultDiv.Text;
+ if (bodytext.Contains("검색결과가 없습니다"))
+ {
+ errmessage = "검색결과없음";
+ return 0;
+ }
+
+ var searchkey = resultDiv.FindElement(By.XPath("//*[@id=\"sub\"]/section[3]/div/div/div/div/div[2]/div[1]/p/b"));
+ var searchtitle = searchkey.Text;
+
+ if (searchTerm.Contains(searchtitle) == false)
+ {
+ errmessage = $"검색어불일치({searchtitle}/{searchTerm})";
+ return -1;
+ }
+ var span = resultDiv.FindElement(By.XPath(".//span[contains(text(),'전체')]"));
+ string text = span.Text; // 예: "전체 5 "
+ var match = System.Text.RegularExpressions.Regex.Match(text, @"전체\s*(\d+)");
+ if (match.Success)
+ {
+ if (int.TryParse(match.Groups[1].Value, out int vqty) == false)
+ {
+ errmessage = $"수량값오류({match.Groups[1].Value})";
+ return -1;
+ }
+ else
+ {
+ searchTerm = string.Empty;
+ return vqty;
+ }
+ }
+ else
+ {
+ errmessage = "수량항목없음";
+ return -1;
+ }
+
+ }
+ catch (Exception ex)
+ {
+ errmessage = ex.Message;
+ return -1;
+ }
+ }
+
+
+
+ // 페이지 변경을 감지하는 메서드
+ public async Task WaitForPageChange(WebDriverWait wait)
+ {
+ try
+ {
+ await Task.Delay(500);
+
+ // 방법 4: 페이지 로딩 상태 확인
+ wait.Until(d =>
+ {
+ var readyState = ((IJavaScriptExecutor)d).ExecuteScript("return document.readyState");
+ return readyState.Equals("complete");
+ });
+
+ // 방법 5: 특정 텍스트가 페이지에 나타날 때까지 대기
+ wait.Until(d =>
+ {
+ try
+ {
+ var byclassname = By.ClassName("search-result");
+ var elm = d.FindElement(byclassname);
+ if (elm == null)
+ {
+ return false;
+ }
+ var pageText = elm.Text;
+ if (pageText.Contains("검색결과가 없습니다")) return true;
+ return pageText.Contains("에 대하여") && pageText.Contains("검색되었습니다");
+ }
+ catch
+ {
+ return false;
+ }
+ });
+
+ }
+ catch (Exception ex)
+ {
+ // 모든 감지 방법이 실패하면 최소한의 대기 시간 적용
+ await Task.Delay(2000);
+ throw new Exception($"페이지 변경 감지 실패: {ex.Message}");
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/unimarc/unimarc/UniMarc.csproj b/unimarc/unimarc/UniMarc.csproj
index 974c7a2..1884e89 100644
--- a/unimarc/unimarc/UniMarc.csproj
+++ b/unimarc/unimarc/UniMarc.csproj
@@ -232,8 +232,15 @@
+
+
+ Form
+
+
+ fDevDB.cs
+
Form
@@ -958,6 +965,9 @@
Work_Log.cs
+
+ fDevDB.cs
+
From_User_manage_List.cs
diff --git a/unimarc/unimarc/개발자용/fDevDB.Designer.cs b/unimarc/unimarc/개발자용/fDevDB.Designer.cs
new file mode 100644
index 0000000..a289ed7
--- /dev/null
+++ b/unimarc/unimarc/개발자용/fDevDB.Designer.cs
@@ -0,0 +1,251 @@
+namespace UniMarc.개발자용
+{
+ partial class fDevDB
+ {
+ ///
+ /// 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.components = new System.ComponentModel.Container();
+ System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(fDevDB));
+ this.cmbTables = new System.Windows.Forms.ComboBox();
+ this.btQuery = new System.Windows.Forms.Button();
+ this.dv1 = new System.Windows.Forms.DataGridView();
+ this.bs1 = new System.Windows.Forms.BindingSource(this.components);
+ this.bn1 = new System.Windows.Forms.BindingNavigator(this.components);
+ this.bindingNavigatorMoveFirstItem = new System.Windows.Forms.ToolStripButton();
+ this.bindingNavigatorMovePreviousItem = new System.Windows.Forms.ToolStripButton();
+ this.bindingNavigatorSeparator = new System.Windows.Forms.ToolStripSeparator();
+ this.bindingNavigatorPositionItem = new System.Windows.Forms.ToolStripTextBox();
+ this.bindingNavigatorCountItem = new System.Windows.Forms.ToolStripLabel();
+ this.bindingNavigatorSeparator1 = new System.Windows.Forms.ToolStripSeparator();
+ this.bindingNavigatorMoveNextItem = new System.Windows.Forms.ToolStripButton();
+ this.bindingNavigatorMoveLastItem = new System.Windows.Forms.ToolStripButton();
+ this.bindingNavigatorSeparator2 = new System.Windows.Forms.ToolStripSeparator();
+ this.bindingNavigatorAddNewItem = new System.Windows.Forms.ToolStripButton();
+ this.bindingNavigatorDeleteItem = new System.Windows.Forms.ToolStripButton();
+ this.btsave = new System.Windows.Forms.ToolStripButton();
+ ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bs1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bn1)).BeginInit();
+ this.bn1.SuspendLayout();
+ this.SuspendLayout();
+ //
+ // cmbTables
+ //
+ this.cmbTables.FormattingEnabled = true;
+ this.cmbTables.Items.AddRange(new object[] {
+ "lib_CopyCheck"});
+ this.cmbTables.Location = new System.Drawing.Point(67, 12);
+ this.cmbTables.Name = "cmbTables";
+ this.cmbTables.Size = new System.Drawing.Size(240, 20);
+ this.cmbTables.TabIndex = 0;
+ //
+ // btQuery
+ //
+ this.btQuery.Location = new System.Drawing.Point(317, 11);
+ this.btQuery.Name = "btQuery";
+ this.btQuery.Size = new System.Drawing.Size(87, 20);
+ this.btQuery.TabIndex = 1;
+ this.btQuery.Text = "button1";
+ this.btQuery.UseVisualStyleBackColor = true;
+ this.btQuery.Click += new System.EventHandler(this.button1_Click);
+ //
+ // dataGridView1
+ //
+ this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dv1.Location = new System.Drawing.Point(40, 48);
+ this.dv1.Name = "dataGridView1";
+ this.dv1.RowTemplate.Height = 23;
+ this.dv1.Size = new System.Drawing.Size(585, 300);
+ this.dv1.TabIndex = 2;
+ //
+ // bn1
+ //
+ this.bn1.AddNewItem = this.bindingNavigatorAddNewItem;
+ this.bn1.CountItem = this.bindingNavigatorCountItem;
+ this.bn1.DeleteItem = this.bindingNavigatorDeleteItem;
+ this.bn1.Dock = System.Windows.Forms.DockStyle.Bottom;
+ this.bn1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
+ this.bindingNavigatorMoveFirstItem,
+ this.bindingNavigatorMovePreviousItem,
+ this.bindingNavigatorSeparator,
+ this.bindingNavigatorPositionItem,
+ this.bindingNavigatorCountItem,
+ this.bindingNavigatorSeparator1,
+ this.bindingNavigatorMoveNextItem,
+ this.bindingNavigatorMoveLastItem,
+ this.bindingNavigatorSeparator2,
+ this.bindingNavigatorAddNewItem,
+ this.bindingNavigatorDeleteItem,
+ this.btsave});
+ this.bn1.Location = new System.Drawing.Point(0, 425);
+ this.bn1.MoveFirstItem = this.bindingNavigatorMoveFirstItem;
+ this.bn1.MoveLastItem = this.bindingNavigatorMoveLastItem;
+ this.bn1.MoveNextItem = this.bindingNavigatorMoveNextItem;
+ this.bn1.MovePreviousItem = this.bindingNavigatorMovePreviousItem;
+ this.bn1.Name = "bn1";
+ this.bn1.PositionItem = this.bindingNavigatorPositionItem;
+ this.bn1.Size = new System.Drawing.Size(800, 25);
+ this.bn1.TabIndex = 3;
+ this.bn1.Text = "bindingNavigator1";
+ //
+ // bindingNavigatorMoveFirstItem
+ //
+ this.bindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.bindingNavigatorMoveFirstItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveFirstItem.Image")));
+ this.bindingNavigatorMoveFirstItem.Name = "bindingNavigatorMoveFirstItem";
+ this.bindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = true;
+ this.bindingNavigatorMoveFirstItem.Size = new System.Drawing.Size(23, 22);
+ this.bindingNavigatorMoveFirstItem.Text = "처음으로 이동";
+ //
+ // bindingNavigatorMovePreviousItem
+ //
+ this.bindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.bindingNavigatorMovePreviousItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMovePreviousItem.Image")));
+ this.bindingNavigatorMovePreviousItem.Name = "bindingNavigatorMovePreviousItem";
+ this.bindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = true;
+ this.bindingNavigatorMovePreviousItem.Size = new System.Drawing.Size(23, 22);
+ this.bindingNavigatorMovePreviousItem.Text = "이전으로 이동";
+ //
+ // bindingNavigatorSeparator
+ //
+ this.bindingNavigatorSeparator.Name = "bindingNavigatorSeparator";
+ this.bindingNavigatorSeparator.Size = new System.Drawing.Size(6, 25);
+ //
+ // bindingNavigatorPositionItem
+ //
+ this.bindingNavigatorPositionItem.AccessibleName = "위치";
+ this.bindingNavigatorPositionItem.AutoSize = false;
+ this.bindingNavigatorPositionItem.Name = "bindingNavigatorPositionItem";
+ this.bindingNavigatorPositionItem.Size = new System.Drawing.Size(50, 23);
+ this.bindingNavigatorPositionItem.Text = "0";
+ this.bindingNavigatorPositionItem.ToolTipText = "현재 위치";
+ //
+ // bindingNavigatorCountItem
+ //
+ this.bindingNavigatorCountItem.Name = "bindingNavigatorCountItem";
+ this.bindingNavigatorCountItem.Size = new System.Drawing.Size(27, 22);
+ this.bindingNavigatorCountItem.Text = "/{0}";
+ this.bindingNavigatorCountItem.ToolTipText = "전체 항목 수";
+ //
+ // bindingNavigatorSeparator1
+ //
+ this.bindingNavigatorSeparator1.Name = "bindingNavigatorSeparator";
+ this.bindingNavigatorSeparator1.Size = new System.Drawing.Size(6, 25);
+ //
+ // bindingNavigatorMoveNextItem
+ //
+ this.bindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.bindingNavigatorMoveNextItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveNextItem.Image")));
+ this.bindingNavigatorMoveNextItem.Name = "bindingNavigatorMoveNextItem";
+ this.bindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = true;
+ this.bindingNavigatorMoveNextItem.Size = new System.Drawing.Size(23, 22);
+ this.bindingNavigatorMoveNextItem.Text = "다음으로 이동";
+ //
+ // bindingNavigatorMoveLastItem
+ //
+ this.bindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.bindingNavigatorMoveLastItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorMoveLastItem.Image")));
+ this.bindingNavigatorMoveLastItem.Name = "bindingNavigatorMoveLastItem";
+ this.bindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = true;
+ this.bindingNavigatorMoveLastItem.Size = new System.Drawing.Size(23, 22);
+ this.bindingNavigatorMoveLastItem.Text = "마지막으로 이동";
+ //
+ // bindingNavigatorSeparator2
+ //
+ this.bindingNavigatorSeparator2.Name = "bindingNavigatorSeparator";
+ this.bindingNavigatorSeparator2.Size = new System.Drawing.Size(6, 25);
+ //
+ // bindingNavigatorAddNewItem
+ //
+ this.bindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.bindingNavigatorAddNewItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorAddNewItem.Image")));
+ this.bindingNavigatorAddNewItem.Name = "bindingNavigatorAddNewItem";
+ this.bindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = true;
+ this.bindingNavigatorAddNewItem.Size = new System.Drawing.Size(23, 22);
+ this.bindingNavigatorAddNewItem.Text = "새로 추가";
+ //
+ // bindingNavigatorDeleteItem
+ //
+ this.bindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
+ this.bindingNavigatorDeleteItem.Image = ((System.Drawing.Image)(resources.GetObject("bindingNavigatorDeleteItem.Image")));
+ this.bindingNavigatorDeleteItem.Name = "bindingNavigatorDeleteItem";
+ this.bindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = true;
+ this.bindingNavigatorDeleteItem.Size = new System.Drawing.Size(23, 22);
+ this.bindingNavigatorDeleteItem.Text = "삭제";
+ //
+ // btsave
+ //
+ this.btsave.Image = ((System.Drawing.Image)(resources.GetObject("btsave.Image")));
+ this.btsave.ImageTransparentColor = System.Drawing.Color.Magenta;
+ this.btsave.Name = "btsave";
+ this.btsave.Size = new System.Drawing.Size(50, 22);
+ this.btsave.Text = "save";
+ this.btsave.Click += new System.EventHandler(this.btsave_Click);
+ //
+ // fDevDB
+ //
+ this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
+ this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
+ this.ClientSize = new System.Drawing.Size(800, 450);
+ this.Controls.Add(this.bn1);
+ this.Controls.Add(this.dv1);
+ this.Controls.Add(this.btQuery);
+ this.Controls.Add(this.cmbTables);
+ this.Name = "fDevDB";
+ this.Text = "fDevDB";
+ this.Load += new System.EventHandler(this.fDevDB_Load);
+ ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bs1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.bn1)).EndInit();
+ this.bn1.ResumeLayout(false);
+ this.bn1.PerformLayout();
+ this.ResumeLayout(false);
+ this.PerformLayout();
+
+ }
+
+ #endregion
+
+ private System.Windows.Forms.ComboBox cmbTables;
+ private System.Windows.Forms.Button btQuery;
+ private System.Windows.Forms.DataGridView dv1;
+ private System.Windows.Forms.BindingSource bs1;
+ private System.Windows.Forms.BindingNavigator bn1;
+ private System.Windows.Forms.ToolStripButton bindingNavigatorAddNewItem;
+ private System.Windows.Forms.ToolStripLabel bindingNavigatorCountItem;
+ private System.Windows.Forms.ToolStripButton bindingNavigatorDeleteItem;
+ private System.Windows.Forms.ToolStripButton bindingNavigatorMoveFirstItem;
+ private System.Windows.Forms.ToolStripButton bindingNavigatorMovePreviousItem;
+ private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator;
+ private System.Windows.Forms.ToolStripTextBox bindingNavigatorPositionItem;
+ private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator1;
+ private System.Windows.Forms.ToolStripButton bindingNavigatorMoveNextItem;
+ private System.Windows.Forms.ToolStripButton bindingNavigatorMoveLastItem;
+ private System.Windows.Forms.ToolStripSeparator bindingNavigatorSeparator2;
+ private System.Windows.Forms.ToolStripButton btsave;
+ }
+}
\ No newline at end of file
diff --git a/unimarc/unimarc/개발자용/fDevDB.cs b/unimarc/unimarc/개발자용/fDevDB.cs
new file mode 100644
index 0000000..40e8f24
--- /dev/null
+++ b/unimarc/unimarc/개발자용/fDevDB.cs
@@ -0,0 +1,56 @@
+using AR;
+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 WindowsFormsApp1;
+
+namespace UniMarc.개발자용
+{
+ public partial class fDevDB : Form
+ {
+ DataTable dt = new DataTable();
+ Helper_DB db = new Helper_DB();
+ public fDevDB()
+ {
+ InitializeComponent();
+ }
+
+ private void fDevDB_Load(object sender, EventArgs e)
+ {
+ if (this.cmbTables.Items.Count > 0)
+ this.cmbTables.SelectedIndex = 0;
+ }
+
+ private void btsave_Click(object sender, EventArgs e)
+ {
+ //save
+ var sql = $"select * from {cmbTables.Text}";
+ var cn = db.CreateConnection();
+ var da = new MySql.Data.MySqlClient.MySqlDataAdapter(sql, cn);
+ var cnt = da.Update(dt);
+ UTIL.MsgI($"P{cnt}");
+ cn.Dispose();
+ }
+
+ private void button1_Click(object sender, EventArgs e)
+ {
+ //query
+ var sql = $"select * from {cmbTables.Text}";
+ var cn = db.CreateConnection();
+ var da = new MySql.Data.MySqlClient.MySqlDataAdapter(sql, cn);
+
+ da.Fill(dt);
+ this.bs1.DataSource = dt;
+ this.bn1.BindingSource = this.bs1;
+ this.dv1.DataSource = this.bs1;
+
+ cn.Dispose();
+ }
+ }
+}
diff --git a/unimarc/unimarc/개발자용/fDevDB.resx b/unimarc/unimarc/개발자용/fDevDB.resx
new file mode 100644
index 0000000..6667546
--- /dev/null
+++ b/unimarc/unimarc/개발자용/fDevDB.resx
@@ -0,0 +1,206 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 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
+
+
+ 17, 17
+
+
+ 156, 17
+
+
+
+
+ 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
+ nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
+
+
+
\ No newline at end of file
diff --git a/unimarc/unimarc/마크/Check_Copy_Sub_List.cs b/unimarc/unimarc/마크/Check_Copy_Sub_List.cs
index 9461907..3983018 100644
--- a/unimarc/unimarc/마크/Check_Copy_Sub_List.cs
+++ b/unimarc/unimarc/마크/Check_Copy_Sub_List.cs
@@ -133,7 +133,7 @@ namespace UniMarc.마크
{
var cc2 = cc as Check_copyWD;
cc2.btn_SearchList.Text = list_name;
- cc2.SearchCount.Value = cc2.dataGridView1.Rows.Count - 1;
+ cc2.SearchCount.Value = cc2.dv1.Rows.Count - 1;
}
@@ -161,14 +161,14 @@ namespace UniMarc.마크
else
{
var cc2 = cc as Check_copyWD;
- cc2.dataGridView1.Rows.Clear();
+ cc2.dv1.Rows.Clear();
string[] ary = query.Split('|');
string[] grid = { "", "", "" };
for (int a = 0; a < ary.Length; a++)
{
if (a % 2 == 0) { grid[0] = ary[a]; }
- if (a % 2 == 1) { grid[1] = ary[a]; cc2.dataGridView1.Rows.Add(grid); }
+ if (a % 2 == 1) { grid[1] = ary[a]; cc2.dv1.Rows.Add(grid); }
}
}
diff --git a/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs b/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs
index 45429ff..a7c194e 100644
--- a/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs
+++ b/unimarc/unimarc/마크/Check_Copy_Sub_Search.Designer.cs
@@ -53,7 +53,8 @@ namespace UniMarc.마크
dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
- this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dataGridView1.ColumnHeadersHeight = 35;
+ this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing;
this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Province,
this.Area,
@@ -66,7 +67,7 @@ namespace UniMarc.마크
this.dataGridView1.Name = "dataGridView1";
this.dataGridView1.ReadOnly = true;
this.dataGridView1.RowTemplate.Height = 23;
- this.dataGridView1.Size = new System.Drawing.Size(411, 213);
+ this.dataGridView1.Size = new System.Drawing.Size(514, 261);
this.dataGridView1.TabIndex = 0;
this.dataGridView1.CellDoubleClick += new System.Windows.Forms.DataGridViewCellEventHandler(this.dataGridView1_CellDoubleClick);
this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
@@ -88,10 +89,10 @@ namespace UniMarc.마크
//
// lib_name
//
+ this.lib_name.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
this.lib_name.HeaderText = "도서관명";
this.lib_name.Name = "lib_name";
this.lib_name.ReadOnly = true;
- this.lib_name.Width = 350;
//
// Code
//
@@ -118,7 +119,7 @@ namespace UniMarc.마크
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(411, 213);
+ this.ClientSize = new System.Drawing.Size(514, 261);
this.Controls.Add(this.dataGridView1);
this.Name = "Check_Copy_Sub_Search";
this.Text = "도서관 검색";
diff --git a/unimarc/unimarc/마크/Check_copy.cs b/unimarc/unimarc/마크/Check_copy.cs
index f8507f9..e28b10e 100644
--- a/unimarc/unimarc/마크/Check_copy.cs
+++ b/unimarc/unimarc/마크/Check_copy.cs
@@ -1637,6 +1637,8 @@ namespace WindowsFormsApp1.Mac
private void btn_SiteDenote_Click(object sender, EventArgs e)
{
if (URL == null) return;
+ if (URL.Contains("\"") == false)
+ URL = $"\"{URL}\"";
AR.UTIL.RunExplorer(URL);
}
diff --git a/unimarc/unimarc/마크/Check_copyWD.Designer.cs b/unimarc/unimarc/마크/Check_copyWD.Designer.cs
index 1d4dcdc..d5fe612 100644
--- a/unimarc/unimarc/마크/Check_copyWD.Designer.cs
+++ b/unimarc/unimarc/마크/Check_copyWD.Designer.cs
@@ -28,8 +28,9 @@
///
private void InitializeComponent()
{
- System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle3 = new System.Windows.Forms.DataGridViewCellStyle();
+ System.Windows.Forms.DataGridViewCellStyle dataGridViewCellStyle1 = new System.Windows.Forms.DataGridViewCellStyle();
this.panel1 = new System.Windows.Forms.Panel();
+ this.chkShowBrowser = new System.Windows.Forms.CheckBox();
this.chkRetryErrData = new System.Windows.Forms.CheckBox();
this.groupBox1 = new System.Windows.Forms.GroupBox();
this.radTargetErr = new System.Windows.Forms.RadioButton();
@@ -50,7 +51,7 @@
this.btn_SiteDenote = new System.Windows.Forms.Button();
this.lbl_PW = new System.Windows.Forms.Label();
this.lbl_ID = new System.Windows.Forms.Label();
- this.dataGridView1 = new System.Windows.Forms.DataGridView();
+ this.dv1 = new System.Windows.Forms.DataGridView();
this.book_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.book_comp = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.Count = new System.Windows.Forms.DataGridViewTextBoxColumn();
@@ -66,12 +67,11 @@
this.btn_GridReset = new System.Windows.Forms.Button();
this.btn_OpenMemo = new System.Windows.Forms.Button();
this.chk_spChar = new System.Windows.Forms.CheckBox();
- this.chkShowBrowser = new System.Windows.Forms.CheckBox();
this.panel1.SuspendLayout();
this.groupBox1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.SearchCount)).BeginInit();
this.panel2.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit();
this.panel3.SuspendLayout();
this.panel6.SuspendLayout();
this.statusStrip1.SuspendLayout();
@@ -95,6 +95,16 @@
this.panel1.Size = new System.Drawing.Size(637, 106);
this.panel1.TabIndex = 0;
//
+ // chkShowBrowser
+ //
+ this.chkShowBrowser.AutoSize = true;
+ this.chkShowBrowser.Location = new System.Drawing.Point(515, 81);
+ this.chkShowBrowser.Name = "chkShowBrowser";
+ this.chkShowBrowser.Size = new System.Drawing.Size(96, 16);
+ this.chkShowBrowser.TabIndex = 8;
+ this.chkShowBrowser.Text = "브라우저표시";
+ this.chkShowBrowser.UseVisualStyleBackColor = true;
+ //
// chkRetryErrData
//
this.chkRetryErrData.AutoSize = true;
@@ -311,34 +321,34 @@
this.lbl_ID.TabIndex = 3;
this.lbl_ID.Text = " ";
//
- // dataGridView1
+ // dv1
//
- this.dataGridView1.AllowUserToDeleteRows = false;
- this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;
- this.dataGridView1.BorderStyle = System.Windows.Forms.BorderStyle.None;
- this.dataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
- dataGridViewCellStyle3.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
- dataGridViewCellStyle3.BackColor = System.Drawing.SystemColors.Control;
- dataGridViewCellStyle3.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
- dataGridViewCellStyle3.ForeColor = System.Drawing.SystemColors.WindowText;
- dataGridViewCellStyle3.SelectionBackColor = System.Drawing.SystemColors.Highlight;
- dataGridViewCellStyle3.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
- dataGridViewCellStyle3.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
- this.dataGridView1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle3;
- this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.dv1.AllowUserToDeleteRows = false;
+ this.dv1.BackgroundColor = System.Drawing.SystemColors.Control;
+ this.dv1.BorderStyle = System.Windows.Forms.BorderStyle.None;
+ this.dv1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
+ dataGridViewCellStyle1.Alignment = System.Windows.Forms.DataGridViewContentAlignment.MiddleCenter;
+ dataGridViewCellStyle1.BackColor = System.Drawing.SystemColors.Control;
+ dataGridViewCellStyle1.Font = new System.Drawing.Font("굴림", 9F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(129)));
+ dataGridViewCellStyle1.ForeColor = System.Drawing.SystemColors.WindowText;
+ dataGridViewCellStyle1.SelectionBackColor = System.Drawing.SystemColors.Highlight;
+ dataGridViewCellStyle1.SelectionForeColor = System.Drawing.SystemColors.HighlightText;
+ dataGridViewCellStyle1.WrapMode = System.Windows.Forms.DataGridViewTriState.True;
+ this.dv1.ColumnHeadersDefaultCellStyle = dataGridViewCellStyle1;
+ this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.book_name,
this.book_comp,
this.Count,
this.dvc_remark});
- this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.dataGridView1.Location = new System.Drawing.Point(0, 0);
- this.dataGridView1.Name = "dataGridView1";
- this.dataGridView1.RowTemplate.Height = 23;
- this.dataGridView1.Size = new System.Drawing.Size(637, 542);
- this.dataGridView1.TabIndex = 1;
- this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
- this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown);
+ this.dv1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.dv1.Location = new System.Drawing.Point(0, 0);
+ this.dv1.Name = "dv1";
+ this.dv1.RowTemplate.Height = 23;
+ this.dv1.Size = new System.Drawing.Size(637, 542);
+ this.dv1.TabIndex = 1;
+ this.dv1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
+ this.dv1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown);
//
// book_name
//
@@ -391,7 +401,7 @@
//
// panel6
//
- this.panel6.Controls.Add(this.dataGridView1);
+ this.panel6.Controls.Add(this.dv1);
this.panel6.Controls.Add(this.statusStrip1);
this.panel6.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel6.Location = new System.Drawing.Point(0, 174);
@@ -480,16 +490,6 @@
this.chk_spChar.Text = "특수문자 제거";
this.chk_spChar.UseVisualStyleBackColor = true;
//
- // chkShowBrowser
- //
- this.chkShowBrowser.AutoSize = true;
- this.chkShowBrowser.Location = new System.Drawing.Point(515, 81);
- this.chkShowBrowser.Name = "chkShowBrowser";
- this.chkShowBrowser.Size = new System.Drawing.Size(96, 16);
- this.chkShowBrowser.TabIndex = 8;
- this.chkShowBrowser.Text = "브라우저표시";
- this.chkShowBrowser.UseVisualStyleBackColor = true;
- //
// Check_copyWD
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
@@ -507,7 +507,7 @@
((System.ComponentModel.ISupportInitialize)(this.SearchCount)).EndInit();
this.panel2.ResumeLayout(false);
this.panel2.PerformLayout();
- ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit();
this.panel3.ResumeLayout(false);
this.panel6.ResumeLayout(false);
this.panel6.PerformLayout();
@@ -529,7 +529,7 @@
private System.Windows.Forms.Button btn_Stop;
private System.Windows.Forms.Button btn_Start;
public System.Windows.Forms.TextBox tb_SearchTarget;
- public System.Windows.Forms.DataGridView dataGridView1;
+ public System.Windows.Forms.DataGridView dv1;
public System.Windows.Forms.Button btn_SearchList;
private System.Windows.Forms.Button btn_ApplyFilter;
private System.Windows.Forms.Panel panel3;
diff --git a/unimarc/unimarc/마크/Check_copyWD.cs b/unimarc/unimarc/마크/Check_copyWD.cs
index a93d154..30141e6 100644
--- a/unimarc/unimarc/마크/Check_copyWD.cs
+++ b/unimarc/unimarc/마크/Check_copyWD.cs
@@ -27,19 +27,51 @@ namespace WindowsFormsApp1.Mac
main = _main;
db.DBcon();
+ var idx = 1;
//도서검색(크롤링)
_searchService = new BookSearchService();
- //_searchService.AddSearcher(new KwangjuCityLibrarySearcher_central());
- //_searchService.AddSearcher(new KwangjuCityLibrarySearcher_choisangjun());
- //_searchService.AddSearcher(new KwangjuCityLibrarySearcher_dagachi());
- //_searchService.AddSearcher(new KwangjuCityLibrarySearcher_Indi());
- //_searchService.AddSearcher(new KwangjuCityLibrarySearcher_Student());
- //_searchService.AddSearcher(new KwangjuCityLibrarySearcher_Kumho());
- _searchService.AddSearcher(new NamguLibrarySearcher_Munhwa(1));
- _searchService.AddSearcher(new NamguLibrarySearcher_Children(2));
- _searchService.AddSearcher(new NamguLibrarySearcher_Smart(3));
- _searchService.AddSearcher(new NamguLibrarySearcher_Purungil(4));
- _searchService.AddSearcher(new NamguLibrarySearcher_Hyocheon(5));
+
+ _searchService.AddSearcher(new NamguLibrarySearcher_Munhwa(idx++));
+ _searchService.AddSearcher(new NamguLibrarySearcher_Children(idx++));
+ _searchService.AddSearcher(new NamguLibrarySearcher_Smart(idx++));
+ _searchService.AddSearcher(new NamguLibrarySearcher_Purungil(idx++));
+ _searchService.AddSearcher(new NamguLibrarySearcher_Hyocheon(idx++));
+
+ //광주시청도서광
+ idx = 30;
+ _searchService.AddSearcher(new KwangjuCityLibrarySearcher_central(idx++));
+ _searchService.AddSearcher(new KwangjuCityLibrarySearcher_choisangjun(idx++));
+ _searchService.AddSearcher(new KwangjuCityLibrarySearcher_dagachi(idx++));
+ _searchService.AddSearcher(new KwangjuCityLibrarySearcher_Indi(idx++));
+ _searchService.AddSearcher(new KwangjuCityLibrarySearcher_Student(idx++));
+ _searchService.AddSearcher(new KwangjuCityLibrarySearcher_Kumho(idx++));
+
+ //전남교육청통합도서관
+ idx = 50;
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //목포
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //나주
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //남평
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //광양
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //구례
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //보성
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //벌교
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //화순
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //장흥
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //해남
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //영암
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //무안
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //함평
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //영광
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //장성
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //진도
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //곡성
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //학생교육문화원
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //광양평생
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //고흥평색
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //교육연수원
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //교육연구정보원
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //전라남도국제교육원
+ _searchService.AddSearcher(new JunnamEduSearcher_Mokpo(idx++)); //순천만생태문화교육원
}
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
@@ -51,7 +83,7 @@ namespace WindowsFormsApp1.Mac
private void Check_copy_Load(object sender, EventArgs e)
{
string[] Grid = { "----- 빈칸으로 놔주세요 -----", "빈칸", "" };
- dataGridView1.Rows.Add(Grid);
+ dv1.Rows.Add(Grid);
this.Show();
Application.DoEvents();
@@ -182,7 +214,7 @@ namespace WindowsFormsApp1.Mac
Skill_Grid sg = new Skill_Grid();
sg.Excel_to_DataGridView(sender, e);
- SearchCount.Value = dataGridView1.Rows.Count;
+ SearchCount.Value = dv1.Rows.Count;
}
async private void btn_Start_Click(object sender, EventArgs e)
@@ -204,10 +236,10 @@ namespace WindowsFormsApp1.Mac
}
- SearchCount.Value = dataGridView1.Rows.Count; //250619
+ SearchCount.Value = dv1.Rows.Count; //250619
RowCount = 0; //250619
- dataGridView1.CurrentCell = dataGridView1.Rows[0].Cells[0];
+ dv1.CurrentCell = dv1.Rows[0].Cells[0];
int SCount = Convert.ToInt32(SearchCount.Value);
@@ -259,7 +291,7 @@ namespace WindowsFormsApp1.Mac
RetrySearch:
- foreach (DataGridViewRow drow in this.dataGridView1.Rows)
+ foreach (DataGridViewRow drow in this.dv1.Rows)
{
if (this._isSearching == false)
{
@@ -267,7 +299,7 @@ namespace WindowsFormsApp1.Mac
continue;
}
- dataGridView1.CurrentCell = drow.Cells[0];
+ dv1.CurrentCell = drow.Cells[0];
//var vBookName = drow.Cells["book_name"].Value;
var bookName = drow.Cells["book_name"].Value?.ToString() ?? string.Empty;
if (bookName.isEmpty())
@@ -376,8 +408,8 @@ namespace WindowsFormsApp1.Mac
{
if (Count == "" || Count == "0" || Count == "미소장")
{
- dataGridView1.Rows[RowCount].DefaultCellStyle.BackColor = Color.LightGray;
- dataGridView1.Rows[RowCount].DefaultCellStyle.ForeColor = Color.Red;
+ dv1.Rows[RowCount].DefaultCellStyle.BackColor = Color.LightGray;
+ dv1.Rows[RowCount].DefaultCellStyle.ForeColor = Color.Red;
if (rb_isHave.Checked)
return "";
@@ -385,8 +417,8 @@ namespace WindowsFormsApp1.Mac
return Count;
}
- dataGridView1.Rows[RowCount].DefaultCellStyle.BackColor = Color.Yellow;
- dataGridView1.Rows[RowCount].DefaultCellStyle.ForeColor = Color.Blue;
+ dv1.Rows[RowCount].DefaultCellStyle.BackColor = Color.Yellow;
+ dv1.Rows[RowCount].DefaultCellStyle.ForeColor = Color.Blue;
if (rb_isHave.Checked)
return "소장";
@@ -403,7 +435,7 @@ namespace WindowsFormsApp1.Mac
private void btn_ApplyFilter_Click(object sender, EventArgs e)
{
- int count = dataGridView1.Rows.Count;
+ int count = dv1.Rows.Count;
if (count <= 1)
return;
@@ -422,17 +454,17 @@ namespace WindowsFormsApp1.Mac
{
for (int a = 0; a < count; a++)
{
- if (dataGridView1.Rows[a].Cells["book_name"].Value == null)
+ if (dv1.Rows[a].Cells["book_name"].Value == null)
break;
- string Target = dataGridView1.Rows[a].Cells["book_name"].Value.ToString();
+ string Target = dv1.Rows[a].Cells["book_name"].Value.ToString();
// 구두점 제거 ,.;:/
// Target = Target.Replace(",", "").Replace(".", "").Replace(";", "").Replace(":", "");
string res = Regex.Replace(Target, @"[^a-zA-Z0-9가-힣_\s()]", "", RegexOptions.Singleline);
- dataGridView1.Rows[a].Cells["book_name"].Value = res.Trim();
+ dv1.Rows[a].Cells["book_name"].Value = res.Trim();
}
}
@@ -444,12 +476,12 @@ namespace WindowsFormsApp1.Mac
String_Text st = new String_Text();
for (int a = 0; a < count; a++)
{
- if (dataGridView1.Rows[a].Cells["book_name"].Value == null)
+ if (dv1.Rows[a].Cells["book_name"].Value == null)
break;
- string Target = dataGridView1.Rows[a].Cells["book_name"].Value.ToString();
+ string Target = dv1.Rows[a].Cells["book_name"].Value.ToString();
- dataGridView1.Rows[a].Cells["book_name"].Value = st.RemoveWordInBracket(Target).Trim();
+ dv1.Rows[a].Cells["book_name"].Value = st.RemoveWordInBracket(Target).Trim();
}
}
@@ -458,7 +490,7 @@ namespace WindowsFormsApp1.Mac
OpenFileDialog OpenFileDialog = new OpenFileDialog();
if (OpenFileDialog.ShowDialog() == DialogResult.OK)
{
- dataGridView1.Rows.Clear();
+ dv1.Rows.Clear();
string filePath = OpenFileDialog.FileName;
try
{
@@ -493,23 +525,23 @@ namespace WindowsFormsApp1.Mac
else
GridData[0] = Line;
- dataGridView1.Rows.Add(GridData);
+ dv1.Rows.Add(GridData);
}
}
#endregion
private void btn_GridReset_Click(object sender, EventArgs e)
{
- dataGridView1.Rows.Clear();
+ dv1.Rows.Clear();
}
private void btn_ResultEmpty_Click(object sender, EventArgs e)
{
- for (int a = 0; a < dataGridView1.Rows.Count; a++)
+ for (int a = 0; a < dv1.Rows.Count; a++)
{
- dataGridView1.Rows[a].DefaultCellStyle.ForeColor = Color.Black;
- dataGridView1.Rows[a].DefaultCellStyle.BackColor = Color.White;
- dataGridView1.Rows[a].Cells["Count"].Value = "";
+ dv1.Rows[a].DefaultCellStyle.ForeColor = Color.Black;
+ dv1.Rows[a].DefaultCellStyle.BackColor = Color.White;
+ dv1.Rows[a].Cells["Count"].Value = "";
RowCount = 0;
}
}
diff --git a/unimarc/unimarc/마크/Check_copyWD.resx b/unimarc/unimarc/마크/Check_copyWD.resx
index 9fc1aef..3f8392d 100644
--- a/unimarc/unimarc/마크/Check_copyWD.resx
+++ b/unimarc/unimarc/마크/Check_copyWD.resx
@@ -132,7 +132,4 @@
17, 17
-
- 17, 17
-
\ No newline at end of file
diff --git a/unimarc/unimarc/마크/DLS_Copy.Designer.cs b/unimarc/unimarc/마크/DLS_Copy.Designer.cs
index 353529a..f6c4580 100644
--- a/unimarc/unimarc/마크/DLS_Copy.Designer.cs
+++ b/unimarc/unimarc/마크/DLS_Copy.Designer.cs
@@ -28,18 +28,16 @@
///
private void InitializeComponent()
{
- System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(DLS_Copy));
this.label1 = new System.Windows.Forms.Button();
this.panel1 = new System.Windows.Forms.Panel();
this.panel8 = new System.Windows.Forms.Panel();
- this.dataGridView1 = new System.Windows.Forms.DataGridView();
+ this.dv1 = new System.Windows.Forms.DataGridView();
this.panel5 = new System.Windows.Forms.Panel();
this.chkShowBrowser = new System.Windows.Forms.CheckBox();
this.chk_RemoveBrit = new System.Windows.Forms.CheckBox();
this.chk_spChar = new System.Windows.Forms.CheckBox();
this.btn_ApplyFilter = new System.Windows.Forms.Button();
this.panel3 = new System.Windows.Forms.Panel();
- this.btn_Reflesh008 = new System.Windows.Forms.Button();
this.label2 = new System.Windows.Forms.Label();
this.rBtn_ISBN = new System.Windows.Forms.RadioButton();
this.btnStop = new System.Windows.Forms.Button();
@@ -55,12 +53,15 @@
this.tb_SearchClient = new System.Windows.Forms.TextBox();
this.statusStrip1 = new System.Windows.Forms.StatusStrip();
this.lblStatus = new System.Windows.Forms.ToolStripLabel();
+ this.btn_ResultEmpty = new System.Windows.Forms.Button();
+ this.btn_GridReset = new System.Windows.Forms.Button();
this.Book_name = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.ISBN = new System.Windows.Forms.DataGridViewTextBoxColumn();
- this.Check = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.dvc_count = new System.Windows.Forms.DataGridViewTextBoxColumn();
+ this.dvc_Remark = new System.Windows.Forms.DataGridViewTextBoxColumn();
this.panel1.SuspendLayout();
this.panel8.SuspendLayout();
- ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).BeginInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit();
this.panel5.SuspendLayout();
this.panel3.SuspendLayout();
this.panel2.SuspendLayout();
@@ -87,48 +88,50 @@
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
- this.panel1.Size = new System.Drawing.Size(499, 712);
+ this.panel1.Size = new System.Drawing.Size(640, 699);
this.panel1.TabIndex = 1;
//
// panel8
//
- this.panel8.Controls.Add(this.dataGridView1);
+ this.panel8.Controls.Add(this.dv1);
this.panel8.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel8.Location = new System.Drawing.Point(0, 103);
this.panel8.Name = "panel8";
- this.panel8.Size = new System.Drawing.Size(497, 607);
+ this.panel8.Size = new System.Drawing.Size(638, 594);
this.panel8.TabIndex = 5;
//
- // dataGridView1
+ // dv1
//
- this.dataGridView1.BackgroundColor = System.Drawing.SystemColors.Control;
- this.dataGridView1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
- this.dataGridView1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
- this.dataGridView1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
+ this.dv1.BackgroundColor = System.Drawing.SystemColors.Control;
+ this.dv1.ColumnHeadersBorderStyle = System.Windows.Forms.DataGridViewHeaderBorderStyle.Single;
+ this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
+ this.dv1.Columns.AddRange(new System.Windows.Forms.DataGridViewColumn[] {
this.Book_name,
this.ISBN,
- this.Check});
- this.dataGridView1.Dock = System.Windows.Forms.DockStyle.Fill;
- this.dataGridView1.Location = new System.Drawing.Point(0, 0);
- this.dataGridView1.Name = "dataGridView1";
- this.dataGridView1.RowHeadersWidth = 31;
- this.dataGridView1.RowTemplate.Height = 23;
- this.dataGridView1.Size = new System.Drawing.Size(497, 607);
- this.dataGridView1.TabIndex = 0;
- this.dataGridView1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
- this.dataGridView1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown);
+ this.dvc_count,
+ this.dvc_Remark});
+ this.dv1.Dock = System.Windows.Forms.DockStyle.Fill;
+ this.dv1.Location = new System.Drawing.Point(0, 0);
+ this.dv1.Name = "dv1";
+ this.dv1.RowHeadersWidth = 31;
+ this.dv1.RowTemplate.Height = 23;
+ this.dv1.Size = new System.Drawing.Size(638, 594);
+ this.dv1.TabIndex = 0;
+ this.dv1.RowPostPaint += new System.Windows.Forms.DataGridViewRowPostPaintEventHandler(this.dataGridView1_RowPostPaint);
+ this.dv1.KeyDown += new System.Windows.Forms.KeyEventHandler(this.dataGridView1_KeyDown);
//
// panel5
//
this.panel5.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.panel5.Controls.Add(this.chkShowBrowser);
+ this.panel5.Controls.Add(this.btn_ResultEmpty);
+ this.panel5.Controls.Add(this.btn_GridReset);
this.panel5.Controls.Add(this.chk_RemoveBrit);
this.panel5.Controls.Add(this.chk_spChar);
this.panel5.Controls.Add(this.btn_ApplyFilter);
this.panel5.Dock = System.Windows.Forms.DockStyle.Top;
this.panel5.Location = new System.Drawing.Point(0, 68);
this.panel5.Name = "panel5";
- this.panel5.Size = new System.Drawing.Size(497, 35);
+ this.panel5.Size = new System.Drawing.Size(638, 35);
this.panel5.TabIndex = 4;
//
// chkShowBrowser
@@ -137,7 +140,7 @@
this.chkShowBrowser.AutoSize = true;
this.chkShowBrowser.Checked = true;
this.chkShowBrowser.CheckState = System.Windows.Forms.CheckState.Checked;
- this.chkShowBrowser.Location = new System.Drawing.Point(395, 7);
+ this.chkShowBrowser.Location = new System.Drawing.Point(354, 9);
this.chkShowBrowser.Name = "chkShowBrowser";
this.chkShowBrowser.Size = new System.Drawing.Size(96, 16);
this.chkShowBrowser.TabIndex = 209;
@@ -157,7 +160,7 @@
// chk_spChar
//
this.chk_spChar.AutoSize = true;
- this.chk_spChar.Location = new System.Drawing.Point(10, 9);
+ this.chk_spChar.Location = new System.Drawing.Point(10, 8);
this.chk_spChar.Name = "chk_spChar";
this.chk_spChar.Size = new System.Drawing.Size(100, 16);
this.chk_spChar.TabIndex = 4;
@@ -167,17 +170,18 @@
// btn_ApplyFilter
//
this.btn_ApplyFilter.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.btn_ApplyFilter.Location = new System.Drawing.Point(314, 3);
+ this.btn_ApplyFilter.Location = new System.Drawing.Point(258, 4);
this.btn_ApplyFilter.Name = "btn_ApplyFilter";
this.btn_ApplyFilter.Size = new System.Drawing.Size(75, 24);
this.btn_ApplyFilter.TabIndex = 5;
this.btn_ApplyFilter.Text = "필터적용";
this.btn_ApplyFilter.UseVisualStyleBackColor = true;
+ this.btn_ApplyFilter.Click += new System.EventHandler(this.btn_ApplyFilter_Click);
//
// panel3
//
this.panel3.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;
- this.panel3.Controls.Add(this.btn_Reflesh008);
+ this.panel3.Controls.Add(this.chkShowBrowser);
this.panel3.Controls.Add(this.label2);
this.panel3.Controls.Add(this.rBtn_ISBN);
this.panel3.Controls.Add(this.btnStop);
@@ -186,22 +190,9 @@
this.panel3.Dock = System.Windows.Forms.DockStyle.Top;
this.panel3.Location = new System.Drawing.Point(0, 33);
this.panel3.Name = "panel3";
- this.panel3.Size = new System.Drawing.Size(497, 35);
+ this.panel3.Size = new System.Drawing.Size(638, 35);
this.panel3.TabIndex = 4;
//
- // btn_Reflesh008
- //
- this.btn_Reflesh008.BackColor = System.Drawing.SystemColors.WindowText;
- this.btn_Reflesh008.BackgroundImage = ((System.Drawing.Image)(resources.GetObject("btn_Reflesh008.BackgroundImage")));
- this.btn_Reflesh008.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch;
- this.btn_Reflesh008.Dock = System.Windows.Forms.DockStyle.Right;
- this.btn_Reflesh008.Location = new System.Drawing.Point(462, 0);
- this.btn_Reflesh008.Name = "btn_Reflesh008";
- this.btn_Reflesh008.Size = new System.Drawing.Size(33, 33);
- this.btn_Reflesh008.TabIndex = 208;
- this.btn_Reflesh008.UseVisualStyleBackColor = false;
- this.btn_Reflesh008.Click += new System.EventHandler(this.btn_Reflesh008_Click);
- //
// label2
//
this.label2.AutoSize = true;
@@ -267,13 +258,13 @@
this.panel2.Dock = System.Windows.Forms.DockStyle.Top;
this.panel2.Location = new System.Drawing.Point(0, 0);
this.panel2.Name = "panel2";
- this.panel2.Size = new System.Drawing.Size(497, 33);
+ this.panel2.Size = new System.Drawing.Size(638, 33);
this.panel2.TabIndex = 3;
//
// btn_SiteDenote
//
this.btn_SiteDenote.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.btn_SiteDenote.Location = new System.Drawing.Point(414, 5);
+ this.btn_SiteDenote.Location = new System.Drawing.Point(555, 5);
this.btn_SiteDenote.Name = "btn_SiteDenote";
this.btn_SiteDenote.Size = new System.Drawing.Size(77, 23);
this.btn_SiteDenote.TabIndex = 6;
@@ -284,7 +275,7 @@
// btn_Connect
//
this.btn_Connect.Anchor = ((System.Windows.Forms.AnchorStyles)((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Right)));
- this.btn_Connect.Location = new System.Drawing.Point(338, 5);
+ this.btn_Connect.Location = new System.Drawing.Point(479, 5);
this.btn_Connect.Name = "btn_Connect";
this.btn_Connect.Size = new System.Drawing.Size(70, 23);
this.btn_Connect.TabIndex = 5;
@@ -335,7 +326,7 @@
this.tb_SearchClient.ImeMode = System.Windows.Forms.ImeMode.Hangul;
this.tb_SearchClient.Location = new System.Drawing.Point(76, 6);
this.tb_SearchClient.Name = "tb_SearchClient";
- this.tb_SearchClient.Size = new System.Drawing.Size(256, 21);
+ this.tb_SearchClient.Size = new System.Drawing.Size(397, 21);
this.tb_SearchClient.TabIndex = 1;
this.tb_SearchClient.KeyDown += new System.Windows.Forms.KeyEventHandler(this.tb_SearchClient_KeyDown);
//
@@ -343,9 +334,9 @@
//
this.statusStrip1.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.lblStatus});
- this.statusStrip1.Location = new System.Drawing.Point(0, 712);
+ this.statusStrip1.Location = new System.Drawing.Point(0, 699);
this.statusStrip1.Name = "statusStrip1";
- this.statusStrip1.Size = new System.Drawing.Size(499, 22);
+ this.statusStrip1.Size = new System.Drawing.Size(640, 22);
this.statusStrip1.TabIndex = 3;
this.statusStrip1.Text = "statusStrip1";
//
@@ -356,6 +347,26 @@
this.lblStatus.Text = "WD";
this.lblStatus.Click += new System.EventHandler(this.lblStatus_Click);
//
+ // btn_ResultEmpty
+ //
+ this.btn_ResultEmpty.Location = new System.Drawing.Point(478, 4);
+ this.btn_ResultEmpty.Name = "btn_ResultEmpty";
+ this.btn_ResultEmpty.Size = new System.Drawing.Size(75, 24);
+ this.btn_ResultEmpty.TabIndex = 6;
+ this.btn_ResultEmpty.Text = "결과 비움";
+ this.btn_ResultEmpty.UseVisualStyleBackColor = true;
+ this.btn_ResultEmpty.Click += new System.EventHandler(this.btn_ResultEmpty_Click);
+ //
+ // btn_GridReset
+ //
+ this.btn_GridReset.Location = new System.Drawing.Point(555, 4);
+ this.btn_GridReset.Name = "btn_GridReset";
+ this.btn_GridReset.Size = new System.Drawing.Size(75, 24);
+ this.btn_GridReset.TabIndex = 7;
+ this.btn_GridReset.Text = "표 비우기";
+ this.btn_GridReset.UseVisualStyleBackColor = true;
+ this.btn_GridReset.Click += new System.EventHandler(this.btn_GridReset_Click);
+ //
// Book_name
//
this.Book_name.HeaderText = "도서명";
@@ -369,17 +380,22 @@
this.ISBN.Name = "ISBN";
this.ISBN.Width = 140;
//
- // Check
+ // dvc_count
//
- this.Check.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill;
- this.Check.HeaderText = "권수";
- this.Check.Name = "Check";
+ this.dvc_count.HeaderText = "검색";
+ this.dvc_count.Name = "dvc_count";
+ //
+ // dvc_Remark
+ //
+ this.dvc_Remark.HeaderText = "비고";
+ this.dvc_Remark.Name = "dvc_Remark";
+ this.dvc_Remark.Width = 200;
//
// DLS_Copy
//
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 12F);
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
- this.ClientSize = new System.Drawing.Size(499, 734);
+ this.ClientSize = new System.Drawing.Size(640, 721);
this.Controls.Add(this.panel1);
this.Controls.Add(this.statusStrip1);
this.Name = "DLS_Copy";
@@ -387,7 +403,7 @@
this.Load += new System.EventHandler(this.DLS_Copy_Load);
this.panel1.ResumeLayout(false);
this.panel8.ResumeLayout(false);
- ((System.ComponentModel.ISupportInitialize)(this.dataGridView1)).EndInit();
+ ((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit();
this.panel5.ResumeLayout(false);
this.panel5.PerformLayout();
this.panel3.ResumeLayout(false);
@@ -411,14 +427,13 @@
public System.Windows.Forms.Label lbl_PW;
public System.Windows.Forms.Label lbl_ID;
public System.Windows.Forms.Label lbl_Client;
- private System.Windows.Forms.DataGridView dataGridView1;
+ private System.Windows.Forms.DataGridView dv1;
private System.Windows.Forms.Panel panel5;
private System.Windows.Forms.RadioButton rBtn_ISBN;
private System.Windows.Forms.RadioButton rBtn_BookName;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.Button btn_Search;
public System.Windows.Forms.Label lbl_Area;
- private System.Windows.Forms.Button btn_Reflesh008;
private System.Windows.Forms.CheckBox chk_RemoveBrit;
private System.Windows.Forms.Button btn_ApplyFilter;
private System.Windows.Forms.CheckBox chk_spChar;
@@ -429,8 +444,11 @@
private System.Windows.Forms.StatusStrip statusStrip1;
private System.Windows.Forms.ToolStripLabel lblStatus;
public System.Windows.Forms.Button btn_Connect;
+ private System.Windows.Forms.Button btn_ResultEmpty;
+ private System.Windows.Forms.Button btn_GridReset;
private System.Windows.Forms.DataGridViewTextBoxColumn Book_name;
private System.Windows.Forms.DataGridViewTextBoxColumn ISBN;
- private System.Windows.Forms.DataGridViewTextBoxColumn Check;
+ private System.Windows.Forms.DataGridViewTextBoxColumn dvc_count;
+ private System.Windows.Forms.DataGridViewTextBoxColumn dvc_Remark;
}
}
\ No newline at end of file
diff --git a/unimarc/unimarc/마크/DLS_Copy.cs b/unimarc/unimarc/마크/DLS_Copy.cs
index c509340..159ea67 100644
--- a/unimarc/unimarc/마크/DLS_Copy.cs
+++ b/unimarc/unimarc/마크/DLS_Copy.cs
@@ -6,6 +6,7 @@ using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
+using System.Text.RegularExpressions;
using System.Threading.Tasks;
using System.Windows.Forms;
using UniMarc.SearchModel;
@@ -190,12 +191,12 @@ namespace WindowsFormsApp1.Mac
async private void btn_Search_Click(object sender, EventArgs e)
{
- if (dataGridView1.Rows[0].Cells["ISBN"].Value == null && rBtn_ISBN.Checked)
+ if (dv1.Rows[0].Cells["ISBN"].Value == null && rBtn_ISBN.Checked)
{
MessageBox.Show("ISBN이 입력되지않았습니다!");
return;
}
- if (dataGridView1.Rows[0].Cells["Book_name"].Value == null && rBtn_BookName.Checked)
+ if (dv1.Rows[0].Cells["Book_name"].Value == null && rBtn_BookName.Checked)
{
MessageBox.Show("도서명이 입력되지않았습니다!");
return;
@@ -208,7 +209,7 @@ namespace WindowsFormsApp1.Mac
var sType = rBtn_ISBN.Checked ? "ea_isbn" : "title";
_searcher.SetParameter(this.lbl_ID.Text, lbl_PW.Text, "유덕초등학교", sType);
- foreach (DataGridViewRow dr in this.dataGridView1.Rows)
+ foreach (DataGridViewRow dr in this.dv1.Rows)
{
var title = dr.Cells[0].Value?.ToString() ?? string.Empty;
var isbn = dr.Cells[1].Value?.ToString() ?? string.Empty;
@@ -216,12 +217,17 @@ namespace WindowsFormsApp1.Mac
var rlt = await _searcher.SearchAsync(search);
if (rlt.IsSuccess == false)
{
- dr.Cells[2].Value = rlt.ErrorMessage;
+ dr.Cells[3].Value = rlt.ErrorMessage;
+ dr.DefaultCellStyle.BackColor = Color.HotPink;
}
else
{
//if (rlt.BookCount > 0) dr.Cells[2].Value = "Y";
dr.Cells[2].Value = $"{rlt.BookCount }";
+ if (rlt.BookCount == 0)
+ dr.DefaultCellStyle.BackColor = Color.WhiteSmoke;
+ else
+ dr.DefaultCellStyle.BackColor = Color.LightSkyBlue;
}
}
@@ -283,10 +289,10 @@ namespace WindowsFormsApp1.Mac
private void btn_Reflesh008_Click(object sender, EventArgs e)
{
- for (int a = 0; a < dataGridView1.Rows.Count; a++)
+ for (int a = 0; a < dv1.Rows.Count; a++)
{
- dataGridView1.Rows[a].Cells["Check"].Value = "";
- dataGridView1.Rows[a].DefaultCellStyle.BackColor = Color.White;
+ dv1.Rows[a].Cells["Check"].Value = "";
+ dv1.Rows[a].DefaultCellStyle.BackColor = Color.White;
}
}
@@ -323,10 +329,79 @@ namespace WindowsFormsApp1.Mac
"9788999729188",
"9788999729188"};
- this.dataGridView1.Rows.Clear();
+ this.dv1.Rows.Clear();
foreach (var isbn in lst)
{
- dataGridView1.Rows.Add(new object[] { "", isbn, "" });
+ dv1.Rows.Add(new object[] { "", isbn, "","" });
+ }
+ }
+
+ private void btn_GridReset_Click(object sender, EventArgs e)
+ {
+ dv1.Rows.Clear();
+ }
+
+ private void btn_ResultEmpty_Click(object sender, EventArgs e)
+ {
+ for (int a = 0; a < dv1.Rows.Count; a++)
+ {
+ dv1.Rows[a].DefaultCellStyle.ForeColor = Color.Black;
+ dv1.Rows[a].DefaultCellStyle.BackColor = Color.White;
+ dv1.Rows[a].Cells["dvc_count"].Value = "";
+ }
+ }
+
+ private void btn_ApplyFilter_Click(object sender, EventArgs e)
+ {
+ int count = dv1.Rows.Count;
+
+ if (count <= 1)
+ return;
+
+ if (chk_spChar.Checked) // 특수문자 제거
+ RemoveSpecialChar(count);
+
+ if (chk_RemoveBrit.Checked) // 괄호안의 문자 제거
+ RemoveInBrit(count);
+ }
+
+ ///
+ /// 특수문자 제거
+ ///
+ void RemoveSpecialChar(int count)
+ {
+ var booknamecol = 0;
+ for (int a = 0; a < count; a++)
+ {
+ if (dv1.Rows[a].Cells[booknamecol].Value == null)
+ break;
+
+ string Target = dv1.Rows[a].Cells[booknamecol].Value.ToString();
+
+ // 구두점 제거 ,.;:/
+ // Target = Target.Replace(",", "").Replace(".", "").Replace(";", "").Replace(":", "");
+
+ string res = Regex.Replace(Target, @"[^a-zA-Z0-9가-힣_\s()]", "", RegexOptions.Singleline);
+
+ dv1.Rows[a].Cells[booknamecol].Value = res.Trim();
+ }
+ }
+
+ ///
+ /// 괄호안의 문자 제거
+ ///
+ void RemoveInBrit(int count)
+ {
+ var booknamecol = 0;
+ String_Text st = new String_Text();
+ for (int a = 0; a < count; a++)
+ {
+ if (dv1.Rows[a].Cells[booknamecol].Value == null)
+ break;
+
+ string Target = dv1.Rows[a].Cells[booknamecol].Value.ToString();
+
+ dv1.Rows[a].Cells[booknamecol].Value = st.RemoveWordInBracket(Target).Trim();
}
}
}
diff --git a/unimarc/unimarc/마크/DLS_Copy.resx b/unimarc/unimarc/마크/DLS_Copy.resx
index 9731881..7a575ec 100644
--- a/unimarc/unimarc/마크/DLS_Copy.resx
+++ b/unimarc/unimarc/마크/DLS_Copy.resx
@@ -123,48 +123,12 @@
True
-
+
+ True
+
+
True
-
-
-
- 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
-
-
17, 17