feat: 최초 커밋

This commit is contained in:
ssy99 2025-05-12 09:27:02 +09:00
commit 5a72fb584b
57 changed files with 21348 additions and 0 deletions

Binary file not shown.

View File

@ -0,0 +1,12 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\JOMT-NOTE-PC\\SECUDRIVE DG\\programs\\02. \uBCF5\uC0AC \uD504\uB85C\uADF8\uB7A8\\PackingCodeRegistrar\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
}
]
}

View File

@ -0,0 +1,12 @@
{
"Version": 1,
"WorkspaceRootPath": "C:\\Users\\JOMT-NOTE-PC\\SECUDRIVE DG\\programs\\02. \uBCF5\uC0AC \uD504\uB85C\uADF8\uB7A8\\PackingCodeRegistrar\\",
"Documents": [],
"DocumentGroupContainers": [
{
"Orientation": 0,
"VerticalTabListWidth": 256,
"DocumentGroups": []
}
]
}

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>

View File

@ -0,0 +1,3 @@
Module ExcelModule
End Module

Binary file not shown.

After

Width:  |  Height:  |  Size: 116 KiB

View File

@ -0,0 +1,38 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
'참고: 자동으로 생성되므로 직접 파일을 수정하지 마세요. 변경할 사항이 있거나
' 파일에서 빌드 오류가 발생하는 경우 프로젝트 디자이너로
' 이동([프로젝트 속성]으로 이동하거나 솔루션 탐색기에서 My Project 노드를
' 클릭) 다음 [애플리케이션] 탭에서 변경하세요.
'
Partial Friend Class MyApplication
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Public Sub New()
MyBase.New(Global.Microsoft.VisualBasic.ApplicationServices.AuthenticationMode.Windows)
Me.IsSingleInstance = false
Me.EnableVisualStyles = true
Me.SaveMySettingsOnExit = true
Me.ShutDownStyle = Global.Microsoft.VisualBasic.ApplicationServices.ShutdownMode.AfterMainFormCloses
End Sub
<Global.System.Diagnostics.DebuggerStepThroughAttribute()> _
Protected Overrides Sub OnCreateMainForm()
Me.MainForm = Global.PKCode_Register.mainform
End Sub
End Class
End Namespace

View File

@ -0,0 +1,11 @@
<?xml version="1.0" encoding="utf-8"?>
<MyApplicationData xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<MySubMain>true</MySubMain>
<MainForm>mainform</MainForm>
<SingleInstance>false</SingleInstance>
<ShutdownMode>0</ShutdownMode>
<EnableVisualStyles>true</EnableVisualStyles>
<AuthenticationMode>0</AuthenticationMode>
<SaveMySettingsOnExit>true</SaveMySettingsOnExit>
<HighDpiMpde>false</HighDpiMpde>
</MyApplicationData>

View File

@ -0,0 +1,35 @@
Imports System
Imports System.Reflection
Imports System.Runtime.InteropServices
' 어셈블리에 대한 일반 정보는 다음 특성 집합을 통해
' 제어됩니다. 어셈블리와 관련된 정보를 수정하려면
' 이러한 특성 값을 변경하세요.
' 어셈블리 특성 값을 검토합니다.
<Assembly: AssemblyTitle("PKCode_Register")>
<Assembly: AssemblyDescription("")>
<Assembly: AssemblyCompany("")>
<Assembly: AssemblyProduct("PKCode_Register")>
<Assembly: AssemblyCopyright("Copyright © 2024")>
<Assembly: AssemblyTrademark("")>
<Assembly: ComVisible(False)>
' 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다.
<Assembly: Guid("05c029ec-ca12-4e77-ac09-e13a372a03bd")>
' 어셈블리의 버전 정보는 다음 가지 값으로 구성됩니다.
'
' 버전
' 버전
' 빌드 번호
' 수정 버전
'
' 모든 값을 지정하거나 아래와 같이 '*' 사용하여 빌드 번호 수정 번호를
' 기본값으로 있습니다.
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.0.0.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@ -0,0 +1,62 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My.Resources
'This class was auto-generated by the StronglyTypedResourceBuilder
'class via a tool like ResGen or Visual Studio.
'To add or remove a member, edit your .ResX file then rerun ResGen
'with the /str option, or rebuild your VS project.
'''<summary>
''' A strongly-typed resource class, for looking up localized strings, etc.
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0"), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.Microsoft.VisualBasic.HideModuleNameAttribute()> _
Friend Module Resources
Private resourceMan As Global.System.Resources.ResourceManager
Private resourceCulture As Global.System.Globalization.CultureInfo
'''<summary>
''' Returns the cached ResourceManager instance used by this class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend ReadOnly Property ResourceManager() As Global.System.Resources.ResourceManager
Get
If Object.ReferenceEquals(resourceMan, Nothing) Then
Dim temp As Global.System.Resources.ResourceManager = New Global.System.Resources.ResourceManager("PKCode_Register.Resources", GetType(Resources).Assembly)
resourceMan = temp
End If
Return resourceMan
End Get
End Property
'''<summary>
''' Overrides the current thread's CurrentUICulture property for all
''' resource lookups using this strongly typed resource class.
'''</summary>
<Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Friend Property Culture() As Global.System.Globalization.CultureInfo
Get
Return resourceCulture
End Get
Set(ByVal value As Global.System.Globalization.CultureInfo)
resourceCulture = value
End Set
End Property
End Module
End Namespace

View File

