dock 관련, 제거

This commit is contained in:
chi
2020-07-09 00:52:56 +09:00
parent fc66714f53
commit 161bcc9cbe
47 changed files with 16335 additions and 782 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,728 @@
Imports System.IO
Imports System.Text
Public Class XLSOldtonew
Structure Str_Macro
Dim FileName As String
Dim Desc As String
End Structure
' Dim FN As String = vbNullString
' Dim Arin As New CommonClassv2.ARINCLASS
Dim Srcfile As String = "" '//원본파일 현재 불러온 이거나 이전에 불러왓던
Dim findCnt As Integer = 0
Dim ListOk As ArrayList
Dim ListOld As ArrayList
Dim ListOK4 As ArrayList
Dim ListOld4 As ArrayList
Dim MacroPattern As String = "oton"
Dim IniFile As String = My.Application.Info.DirectoryPath & "\macro\" & MacroPattern & "\default.ini"
Dim MacroPath As String = My.Application.Info.DirectoryPath & "\macro\" & MacroPattern
Dim Macro() As Str_Macro
Private Sub Load_Macro()
Dim Ini As MyINI2
Dim DI As New DirectoryInfo(Me.MacroPath)
If Not DI.Exists Then DI.Create()
Dim FI() As FileInfo = DI.GetFiles(Me.MacroPattern & "*.ini")
ReDim Macro(FI.GetUpperBound(0)) '//매크로 등록한다.
Dim I As Integer = 0
Me.cmb_macro.Items.Clear()
Me.cmb_macro.Items.Add("이전설정")
For Each F As FileInfo In FI
Me.Macro(I).FileName = F.FullName
Ini = New MyINI2(F.FullName)
Me.Macro(I).Desc = Ini.Read("main", "desc", "기본설명")
Me.cmb_macro.Items.Add(Me.Macro(I).Desc)
I += 1
Next
End Sub
Private Sub AddNewList(ByVal Stext As String)
'//list ok 에 신관리구를 집어넣는다.
'//중복된다면 넣지않는다.
If ListOk.IndexOf(Stext.ToUpper) >= 0 OrElse Stext.Length = 0 Then Return
ListOk.Add(Stext.ToUpper)
End Sub
Private Sub AddoldList(ByVal Stext As String)
'//list ok 에 신관리구를 집어넣는다.
'//중복된다면 넣지않는다.
If ListOld.IndexOf(Stext.ToUpper) >= 0 OrElse Stext.Length = 0 Then Return
ListOld.Add(Stext.ToUpper)
End Sub
Private Sub AddNewList4(ByVal Satext As String)
'//list ok 에 신관리구를 집어넣는다.
'//중복된다면 넣지않는다.
Dim Ntext As String = Satext
If Satext.Length >= 4 Then Ntext = Satext.Substring(0, 4)
If ListOK4.IndexOf(Ntext.ToUpper) >= 0 OrElse Ntext.Length = 0 Then Return
ListOK4.Add(Ntext.ToUpper)
End Sub
Private Sub AddoldList4(ByVal Satext As String)
'//list ok 에 신관리구를 집어넣는다.
'//중복된다면 넣지않는다.
Dim Ntext As String = Satext
If Satext.Length >= 4 Then Ntext = Satext.Substring(0, 4)
If ListOld4.IndexOf(Ntext.ToUpper) >= 0 OrElse Ntext.Length = 0 Then Return
ListOld4.Add(Ntext.ToUpper)
End Sub
Private Sub XLSImport_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
' Me.ListView3.COLSIZE_SAVE()
Me.Save_Setting()
End Sub
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'Load_Setting()
Load_Macro()
Me.cmb_macro.SelectedIndex = 0
Try
Me.srcview.Font = New Font(ViewFont.FontName, ViewFont.FontSize, Me.Font.Style)
' Me.viewnew.Font = New Font(ViewFont.FontName, ViewFont.FontSize, Me.Font.Style)
Me.ToolStrip1.Font = New Font(MenuFont.FontName, MenuFont.FontSize, Me.Font.Style) '//글자정보 불러오기
Me.ToolStrip3.Font = New Font(MenuFont.FontName, MenuFont.FontSize, Me.Font.Style) '//글자정보 불러오기
Me.ToolStrip2.Font = New Font(MenuFont.FontName, MenuFont.FontSize, Me.Font.Style) '//글자정보 불러오기
Catch ex As Exception
End Try
End Sub
Private Sub Load_Setting(Optional ByVal Macroindex As Integer = 0)
Dim ini As MyINI2
If Macroindex = 0 Then
ini = New MyINI2(IniFile)
Else
ini = New MyINI2(Me.Macro(Macroindex - 1).FileName)
End If
If ini.Exist = False Then
MsgBox("환경파일이 존재하지 않아서 기존의 설정을 불러오지 못했습니다", MsgBoxStyle.Critical, "확인")
Return
End If
Me.tb_srcstt.Text = ini.Read("normal", "srcstartpos", "1") '//시작
Me.tb_srcend.Text = ini.Read("normal", "srcendpos", "0") '//종료
Me.Srcfile = ini.Read("normal", "srcfile", "")
For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel3.Controls
A.열번호 = ini.Read("CURSETNUMsrc", A.Name)
A.문자열자르기 = ini.Read("CURSETSPLsrc", A.Name)
A.빈값체크 = ini.Read("CURSETNULsrc", A.Name, False)
Next
For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel6.Controls
A.열번호 = ini.Read("CURSETNUMdes", A.Name)
A.문자열자르기 = ini.Read("CURSETSPLdes", A.Name)
A.빈값체크 = ini.Read("CURSETNULdes", A.Name, False)
Next
End Sub
Private Sub Save_Setting(Optional ByVal Macroindex As Integer = 0) '//현재 셋팅을 저장합니다.
'//저장목록은 시작/종료 열번호 아이템의 텍스트이다.
Dim Macroname As String
Dim ini As MyINI2
Dim FileName As String
If Macroindex = 0 Then
ini = New MyINI2(IniFile)
Macroname = "기본설정"
FileName = IniFile
WLog2(Auto_Log, "SaveSetting(기본:" & IniFile & ")", "\Macro.txt")
ElseIf Macroindex = -999 Then '//이건 새로운 매크로의 추가다. 매크로 파일명을 새로지어야한다.
Macroname = InputBox("매크로 설명을 입력하세요", "설명입력", "신규매크로")
Dim i As Integer = 0
Dim NewName As String = ""
NewName:
i += 1
NewName = Me.MacroPath & "\" & Me.MacroPattern & Format(Me.Macro.GetUpperBound(0) + i + 1, "00") & ".ini"
' MsgBox(MacroPath & "/" & MacroPattern & "/" & Format(Me.Macro.GetUpperBound(0) + i + 1) & "/" & NewName)
WLog2(Auto_Log, "SaveSetting(신규:" & NewName & ")", "\Macro.txt")
If File.Exists(NewName) Then GoTo NewName
ini = New MyINI2(NewName)
'WLog2(Auto_Log, "SaveSetting(" & NewName & ")", "\Macro.txt")
FileName = NewName
Else
ini = New MyINI2(Me.Macro(Macroindex - 1).FileName)
Macroname = Me.Macro(Macroindex - 1).Desc
WLog2(Auto_Log, "SaveSetting(기존:" & Me.Macro(Macroindex - 1).FileName & ")", "\Macro.txt")
FileName = Me.Macro(Macroindex - 1).FileName
End If
WLog2(Auto_Log, "Ini FileName = " & ini.FileName, "\Macro.txt")
ini.Write("main", "desc", Macroname)
WLog2(Auto_Log, "Write_Main_Desc", "\Macro.txt")
ini.Write("normal", "srcstartpos", Me.tb_srcstt.Text) '//시작
WLog2(Auto_Log, "Write_srcstartpos", "\Macro.txt")
WLog2(Auto_Log, "Ini FileName = " & ini.FileName, "\Macro.txt")
ini.Write("normal", "srcendpos", Me.tb_srcend.Text) '//종료
WLog2(Auto_Log, "Write_srcendpos", "\Macro.txt")
WLog2(Auto_Log, "Ini FileName = " & ini.FileName, "\Macro.txt")
ini.Write("normal", "srcfile", Me.Srcfile)
WLog2(Auto_Log, "Write_Control_position", "\Macro.txt")
WLog2(Auto_Log, "Ini FileName = " & ini.FileName, "\Macro.txt")
For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel3.Controls '//각 텍스트박스
ini.Write("CURSETNUMsrc", A.Name, A.열번호)
ini.Write("CURSETSPLsrc", A.Name, A.문자열자르기)
ini.Write("CURSETNULsrc", A.Name, A.빈값체크)
Next
WLog2(Auto_Log, "Write_panel3_position", "\Macro.txt")
For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel6.Controls '//각 텍스트박스
ini.Write("CURSETNUMdes", A.Name, A.열번호)
ini.Write("CURSETSPLdes", A.Name, A.문자열자르기)
ini.Write("CURSETNULdes", A.Name, A.빈값체크)
Next
WLog2(Auto_Log, "Write_panel6_position", "\Macro.txt")
End Sub
Private Sub SetNewText(ByVal sender As MyControlOLEDBv2.ImpCtl, ByVal RowNum As Integer, ByVal Stext As String)
'//만약 날짜포맷이면 FORMAT 을 지정해서 사용한다"
Dim SUbidx As Integer
Dim VALSTR As String
If sender.열번호 = "" Then '/./열이 지정되어잇지 않으므로 그냥빠져나간다.
Return
Else '//있다.
SUbidx = sender.열번호
If Stext = "" Then
' MsgBox("값이없어서 바로보낸다")
Return '//데이터없으면 리턴
End If
If sender.문자열자르기 = "" OrElse sender.문자열자르기 = "0,0" Then '//문자열자르기확인 없다 그대로 리턴
Me.srcview.ActiveSheet.Cells(RowNum, CInt(SUbidx - 1)).Text = Stext
Else '//문자열자르기가 있으면 잘라서 보내준다.
Dim DIV() As String = sender.문자열자르기.Split(",")
If DIV(1) = "0" Then '//시작부터 끝까지
Try
VALSTR = (Stext.Substring(DIV(0) - 1))
Catch ex As Exception
VALSTR = Stext
End Try
Me.srcview.ActiveSheet.Cells(RowNum, CInt(SUbidx - 1)).Text = VALSTR
Else '/지정범위
Try
VALSTR = Stext.Substring(DIV(0) - 1, DIV(1))
Catch ex As Exception
VALSTR = Stext
End Try
Me.srcview.ActiveSheet.Cells(RowNum, CInt(SUbidx - 1)).Text = VALSTR
End If
End If
End If
End Sub
Private Function GetFPData(ByVal sender As MyControlOLEDBv2.ImpCtl, ByVal Drow As FarPoint.Win.Spread.Row, ByVal CustFp1 As FarPoint.Win.Spread.FpSpread) As String
'//만약 날짜포맷이면 FORMAT 을 지정해서 사용한다"
Dim SUbidx As Integer
Dim VALSTR As String
If sender.열번호 = "" Then '//즉 없다는뜻이다.
Return ""
Else '//있다.
SUbidx = sender.열번호
If CustFp1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text = "" Then
' MsgBox("값이없어서 바로보낸다")
Return "" '//데이터없으면 리턴
End If
If sender.문자열자르기 = "" OrElse sender.문자열자르기 = "0,0" Then '//문자열자르기확인 없다 그대로 리턴
VALSTR = CustFp1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text
Return VALSTR
Else '//문자열자르기가 있으면 잘라서 보내준다.
Dim DIV() As String = sender.문자열자르기.Split(",")
If DIV(1) = "0" Then '//시작부터 끝까지
Try
VALSTR = (CustFp1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text.Substring(DIV(0) - 1))
Catch ex As Exception
VALSTR = CustFp1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text
End Try
Return VALSTR
Else '/지정범위
Try
VALSTR = CustFp1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text.Substring(DIV(0) - 1, DIV(1))
Catch ex As Exception
VALSTR = CustFp1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text
End Try
Return VALSTR
End If
End If
End If
End Function
Private Function GetFPData(ByVal sender As MyControlOLEDBv2.ImpCtl, ByVal Drow As Integer, ByVal CustFp1 As FarPoint.Win.Spread.FpSpread) As String
'//만약 날짜포맷이면 FORMAT 을 지정해서 사용한다"
Dim SUbidx As Integer
Dim VALSTR As String
If sender.열번호 = "" Then '//즉 없다는뜻이다.
Return ""
Else '//있다.
SUbidx = sender.열번호
If CustFp1.ActiveSheet.Cells(Drow, CInt(SUbidx - 1)).Text = "" Then
' MsgBox("값이없어서 바로보낸다")
Return "" '//데이터없으면 리턴
End If
If sender.문자열자르기 = "" OrElse sender.문자열자르기 = "0,0" Then '//문자열자르기확인 없다 그대로 리턴
VALSTR = CustFp1.ActiveSheet.Cells(Drow, CInt(SUbidx - 1)).Text
Return VALSTR
Else '//문자열자르기가 있으면 잘라서 보내준다.
Dim DIV() As String = sender.문자열자르기.Split(",")
If DIV(1) = "0" Then '//시작부터 끝까지
Try
VALSTR = (CustFp1.ActiveSheet.Cells(Drow, CInt(SUbidx - 1)).Text.Substring(DIV(0) - 1))
Catch ex As Exception
VALSTR = CustFp1.ActiveSheet.Cells(Drow, CInt(SUbidx - 1)).Text
End Try
Return VALSTR
Else '/지정범위
Try
VALSTR = CustFp1.ActiveSheet.Cells(Drow, CInt(SUbidx - 1)).Text.Substring(DIV(0) - 1, DIV(1))
Catch ex As Exception
VALSTR = CustFp1.ActiveSheet.Cells(Drow, CInt(SUbidx - 1)).Text
End Try
Return VALSTR
End If
End If
End If
End Function
Private Function NullCHeck() As Boolean
For Each C As Control In Me.TableLayoutPanel3.Controls
If C.GetType.Name.ToUpper = "IMPCTL" Then
If CType(C, MyControlOLEDBv2.ImpCtl).열번호 <> "" AndAlso CType(C, MyControlOLEDBv2.ImpCtl).빈값체크 Then '//체크된게잇으면 리턴한다.
Return True
End If
End If
Next
Return False
End Function
Private Function GetMaxCount1(ByVal sp As Integer) As Integer
Dim Strbuff As System.Text.StringBuilder
Dim NullCnt As Short = 0
Dim I As Integer = 0
For I = sp To Me.srcview.ActiveSheet.RowCount
Strbuff = New System.Text.StringBuilder
Strbuff.Append(Me.srcview.ActiveSheet.Cells(I, 0).Text) ' Me.view1.ActiveSheet.Cells(Me.tb_sttrange.Text, CT.열번호.Substring(1)).Text)
Strbuff.Append(Me.srcview.ActiveSheet.Cells(I, 1).Text) ' Me.view1.ActiveSheet.Cells(Me.tb_sttrange.Text, CT.열번호.Substring(1)).Text)
Strbuff.Append(Me.srcview.ActiveSheet.Cells(I, 2).Text) ' Me.view1.ActiveSheet.Cells(Me.tb_sttrange.Text, CT.열번호.Substring(1)).Text)
If Strbuff.ToString.Trim <> "" Then
NullCnt = 0
Else
NullCnt += 1
If NullCnt = 5 Then '//빈줄이나올때 널카운트를 증가시키고 빈줄이 5번연속나올때는 빠져나온다.
Exit For
End If
End If
Next
Return I - 4
End Function
Private Sub showcnt(ByVal cnt1 As Integer, ByVal cnt2 As Integer)
Me.lb_cnt.Text = cnt1 & "/" & cnt2
My.Application.DoEvents()
End Sub
Private Sub RunSrc() '//적용루틴 끝에 추가를 해주는것뿐이다 (기타번호찰)
Dim 조합1 As String '//조합는 notnull 이다
Dim 조합2 As String '//조합는 notnull 이다
Dim H1 As String = ""
Dim H2 As String = ""
Dim H3 As String = ""
Dim 검색문자 As String
Dim NullChk As Boolean = Me.NullCHeck '//이건 원본의 널체크
Dim NullVal As String = ""
Dim cnt As Integer = -1
Dim StartCnt As Integer = CInt(Me.tb_srcstt.Text)
Dim EndCnt As Integer = IIf(CInt(Me.tb_srcend.Text) = 0, GetMaxCount1(StartCnt), CInt(Me.tb_srcend.Text))
Dim index As Integer = 0
For Each Dr As FarPoint.Win.Spread.Row In Me.srcview.ActiveSheet.Rows '//모든로우에해당하는데 시작줄부터한다
If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then '//시작인덱스 이상일경우에만 한다.
index += 1
showcnt(index, EndCnt)
Me.srcview.ActiveSheet.Cells(Dr.Index, Me.ImpCtl4.열번호 - 1).Text = ""
NullVal = False
Try
조합1 = Me.GetFPData(Me.srcctl1, Dr, Me.srcview).ToUpper
조합2 = Me.GetFPData(Me.srcctl2, Dr, Me.srcview).ToUpper
If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
NullVal = ""
If Me.srcctl1.빈값체크 Then NullVal &= IIf(조합1.Trim = "", "", "X")
If Me.srcctl2.빈값체크 Then NullVal &= IIf(조합2.Trim = "", "", "X")
Else
NullVal = "X" '//기본false로 해줘야한다.
End If
If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
'//이제 이부분에서 대상파일의 내용을 전부 루프로 돈다.
검색문자 = CStr(조합1 & 조합2).Trim
If 검색문자 = "" Then
Me.srcview.ActiveSheet.Cells(Dr.Index, Me.ImpCtl4.열번호 - 1).Text &= "[X] 검색할 문자가 없음"
Else
Me.srcview.ActiveSheet.Cells(Dr.Index, Me.ImpCtl4.열번호 - 1).Text &= "[O]"
'//검색대상 문자가 잇으므로 여기서 각종 조합을 통해서 신전주번호를 산출한다.
'//대상은 뒷자리 3자를 토대로 앞의 알파벳을 구하고 다구한후 뒤에서 4번째자리를 통해서 A~Z 까지를 산출한다.
If 검색문자.Length <> 8 Then Me.srcview.ActiveSheet.Cells(Dr.Index, Me.ImpCtl4.열번호 - 1).Text &= "[X] 예상길이 8이 되지 않습니다"
Me.Parser(검색문자, H1, H2, H3)
'//분류가 완료되었다 이제 지정된 열로 보여준다.
Me.SetNewText(Me.ImpCtl1, Dr.Index, CStr(H1 & H2 & H3))
Me.SetNewText(Me.ImpCtl2, Dr.Index, CStr(H1 & H2 & H3))
Me.SetNewText(Me.ImpCtl3, Dr.Index, CStr(H1 & H2 & H3))
End If '
End If
Catch ex As ConstraintException '//중복
' AddLog("번호중복", "중복된 번호:" & 번호)
Catch ex As Exception
' AddLog(ex.InnerException.ToString, ex.Message.ToString)
End Try
End If
Next
If findCnt = 0 Then
'MsgBox("일치하는 줄이 없습니다" & vbCrLf & vbCrLf & "로그내역을 통해서 상세내역을 확인할 수 있습니다", MsgBoxStyle.Critical, "확인")
Else
'MsgBox(findCnt & "개의 줄이 일치합니다" & vbCrLf & vbCrLf & "로그내역을 통해서 상세내역을 확인할 수 있습니다", MsgBoxStyle.Information, "확인")
End If
Me.ListOld.Sort() '//변경된 모든 내역을 가진다. 여기서 중복된건 피하고 우측의 viewnew 에 보여준다.
For Each Idx As String In Me.ListOld
fxList.Rows.Count += 1
fxList.SetData(fxList.Rows.Count - 1, 0, Idx)
'Me.viewnew.ActiveSheet.RowCount += 1 '//줄 증가
' Me.viewnew.ActiveSheet.Cells(Me.viewnew.ActiveSheet.RowCount - 1, 0).Text = Idx '//변경전 관리구 4자
Next
Dim Rownum As Integer = 0
Me.ListOld4.Sort() '//변경된 모든 내역을 가진다. 여기서 중복된건 피하고 우측의 viewnew 에 보여준다.
For Each Idx As String In Me.ListOld4
If (Rownum + 1) > Me.fxList.Rows.Count - 1 Then fxList.Rows.Count += 1
fxList.SetData(Rownum + 1, 1, Idx)
' If Rownum > Me.viewnew.ActiveSheet.RowCount - 1 Then Me.viewnew.ActiveSheet.RowCount += 1 '//줄 증가
' Me.viewnew.ActiveSheet.Cells(Rownum, 1).Text = Idx '//변경전 관리구 4자
Next
Rownum = 0
Me.ListOK4.Sort() '//변경된 모든 내역을 가진다. 여기서 중복된건 피하고 우측의 viewnew 에 보여준다.
For Each Idx As String In Me.ListOK4
If (Rownum + 1) > Me.fxList.Rows.Count - 1 Then fxList.Rows.Count += 1
fxList.SetData((Rownum + 1), 2, Idx)
'If Rownum > Me.viewnew.ActiveSheet.RowCount - 1 Then Me.viewnew.ActiveSheet.RowCount += 1 '//줄 증가
' Me.viewnew.ActiveSheet.Cells(Rownum, 2).Text = Idx '//변경후 관리구 4자
Rownum += 1
Next
Rownum = 0
Me.ListOk.Sort() '//변경된 모든 내역을 가진다. 여기서 중복된건 피하고 우측의 viewnew 에 보여준다.
For Each Idx As String In Me.ListOk
If (Rownum + 1) > Me.fxList.Rows.Count - 1 Then fxList.Rows.Count += 1
fxList.SetData((Rownum + 1), 3, Idx)
'If Rownum > Me.viewnew.ActiveSheet.RowCount - 1 Then Me.viewnew.ActiveSheet.RowCount += 1 '//줄 증가
' Me.viewnew.ActiveSheet.Cells(Rownum, 3).Text = Idx '//변경후 관리구 5자
Rownum += 1
Next
fxList.AutoSizeCols()
MsgBox("완료되었습니다", MsgBoxStyle.Information, "확인")
End Sub
Private Sub Parser(ByVal SearchText As String, ByRef h1 As String, ByRef h2 As String, ByRef h3 As String) '//대상파일
'//검색문자로 들어온데이터를 가지고 판단한다.
'//젤뒤에 3자리로 좌표를 게산하고 그 앞에 1자리를 통해서 알파벳을 결정한다.
Dim First() As String = {"A", "B", "C", "D"}
Dim Second() As String = {"E", "F", "G", "H"}
Dim Third() As String = {"P", "Q", "R", "S"}
Dim Forth() As String = {"W", "X", "Y", "Z"}
Dim Offset As Integer = -1
' If SearchText.Length <> 8 Then Return
h3 = Microsoft.VisualBasic.Right(SearchText, 3)
h1 = Microsoft.VisualBasic.Left(SearchText, 4)
Dim M0, M1, M2, M3 As String '//각각 4개의 문자를 잘라온다. 앞의 0번과 그 다음(엑스) 다음(와이)
M0 = Microsoft.VisualBasic.Left(Microsoft.VisualBasic.Right(SearchText, 4), 1)
M1 = Microsoft.VisualBasic.Left(Microsoft.VisualBasic.Right(SearchText, 3), 1)
M2 = Microsoft.VisualBasic.Left(Microsoft.VisualBasic.Right(SearchText, 2), 1)
M3 = Microsoft.VisualBasic.Left(Microsoft.VisualBasic.Right(SearchText, 1), 1)
'//이제 오프셋만 구하면된다.offset=
AddoldList(CStr(h1 & M0)) '//구목록에 집어넣는다.
AddoldList4(CStr(h1 & M0)) '//구목록에 집어넣는다.
If IsNumeric(M0) = False Then '//이미신전산화일경우 그냥 빠져나간다.
h2 = M0
AddNewList(CStr(h1 & h2)) '//완료목록에 집어넣는다.
AddNewList4(CStr(h1 & h2)) '//완료목록에 집어넣는다.
Return
End If
If (M1 >= 0 AndAlso M1 <= 4) AndAlso (M2 >= 5 AndAlso M2 <= 9) Then Offset = 1 '이건 오프셋1번이다
If (M1 >= 0 AndAlso M1 <= 4) AndAlso (M2 >= 0 AndAlso M2 <= 4) Then Offset = 3 '이건 오프셋1번이다
If (M1 >= 5 AndAlso M1 <= 9) AndAlso (M2 >= 5 AndAlso M2 <= 9) Then Offset = 2 '이건 오프셋1번이다
If (M1 >= 5 AndAlso M1 <= 9) AndAlso (M2 >= 0 AndAlso M2 <= 4) Then Offset = 4 '이건 오프셋1번이다
If Offset = -1 Then
MsgBox("해당 값의 오프셋을 찾을수없습니다", MsgBoxStyle.Critical, "확인")
Return
End If
Select Case M0
Case 1
h2 = First(Offset - 1)
Case 2
h2 = Second(Offset - 1)
Case 3
h2 = Third(Offset - 1)
Case 4
h2 = Forth(Offset - 1)
Case Else
MsgBox("4번째 문자는 1~4의 값이어야 합니다(" & M0 & ")", MsgBoxStyle.Critical, "확인")
End Select
AddNewList(CStr(h1 & h2)) '//완료목록에 집어넣는다.
AddNewList4(CStr(h1 & h2)) '//완료목록에 집어넣는다.
End Sub
Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click
Me.Close()
End Sub
Private Sub srcview_DragEnter(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles srcview.DragEnter
If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
e.Effect = DragDropEffects.Copy
ElseIf (e.Data.GetDataPresent(DataFormats.StringFormat)) Then
' MsgBox("string")
e.Effect = DragDropEffects.Copy
ElseIf (e.Data.GetDataPresent(DataFormats.Text)) Then
' MsgBox("text")
e.Effect = DragDropEffects.Copy
Else
e.Effect = DragDropEffects.None
End If
End Sub
Private Sub RenameColumnname1()
For i As Integer = 0 To Me.srcview.Sheets.Count - 1
For Each CL As FarPoint.Win.Spread.Column In Me.srcview.Sheets(i).Columns
Me.srcview.Sheets(i).Columns(CL.Index).Label = CL.Index + 1
Next
Next
End Sub
Private Sub srcview_DragDrop(ByVal sender As Object, ByVal e As System.Windows.Forms.DragEventArgs) Handles srcview.DragDrop
If (e.Data.GetDataPresent(DataFormats.FileDrop)) Then
Dim STR() As String = CType(e.Data.GetData(DataFormats.FileDrop), String())
If Me.srcview.IsExcelFile(STR(0)) = False Then
MsgBox(STR(0) & vbCrLf & "엑셀파일이 아닙니다")
Else
If Me.srcview.OpenExcel(STR(0), FarPoint.Excel.ExcelOpenFlags.RowAndColumnHeaders) = False Then
MsgBox(STR(0) & vbCrLf & "파일을 불러올수 없습니다")
Else '//불러왓으니 열제목을 재설정한다.
RenameColumnname1()
End If
End If
ElseIf (e.Data.GetDataPresent(DataFormats.StringFormat)) Then
Dim Fi As New System.IO.FileInfo(e.Data.GetData(DataFormats.StringFormat))
If Me.srcview.IsExcelFile(Fi.FullName) = False Then
MsgBox(Fi.FullName & vbCrLf & "엑셀파일이 아닙니다")
Else
If Me.srcview.OpenExcel(Fi.FullName, FarPoint.Excel.ExcelOpenFlags.RowAndColumnHeaders) = False Then
MsgBox(Fi.FullName & vbCrLf & "파일을 불러올수 없습니다")
End If
End If
ElseIf (e.Data.GetDataPresent(DataFormats.Text)) Then
Dim STR() As String = CType(e.Data.GetData(DataFormats.Text), String())
If Me.srcview.IsExcelFile(STR(0)) = False Then
MsgBox(STR(0) & vbCrLf & "엑셀파일이 아닙니다")
Else
If Me.srcview.OpenExcel(STR(0), FarPoint.Excel.ExcelOpenFlags.RowAndColumnHeaders) = False Then
MsgBox(STR(0) & vbCrLf & "파일을 불러올수 없습니다")
End If
End If
End If
End Sub
Private Sub bt_srcfile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_srcfile.Click
Dim OD As New OpenFileDialog
OD.FileName = Me.Srcfile
OD.Filter = "MS Office Excel WorkSheet(*.xls)|*.xls"
OD.FilterIndex = 1
' OD.RestoreDirectory = True
If OD.ShowDialog() = DialogResult.Cancel Then
MsgBox("불러오기가 취소되었습니다", MsgBoxStyle.Critical, "확인")
Else
If Me.srcview.OpenExcel(OD.FileName, FarPoint.Excel.ExcelOpenFlags.RowAndColumnHeaders) = False Then
MsgBox(OD.FileName & vbCrLf & "파일을 불러올수 없습니다", MsgBoxStyle.Critical, "원본파일 불러오기 오류")
Else '//불러왓으니 열제목을 재설정한다.
Me.Srcfile = OD.FileName
RenameColumnname1()
End If
'synclog.view1.OpenExcel(OD.FileName, FarPoint.Excel.ExcelOpenFlags.RowAndColumnHeaders) '//비포함목록을 저장
'synclog.view2.OpenExcel(OD.FileName, FarPoint.Excel.ExcelOpenFlags.RowAndColumnHeaders) '//포함목록을 저장
End If
End Sub
Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click
If MsgBox("실행하시겠습니까?" & vbCrLf & vbCrLf & "완료될떄까지 취소할 수 없습니다", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then
MsgBox("실행이 취소되었습니다", MsgBoxStyle.Critical, "확인")
Return
End If
'//지정된 열의형식을 문자로 변경한다.
Dim text_CellType As New FarPoint.Win.Spread.CellType.TextCellType
If ImpCtl1.열번호 <> "" Then srcview.ActiveSheet.Columns(CInt(ImpCtl1.열번호)).CellType = text_CellType
If ImpCtl2.열번호 <> "" Then srcview.ActiveSheet.Columns(CInt(ImpCtl2.열번호)).CellType = text_CellType
If ImpCtl3.열번호 <> "" Then srcview.ActiveSheet.Columns(CInt(ImpCtl3.열번호)).CellType = text_CellType
If ImpCtl4.열번호 <> "" Then srcview.ActiveSheet.Columns(CInt(ImpCtl4.열번호)).CellType = text_CellType
'If IsNumeric(ImpCtl1.열번호) Then srcview.ActiveSheet.Columns(ImpCtl1.열번호).CellType = text_CellType
'If IsNumeric(ImpCtl2.열번호) Then srcview.ActiveSheet.Columns(ImpCtl2.열번호).CellType = text_CellType
'If IsNumeric(ImpCtl3.열번호) Then srcview.ActiveSheet.Columns(ImpCtl3.열번호).CellType = text_CellType
'If IsNumeric(ImpCtl4.열번호) Then srcview.ActiveSheet.Columns(ImpCtl4.열번호).CellType = text_CellType
findCnt = 0
Me.ListOk = New ArrayList
Me.ListOld = New ArrayList
Me.ListOK4 = New ArrayList
Me.ListOld4 = New ArrayList
' Me.viewnew.ActiveSheet.RowCount = 0
Me.fxList.Rows.Count = 1
Me.RunSrc()
End Sub
Private Sub bt_srcsave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_srcsave.Click
Dim a As New SaveFileDialog
a.Filter = "엑셀 워크시트파일(*.XLS)|*.XLS"
a.FilterIndex = 0
a.Title = "[모든데이터내보내기] 저장할 엑셀 파일을 지정하세요"
a.FileName = "바뀐파일.xls"
If a.ShowDialog() <> DialogResult.Cancel Then
Dim msg As New System.Text.StringBuilder
Me.srcview.SaveExcel(a.FileName, FarPoint.Excel.ExcelSaveFlags.SaveAsViewed)
msg.AppendLine("[시트보호]가 된파일은 열너비가 조정되지않습니다.")
msg.AppendLine()
msg.AppendLine()
msg.AppendLine("[시트보호] 상태에서는 시트를 편집할 수 없습니다")
msg.AppendLine()
msg.AppendLine("[시트보호]를 해제하려면 해당파일을 엑셀에서 불러온후")
msg.AppendLine("[도구]-[보호]-[시트보호해제]를 클릭하세요")
MsgBox(msg.ToString, MsgBoxStyle.Information, "시트보호")
End If
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
Dim a As New SaveFileDialog
a.Filter = "엑셀 워크시트파일(*.XLS)|*.XLS"
a.FilterIndex = 0
a.Title = "[모든데이터내보내기] 저장할 엑셀 파일을 지정하세요"
a.FileName = "생성된전산화번호.xls"
If a.ShowDialog() <> DialogResult.Cancel Then
Dim msg As New System.Text.StringBuilder
fxList.SaveExcel(a.FileName, C1.Win.C1FlexGrid.FileFlags.IncludeFixedCells)
MsgBox("파일이 저장되었습니다", MsgBoxStyle.Information, "확인")
'Me.viewnew.SaveExcel(a.FileName, FarPoint.Excel.ExcelSaveFlags.SaveBothCustomRowAndColumnHeaders)
'msg.AppendLine("[시트보호]가 된파일은 열너비가 조정되지않습니다.")
'msg.AppendLine()
'msg.AppendLine()
'msg.AppendLine("[시트보호] 상태에서는 시트를 편집할 수 없습니다")
'msg.AppendLine()
'msg.AppendLine("[시트보호]를 해제하려면 해당파일을 엑셀에서 불러온후")
'msg.AppendLine("[도구]-[보호]-[시트보호해제]를 클릭하세요")
'MsgBox(msg.ToString, MsgBoxStyle.Information, "시트보호")
End If
End Sub
Private Sub bt_macrosave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_macrosave.Click
If Me.cmb_macro.SelectedIndex <= 0 Then
MsgBox("저장될 매크로가 선택되지않았습니다", MsgBoxStyle.Information, "확인")
Return
End If
Me.Save_Setting(Me.cmb_macro.SelectedIndex)
MsgBox("매크로가 저장되었습니다", MsgBoxStyle.Information, "확인")
Me.Load_Macro()
End Sub
Private Sub bt_macrosavenew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_macrosavenew.Click
Me.Save_Setting(-999)
MsgBox("매크로가 저장되었습니다", MsgBoxStyle.Information, "확인")
Me.Load_Macro()
End Sub
Private Sub cmb_macro_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_macro.SelectedIndexChanged
Load_Setting(Me.cmb_macro.SelectedIndex)
End Sub
Private Sub bt_macrodel_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_macrodel.Click
If Me.cmb_macro.SelectedIndex <= 0 Then
MsgBox("삭제될 매크로가 선택되지않았습니다", MsgBoxStyle.Information, "확인")
Return
End If
File.Delete(Me.Macro(Me.cmb_macro.SelectedIndex - 1).FileName)
MsgBox("매크로가 삭제되었습니다", MsgBoxStyle.Information, "확인")
Me.Load_Macro()
End Sub
End Class