매크로 113번 추가

This commit is contained in:
Arin(asus)
2025-08-14 22:56:17 +09:00
parent d3d4b977e6
commit e2ae5d2937
19 changed files with 476 additions and 1190 deletions

View File

@@ -1531,7 +1531,7 @@ namespace WindowsFormsApp1
{
master_batch_Processing = new Batch_processing(this);
master_batch_Processing.MdiParent = this;
master_batch_Processing.WindowState = FormWindowState.Maximized;
//master_batch_Processing.WindowState = FormWindowState.Maximized;
master_batch_Processing.FormClosed += (o, ea) => master_batch_Processing = null;
master_batch_Processing.Show();
}

View File

@@ -9,7 +9,7 @@
<ErrorReportUrlHistory />
<FallbackCulture>ko-KR</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ProjectView>ShowAllFiles</ProjectView>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
<PropertyGroup>
<EnableSecurityDebugging>false</EnableSecurityDebugging>

View File

@@ -28,26 +28,190 @@
/// </summary>
private void InitializeComponent()
{
this.label1 = new System.Windows.Forms.Label();
this.components = new System.ComponentModel.Container();
System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(Batch_processing));
this.dv1 = new System.Windows.Forms.DataGridView();
this.bs = new System.Windows.Forms.BindingSource(this.components);
this.bn = 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();
this.toolStripButton1 = new System.Windows.Forms.ToolStripButton();
((System.ComponentModel.ISupportInitialize)(this.dv1)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).BeginInit();
((System.ComponentModel.ISupportInitialize)(this.bn)).BeginInit();
this.bn.SuspendLayout();
this.SuspendLayout();
//
// label1
// dv1
//
this.label1.AutoSize = true;
this.label1.Location = new System.Drawing.Point(311, 121);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(119, 12);
this.label1.TabIndex = 0;
this.label1.Text = "마스터_일괄처리관리";
this.dv1.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize;
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(866, 559);
this.dv1.TabIndex = 0;
//
// bn
//
this.bn.AddNewItem = this.bindingNavigatorAddNewItem;
this.bn.CountItem = this.bindingNavigatorCountItem;
this.bn.DeleteItem = this.bindingNavigatorDeleteItem;
this.bn.Dock = System.Windows.Forms.DockStyle.Bottom;
this.bn.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.toolStripButton1});
this.bn.Location = new System.Drawing.Point(0, 559);
this.bn.MoveFirstItem = this.bindingNavigatorMoveFirstItem;
this.bn.MoveLastItem = this.bindingNavigatorMoveLastItem;
this.bn.MoveNextItem = this.bindingNavigatorMoveNextItem;
this.bn.MovePreviousItem = this.bindingNavigatorMovePreviousItem;
this.bn.Name = "bn";
this.bn.PositionItem = this.bindingNavigatorPositionItem;
this.bn.Size = new System.Drawing.Size(866, 25);
this.bn.TabIndex = 1;
this.bn.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(52, 22);
this.btSave.Text = "Save";
this.btSave.Click += new System.EventHandler(this.btSave_Click);
//
// toolStripButton1
//
this.toolStripButton1.Alignment = System.Windows.Forms.ToolStripItemAlignment.Right;
this.toolStripButton1.Image = ((System.Drawing.Image)(resources.GetObject("toolStripButton1.Image")));
this.toolStripButton1.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolStripButton1.Name = "toolStripButton1";
this.toolStripButton1.Size = new System.Drawing.Size(66, 22);
this.toolStripButton1.Text = "Refresh";
this.toolStripButton1.Click += new System.EventHandler(this.toolStripButton1_Click);
//
// Batch_processing
//
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.label1);
this.ClientSize = new System.Drawing.Size(866, 584);
this.Controls.Add(this.dv1);
this.Controls.Add(this.bn);
this.Name = "Batch_processing";
this.Text = "Batch_processing";
this.Load += new System.EventHandler(this.Batch_processing_Load);
((System.ComponentModel.ISupportInitialize)(this.dv1)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bs)).EndInit();
((System.ComponentModel.ISupportInitialize)(this.bn)).EndInit();
this.bn.ResumeLayout(false);
this.bn.PerformLayout();
this.ResumeLayout(false);
this.PerformLayout();
@@ -55,6 +219,21 @@
#endregion
private System.Windows.Forms.Label label1;
private System.Windows.Forms.DataGridView dv1;
private System.Windows.Forms.BindingSource bs;
private System.Windows.Forms.BindingNavigator bn;
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;
private System.Windows.Forms.ToolStripButton toolStripButton1;
}
}