@ -0,0 +1,117 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@ -0,0 +1,73 @@
'------------------------------------------------------------------------------
' <auto-generated>
' This code was generated by a tool.
' Runtime Version:4.0.30319.42000
'
' Changes to this file may cause incorrect behavior and will be lost if
' the code is regenerated.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict On
Option Explicit On
Namespace My
<Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0"), _
Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Partial Friend NotInheritable Class MySettings
Inherits Global.System.Configuration.ApplicationSettingsBase
Private Shared defaultInstance As MySettings = CType(Global.System.Configuration.ApplicationSettingsBase.Synchronized(New MySettings), MySettings)
#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
Private Shared addedHandler As Boolean
Private Shared addedHandlerLockObject As New Object
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
If My.Application.SaveMySettingsOnExit Then
My.Settings.Save()
End If
End Sub
#End If
#End Region
Public Shared ReadOnly Property [Default]() As MySettings
Get
#If _MyType = "WindowsForms" Then
If Not addedHandler Then
SyncLock addedHandlerLockObject
If Not addedHandler Then
AddHandler My.Application.Shutdown, AddressOf AutoSaveSettings
addedHandler = True
End If
End SyncLock
End If
#End If
Return defaultInstance
End Get
End Property
End Class
End Namespace
Namespace My
<Global.Microsoft.VisualBasic.HideModuleNameAttribute(), _
Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.Runtime.CompilerServices.CompilerGeneratedAttribute()> _
Friend Module MySettingsProperty
<Global.System.ComponentModel.Design.HelpKeywordAttribute("My.Settings")> _
Friend ReadOnly Property Settings() As Global.PKCode_Register.My.MySettings
Get
Return Global.PKCode_Register.My.MySettings.Default
End Get
End Property
End Module
End Namespace

View File

@ -0,0 +1,7 @@
<?xml version='1.0' encoding='utf-8'?>
<SettingsFile xmlns="http://schemas.microsoft.com/VisualStudio/2004/01/settings" CurrentProfile="(Default)" UseMySettingsClassName="true">
<Profiles>
<Profile Name="(Default)" />
</Profiles>
<Settings />
</SettingsFile>

View File

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="utf-8"?>
<Project ToolsVersion="15.0" xmlns="http://schemas.microsoft.com/developer/msbuild/2003">
<Import Project="$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props" Condition="Exists('$(MSBuildExtensionsPath)\$(MSBuildToolsVersion)\Microsoft.Common.props')" />
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProjectGuid>{4BF894D5-D9F2-4699-AEE3-4085FD21D51C}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>PKCode_Register.My.MyApplication</StartupObject>
<RootNamespace>PKCode_Register</RootNamespace>
<AssemblyName>PKCode_Register</AssemblyName>
<FileAlignment>512</FileAlignment>
<MyType>WindowsForms</MyType>
<TargetFrameworkVersion>v4.8</TargetFrameworkVersion>
<AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects>
<Deterministic>true</Deterministic>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>bin\Debug\</OutputPath>
<DocumentationFile>PKCode_Register.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<PlatformTarget>AnyCPU</PlatformTarget>
<DebugType>pdbonly</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>bin\Release\</OutputPath>
<DocumentationFile>PKCode_Register.xml</DocumentationFile>
<NoWarn>42016,41999,42017,42018,42019,42032,42036,42020,42021,42022</NoWarn>
</PropertyGroup>
<PropertyGroup>
<OptionExplicit>On</OptionExplicit>
</PropertyGroup>
<PropertyGroup>
<OptionCompare>Binary</OptionCompare>
</PropertyGroup>
<PropertyGroup>
<OptionStrict>Off</OptionStrict>
</PropertyGroup>
<PropertyGroup>
<OptionInfer>On</OptionInfer>
</PropertyGroup>
<PropertyGroup>
<ApplicationIcon>JOMT 아이콘_ICO.ico</ApplicationIcon>
</PropertyGroup>
<ItemGroup>
<Reference Include="MySql.Data, Version=8.0.20.0, Culture=neutral, PublicKeyToken=c5687fc88969c44d, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Deployment" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
<Reference Include="System.Core" />
<Reference Include="System.Xml.Linq" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Net.Http" />
</ItemGroup>
<ItemGroup>
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
<Import Include="System.Linq" />
<Import Include="System.Xml.Linq" />
<Import Include="System.Threading.Tasks" />
</ItemGroup>
<ItemGroup>
<Compile Include="ExcelModule.vb" />
<Compile Include="mainform.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="mainform.Designer.vb">
<DependentUpon>mainform.vb</DependentUpon>
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
<DesignTime>True</DesignTime>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="mySQLModule.vb" />
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="mainform.resx">
<DependentUpon>mainform.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
<None Include="App.config" />
</ItemGroup>
<ItemGroup>
<COMReference Include="Microsoft.Office.Core">
<Guid>{2DF8D04C-5BFA-101B-BDE5-00AA0044DE52}</Guid>
<VersionMajor>2</VersionMajor>
<VersionMinor>8</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="Microsoft.Office.Interop.Excel">
<Guid>{00020813-0000-0000-C000-000000000046}</Guid>
<VersionMajor>1</VersionMajor>
<VersionMinor>9</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
<COMReference Include="VBIDE">
<Guid>{0002E157-0000-0000-C000-000000000046}</Guid>
<VersionMajor>5</VersionMajor>
<VersionMinor>3</VersionMinor>
<Lcid>0</Lcid>
<WrapperTool>primary</WrapperTool>
<Isolated>False</Isolated>
<EmbedInteropTypes>True</EmbedInteropTypes>
</COMReference>
</ItemGroup>
<ItemGroup>
<Content Include="JOMT 아이콘_ICO.ico" />
</ItemGroup>
<Import Project="$(MSBuildToolsPath)\Microsoft.VisualBasic.targets" />
</Project>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.8" />
</startup>
</configuration>

Binary file not shown.

View File

@ -0,0 +1,26 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>
PKCode_Register
</name>
</assembly>
<members>
<member name="T:PKCode_Register.My.Resources.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:PKCode_Register.My.Resources.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:PKCode_Register.My.Resources.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
</members>
</doc>

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

Binary file not shown.

332
PKCode_Register/mainform.Designer.vb generated Normal file
View File

@ -0,0 +1,332 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class mainform
Inherits System.Windows.Forms.Form
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기에서는 수정하지 마세요.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(mainform))
Me.dgvop1_data = New System.Windows.Forms.DataGridView()
Me.df_pkcode = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.df_ProdCode = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.df_Count = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.gbop1_search = New System.Windows.Forms.GroupBox()
Me.btnop1_del1 = New System.Windows.Forms.Button()
Me.btnop1_del2 = New System.Windows.Forms.Button()
Me.btnop1_search = New System.Windows.Forms.Button()
Me.txbop1_pk = New System.Windows.Forms.TextBox()
Me.lbop1_pk = New System.Windows.Forms.Label()
Me.gbop1_reg = New System.Windows.Forms.GroupBox()
Me.nudop1_regct = New System.Windows.Forms.NumericUpDown()
Me.lbop1_regct = New System.Windows.Forms.Label()
Me.txbop1_regpd = New System.Windows.Forms.TextBox()
Me.lbop1_regpd = New System.Windows.Forms.Label()
Me.btnop1_reg = New System.Windows.Forms.Button()
Me.txbop1_regpk = New System.Windows.Forms.TextBox()
Me.lbop1_regpk = New System.Windows.Forms.Label()
Me.gbop1_etc = New System.Windows.Forms.GroupBox()
Me.btnop1_save = New System.Windows.Forms.Button()
Me.btnop_reset = New System.Windows.Forms.Button()
Me.btnop1_load = New System.Windows.Forms.Button()
Me.pnop1 = New System.Windows.Forms.Panel()
Me.OfdExcel = New System.Windows.Forms.OpenFileDialog()
CType(Me.dgvop1_data, System.ComponentModel.ISupportInitialize).BeginInit()
Me.gbop1_search.SuspendLayout()
Me.gbop1_reg.SuspendLayout()
CType(Me.nudop1_regct, System.ComponentModel.ISupportInitialize).BeginInit()
Me.gbop1_etc.SuspendLayout()
Me.pnop1.SuspendLayout()
Me.SuspendLayout()
'
'dgvop1_data
'
Me.dgvop1_data.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.dgvop1_data.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.df_pkcode, Me.df_ProdCode, Me.df_Count})
Me.dgvop1_data.Location = New System.Drawing.Point(3, 15)
Me.dgvop1_data.Name = "dgvop1_data"
Me.dgvop1_data.RowTemplate.Height = 23
Me.dgvop1_data.SelectionMode = System.Windows.Forms.DataGridViewSelectionMode.FullRowSelect
Me.dgvop1_data.Size = New System.Drawing.Size(500, 645)
Me.dgvop1_data.TabIndex = 0
'
'df_pkcode
'
Me.df_pkcode.HeaderText = "패킹코드"
Me.df_pkcode.Name = "df_pkcode"
Me.df_pkcode.Width = 150
'
'df_ProdCode
'
Me.df_ProdCode.HeaderText = "제품코드"
Me.df_ProdCode.Name = "df_ProdCode"
Me.df_ProdCode.Width = 150
'
'df_Count
'
Me.df_Count.HeaderText = "제품수량"
Me.df_Count.Name = "df_Count"
Me.df_Count.Width = 150
'
'gbop1_search
'
Me.gbop1_search.Controls.Add(Me.btnop1_del1)
Me.gbop1_search.Controls.Add(Me.btnop1_del2)
Me.gbop1_search.Controls.Add(Me.btnop1_search)
Me.gbop1_search.Controls.Add(Me.txbop1_pk)
Me.gbop1_search.Controls.Add(Me.lbop1_pk)
Me.gbop1_search.Font = New System.Drawing.Font("함초롬바탕", 15.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.gbop1_search.Location = New System.Drawing.Point(510, 0)
Me.gbop1_search.Name = "gbop1_search"
Me.gbop1_search.Size = New System.Drawing.Size(490, 172)
Me.gbop1_search.TabIndex = 1
Me.gbop1_search.TabStop = False
Me.gbop1_search.Text = "데이터 확인 및 삭제"
'
'btnop1_del1
'
Me.btnop1_del1.Location = New System.Drawing.Point(25, 109)
Me.btnop1_del1.Name = "btnop1_del1"
Me.btnop1_del1.Size = New System.Drawing.Size(220, 48)
Me.btnop1_del1.TabIndex = 3
Me.btnop1_del1.Text = "행삭제"
Me.btnop1_del1.UseVisualStyleBackColor = True
'
'btnop1_del2
'
Me.btnop1_del2.Location = New System.Drawing.Point(251, 109)
Me.btnop1_del2.Name = "btnop1_del2"
Me.btnop1_del2.Size = New System.Drawing.Size(220, 48)
Me.btnop1_del2.TabIndex = 4
Me.btnop1_del2.Text = "전체삭제"
Me.btnop1_del2.UseVisualStyleBackColor = True
'
'btnop1_search
'
Me.btnop1_search.Location = New System.Drawing.Point(364, 43)
Me.btnop1_search.Name = "btnop1_search"
Me.btnop1_search.Size = New System.Drawing.Size(107, 51)
Me.btnop1_search.TabIndex = 2
Me.btnop1_search.Text = "검색"
Me.btnop1_search.UseVisualStyleBackColor = True
'
'txbop1_pk
'
Me.txbop1_pk.Location = New System.Drawing.Point(122, 51)
Me.txbop1_pk.MaxLength = 10
Me.txbop1_pk.Name = "txbop1_pk"
Me.txbop1_pk.Size = New System.Drawing.Size(236, 35)
Me.txbop1_pk.TabIndex = 1
'
'lbop1_pk
'
Me.lbop1_pk.AutoSize = True
Me.lbop1_pk.Font = New System.Drawing.Font("함초롬바탕", 15.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.lbop1_pk.Location = New System.Drawing.Point(24, 54)
Me.lbop1_pk.Name = "lbop1_pk"
Me.lbop1_pk.Size = New System.Drawing.Size(92, 27)
Me.lbop1_pk.TabIndex = 0
Me.lbop1_pk.Text = "패킹코드"
'
'gbop1_reg
'
Me.gbop1_reg.Controls.Add(Me.nudop1_regct)
Me.gbop1_reg.Controls.Add(Me.lbop1_regct)
Me.gbop1_reg.Controls.Add(Me.txbop1_regpd)
Me.gbop1_reg.Controls.Add(Me.lbop1_regpd)
Me.gbop1_reg.Controls.Add(Me.btnop1_reg)
Me.gbop1_reg.Controls.Add(Me.txbop1_regpk)
Me.gbop1_reg.Controls.Add(Me.lbop1_regpk)
Me.gbop1_reg.Font = New System.Drawing.Font("함초롬바탕", 15.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.gbop1_reg.Location = New System.Drawing.Point(510, 209)
Me.gbop1_reg.Name = "gbop1_reg"
Me.gbop1_reg.Size = New System.Drawing.Size(490, 250)
Me.gbop1_reg.TabIndex = 2
Me.gbop1_reg.TabStop = False
Me.gbop1_reg.Text = "직접 등록"
'
'nudop1_regct
'
Me.nudop1_regct.Location = New System.Drawing.Point(122, 139)
Me.nudop1_regct.Maximum = New Decimal(New Integer() {20, 0, 0, 0})
Me.nudop1_regct.Minimum = New Decimal(New Integer() {1, 0, 0, 0})
Me.nudop1_regct.Name = "nudop1_regct"
Me.nudop1_regct.Size = New System.Drawing.Size(256, 35)
Me.nudop1_regct.TabIndex = 3
Me.nudop1_regct.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
Me.nudop1_regct.Value = New Decimal(New Integer() {1, 0, 0, 0})
'
'lbop1_regct
'
Me.lbop1_regct.AutoSize = True
Me.lbop1_regct.Location = New System.Drawing.Point(24, 141)
Me.lbop1_regct.Name = "lbop1_regct"
Me.lbop1_regct.Size = New System.Drawing.Size(92, 27)
Me.lbop1_regct.TabIndex = 5
Me.lbop1_regct.Text = "제품수량"
'
'txbop1_regpd
'
Me.txbop1_regpd.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper
Me.txbop1_regpd.Location = New System.Drawing.Point(122, 84)
Me.txbop1_regpd.MaxLength = 15
Me.txbop1_regpd.Name = "txbop1_regpd"
Me.txbop1_regpd.Size = New System.Drawing.Size(256, 35)
Me.txbop1_regpd.TabIndex = 2
Me.txbop1_regpd.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'lbop1_regpd
'
Me.lbop1_regpd.AutoSize = True
Me.lbop1_regpd.Location = New System.Drawing.Point(24, 87)
Me.lbop1_regpd.Name = "lbop1_regpd"
Me.lbop1_regpd.Size = New System.Drawing.Size(92, 27)
Me.lbop1_regpd.TabIndex = 3
Me.lbop1_regpd.Text = "제품코드"
'
'btnop1_reg
'
Me.btnop1_reg.Location = New System.Drawing.Point(251, 187)
Me.btnop1_reg.Name = "btnop1_reg"
Me.btnop1_reg.Size = New System.Drawing.Size(220, 57)
Me.btnop1_reg.TabIndex = 4
Me.btnop1_reg.Text = "등록"
Me.btnop1_reg.UseVisualStyleBackColor = True
'
'txbop1_regpk
'
Me.txbop1_regpk.CharacterCasing = System.Windows.Forms.CharacterCasing.Upper
Me.txbop1_regpk.Location = New System.Drawing.Point(122, 34)
Me.txbop1_regpk.MaxLength = 10
Me.txbop1_regpk.Name = "txbop1_regpk"
Me.txbop1_regpk.Size = New System.Drawing.Size(256, 35)
Me.txbop1_regpk.TabIndex = 1
Me.txbop1_regpk.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'lbop1_regpk
'
Me.lbop1_regpk.AutoSize = True
Me.lbop1_regpk.Location = New System.Drawing.Point(24, 37)
Me.lbop1_regpk.Name = "lbop1_regpk"
Me.lbop1_regpk.Size = New System.Drawing.Size(92, 27)
Me.lbop1_regpk.TabIndex = 0
Me.lbop1_regpk.Text = "패킹코드"
'
'gbop1_etc
'
Me.gbop1_etc.Controls.Add(Me.btnop1_save)
Me.gbop1_etc.Controls.Add(Me.btnop_reset)
Me.gbop1_etc.Controls.Add(Me.btnop1_load)
Me.gbop1_etc.Font = New System.Drawing.Font("함초롬바탕", 15.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.gbop1_etc.Location = New System.Drawing.Point(510, 495)
Me.gbop1_etc.Name = "gbop1_etc"
Me.gbop1_etc.Size = New System.Drawing.Size(490, 165)
Me.gbop1_etc.TabIndex = 3
Me.gbop1_etc.TabStop = False
Me.gbop1_etc.Text = "기타 기능"
'
'btnop1_save
'
Me.btnop1_save.Location = New System.Drawing.Point(251, 34)
Me.btnop1_save.Name = "btnop1_save"
Me.btnop1_save.Size = New System.Drawing.Size(220, 57)
Me.btnop1_save.TabIndex = 5
Me.btnop1_save.Text = "저장하기"
Me.btnop1_save.UseVisualStyleBackColor = True
'
'btnop_reset
'
Me.btnop_reset.Location = New System.Drawing.Point(25, 97)
Me.btnop_reset.Name = "btnop_reset"
Me.btnop_reset.Size = New System.Drawing.Size(446, 57)
Me.btnop_reset.TabIndex = 4
Me.btnop_reset.Text = "초기화"
Me.btnop_reset.UseVisualStyleBackColor = True
'
'btnop1_load
'
Me.btnop1_load.Location = New System.Drawing.Point(25, 34)
Me.btnop1_load.Name = "btnop1_load"
Me.btnop1_load.Size = New System.Drawing.Size(220, 57)
Me.btnop1_load.TabIndex = 3
Me.btnop1_load.Text = "EXCEL 불러오기"
Me.btnop1_load.UseVisualStyleBackColor = True
'
'pnop1
'
Me.pnop1.Controls.Add(Me.dgvop1_data)
Me.pnop1.Controls.Add(Me.gbop1_etc)
Me.pnop1.Controls.Add(Me.gbop1_search)
Me.pnop1.Controls.Add(Me.gbop1_reg)
Me.pnop1.Location = New System.Drawing.Point(12, 12)
Me.pnop1.Name = "pnop1"
Me.pnop1.Size = New System.Drawing.Size(1000, 680)
Me.pnop1.TabIndex = 4
'
'OfdExcel
'
Me.OfdExcel.FileName = "OfdExcel"
'
'mainform
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1024, 701)
Me.Controls.Add(Me.pnop1)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedSingle
Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon)
Me.Name = "mainform"
Me.Text = "Form1"
CType(Me.dgvop1_data, System.ComponentModel.ISupportInitialize).EndInit()
Me.gbop1_search.ResumeLayout(False)
Me.gbop1_search.PerformLayout()
Me.gbop1_reg.ResumeLayout(False)
Me.gbop1_reg.PerformLayout()
CType(Me.nudop1_regct, System.ComponentModel.ISupportInitialize).EndInit()
Me.gbop1_etc.ResumeLayout(False)
Me.pnop1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents dgvop1_data As DataGridView
Friend WithEvents df_pkcode As DataGridViewTextBoxColumn
Friend WithEvents df_ProdCode As DataGridViewTextBoxColumn
Friend WithEvents df_Count As DataGridViewTextBoxColumn
Friend WithEvents gbop1_search As GroupBox
Friend WithEvents btnop1_del1 As Button
Friend WithEvents btnop1_del2 As Button
Friend WithEvents btnop1_search As Button
Friend WithEvents txbop1_pk As TextBox
Friend WithEvents lbop1_pk As Label
Friend WithEvents gbop1_reg As GroupBox
Friend WithEvents btnop1_reg As Button
Friend WithEvents txbop1_regpk As TextBox
Friend WithEvents lbop1_regpk As Label
Friend WithEvents lbop1_regct As Label
Friend WithEvents txbop1_regpd As TextBox
Friend WithEvents lbop1_regpd As Label
Friend WithEvents gbop1_etc As GroupBox
Friend WithEvents btnop_reset As Button
Friend WithEvents btnop1_load As Button
Friend WithEvents pnop1 As Panel
Friend WithEvents nudop1_regct As NumericUpDown
Friend WithEvents OfdExcel As OpenFileDialog
Friend WithEvents btnop1_save As Button
End Class

File diff suppressed because it is too large Load Diff

279
PKCode_Register/mainform.vb Normal file
View File

@ -0,0 +1,279 @@
Imports Microsoft.Office.Interop.Excel
Public Class mainform
Private Const RowCount As Byte = 3
Private Const PKCodeCheck As String = "PK001"
Private Sub mainform_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Me.Text = "DUALSONIC PK Code Register Program Ver 1.0.0"
End Sub
Private Sub txbop1_pk_KeyDown(sender As Object, e As KeyEventArgs) Handles txbop1_pk.KeyDown
If e.KeyCode = Keys.Return Then
btnop1_search_Click(sender, New System.EventArgs())
End If
End Sub
Private Sub btnop1_search_Click(sender As Object, e As EventArgs) Handles btnop1_search.Click
Dim UcaseText As String = UCase(txbop1_pk.Text)
PKCode_Search(UcaseText)
End Sub
Private Sub PKCode_Search(searchtxt As String)
dgvop1_data.Rows.Clear()
Dim DBCmd As String = "SELECT * FROM " & PKCodeDB & " WHERE PKCode = '" & searchtxt & "'"
Dim QueryCount As Byte = DBQueryReader(DBCmd)
Dim SearchCount As Byte = 0
If QueryCount Then
Dim ColListCount As Byte = RowCount - 1
Dim RowListCount As Byte = (QueryCount / RowCount) - 1
For i = 0 To RowListCount
Dim DataSearch(ColListCount) As String
For n = 0 To ColListCount
DataSearch(n) = sqlDataQuery(SearchCount)
SearchCount += 1
Next
dgvop1_data.Rows.Add(DataSearch)
Next
dgvop1_data.ClearSelection()
dgvop1_data.Rows(0).Selected = True
txbop1_pk.Text = String.Empty
Else
MsgBox("존재하는 PK코드가 존재하지 않습니다. 먼저 등록하여 주십시오.", vbExclamation)
End If
End Sub
Private Sub btnop1_del1_Click(sender As Object, e As EventArgs) Handles btnop1_del1.Click
If dgvop1_data.SelectedRows.Count > 0 Then
If MsgBox("선택한 행을 삭제하시겠습니까?", vbExclamation + vbOKCancel) = MsgBoxResult.Ok Then
PKCode_RowDel()
End If
Else
MsgBox("선택한 행이 없습니다.", vbExclamation)
End If
End Sub
Private Sub PKCode_RowDel()
Dim DBCmd As String = "DELETE FROM " & PKCodeDB & " WHERE PKCode = '" & dgvop1_data.SelectedRows(0).Cells(0).Value.ToString & "' AND ProdCode = '" & dgvop1_data.SelectedRows(0).Cells(1).Value.ToString & "'"
If DBCommand(DBCmd) Then
dgvop1_data.Rows.RemoveAt(dgvop1_data.CurrentCell.RowIndex)
MsgBox("데이터를 삭제하였습니다.", vbInformation)
Else
MsgBox("데이터를 삭제하지 못하였습니다.", vbCritical)
End If
End Sub
Private Sub btnop1_del2_Click(sender As Object, e As EventArgs) Handles btnop1_del2.Click
If dgvop1_data.SelectedRows.Count > 0 Then
If MsgBox("해당 코드 번호를 전체 삭제하시겠습니까?", vbExclamation + vbOKCancel) = MsgBoxResult.Ok Then
If MsgBox("정말 삭제하시겠습니까?", vbCritical + vbOKCancel) = MsgBoxResult.Ok Then
PKCode_AllDel()
End If
End If
Else
MsgBox("선택한 행이 없습니다.", vbExclamation)
End If
End Sub
Private Sub PKCode_AllDel()
Dim DBCmd As String = "DELETE FROM " & PKCodeDB & " WHERE PKCode = '" & dgvop1_data.SelectedRows(0).Cells(0).Value.ToString & "'"
If DBCommand(DBCmd) Then
dgvop1_data.Rows.Clear()
MsgBox("데이터를 삭제하였습니다.", vbInformation)
Else
MsgBox("데이터를 삭제하지 못하였습니다.", vbCritical)
End If
End Sub
Private Sub btnop1_reg_Click(sender As Object, e As EventArgs) Handles btnop1_reg.Click
If String.IsNullOrWhiteSpace(txbop1_regpk.Text) Or String.IsNullOrWhiteSpace(txbop1_regpd.Text) Or String.IsNullOrWhiteSpace(nudop1_regct.Text) Then
MsgBox("비어있는 칸이 존재합니다. 값을 입력해주세요.", vbCritical)
Exit Sub
Else
If Mid(txbop1_regpk.Text, 1, 5) = PKCodeCheck Then
PKCode_Register()
Else
MsgBox("PK 코드 양식에 맞지 않는 코드 번호입니다. PK 코드는 앞자리가 ""PK001"" 로 시작됩니다.", vbExclamation)
End If
End If
End Sub
Private Sub PKCode_Register()
Dim DBCmd As String = "INSERT INTO " & PKCodeDB & " VALUES ('" & txbop1_regpk.Text & "','" & txbop1_regpd.Text & "'," & nudop1_regct.Value & ")"
If DBCommand(DBCmd) Then
txbop1_regpk.Text = String.Empty
txbop1_regpd.Text = String.Empty
nudop1_regct.Value = 1
MsgBox("등록 완료하였습니다.", vbInformation)
Else
MsgBox("PK 코드를 등록하지 못했습니다.", vbCritical)
End If
End Sub
Private Sub btnop_reset_Click(sender As Object, e As EventArgs) Handles btnop_reset.Click
dgvop1_data.Rows.Clear()
txbop1_pk.Text = String.Empty
txbop1_regpk.Text = String.Empty
txbop1_regpd.Text = String.Empty
nudop1_regct.Text = String.Empty
txbop1_pk.Focus()
End Sub
Private Sub btnop1_load_Click(sender As Object, e As EventArgs) Handles btnop1_load.Click
Dim OfdExcel As New OpenFileDialog()
OfdExcel.Filter = "Excel Files|*.xls;*.xlsx"
OfdExcel.Title = "엑셀 파일 불러오기"
OfdExcel.Multiselect = False
If OfdExcel.ShowDialog() = DialogResult.OK Then
Dim filePath As String = OfdExcel.FileName
ExcelLoad(filePath)
MsgBox("불러오기 완료!", vbInformation)
End If
End Sub
Private Sub ExcelLoad(filePath As String)
Dim excelApp As New Application()
Dim workBook As Workbook = Nothing
Dim workSheet As Worksheet = Nothing
Try
workBook = excelApp.Workbooks.Open(filePath)
workSheet = CType(workBook.Sheets(1), Worksheet)
dgvop1_data.Rows.Clear()
Dim rowNum As Integer = 3
Do While workSheet.Range("D" & rowNum).Value IsNot Nothing
Dim setCode As String = workSheet.Range("D" & rowNum).Value.ToString
Dim colNum As Byte = 7
Dim dgvData(RowCount - 1)
For i = 0 To 7
Dim cellValue As String = workSheet.Cells(rowNum, colNum).Value
If Not String.IsNullOrEmpty(cellValue) Then
dgvData(0) = setCode.Replace(" ", "").Replace(vbTab, "")
dgvData(1) = workSheet.Cells(rowNum, colNum).Value.ToString.Replace(" ", "").Replace(vbTab, "")
dgvData(2) = workSheet.Cells(rowNum, colNum + 2).Value.ToString.Trim.Replace(" ", "").Replace(vbTab, "")
Else
Exit For
End If
dgvop1_data.Rows.Add(dgvData)
colNum += 3
Next
rowNum += 1
Loop
Catch ex As Exception
MsgBox("오류 발생: " & ex.Message, vbCritical)
Finally
workBook.Close(False)
excelApp.Quit()
ReleaseObject(workSheet)
ReleaseObject(workBook)
ReleaseObject(excelApp)
End Try
End Sub
Private Sub ReleaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End Sub
Private CheckBol As Boolean = False
Private CheckStr As String = String.Empty
Private Sub btnop1_save_Click(sender As Object, e As EventArgs) Handles btnop1_save.Click
For i = 0 To dgvop1_data.RowCount - 2
Dim setCode As String = dgvop1_data.Rows(i).Cells(0).Value
If setCode <> CheckStr Then
CheckStr = setCode
If PKCodeCompare(setCode) Then
CheckBol = True
Else
CheckBol = False
End If
End If
If CheckBol = True Then
If PKCode_ExcelSave(i) Then
Exit For
End If
dgvop1_data.Rows(i).DefaultCellStyle.BackColor = Color.Green
Else
dgvop1_data.Rows(i).DefaultCellStyle.BackColor = Color.Red
End If
Next
End Sub
Private Function PKCode_ExcelSave(n As Integer) As Boolean
Dim DBCmd As String = "INSERT INTO " & PKCodeDB & " VALUES ('" & dgvop1_data.Rows(n).Cells(0).Value & "','" & dgvop1_data.Rows(n).Cells(1).Value & "'," & dgvop1_data.Rows(n).Cells(2).Value & ")"
If DBCommand(DBCmd) = False Then
MsgBox("PK 코드를 등록하지 못했습니다.", vbCritical)
Return True
End If
Return False
End Function
Private Function PKCodeCompare(setCode As String) As Boolean
Dim DBCmd As String = "SELECT 1 FROM " & PKCodeDB & " WHERE PKCode = '" & setCode & "' LIMIT 1"
Dim dbResult As String = DBQueryScalar(DBCmd)
If String.IsNullOrWhiteSpace(dbResult) Then
Return True
Else
Return False
End If
End Function
End Class

View File

@ -0,0 +1,148 @@
Imports MySql.Data.MySqlClient
Module mySQLModule
Private Const LocalHostIP As String = "192.168.0.250"
Private Const UserName As String = "root"
Private Const UserPasswrod As String = "JOMT1646db!!"
Private DataBaseName As String = "jomtOrderTestDB"
Private Conn As String = "Server=" + LocalHostIP + ";DataBase=" + DataBaseName + ";user=" + UserName + ";password=" + UserPasswrod + ";"
Private sqlCon As New MySqlConnection(Conn)
Private sqlCmd As New MySqlCommand()
Private sqlData As MySqlDataReader '' SQL Server와 연결을 유지한 상태에서 한번에 레코드(One Row) 데이타를 가져오는데 사용된다
Public sqlDataQuery() As Object
Public Const PKCodeDB As String = "jomtTesterDB.jomtPKCodeTbl"
Private Function DBOpen() As Boolean
Try
If sqlCon.State <> ConnectionState.Open Then '' sqlCon.State 상태를 나타냄
sqlCon.Open()
End If
Return True
Catch ex As Exception
MsgBox("MySQL Command Error:" + vbCrLf + Err.Description)
Return False
End Try
End Function
Private Function DBClose() As Boolean
Try
If sqlCon.State = ConnectionState.Open Then
sqlCon.Close()
End If
Return True
Catch ex As Exception
MsgBox("MySQL Command Error:" + vbCrLf + Err.Description)
Return False
End Try
End Function
Private Function Database_Use() As Boolean
Try
DBOpen()
sqlCmd.CommandText = "USE " & DataBaseName & ";"
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
Return True
Catch ex As Exception
MsgBox("MySQL Command Error:" + vbCrLf + Err.Description)
Return False
End Try
End Function
Public Function DBCommand(cmdStr As String) As Boolean
Try
Database_Use() '' 연결에 대한 sql문 실행, 명령을 수행하고 영향을 받은 행의 수를 반환하는 메서드, 추가나 변경, 삭제 등의 명령을 수행할 때는 명령으로 영향받은 행의 수만 알면 되기 때문에 ExecuteNonQuery 메서드를 사용합니다. 리턴값은 INT32
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
sqlCmd.ExecuteNonQuery()
DBClose()
Return True
Catch ex As Exception
MsgBox("MySQL Command Error:" + vbCrLf + Err.Description)
DBClose()
Return False
End Try
End
End Function
Public Function DBQueryScalar(cmdStr As String) As String
Dim result As String
Try
Database_Use()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
result = sqlCmd.ExecuteScalar() 'SQL 명령을 실행하고, Query 리턴하는 첫번째 행의 첫번째 열을 리턴한다. 결과가 1개인 집계함수(count, sum, avg ) 사용한다. 반환값은 object
Return result
Catch ex As Exception
MsgBox("MySQL Command Error:" + vbCrLf + Err.Description)
Return "False"
End Try
End
End Function
Public Function DBQueryReader(cmdStr As String) As Integer
Dim FieldCount As Integer
Dim initRun As Boolean = True
Dim DataTypeName As String
Dim TmpData As Object
Dim QueryCount As ULong
Try
Database_Use()
sqlCmd.CommandText = cmdStr
sqlCmd.Connection = sqlCon
sqlData = sqlCmd.ExecuteReader '' 어떤 쿼리에서도 적용이 가능하다. SELECT 쿼리를 이용할 경우 해당하는 값들이 DataReader 타입으로 온다. 값을 가져온 후에는 SqlDataReader객체의 read메서드를 통해 값을 읽어올 있고 , 사용 후에는 close메서드를 이용하여 실행을 끝내주어야 한다.
FieldCount = sqlData.FieldCount '' 현재 행의 수를 가져옵니다.
While (sqlData.Read())
If initRun Then
ReDim sqlDataQuery(FieldCount - 1) '' 배열을 모든 필드를 담을 있는 양으로 맞추는 기능
initRun = False
Else
ReDim Preserve sqlDataQuery(UBound(sqlDataQuery) + FieldCount) '' 배열에 저장된 값을 보존하면서 배열의 길이만 재선언
End If
For cnt = 0 To FieldCount - 1
DataTypeName = sqlData.GetDataTypeName(cnt) '' 지정된 열의 데이터 형식을 나타내는 문자열을 가져옵니다.
If DataTypeName = "DATE" Then
TmpData = sqlData.GetDateTime(cnt)
Else
TmpData = sqlData.GetValue(cnt)
End If
If DBNull.Value.Equals(TmpData) Or TmpData.Equals(String.Empty) Then
sqlDataQuery(QueryCount) = "0"
Else
sqlDataQuery(QueryCount) = TmpData
End If
QueryCount += 1
Next
End While
DBClose()
Return QueryCount
Catch ex As Exception
MsgBox(Err.Description)
If sqlCon.State = ConnectionState.Open Then sqlCon.Close()
Return 0
End Try
End Function
End Module

View File

@ -0,0 +1,7 @@
' <autogenerated/>
Option Strict Off
Option Explicit On
Imports System
Imports System.Reflection
<Assembly: Global.System.Runtime.Versioning.TargetFrameworkAttribute(".NETFramework,Version=v4.8", FrameworkDisplayName:=".NET Framework 4.8")>

Binary file not shown.

Binary file not shown.

View File

@ -0,0 +1 @@
a1ba45b7cd60d26c37bf71ca0e0e8b990daba208

View File

@ -0,0 +1,54 @@
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.AssemblyReference.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.SuggestedBindingRedirects.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.Resources.resources
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.GenerateResource.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.CoreCompileInputs.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.exe.config
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.exe
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.pdb
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.xml
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.exe
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.xml
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.pdb
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\MySql.Data.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Google.Protobuf.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Zstandard.Net.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\K4os.Compression.LZ4.Streams.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\BouncyCastle.Crypto.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Ubiety.Dns.Core.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Renci.SshNet.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\System.Buffers.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\K4os.Compression.LZ4.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\K4os.Hash.xxHash.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\MySql.Data.xml
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.ResolveComReference.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.mainform.resources
\\192.168.1.251\연구소\박석태\제작 소프트웨어\26. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.CopyComplete
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.exe.config
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.exe
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.pdb
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\PKCode_Register.xml
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\MySql.Data.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Google.Protobuf.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Zstandard.Net.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\K4os.Compression.LZ4.Streams.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\BouncyCastle.Crypto.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Ubiety.Dns.Core.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\Renci.SshNet.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\System.Buffers.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\K4os.Compression.LZ4.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\K4os.Hash.xxHash.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\bin\Debug\MySql.Data.xml
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.AssemblyReference.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.SuggestedBindingRedirects.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.ResolveComReference.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.mainform.resources
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.Resources.resources
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.GenerateResource.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.CoreCompileInputs.cache
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.vbproj.CopyComplete
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.exe
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.xml
\\192.168.1.251\연구소\박석태\제작 소프트웨어\25. PKCode_Register\PKCode_Register\PKCode_Register\obj\Debug\PKCode_Register.pdb

View File

@ -0,0 +1,26 @@
<?xml version="1.0"?>
<doc>
<assembly>
<name>
PKCode_Register
</name>
</assembly>
<members>
<member name="T:PKCode_Register.My.Resources.Resources">
<summary>
A strongly-typed resource class, for looking up localized strings, etc.
</summary>
</member>
<member name="P:PKCode_Register.My.Resources.Resources.ResourceManager">
<summary>
Returns the cached ResourceManager instance used by this class.
</summary>
</member>
<member name="P:PKCode_Register.My.Resources.Resources.Culture">
<summary>
Overrides the current thread's CurrentUICulture property for all
resource lookups using this strongly typed resource class.
</summary>
</member>
</members>
</doc>

View File

@ -0,0 +1 @@
11708e831d0437d1c8dcc655f24b8a470838952ab1878d958bd88be788b08d31

View File

@ -0,0 +1,26 @@
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PackingCodeRegistrar.vbproj.AssemblyReference.cache
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PackingCodeRegistrar.vbproj.ResolveComReference.cache
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PKCode_Register.exe
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PKCode_Register.xml
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PKCode_Register.pdb
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\PKCode_Register.exe.config
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\PKCode_Register.exe
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\PKCode_Register.pdb
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\PKCode_Register.xml
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\MySql.Data.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\Google.Protobuf.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\Zstandard.Net.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\K4os.Compression.LZ4.Streams.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\BouncyCastle.Crypto.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\Ubiety.Dns.Core.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\Renci.SshNet.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\System.Buffers.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\K4os.Compression.LZ4.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\K4os.Hash.xxHash.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\System.Runtime.CompilerServices.Unsafe.dll
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\bin\Debug\MySql.Data.xml
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PKCode_Register.mainform.resources
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PKCode_Register.Resources.resources
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PackingCodeRegistrar.vbproj.GenerateResource.cache
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PackingCodeRegistrar.vbproj.CoreCompileInputs.cache
C:\Users\JOMT-NOTE-PC\SECUDRIVE DG\programs\02. 복사 프로그램\PackingCodeRegistrar\PKCode_Register\obj\Debug\PackingC.76413273.Up2Date

25
PackingCodeRegistrar.sln Normal file
View File

@ -0,0 +1,25 @@

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.5.33627.172
MinimumVisualStudioVersion = 10.0.40219.1
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "PackingCodeRegistrar", "PKCode_Register\PackingCodeRegistrar.vbproj", "{4BF894D5-D9F2-4699-AEE3-4085FD21D51C}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{4BF894D5-D9F2-4699-AEE3-4085FD21D51C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{4BF894D5-D9F2-4699-AEE3-4085FD21D51C}.Debug|Any CPU.Build.0 = Debug|Any CPU
{4BF894D5-D9F2-4699-AEE3-4085FD21D51C}.Release|Any CPU.ActiveCfg = Release|Any CPU
{4BF894D5-D9F2-4699-AEE3-4085FD21D51C}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {016906CB-10D8-4D46-93EB-FEA090827CC3}
EndGlobalSection
EndGlobal