View File

@@ -1,4 +1,5 @@
using System;
using AR;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
@@ -12,11 +13,83 @@ namespace WindowsFormsApp1.Home
{
public partial class Batch_processing : Form
{
Helper_DB db = new Helper_DB();
Main main;
MySql.Data.MySqlClient.MySqlDataAdapter da;
DataTable dt = new DataTable();
public Batch_processing(Main _main)
{
InitializeComponent();
main = _main;
this.Text = $"매크로 데이터 관리";
}
private void Batch_processing_Load(object sender, EventArgs e)
{
RefreshData();
}
void RefreshData()
{
var sql = "select * from SetMacro order by tag";
var firstrun = da == null;
if(firstrun)
{
var cn = db.CreateConnection();
da = new MySql.Data.MySqlClient.MySqlDataAdapter(sql, cn);
var cb = new MySql.Data.MySqlClient.MySqlCommandBuilder(da);
// CommandBuilder가 Insert/Update/Delete 명령을 자동으로 생성하도록 설정
da.InsertCommand = cb.GetInsertCommand();
da.UpdateCommand = cb.GetUpdateCommand();
da.DeleteCommand = cb.GetDeleteCommand();
}
this.dt.Clear();
da.Fill(dt);
dt.AcceptChanges();
if(firstrun)
{
this.bs.DataSource = dt;
this.bn.BindingSource = this.bs;
this.dv1.DataSource = this.bs;
// idx 열(첫번째 열) 편집 비활성화 및 배경색 회색으로 설정
if (this.dv1.Columns.Count > 0)
{
this.dv1.Columns[0].ReadOnly = true;
this.dv1.Columns[0].DefaultCellStyle.BackColor = Color.LightGray;
this.dv1.Columns[0].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
// 1, 3번 열 가운데 정렬
if (this.dv1.Columns.Count > 1)
{
this.dv1.Columns[1].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
if (this.dv1.Columns.Count > 3)
{
this.dv1.Columns[3].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
}
}
this.dv1.AutoResizeColumns();
}
private void btSave_Click(object sender, EventArgs e)
{
this.Validate();
this.bs.EndEdit();
if (UTIL.MsgQ("자료를 저장할까요?") != DialogResult.Yes) return;
var cnt = da.Update(this.dt);
dt.AcceptChanges();
UTIL.MsgI($"{cnt}건의 자료가 저장 되었습니다");
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
RefreshData();
}
}
}

View File

@@ -117,4 +117,105 @@
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>156, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="bindingNavigatorAddNewItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFXSURBVDhPzc9LSwJhFAZgd5FkaAlFRCEhVCRm9TssIiqw
7CKWXZCQJA1Lw0JIo1Ckm1SL2rSoTYvaBEUQBhEF4YyXaex3fN/3hrNo4SxkNtELZ3U4D+9Rqf5tCmdV
yJ5U4zOlxvuBBuX7ismk1CDfGyDFENIJrXLgbV/zCzzE9MqB57gOpLgOIq7iNtJQGfg4rMFrshbpuA5P
u3W4j+pBxBVQwYPrUDMuAy248Btw6m3DkccoB18SWpBiEERcAxH9IMIyiOAGLcyB5h2gOTsYPwrGDyG+
2CEHHnfqpbr0ywsiLIEWFkDzTtDcJFjWBsYPg3GDYBkrtmdMcuAu0oibcBOupLqtOPcZQLNjYPwIku52
7M13IuoyIeI0IzxlkQPlOfYYpbqMG0DM1VX5oDylPxnXD8ZZseUwKweisybp39IE7T3Kgc3pboQmLAiM
98Jv61MO/Fl+ACQj2J5cFZvRAAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorDeleteItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFrSURBVDhPtZBNKMNhHMf/V+WtlIsLSjkgk5iQTIbkJTKN
yLwlBw6LhFx2cCDlQg64SA4kJeVEstO8zWtrSn9pWmkX/OPyfMQQnrWm+Fy/3++n5/kpyl+A6xi6q8Gx
w88sJFiZR3SWIyxG2FoPKuHmCpZmvndYW4BeE6LViGgvhbmJgJLXFwpLMdh65JwTh19Sm4kw54K14VtJ
DHUgTNkwOSKPv8LiNKIs+U3EcAe4T2Gs3y8d6w8+/oArFzQW+L9UnYGo00NfU2jjD9jbRZj0iIpUqNL9
cuxRwZwHWTFoumjudZFQkxmaBM81mHIgPw5fWwWcH74d15sSCcuzwSXceaHZwENhPO6iVHz27c8Bo1ac
SRFox/uBJTw/wWAbGBI4SonFt7EqFW9L0lBbKtFurqVMYXcTLTsWZ2IYalc9aI9ySVGUnaQoNKdDzpiy
oSaH4zamg3opF97RRrrh7EDOuXDC+AAc2OXwP3kBiiMDHFY5tmwAAAAASUVORK5CYII=
</value>
</data>
<data name="bindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAExSURBVDhPY2AYNKBw1vP/TQue/8+c+Pg/uhwMhLc/wCnH
kDvz2f9VR97/x6UovvvB/+CGa1jlwCBjytP/C/d9wKoovufh/6X7///3r76AIQcHCT1P/k/b8h5DUUT7
fbDmzFn//3uVnsBtQGTXo/+9qz+gKAptvQfW3Lru/3//zr//XfIP4DYgsPnh/7r57+CKglvu/l+09///
jnX//2fM+fnfru7nf/uM7bgN8Ki6/z9/2hsURXbFt/+nz/n937/r23+dwnf/LRLW4zbAvvTu/+zJrzEU
6aec/29S9OK/Stan/8aRy3AbYJF3539q/2usigySTvyXTfv6Xzd4HoYcHBhm3f4f1vISpyL91Mv/NXyn
YZUDA520G//9qh/iVaTiMQGnHINT7pX/IAV4FQ1KAADwdsCrWJS2HgAAAABJRU5ErkJggg==
</value>
</data>
<data name="bindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC7SURBVDhPY2AYMiC8/cF/dDGiQXz3g//BDdfIMyC+5+H/
pfv///evvkC6ARHt98GaM2f9/+9VeoI0A0Jb74E1t677/9+/8+9/l/wDxBsQ3HL3/6K9//93rPv/P2PO
z/92dT//22dsJ94AELArvv0/fc7v//5d3/7rFL77b5GwnjQDQEA/5fx/k6IX/1WyPv03jlxGugEgYJB0
4r9s2tf/usHzyDMABPRTL//X8J1GvgEgoOIxgTIDBi8AANAUYJgsLP+3AAAAAElFTkSuQmCC
</value>
</data>
<data name="bindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACkSURBVDhPY2AYdKBw1vP/6GIkgdyZz/4ndN8j35CMKU//
z9v/+39C1x3yDEnoefJ/9r5f/zu3/v3vVnqZdEMiux79n7Lt1/+SpX//J0z/+98m9yxphgQ2P/zfuvY9
WLNxyZf/0tHX/htHLiPeEI+q+/9L5r6Da1Z06SFeMwjYl979H9jyjDzNIGCRd+e/TcEV8jSDgGHWbfI1
g4BO2g3yNQ9NAACgfl+gY6ualwAAAABJRU5ErkJggg==
</value>
</data>
<data name="bindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAErSURBVDhPY2AYVKBw1vP/6GIwAJJrWvD8f+bExzjVMOTO
fPY/ofseVgUguVVH3v8Pb3+AVR4MMqY8/T9v/+//CV13MBSB5Bbu+/A/uOEahhwcJPQ8+T9736//nVv/
/ncrvYyiECQ3bcv7//7VF3AbENn16P+Ubb/+lyz9+z9h+t//Nrln4YpBcr2rP/z3Kj2B24DA5of/W9e+
B2s2LvnyXzr62n/jyGVgDSC5uvnv/rvkH8BtgEfV/f8lc9/BNSu69MAVg+Typ735b5+xHbcB9qV3/we2
PMPQDJPLnvz6v0XCetwGWOTd+W9TcAVDM0wutf813EtYgWHWbayaQQAkF9by8r9u8Dys8mCgk3YDpyRI
zq/64X8N32k41eAFTrlX/qt4TABjdLmBBQC+0b+zZl1WGAAAAABJRU5ErkJggg==
</value>
</data>
<data name="btSave.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolStripButton1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIFSURBVDhPpZLtS1NhGMbPPxJmmlYSgqHiKzGU1EDxg4iK
YKyG2WBogqMYJQOtCEVRFBGdTBCJfRnkS4VaaWNT5sqx1BUxRXxDHYxAJLvkusEeBaPAB+5z4Jzn+t3X
/aLhnEfjo8m+dCoa+7/C3O2Hqe0zDC+8KG+cRZHZhdzaaWTVTCLDMIY0vfM04Nfh77/G/sEhwpEDbO3t
I7TxE8urEVy99fT/AL5gWDLrTB/hnF4XsW0khCu5ln8DmJliT2AXrcNBsU1gj/MH4nMeKwBrPktM28xM
cX79DFKrHHD5d9D26hvicx4pABt2lpg10zYzU0zr7+e3xXGcrkEB2O2TNec9nJFwB3alZn5jZorfeDZh
6Q3g8s06BeCoKF4MRURoH1+BY2oNCbeb0TIclIYxOhzf8frTOuo7FxCbbVIAzpni0iceEc8vhzEwGkJD
lx83ymxifejdKjRNk/8PWnyIyTQqAJek0jqHwfEVscu31baIu8+90sTE4nY025dQ2/5FIPpnXlzKuK8A
HBUzHot52djqQ6HZhfR7IwK4mKpHtvEDMqvfCiQ6zaAAXM8x94aIWTNrLLG4kVUzgaTSPlzLtyJOZxbb
1wtfyg4Q+AfA3aZlButjSfxGcUJBk4g5tuP3haQKRKXcUQDOmbvNTpPOJeFFjordZmbWTNvMTHFUcpUC
nOccAdABIDXXE1nzAAAAAElFTkSuQmCC
</value>
</data>
</root>

View File

@@ -7,6 +7,7 @@ using System.Web.UI.WebControls;
using System.Diagnostics;
using System.Windows.Forms;
using WindowsFormsApp1;
using AR;
namespace UniMarc.
{
@@ -18,16 +19,16 @@ namespace UniMarc.마크
public Macro(string pIDX, string pTagArr, string pRuncode)
{
mIDX= pIDX;
mTagArr= pTagArr;
mRuncode= pRuncode;
mIDX = pIDX;
mTagArr = pTagArr;
mRuncode = pRuncode;
}
}
internal class Macro_Gudu
{
String_Text st = new String_Text();
Helper_DB db;
public Macro_Gudu(Helper_DB db)
{
this.db = db;
@@ -36,7 +37,7 @@ namespace UniMarc.마크
bool isAuthorTag = false;
string Author_Idx_6768 = "";
public string FileType = "ANSI";
public string MacroMarc(string ViewMarc, List<string> idx, List<string> TagArray, List<string> RunCode)
{
@@ -60,7 +61,7 @@ namespace UniMarc.마크
string tContentTag = string.Empty;
for (int i = 0; i < tMacroList.Count; i++)
{
if (tMacroList[i].mRuncode == "etc" || tMacroList[i].mRuncode.Contains("jisi") || (tMacroList[i].mRuncode.Contains("del")&& !tMacroList[i].mRuncode.Contains("/")))
if (tMacroList[i].mRuncode == "etc" || tMacroList[i].mRuncode.Contains("jisi") || (tMacroList[i].mRuncode.Contains("del") && !tMacroList[i].mRuncode.Contains("/")))
{
if ((tMacroList[i].mIDX == "110" || tMacroList[i].mIDX == "111" || tMacroList[i].mIDX == "112")
&& (tMacroList[i].mTagArr == "256" || tMacroList[i].mTagArr == "500")
@@ -163,7 +164,7 @@ namespace UniMarc.마크
string TargetTag = CodeSplit[0].Substring(3, 1);
string MoveTagNum = CodeSplit[1].Substring(0, 3);
string MoveTag = CodeSplit[1].Substring(3, 1);
ViewMarc = TagToOtherTag(TargetTagNum, TargetTag, MoveTagNum, MoveTag, ViewMarc, isDelete);
#region ( )
@@ -221,7 +222,8 @@ namespace UniMarc.마크
if (TakeTag[0] != "")
Tag += "▼a" + TakeTag[0];
if (TakeTag[1] == "" && TakeTag[2] == "" && TakeTag[3] == "") {
if (TakeTag[1] == "" && TakeTag[2] == "" && TakeTag[3] == "")
{
Tag += "▲";
return st.AddTagInMarc(Tag, ViewMarc);
}
@@ -268,13 +270,16 @@ namespace UniMarc.마크
{
Jisi = ChangeJisi(idx, RunCode[cout], TagArray[cout], ContentTag, Jisi, Target);
if (RunCode[cout] == "del") {
if (TagArray[cout] == ContentTag) {
if (RunCode[cout] == "del")
{
if (TagArray[cout] == ContentTag)
{
Target = "";
break;
}
}
if (ContentTag == "020" && Jisi == "1 " && idx == "75") {
if (ContentTag == "020" && Jisi == "1 " && idx == "75")
{
Target = "";
}
switch (ContentTag)
@@ -475,7 +480,7 @@ namespace UniMarc.마크
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
TMP.RemoveAt(a);
continue;
}
@@ -521,7 +526,7 @@ namespace UniMarc.마크
{
if (SplitContent[a].StartsWith("a") && idx == "67")
Author_Idx_6768 = SplitContent[a].Substring(1).Replace("▲", "");
if (a <= 1) continue;
}
@@ -578,6 +583,25 @@ namespace UniMarc.마크
List<string> TMP = new List<string>(SplitContent);
for (int a = 0; a < TMP.Count; a++)
{
//빈데이터는 처리하지 않음
if (TMP[a].isEmpty()) continue;
//각 요소뒤에 ; 붙이기 , 로 끝나지않는 경우에만 ,; 문자가 있다면 삭제한다.
//아래 1보다 작다로 인해 a가 미처리되는 현상이 있어 위에다가 붙인다 2508014
if (idx == "113" && (TMP[a].StartsWith("d") || TMP[a].StartsWith("e")))
{
var subfieldata = TMP[a].Trim();
var endsignal = subfieldata.EndsWith("▲");
if (endsignal) subfieldata = subfieldata.Substring(0, subfieldata.Length - 1);
if (subfieldata.EndsWith(",") == false && subfieldata.EndsWith(";") == false)
subfieldata += ";";
subfieldata = subfieldata.Replace(",;", ";"); //두개붙은건 세미쿨론으로
if (endsignal) subfieldata += "▲";
TMP[a] = subfieldata;
}
if (a <= 1) continue;
#region
@@ -587,7 +611,7 @@ namespace UniMarc.마크
if (TMP[a].StartsWith("a"))
if (!TMP[a - 1].EndsWith(":"))
TMP[a - 1] += ":";
// $b 앞에 ":"적용
if (TMP[a].StartsWith("b") && idx == "3")
if (!TMP[a - 1].EndsWith(":"))
@@ -648,7 +672,7 @@ namespace UniMarc.마크
// 245h [대활자본] 문구적용
if (TMP[a].StartsWith("h") && idx == "91")
TMP[a] = "h[대활자본]" + TMP[a].Substring(1);
// 245h [음악자료] 문구적용
if (TMP[a].StartsWith("h") && idx == "92")
TMP[a] = "h[음악자료]" + TMP[a].Substring(1);
@@ -681,74 +705,76 @@ namespace UniMarc.마크
if (end)
TMP[a] += "▲";
}
}
#endregion
#region
// 245e 삭제
if (TMP[a].StartsWith("e") && idx == "80")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
TMP.RemoveAt(a);
continue;
}
TMP.RemoveAt(a);
continue;
}
// 245b 삭제
if (TMP[a].StartsWith("b") && idx == "81")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
// 245b 삭제
if (TMP[a].StartsWith("b") && idx == "81")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
TMP.RemoveAt(a);
continue;
}
TMP.RemoveAt(a);
continue;
}
// 245x 삭제
if (TMP[a].StartsWith("x") && idx == "82")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
// 245x 삭제
if (TMP[a].StartsWith("x") && idx == "82")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
TMP.RemoveAt(a);
continue;
}
TMP.RemoveAt(a);
continue;
}
// 245n 삭제
if (TMP[a].StartsWith("n") && idx == "83")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
// 245n 삭제
if (TMP[a].StartsWith("n") && idx == "83")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
TMP.RemoveAt(a);
continue;
}
TMP.RemoveAt(a);
continue;
}
// 245p 삭제
if (TMP[a].StartsWith("p") && idx == "84")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
// 245p 삭제
if (TMP[a].StartsWith("p") && idx == "84")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
TMP.RemoveAt(a);
continue;
}
TMP.RemoveAt(a);
continue;
}
// 245h 삭제
if (TMP[a].StartsWith("h") && idx == "85")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
// 245h 삭제
if (TMP[a].StartsWith("h") && idx == "85")
{
if (TMP[a].Contains("▲"))
TMP[a - 1] += "▲";
TMP.RemoveAt(a);
continue;
}
TMP.RemoveAt(a);
continue;
}
#endregion
#endregion
}
SplitContent = TMP.ToArray();
return string.Join("▼", SplitContent);
@@ -880,7 +906,8 @@ namespace UniMarc.마크
if (idx == "101")
SplitContent[a] = SplitContent[a].Replace("p.", "");
// 300 a 맨 앞이 [ 로 시작 될 경우 300a를 [1책] 으로 수정
if (idx == "105") {
if (idx == "105")
{
string tmp = SplitContent[a].Substring(1);
if (tmp.StartsWith("["))
SplitContent[a] = "a[1책]";
@@ -919,7 +946,8 @@ namespace UniMarc.마크
SplitContent[a] = SplitContent[a].Replace("천연색삽화", "채색삽화");
// 300b "천연색, 유성" 으로 덮어 씌움
if (idx == "109") {
if (idx == "109")
{
SplitContent[a] = "b천연색, 유성";
if (SplitContent[a].Contains("▲"))
SplitContent[a] += "▲";
@@ -929,12 +957,13 @@ namespace UniMarc.마크
if (SplitContent[a].StartsWith("c"))
{
// $c 앞에는 ";" 적용
if( idx == "19")
if (idx == "19")
if (!SplitContent[a - 1].EndsWith(";"))
SplitContent[a - 1] += ";";
// $c X포함 뒷부분 삭제
if (idx == "73") {
if (idx == "73")
{
SplitContent[a] = SplitContent[a].ToLower();
string[] tmp = SplitContent[a].Split('x');
SplitContent[a] = tmp[0] + "cm▲";
@@ -942,9 +971,10 @@ namespace UniMarc.마크
}
// $e 앞에는 "+" 적용
if (SplitContent[a].StartsWith("e") )
if (SplitContent[a].StartsWith("e"))
{
if (idx == "20") {
if (idx == "20")
{
if (!SplitContent[a - 1].EndsWith("+"))
SplitContent[a - 1] += "+";
}
@@ -969,11 +999,13 @@ namespace UniMarc.마크
// $p 앞에 $n이 나온 경우 "," 적용, $p앞에 $n이 없는 경우 "."적용
if (SplitContent[a].StartsWith("p") && idx == "22")
{
if (SplitContent[a - 1].StartsWith("n")) {
if (SplitContent[a - 1].StartsWith("n"))
{
if (SplitContent[a - 1].EndsWith(","))
SplitContent[a - 1] += ",";
}
else {
else
{
if (SplitContent[a - 1].EndsWith("."))
SplitContent[a - 1] += ".";
}
@@ -1108,7 +1140,7 @@ namespace UniMarc.마크
string TagToOtherTag(string TargetTagNum, string TargetTagAccount, string ApplyTagNum, string ApplyTagAccount, string ViewMarc, bool isDelete = false, string jisi = " ")
{
List<string> SplitMarc = new List<string>(ViewMarc.Split('\n'));
string Target = "";
// 가져올 태그 정보 추출
@@ -1141,7 +1173,7 @@ namespace UniMarc.마크
if (SplitMarc[a].StartsWith(TargetTagNum) && SplitMarc[a].Contains(Target))
{
SplitMarc.RemoveAt(a);
// string RemoveTarget = string.Format("▼{0}{1}", TargetTagAccount, Target);
// SplitMarc[a] = SplitMarc[a].Replace(RemoveTarget, "");
break;

View File

@@ -162,11 +162,11 @@ namespace WindowsFormsApp1.Mac
int count = 0;
for (int a = 0; a < TargetGrid.Rows.Count; a++)
{
if (TargetGrid.Rows[a].Cells["marc"].Value.ToString() == "" &&
TargetGrid.Rows[a].Cells["marc"].Value == null)
var marcstring = TargetGrid.Rows[a].Cells["marc"].Value?.ToString() ?? string.Empty;
if (string.IsNullOrEmpty(marcstring))
continue;
if (TargetGrid.Rows[a].Cells["colCheck"].Value.ToString() != "T")
if ((TargetGrid.Rows[a].Cells["colCheck"].Value?.ToString() ?? string.Empty) != "T")
continue;
TargetGrid.Rows[a].Cells["marc"].Value = macro.MacroMarc(ViewMarcArray[count], tMacroList);