2485 lines
126 KiB
VB.net
2485 lines
126 KiB
VB.net
Imports System.Drawing
|
|
Imports System.Drawing.Printing
|
|
Imports System.Math
|
|
Imports CommonClassv2.ARINCLASS
|
|
Imports System.IO
|
|
|
|
Public Class Prn_Child_karo
|
|
Dim AllLabels() As Str_Alllabels '//전체갯수는 추가할대 셋팅한다.
|
|
Dim S관리번호1(10) As MyControlOLEDBv2.MyLabel
|
|
'Dim S관리번호2(4) As MyControlOLEDBv2.MyLabel
|
|
Dim S전화번호1(0) As MyControlOLEDBv2.MyLabel
|
|
Dim S전화번호2(0) As MyControlOLEDBv2.MyLabel
|
|
Dim S지역명(0) As MyControlOLEDBv2.MyLabel
|
|
Dim S일련번호(0) As MyControlOLEDBv2.MyLabel
|
|
'Dim S구분자(0) As MyControlOLEDBv2.MyLabel
|
|
|
|
Dim 지역명 As String = vbNullString
|
|
Dim 관리번호1 As String = vbNullString
|
|
'Dim 관리번호2 As String = vbNullString
|
|
Dim 전화번호1 As String = vbNullString
|
|
Dim 전화번호2 As String = vbNullString
|
|
'Dim 구분자 As String
|
|
|
|
Dim 패턴명_지역명 As String = "AREAPATTERN"
|
|
Dim 패턴명_관리번호1 As String = "MAN1PATTERN"
|
|
'Dim 패턴명_관리번호2 As String = "MAN2PATTERN"
|
|
Dim 패턴명_전화번호1 As String = "TEL1ATTERN"
|
|
Dim 패턴명_전화번호2 As String = "TEL2PATTERN"
|
|
|
|
Dim NoView As Boolean = False '//LOAD_STYLE 을 잠시 실행하지 않기위햇(중복실행방지)서 둔다.(..이벤트가.. -_-;;너무 중복으로 발생함)
|
|
|
|
Dim SrcIdx As Integer = -1 '//원본 리뷰에서 클릭된 인덱스
|
|
Dim Srcnum As Integer = -1 '//원본 리뷴에서 클릭된 번호값
|
|
Dim Srcrow As DataRowView
|
|
Dim FirstIdx As Integer = -1 '//새로 생성된 리뷰에서 적용될 인덱스
|
|
|
|
'Public File As String = My.Application.Info.DirectoryPath & "\style.ini" '//스타일 파일
|
|
Dim StyleDir As New System.IO.DirectoryInfo(My.Application.Info.DirectoryPath & "\stylekr")
|
|
Public FileC As String = My.Application.Info.DirectoryPath & "\styleCkr.ini" '//사용자 스타일 파일
|
|
|
|
Private WithEvents pDoc As New PrintDocument()
|
|
Public SelCon As New ArrayList '//선택된 레이블들이 저장된 배열이다.
|
|
Public onlyOne As MyControlOLEDBv2.MyLabel '//포커스를 가진 레이블이다.
|
|
|
|
Dim srcTable As ireaDataSet.Detail_karoDataTable '//데이터가 저장될 테이블
|
|
Dim Dv As DataView '//데이터뷰(실제로 이 뷰의 데이터를 가지고 출력을 행한다.)
|
|
|
|
Dim printindex As Integer = 0 '//프린트되는 페이지 번호 이값이 -1 이면 현재페이지이므로 갱신하지 않고 출력한다.
|
|
Dim PrintArray() As Integer '//프린트할 페이지의 배열번호
|
|
|
|
Dim SettingFile As String = My.Application.Info.DirectoryPath & "\epole.ini" '//환경설정 파일
|
|
Dim LogFile As String = "\가로등순차로그.txt"
|
|
|
|
Dim SetForm As Frm_Prnset
|
|
|
|
Public Function Get_Control(ByVal index As Integer) As MyControlOLEDBv2.MyLabel
|
|
Return Me.AllLabels(index).ctl
|
|
End Function
|
|
|
|
Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
Me.SetStyle(ControlStyles.AllPaintingInWmPaint Or ControlStyles.UserPaint Or ControlStyles.DoubleBuffer, True) '//더블버퍼링
|
|
Arin.WLog2(Auto_Log, "Form_Load()", LogFile)
|
|
|
|
Me.Left = 10
|
|
'//세부설정폼을 할당
|
|
SetForm = New Frm_Prnset(Me)
|
|
SetForm.PType = Frm_Prnset.E_Ftyle.가로등
|
|
SetForm.Show()
|
|
SetForm.Top = Me.Top
|
|
|
|
Load_Setting()
|
|
SetControls() '//컨트롤을 초기화하고 셋팅한다.
|
|
|
|
If srcTable Is Nothing Then
|
|
'MsgBox("소스가없어서 기본셋팅으로 전환함")
|
|
Arin.WLog2(Auto_Log, "개발자 기본셋팅으로 전환()", LogFile)
|
|
Common.Auto_Log = True
|
|
Me.NoView = True
|
|
'Me.detTableAdapter1.Connection.ConnectionString = ConString
|
|
'Me.detTableAdapter1.Fill(Me.IreaDataSet1.jjungtable, 1)
|
|
'Me.srcTable = Me.IreaDataSet1.jjungtable
|
|
Admin = True
|
|
End If
|
|
|
|
Arin.WLog2(Auto_Log, "개발자모드=" & Admin.ToString, LogFile)
|
|
|
|
'**********************************************************
|
|
If Admin Then
|
|
For Each A As ToolStripDropDownItem In Me.mainmenu.DropDownItems '//여기서 체크박스인것들만
|
|
If A.GetType.Name.ToUpper = "TOOLSTRIPMENUITEM" Then
|
|
If CType(A, ToolStripMenuItem).CheckOnClick Then
|
|
A.Visible = True
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
Me.SETTOOLTIP()
|
|
|
|
GetStyleList() '//style.ini 에서 스타일목록명만 가져온다.
|
|
If Srcrow Is Nothing Then '//가져온 행값이인덱스가 없으므로 1번째 스타일을 지정한다.
|
|
Arin.WLog2(Auto_Log, "가져온 행값이 없습니다. firstidx=0 / 일반용으로 셋팅합니다()", LogFile)
|
|
FirstIdx = 0 '//또한 맨 처음 데이터를 표시하게된다.
|
|
SetForm.cmb_style.Text = "가로등" '//여기서 데이터가 걸러지게된다.
|
|
Else
|
|
Srcnum = Srcrow("번호") 'srcTable.Rows(SrcIdx).Item("번호")
|
|
SetForm.cmb_style.Text = "가로등" '//여기서 데이터가 걸러지게된다.
|
|
End If
|
|
'**********************************************************
|
|
End Sub
|
|
|
|
'***********************************
|
|
Private Sub SetControls()
|
|
Arin.WLog2(Auto_Log, "SetControls()", LogFile)
|
|
Dim CtlCnt As Short = 0
|
|
|
|
For i As Integer = 0 To S지역명.GetUpperBound(0) '//모든문자를 할당한다.
|
|
S지역명(i) = New MyControlOLEDBv2.MyLabel
|
|
S지역명(i).설명 = "지역명" & i + 1
|
|
S지역명(i).Name = "A" & i + 1
|
|
ReDim Preserve AllLabels(CtlCnt)
|
|
Me.AllLabels(CtlCnt).ctl = S지역명(i)
|
|
|
|
SetForm.cmb_controls.Items.Add(S지역명(i).설명)
|
|
CtlCnt += 1
|
|
Next
|
|
|
|
For i As Integer = 0 To S관리번호1.GetUpperBound(0) '//모든문자를 할당한다.
|
|
S관리번호1(i) = New MyControlOLEDBv2.MyLabel
|
|
S관리번호1(i).설명 = "관리번호I" & i + 1
|
|
S관리번호1(i).Name = "M" & i + 1
|
|
ReDim Preserve AllLabels(CtlCnt)
|
|
Me.AllLabels(CtlCnt).ctl = S관리번호1(i)
|
|
SetForm.cmb_controls.Items.Add(S관리번호1(i).설명)
|
|
CtlCnt += 1
|
|
Next
|
|
|
|
|
|
'For i As Integer = 0 To S관리번호2.GetUpperBound(0) '//모든문자를 할당한다.
|
|
' S관리번호2(i) = New MyControlOLEDBv2.MyLabel
|
|
' S관리번호2(i).설명 = "관리번호II" & i + 1
|
|
' S관리번호2(i).Name = "I" & i + 1
|
|
' ReDim Preserve AllLabels(CtlCnt)
|
|
' Me.AllLabels(CtlCnt).ctl = S관리번호2(i)
|
|
' setform.cmb_controls.Items.Add(S관리번호2(i).설명)
|
|
' CtlCnt += 1
|
|
'Next
|
|
|
|
For i As Integer = 0 To S전화번호1.GetUpperBound(0) '//모든문자를 할당한다.
|
|
S전화번호1(i) = New MyControlOLEDBv2.MyLabel
|
|
S전화번호1(i).설명 = "전화번호(리)" & i + 1
|
|
S전화번호1(i).Name = "T" & i + 1
|
|
ReDim Preserve AllLabels(CtlCnt)
|
|
Me.AllLabels(CtlCnt).ctl = S전화번호1(i)
|
|
SetForm.cmb_controls.Items.Add(S전화번호1(i).설명)
|
|
CtlCnt += 1
|
|
Next
|
|
|
|
'For i As Integer = 0 To S구분자.GetUpperBound(0) '//모든문자를 할당한다.
|
|
' S구분자(i) = New MyControlOLEDBv2.MyLabel
|
|
' S구분자(i).설명 = "구분자" & i + 1
|
|
' S구분자(i).Name = "D" & i + 1
|
|
' ReDim Preserve AllLabels(CtlCnt)
|
|
' Me.AllLabels(CtlCnt).ctl = S구분자(i)
|
|
' setform.cmb_controls.Items.Add(S구분자(i).설명)
|
|
' CtlCnt += 1
|
|
'Next
|
|
|
|
For i As Integer = 0 To S전화번호2.GetUpperBound(0) '//모든문자를 할당한다.
|
|
S전화번호2(i) = New MyControlOLEDBv2.MyLabel
|
|
S전화번호2(i).설명 = "전화번호(읍)" & i + 1
|
|
S전화번호2(i).Name = "P" & i + 1
|
|
ReDim Preserve AllLabels(CtlCnt)
|
|
Me.AllLabels(CtlCnt).ctl = S전화번호2(i)
|
|
SetForm.cmb_controls.Items.Add(S전화번호2(i).설명)
|
|
CtlCnt += 1
|
|
Next
|
|
|
|
For i As Integer = 0 To S일련번호.GetUpperBound(0) '//모든문자를 할당한다.
|
|
S일련번호(i) = New MyControlOLEDBv2.MyLabel
|
|
S일련번호(i).설명 = "일련번호" & i + 1
|
|
S일련번호(i).Name = "N" & i + 1
|
|
S일련번호(i).Visible = False
|
|
ReDim Preserve AllLabels(CtlCnt)
|
|
Me.AllLabels(CtlCnt).ctl = S일련번호(i)
|
|
SetForm.cmb_controls.Items.Add(S일련번호(i).설명)
|
|
CtlCnt += 1
|
|
Next
|
|
|
|
End Sub
|
|
|
|
Public Sub GeTviewData(ByVal index As Integer, ByVal previewWindow As Boolean, Optional ByRef 번호패턴검사 As Integer = -1)
|
|
' Dim STARTTIME, ENDTIME As Date
|
|
Arin.WLog2(Auto_Log, "GetviewData 진입()", LogFile)
|
|
If Dv.Count <= 0 OrElse index < 0 OrElse index > Dv.Count Then
|
|
Arin.WLog2(Auto_Log, "GetViewData : 인덱스가 없거나 문제가 잇어서 리턴합니다.()", LogFile)
|
|
' MsgBox("GETVIEWDATA : 데이터가 없거나 잘못된 인덱스 입니다", MsgBoxStyle.Information, "확인") ' & index & "/" & Me.CustFP1.ActiveSheet.RowCount & ")", MsgBoxStyle.Critical, "확인")
|
|
Return '//잘못된 인덱스는 리턴
|
|
End If
|
|
|
|
관리번호1 = GetSpread(index, "관리번호1") & "-" & GetSpread(index, "관리번호2")
|
|
'관리번호2 = GetSpread(index, "관리번호2")
|
|
'구분자 = "-"
|
|
지역명 = GetSpread(index, "지역명")
|
|
전화번호1 = GetSpread(index, "전화번호1")
|
|
전화번호2 = GetSpread(index, "전화번호2")
|
|
|
|
Arin.WLog2(Auto_Log, "데이터뷰의 데이터를 변수로 가져오기 완료()", LogFile)
|
|
|
|
Me.Text = "출력작업(" & 지역명 & " : " & 관리번호1 & ")"
|
|
|
|
Arin.WLog2(Auto_Log, "PASE구문을 실행합니다.()", LogFile)
|
|
'============ 여기는 따로 해석이 없는곳이다 ==========================================================
|
|
Me.PARSE_지역명(지역명)
|
|
Me.PARSE_전화번호1(전화번호1)
|
|
Me.PARSE_전화번호2(전화번호2)
|
|
'====================================================================================================
|
|
If Me.cb_seq.Checked Then
|
|
Me.S일련번호(0).MyText = GetSpread(index, "번호") 'index + 1
|
|
Me.S일련번호(0).Visible = True
|
|
Else
|
|
Me.S일련번호(0).Visible = False
|
|
End If
|
|
'If Me.cb_seperate.Checked Then
|
|
' Me.S구분자(0).MyText = 구분자 'index + 1
|
|
' Me.S구분자(0).Visible = True
|
|
'Else
|
|
' Me.S구분자(0).Visible = False
|
|
'End If
|
|
|
|
|
|
Arin.WLog2(Auto_Log, "패턴이있는 PASE 구문을 실행합니다.()", LogFile)
|
|
'Me.PARSE_관리번호1(관리번호1)
|
|
'Me.PARSE_관리번호2(관리번호2)
|
|
'If Me.PARSE_고객번호(고객번호) Then Me.PARSE_고객번호패턴(고객번호)
|
|
If Me.PARSE_관리번호1(관리번호1) Then Me.PARSE_관리번호1패턴(관리번호1)
|
|
'If Me.PARSE_관리번호2(관리번호2) Then Me.PARSE_관리번호2패턴(관리번호2)
|
|
'If Me.PARSE_관리번호3(관리번호3) Then Me.PARSE_관리번호3패턴(관리번호3)
|
|
'If Me.PARSE_지점명(지점명) Then Me.PARSE_지점명패턴(지점명)
|
|
|
|
'======================== 기타 =================================================
|
|
'휴 끝났다.......................................................
|
|
Arin.WLog2(Auto_Log, "Pewview 윈도우를 실행합니다.()", LogFile)
|
|
Me.preview_window()
|
|
End Sub
|
|
|
|
Public Sub CLEAR_ITEM(ByVal DIV As String)
|
|
Arin.WLog2(Auto_Log, "Clear_item div=" & DIV, LogFile)
|
|
|
|
Select Case DIV.ToUpper
|
|
Case "A"
|
|
For i As Short = 0 To S지역명.GetUpperBound(0)
|
|
S지역명(i).MyText = ""
|
|
S지역명(i).Visible = False
|
|
Next
|
|
'Case "D"
|
|
' For i As Short = 0 To S구분자.GetUpperBound(0)
|
|
' S구분자(i).MyText = ""
|
|
' S구분자(i).Visible = False
|
|
' Next
|
|
Case "M"
|
|
For i As Short = 0 To S관리번호1.GetUpperBound(0)
|
|
S관리번호1(i).MyText = ""
|
|
S관리번호1(i).Visible = False
|
|
Next
|
|
'Case "I"
|
|
' For i As Short = 0 To S관리번호2.GetUpperBound(0)
|
|
' S관리번호2(i).MyText = ""
|
|
' S관리번호2(i).Visible = False
|
|
' Next
|
|
Case "T"
|
|
For i As Short = 0 To S전화번호1.GetUpperBound(0)
|
|
S전화번호1(i).MyText = ""
|
|
S전화번호1(i).Visible = False
|
|
Next
|
|
Case "P"
|
|
For i As Short = 0 To S전화번호2.GetUpperBound(0)
|
|
S전화번호2(i).MyText = ""
|
|
S전화번호2(i).Visible = False
|
|
Next
|
|
|
|
Case Else
|
|
MsgBox("Clear_Item 에 알수없는 문자 ( " & DIV & ") 입니다")
|
|
End Select
|
|
|
|
End Sub
|
|
|
|
Public Sub SAVE_PATTERN(ByVal MIDNAME As String, ByVal DIV As Char, ByVal LEN As Short, Optional ByVal LOGFILENAME As String = "\패턴.TXT") '패턴을 저장합니다. 패턴역시 위치/크기/장평등이 저장됩니다.
|
|
'이건 길이패턴 저장하는 함수다.
|
|
Dim Arinini As New MyINI(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File)
|
|
Dim TOBJ As MyControlOLEDBv2.MyLabel
|
|
Dim Pname As String = MIDNAME & "I" & LEN
|
|
If MsgBox("길이패턴을 저장하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then
|
|
NOTICE("길이패턴 저장이 취소되었습니다", Me.lb_msg)
|
|
Return
|
|
End If
|
|
Arin.WLog2(Auto_Log, "save_pattern 패턴을 저장한다. midname= " & MIDNAME, "\가로등순차로그.txt")
|
|
Select Case DIV.ToString.ToUpper
|
|
Case "A" '//지역명
|
|
For i As Integer = 0 To Me.S지역명.GetUpperBound(0)
|
|
TOBJ = Me.S지역명(i)
|
|
Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, "DESC", "저장된 길이패턴" & MIDNAME)
|
|
|
|
Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
|
|
Next
|
|
Case "M" '//관리번호1
|
|
For i As Integer = 0 To Me.S관리번호1.GetUpperBound(0)
|
|
TOBJ = Me.S관리번호1(i)
|
|
Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, "DESC", "저장된 길이패턴" & MIDNAME)
|
|
|
|
Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
Next
|
|
Arinini.Write(Pname, "LineType", Me.tb_ntype.Text)
|
|
Arinini.Write(Pname, "nseparate", SetForm.cmb_sep.SelectedIndex)
|
|
'Case "I" '//관리번호2
|
|
' For i As Integer = 0 To Me.S관리번호2.GetUpperBound(0)
|
|
' TOBJ = Me.S관리번호2(i)
|
|
' Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
' Arinini.Write(Pname, "DESC", "저장된 길이패턴" & MIDNAME)
|
|
|
|
' Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
' Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
' Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
' Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
' Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
' Next
|
|
' Arinini.Write(Pname, "LineType", Me.tb_ntype.Text)
|
|
' Arinini.Write(Pname, "nseparate", Me.cmb_sep.SelectedIndex)
|
|
Case "T" '//관리번호2
|
|
For i As Integer = 0 To Me.S전화번호1.GetUpperBound(0)
|
|
TOBJ = Me.S전화번호1(i)
|
|
Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, "DESC", "저장된 길이패턴" & MIDNAME)
|
|
Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
Next
|
|
Case "P" '//관리번호3
|
|
For i As Integer = 0 To Me.S전화번호2.GetUpperBound(0)
|
|
TOBJ = Me.S전화번호2(i)
|
|
Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, "DESC", "저장된 길이패턴" & MIDNAME)
|
|
Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
Next
|
|
Case Else
|
|
MsgBox("Save_Pattern 에 정의되지않은 문자(" & DIV & ") 가 발생하였습니다", MsgBoxStyle.Critical, "확인")
|
|
End Select
|
|
|
|
Arin.WLog2(Auto_Log, " save_pattern 데이터테이블갱신을 호출함낟.", "\가로등순차로그.txt")
|
|
Me.데이터테이블갱신()
|
|
End Sub
|
|
Public Sub SAVE_PATTERNII(ByVal SRCSTR As String, ByVal MIDNAME As String, ByVal DIV As Char, Optional ByVal LOGFILENAME As String = "\패턴.TXT") '패턴을 저장합니다. 패턴역시 위치/크기/장평등이 저장됩니다.
|
|
'//이곳은 문자패턴을 저장한다.
|
|
Dim Arinini As New MyINI(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File)
|
|
Dim BUF() As Char = SRCSTR.ToCharArray
|
|
Dim mb As String = PATTERN_ENC(SRCSTR)
|
|
Dim TOBJ As MyControlOLEDBv2.MyLabel
|
|
Dim Pname As String = MIDNAME & "II" & mb.ToString
|
|
|
|
If MsgBox("문자패턴을 저장하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then
|
|
NOTICE("문자패턴 저장이 취소되었습니다", Me.lb_msg)
|
|
Return
|
|
End If
|
|
Arin.WLog2(Auto_Log, "save_pattern2 를 실행한다.", LogFile)
|
|
|
|
Select Case DIV.ToString.ToUpper
|
|
Case "A" '//선로명
|
|
For i As Integer = 0 To Me.S지역명.GetUpperBound(0)
|
|
TOBJ = Me.S지역명(i)
|
|
Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, "DESC", "저장된 문자패턴 " & MIDNAME)
|
|
Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
Next
|
|
Case "M" '//전주번호
|
|
For i As Integer = 0 To Me.S관리번호1.GetUpperBound(0)
|
|
TOBJ = Me.S관리번호1(i)
|
|
Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, "DESC", "저장된 문자패턴 " & MIDNAME)
|
|
Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
Next
|
|
Arinini.Write(Pname, "LineType", Me.tb_ntype.Text)
|
|
Arinini.Write(Pname, "nseparate", SetForm.cmb_sep.SelectedIndex)
|
|
'Case "I" '//관리번호2
|
|
' For i As Integer = 0 To Me.S관리번호2.GetUpperBound(0)
|
|
' TOBJ = Me.S관리번호2(i)
|
|
' Arin.WLog2(Auto_Log, MIDNAME & "패턴저장시 아이템=" & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
' Arinini.Write(Pname, "DESC", "저장된 문자패턴 " & MIDNAME)
|
|
' Arin.WLog2(Auto_Log, "최종선택완료=" & Pname & " " & TOBJ.Name & "/" & TOBJ.Name.Substring(0, 1).ToUpper, LOGFILENAME)
|
|
' Arinini.Write(Pname, TOBJ.Name & "pos", TOBJ.Left & "," & TOBJ.Top & "," & TOBJ.Width & "," & TOBJ.Height)
|
|
' Arinini.Write(Pname, TOBJ.Name & "font", TOBJ.MyFont.Name & "," & TOBJ.MyFont.Size & "," & TOBJ.MyFont.Underline & "," & TOBJ.MyFont.Bold & "," & TOBJ.MyFont.Italic & "," & TOBJ.장평 & "," & TOBJ.장높이)
|
|
' Arinini.Write(Pname, TOBJ.Name & "visible", TOBJ.Visible)
|
|
' Arinini.Write(Pname, TOBJ.Name & "space", TOBJ.공백)
|
|
' Next
|
|
' Arinini.Write(Pname, "LineType", Me.tb_ntype.Text)
|
|
' Arinini.Write(Pname, "nseparate", Me.cmb_sep.SelectedIndex)
|
|
Case Else
|
|
MsgBox("Save_PatternII 에 정의되지않은 문자(" & DIV & ") 가 발생하였습니다", MsgBoxStyle.Critical, "확인")
|
|
End Select
|
|
|
|
Arin.WLog2(Auto_Log, "save_patter2 ㅔ서 데이터테이블 갱신을 ㅎ호출한다ㅣㅣ ", "\가로등순차로그.txt")
|
|
Me.데이터테이블갱신()
|
|
End Sub
|
|
'---------------------------------
|
|
Public Function PARSE_지역명(ByVal srcsTR As String) As Boolean
|
|
Me.CLEAR_ITEM("A")
|
|
Dim Log As String = "\Parse_지역명.txt"
|
|
If srcsTR = "" OrElse Not Me.cb_area.Checked Then
|
|
Arin.WLog2(Auto_Log, "Zero Length - Return", Log)
|
|
Return False
|
|
End If
|
|
Dim Wlen As Short = srcsTR.Length
|
|
Dim SepPos As Short = srcsTR.IndexOf(";")
|
|
Dim SRC() As Char = srcsTR.ToCharArray
|
|
|
|
Me.S지역명(0).Visible = True
|
|
Me.S지역명(0).MyText = srcsTR
|
|
|
|
Arin.WLog2(Auto_Log, "Length=" & Wlen & " Sep=" & SepPos, Log)
|
|
Return True
|
|
End Function
|
|
Public Function PARSE_관리번호1(ByVal srcsTR As String) As Boolean
|
|
'Me.CLEAR_ITEM("M")
|
|
If srcsTR = "" OrElse Not Me.cb_mnum.Checked Then
|
|
Arin.WLog2(Auto_Log, "Zero Length or Not Check", LogFile)
|
|
Return False
|
|
End If
|
|
Dim Wlen As Short = srcsTR.Length
|
|
Dim SepPos As Short = srcsTR.IndexOf(";")
|
|
Dim SRC() As Char = srcsTR.ToCharArray
|
|
|
|
'For i As Integer = 0 To Wlen - 1 '//모든문자를 할당한다.
|
|
' S관리번호1(i).MyText = IIf(SRC(i) <> ";", SRC(i), "---")
|
|
' S관리번호1(i).Visible = True
|
|
'Next
|
|
|
|
Arin.WLog2(Auto_Log, "Length=" & Wlen & " Sep=" & SepPos, LogFile)
|
|
Return True
|
|
End Function
|
|
Public Sub PARSE_관리번호1패턴(ByVal srcstr As String)
|
|
Dim Wlen As Short = srcstr.Length
|
|
Dim SepPos As Short = srcstr.IndexOf(";")
|
|
Dim SrC() As Char = srcstr.ToCharArray
|
|
Dim retval As Integer = 0 ''0은 정상 1은 길이패턴없음 2는 3은 길이+문자없음
|
|
|
|
|
|
Dim pname As String
|
|
Dim Arinini As New MyINI(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File)
|
|
Dim CTLPOS() As String '//위치정보
|
|
Dim CTLFONT() As String
|
|
Dim CTLVISIBLE As Boolean
|
|
Dim PATTERN As String = PATTERN_ENC(srcstr)
|
|
Dim TOBJ As MyControlOLEDBv2.MyLabel
|
|
|
|
Dim 분리인덱스 As Short = 0
|
|
Dim 번호형식 As String = "900"
|
|
Dim Dr() As DataRow
|
|
|
|
'//문자를먼저확인한다.
|
|
pname = Me.패턴명_관리번호1 & "II" & PATTERN
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & "M1POS'")
|
|
|
|
'MsgBox(pname & " " & "설명 = '" & pname & "M1POS'")
|
|
If Dr.GetUpperBound(0) = 0 Then '//데이터가 존재하므로 모두 적용을 한다.
|
|
Arin.WLog2(Auto_Log, "관리번호패턴감지(문자) : 길이=" & Wlen & " 문자열=" & srcstr & " 패턴=" & PATTERN, LogFile)
|
|
'//데이터는 최종적으로 번호형식에서 보낸다.
|
|
' MsgBox("pname 찾아서 있었다")
|
|
|
|
분리인덱스 = Arinini.Read(pname, "nseparate", 0)
|
|
번호형식 = Arinini.Read(pname, "LineType", "900")
|
|
|
|
For i As Integer = 0 To Me.S관리번호1.GetUpperBound(0)
|
|
TOBJ = Me.S관리번호1(i)
|
|
TOBJ.Tag = "" '//기존태그를 삭제한다.
|
|
Try
|
|
'//상태를 읽어서 바로 적용한다.
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "POS'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
CTLPOS = Dr(0)(1).ToString.Split(",")
|
|
TOBJ.Location = New Point(CTLPOS(0), CTLPOS(1))
|
|
TOBJ.Size = New Size(CTLPOS(2), CTLPOS(3))
|
|
End If
|
|
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "FONT'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
CTLFONT = Dr(0)(1).ToString.Split(",")
|
|
TOBJ.MyFont = New Font(CTLFONT(0), CTLFONT(1), IIf(CTLFONT(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
TOBJ.장평 = CTLFONT(5)
|
|
TOBJ.장높이 = CTLFONT(6)
|
|
End If
|
|
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "VISIBLE'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
CTLVISIBLE = Dr(0)(1).ToString
|
|
TOBJ.Visible = CType(CTLVISIBLE, Boolean)
|
|
End If
|
|
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "SPACE'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
TOBJ.공백 = Dr(0)(1).ToString
|
|
End If
|
|
TOBJ.Tag = "C"
|
|
Catch ex As Exception
|
|
Arin.WLog2(Auto_Log, "문자패턴오류=" & ex.Message.ToString, LogFile)
|
|
End Try
|
|
Next
|
|
Else
|
|
Arin.WLog2(Auto_Log, "문자패턴불일치 길이=" & Wlen & " 문자열=" & srcstr & " 패턴=" & PATTERN, LogFile)
|
|
retval += 2 '//패턴이 없으므로 바로 넘긴다.
|
|
End If
|
|
|
|
If retval = 2 Then '//문자패턴이 없을경우에만 길이패턴을 확인한다.
|
|
pname = Me.패턴명_관리번호1 & "I" & Wlen '//길이패턴 확인
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & "M1POS'")
|
|
If Dr.GetUpperBound(0) = 0 Then '//데이터가 존재하므로 모두 적용을 한다.
|
|
'MsgBox("pname 찾아서 있었다222222")
|
|
|
|
Arin.WLog2(Auto_Log, "관리번호패턴감지(길이) : 길이=" & Wlen & " 문자열=" & srcstr, LogFile)
|
|
'//데이터는 최종적으로 번호형식에서 보낸다.
|
|
분리인덱스 = Arinini.Read(pname, "nseparate", 0)
|
|
번호형식 = Arinini.Read(pname, "LineType", "900")
|
|
|
|
For i As Integer = 0 To Me.S관리번호1.GetUpperBound(0)
|
|
TOBJ = Me.S관리번호1(i)
|
|
TOBJ.Tag = "" '//기존태그를 삭제한다.
|
|
Try
|
|
'//상태를 읽어서 바로 적용한다.
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "POS'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
CTLPOS = Dr(0)(1).ToString.Split(",")
|
|
TOBJ.Location = New Point(CTLPOS(0), CTLPOS(1))
|
|
TOBJ.Size = New Size(CTLPOS(2), CTLPOS(3))
|
|
End If
|
|
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "FONT'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
CTLFONT = Dr(0)(1).ToString.Split(",")
|
|
TOBJ.MyFont = New Font(CTLFONT(0), CTLFONT(1), IIf(CTLFONT(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
TOBJ.장평 = CTLFONT(5)
|
|
TOBJ.장높이 = CTLFONT(6)
|
|
End If
|
|
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "VISIBLE'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
CTLVISIBLE = Dr(0)(1).ToString
|
|
TOBJ.Visible = CType(CTLVISIBLE, Boolean)
|
|
End If
|
|
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & TOBJ.Name & "SPACE'")
|
|
If Dr.GetUpperBound(0) = 0 Then
|
|
TOBJ.공백 = Dr(0)(1).ToString
|
|
End If
|
|
TOBJ.Tag &= "L"
|
|
Catch ex As Exception
|
|
Arin.WLog2(Auto_Log, "길이 패턴오류=" & ex.Message.ToString, LogFile)
|
|
End Try
|
|
Next
|
|
Else
|
|
Arin.WLog2(Auto_Log, "길이패턴불일치 기본스타일 복원 길이=" & Wlen & " 문자열=" & srcstr, LogFile)
|
|
retval += 1 '//없다
|
|
End If
|
|
End If
|
|
|
|
SetForm.cmb_sep.SelectedIndex = 분리인덱스
|
|
|
|
'If 번호형식 = "999" Then '//패턴이없었다는 말이다 번호형식을 어느정도 맞춰준다.
|
|
' 'MsgBox("번호형식이 없어서 셋팅합니다(" & 번호 & "/" & 번호.Length)
|
|
' If 번호.Length <= 12 Then
|
|
' If 번호.Length <= 4 Then
|
|
' 번호형식 = 번호.Length & "00"
|
|
' ElseIf 번호.Length <= 8 Then
|
|
' 번호형식 = "4" & CStr(번호.Length - 4) & "0"
|
|
' Else
|
|
' 번호형식 = "44" & CStr(번호.Length - 8)
|
|
' End If
|
|
' Else '//12자리이상이므로 어덯게 쪼개야할지 3으로나눠서 ..int 대입을 하자
|
|
' 번호형식 = CStr(Int(번호.Length / 3)) & CStr(Int(번호.Length / 3)) & CStr(번호.Length - Int(번호.Length / 3) * 2)
|
|
' End If
|
|
' 'MsgBox("최종번호=" & 번호형식)
|
|
'End If
|
|
|
|
Me.tb_ntype.Text = 번호형식
|
|
분리인덱스별출력("M", Me.관리번호1, 번호형식) '//번호형식을 갱신해준다.
|
|
|
|
End Sub
|
|
Private Sub 분리인덱스별출력(ByVal ClearChar As Char, ByVal SrcStr As String, Optional ByVal msg As String = "999")
|
|
Me.CLEAR_ITEM(ClearChar)
|
|
Dim A() As Char = SrcStr.ToCharArray
|
|
Dim P() As Char = msg.ToCharArray '--번호형식인데 여기선 안쓴다.
|
|
|
|
'//개별표시가 선택안되있으면 혼합으로 변경
|
|
If SetForm.cmb_sep.SelectedIndex = -1 Then SetForm.cmb_sep.SelectedIndex = 0
|
|
|
|
Dim NextCtl As MyControlOLEDBv2.MyLabel = Me.S관리번호1(0)
|
|
Dim CurPos As Short = 0 '//몇번째 컨트롤까지 썻다는 표시
|
|
Dim CPos As Short = 0 '//전체문자중 몇번째까지 했다는 표시
|
|
Select Case SetForm.cmb_sep.SelectedIndex
|
|
Case 0 '//혼합
|
|
'//형식수가 4를 넘지않으면 개별 넘을경우 통합출력으로한다.
|
|
'//연습데이터 342 : 345 R23L1 R9
|
|
' MsgBox("번호형식=" & msg & "/" & 번호 & "/p0=" & P(0))
|
|
|
|
Me.tb_ntype.Enabled = True '//분리엿을때 이것이 false 로 된다.
|
|
If CInt(P(0).ToString) <> 0 AndAlso CInt(P(0).ToString) < 5 Then '//첫줄에해당할 문자를 전부 개별로 넣는다.
|
|
' MsgBox("1줄=" & msg & "/" & 번호 & "/p0=" & P(0))
|
|
For i As Int16 = 0 To (CInt(P(0).ToString) - 1) '//
|
|
If i <= A.GetUpperBound(0) Then '//정상적인 범위의 데이터일경우
|
|
Me.S관리번호1(i).MyText = IIf(A(i) <> ";", A(i), "") '//0번째 (0,0)
|
|
'Me.S전주번호(i).Visible = True
|
|
'NextCtl = SetXdata(i, A)
|
|
CPos = i ' + 1
|
|
CurPos = i
|
|
End If
|
|
Next
|
|
ElseIf CInt(P(0).ToString) > 4 Then '//첫줄의 문자를 통합으로한다.
|
|
For i As Int16 = 0 To (CInt(P(0).ToString) - 1)
|
|
If i <= A.GetUpperBound(0) Then '//정상적인 범위의 데이터
|
|
Me.S관리번호1(CPos).MyText &= IIf(A(i) <> ";", A(i), "") '//0번째 (0,0)
|
|
'Me.S전주번호(i).Visible = True
|
|
CurPos = i
|
|
'CurPos += 1
|
|
'NextCtl.MyText &= A(i)
|
|
End If
|
|
Next
|
|
'NextCtl = GetnextCtl(NextCtl)
|
|
'CurPos += 1 '//여기서 1이된다.
|
|
End If
|
|
|
|
|
|
'curpos 는 몇번째 번호까지 했다는것이다(그 다음번호를 가르킨다)
|
|
'cpos 는 몇번째 컨트롤까지 썻다는 뜻이다.
|
|
' MsgBox("1번째출출력후 마지막위치값=" & CurPos)
|
|
|
|
'//2번째줄을 테스트한다.
|
|
|
|
If CPos = 0 AndAlso Me.S관리번호1(0).MyText = "" Then '//컨트롤번호가 0일경우다. 만약 값이없으면 1번째줄에서 아무것도없엇따는뜻이다.
|
|
CPos = -1
|
|
End If
|
|
|
|
If CInt(P(1).ToString) > 0 AndAlso CInt(P(1).ToString) < 5 Then
|
|
' MsgBox("2줄=" & msg & "/" & 번호 & "/p0=" & P(0))
|
|
For i As Int16 = CurPos + 1 To CInt(P(0).ToString) + CInt(P(1).ToString) - 1
|
|
If i <= A.GetUpperBound(0) Then
|
|
Me.S관리번호1(CPos + 1).MyText = IIf(A(i) <> ";", A(i), "") '//0번째 (0,0)
|
|
CPos += 1
|
|
'Me.S전주번호(i).Visible = True
|
|
'NextCtl = SetXdata(i, A)
|
|
|
|
CurPos = i
|
|
End If
|
|
Next
|
|
ElseIf CInt(P(1).ToString) > 0 Then '//통합출력
|
|
CPos += 1
|
|
For i As Int16 = CurPos + 1 To CInt(P(0).ToString) + CInt(P(1).ToString) - 1
|
|
If i <= A.GetUpperBound(0) Then
|
|
Me.S관리번호1(CPos).MyText &= IIf(A(i) <> ";", A(i), "") '//0번째 (0,0)
|
|
'Me.S전주번호(CPos).Visible = True
|
|
'NextCtl.MyText &= A(i)
|
|
CurPos = i
|
|
End If
|
|
Next
|
|
'NextCtl = GetnextCtl(NextCtl)
|
|
End If
|
|
|
|
|
|
' MsgBox("2번째출출력후 마지막위치값=" & CurPos)
|
|
|
|
If CInt(P(2).ToString) > 0 AndAlso CInt(P(2).ToString) < 5 Then
|
|
' MsgBox("3줄개별=" & msg & "/" & 번호 & "/p0=" & P(0))
|
|
For i As Int16 = CurPos + 1 To CInt(P(0).ToString) + CInt(P(1).ToString) + CInt(P(2).ToString) - 1
|
|
If i <= A.GetUpperBound(0) Then
|
|
' MsgBox(i & "/" & A(i))
|
|
Me.S관리번호1(CPos + 1).MyText = IIf(A(i) <> ";", A(i), "") '//0번째 (0,0)
|
|
CPos += 1
|
|
'Me.S전주번호(i).Visible = True
|
|
'NextCtl = SetXdata(i, A)
|
|
CurPos = i
|
|
End If
|
|
|
|
Next
|
|
ElseIf CInt(P(2).ToString) > 0 Then '//통합출력
|
|
'MsgBox("3줄통합=" & msg & "/" & 번호 & "/p0=" & P(0))
|
|
CPos += 1
|
|
For i As Int16 = CurPos + 1 To CInt(P(0).ToString) + CInt(P(1).ToString) + CInt(P(2).ToString) - 1
|
|
If i <= A.GetUpperBound(0) Then
|
|
Me.S관리번호1(CPos).MyText &= IIf(A(i) <> ";", A(i), "") '//0번째 (0,0)
|
|
'Me.S전주번호(CPos).Visible = True
|
|
'NextCtl.MyText &= A(i)
|
|
CurPos = i
|
|
End If
|
|
Next
|
|
'NextCtl = GetnextCtl(NextCtl)
|
|
End If
|
|
' MsgBox("3번째출출력후 마지막위치값=" & CurPos)
|
|
|
|
|
|
Case 1 '//분리
|
|
Me.tb_ntype.Enabled = False
|
|
For i As Int16 = 0 To A.GetUpperBound(0) '//개별 12개의 열에 데이터를 출력한다.
|
|
Me.S관리번호1(i).MyText = IIf(A(i) <> ";", A(i), "")
|
|
Next
|
|
Case 2 '//통합
|
|
Me.tb_ntype.Enabled = True
|
|
For i As Integer = 0 To A.GetUpperBound(0) '//모든 문자열을 집어넣는다 길이가 모자라면 중간에 없어진다.
|
|
If i <= CInt(P(0).ToString) - 1 Then
|
|
Me.S관리번호1(0).MyText &= IIf(A(i) <> ";", A(i), "")
|
|
ElseIf i <= (CInt(P(0).ToString) + CInt(P(1).ToString) - 1) Then
|
|
Me.S관리번호1(1).MyText &= IIf(A(i) <> ";", A(i), "")
|
|
Else
|
|
Me.S관리번호1(2).MyText &= IIf(A(i) <> ";", A(i), "")
|
|
End If
|
|
Next
|
|
End Select
|
|
|
|
For i As Integer = 0 To Me.S관리번호1.GetUpperBound(0)
|
|
Me.S관리번호1(i).Visible = IIf(Me.S관리번호1(i).MyText = "", False, True)
|
|
Next
|
|
End Sub
|
|
'Public Function PARSE_관리번호2(ByVal srcsTR As String) As Boolean
|
|
' Me.CLEAR_ITEM("I")
|
|
' If srcsTR = "" OrElse Not Me.cb_mnum.Checked Then
|
|
' Arin.WLog2(Auto_Log, "Zero Length - Return", LogFile)
|
|
' Return False
|
|
' End If
|
|
' Dim Wlen As Short = srcsTR.Length
|
|
' Dim SepPos As Short = srcsTR.IndexOf(";")
|
|
' Dim SRC() As Char = srcsTR.ToCharArray
|
|
' For i As Integer = 0 To Wlen - 1 '//모든문자를 할당한다.
|
|
' S관리번호2(i).MyText = IIf(SRC(i) <> ";", SRC(i), "---")
|
|
' S관리번호2(i).Visible = True
|
|
' Next
|
|
' Arin.WLog2(Auto_Log, "Length=" & Wlen & " Sep=" & SepPos, LogFile)
|
|
' Return True
|
|
'End Function
|
|
'Public Sub PARSE_관리번호2패턴(ByVal srcstr As String)
|
|
' Dim Wlen As Short = srcstr.Length
|
|
' Dim SepPos As Short = srcstr.IndexOf(";")
|
|
' Dim SrC() As Char = srcstr.ToCharArray
|
|
|
|
' Dim Pname As String = Me.패턴명_관리번호2 & "I" & Wlen
|
|
' Me.길이패턴연습(srcstr, Pname, LogFile, "I", Me.S관리번호2)
|
|
|
|
' Pname = Me.패턴명_관리번호2 & "II" & PATTERN_ENC(srcstr)
|
|
' Me.문자패턴연습(srcstr, Pname, LogFile, Me.S관리번호2)
|
|
|
|
|
|
'End Sub
|
|
Public Function PARSE_전화번호1(ByVal srcsTR As String) As Boolean
|
|
Me.CLEAR_ITEM("T")
|
|
Dim Log As String = "\Parse_전화번호1.txt"
|
|
If srcsTR = "" OrElse Not Me.cb_tel1.Checked Then
|
|
Arin.WLog2(Auto_Log, "Zero Length - Return", Log)
|
|
Return False
|
|
End If
|
|
Dim Wlen As Short = srcsTR.Length
|
|
Dim SepPos As Short = srcsTR.IndexOf(";")
|
|
Dim SRC() As Char = srcsTR.ToCharArray
|
|
|
|
Me.S전화번호1(0).Visible = True
|
|
Me.S전화번호1(0).MyText = srcsTR
|
|
|
|
Arin.WLog2(Auto_Log, "Length=" & Wlen & " Sep=" & SepPos, Log)
|
|
Return True
|
|
End Function
|
|
Public Function PARSE_전화번호2(ByVal srcsTR As String) As Boolean
|
|
Me.CLEAR_ITEM("P")
|
|
Dim Log As String = "\Parse_전화번호2.txt"
|
|
If srcsTR = "" OrElse Not Me.cb_tel2.Checked Then
|
|
Arin.WLog2(Auto_Log, "Zero Length - Return", Log)
|
|
Return False
|
|
End If
|
|
Dim Wlen As Short = srcsTR.Length
|
|
Dim SepPos As Short = srcsTR.IndexOf(";")
|
|
Dim SRC() As Char = srcsTR.ToCharArray
|
|
|
|
Me.S전화번호2(0).Visible = True
|
|
Me.S전화번호2(0).MyText = srcsTR
|
|
|
|
Arin.WLog2(Auto_Log, "Length=" & Wlen & " Sep=" & SepPos, Log)
|
|
Return True
|
|
End Function
|
|
Private Sub 패턴저장(ByVal 저장대상 As String)
|
|
Dim PC, PL As Boolean
|
|
Dim PLen As Short
|
|
Dim PChr As String
|
|
Dim PStr As String
|
|
Dim CP As String = ""
|
|
Select Case 저장대상
|
|
Case "지역명"
|
|
PC = IIf(Me.S지역명(0).Tag.ToString.IndexOf("C") > -1, True, False)
|
|
PL = IIf(Me.S지역명(0).Tag.ToString.IndexOf("L") > -1, True, False)
|
|
PLen = Me.지역명.Length
|
|
PChr = PATTERN_ENC(지역명)
|
|
PStr = Me.지역명
|
|
Case "관리번호1"
|
|
PC = IIf(Me.S관리번호1(0).Tag.ToString.IndexOf("C") > -1, True, False)
|
|
PL = IIf(Me.S관리번호1(0).Tag.ToString.IndexOf("L") > -1, True, False)
|
|
PLen = Me.관리번호1.Length
|
|
PChr = PATTERN_ENC(관리번호1)
|
|
PStr = Me.관리번호1
|
|
'Case "관리번호2"
|
|
' PC = IIf(Me.S관리번호2(0).Tag.ToString.IndexOf("C") > -1, True, False)
|
|
' PL = IIf(Me.S관리번호2(0).Tag.ToString.IndexOf("L") > -1, True, False)
|
|
' PLen = Me.관리번호2.Length
|
|
' PChr = PATTERN_ENC(관리번호2)
|
|
' PStr = Me.관리번호2
|
|
Case "전화번호1"
|
|
PC = IIf(Me.S전화번호1(0).Tag.ToString.IndexOf("C") > -1, True, False)
|
|
PL = IIf(Me.S전화번호1(0).Tag.ToString.IndexOf("L") > -1, True, False)
|
|
PLen = Me.전화번호1.Length
|
|
PChr = PATTERN_ENC(전화번호1)
|
|
PStr = Me.전화번호1
|
|
Case "전화번호2"
|
|
PC = IIf(Me.S전화번호2(0).Tag.ToString.IndexOf("C") > -1, True, False)
|
|
PL = IIf(Me.S전화번호2(0).Tag.ToString.IndexOf("L") > -1, True, False)
|
|
PStr = Me.전화번호2
|
|
PLen = PStr.Length
|
|
PChr = PATTERN_ENC(PStr)
|
|
Case Else
|
|
MsgBox("알수없는 저장대상(" & 저장대상 & ") 입니다" & vbCrLf & "개발자에 문의하세요", MsgBoxStyle.Critical, "확인")
|
|
Exit Sub
|
|
End Select
|
|
|
|
Dim Msg As System.Text.StringBuilder = Prn_Common.Get_SavePatternString(저장대상, PC, CP, PL, PStr, PLen, PChr)
|
|
Dim A As MsgBoxResult = MsgBox(Msg.ToString, MsgBoxStyle.Information + MsgBoxStyle.YesNoCancel, "예) 길이저장 , 아니오) 문자저장 , 취소) 취소")
|
|
If A = MsgBoxResult.Yes Then '//길이저장
|
|
Select Case 저장대상
|
|
Case "지역명"
|
|
SAVE_PATTERN(Me.패턴명_지역명, "A", Me.지역명.Length, "\지역명패턴.TXT") '//선로명의 패턴을 저장합니다.
|
|
Case "관리번호1"
|
|
SAVE_PATTERN(Me.패턴명_관리번호1, "M", Me.관리번호1.Length, "\관리번호패턴1.TXT") '//선로명의 패턴을 저장합니다.
|
|
'Case "관리번호2"
|
|
' SAVE_PATTERN(Me.패턴명_관리번호2, "I", Me.관리번호2.Length, "\관리번호패턴2.TXT") '//선로명의 패턴을 저장합니다.
|
|
Case "전화번호1"
|
|
SAVE_PATTERN(Me.패턴명_전화번호1, "T", Me.전화번호1.Length, "\전화번호1패턴.TXT") '//선로명의 패턴을 저장합니다.
|
|
Case "전화번호2"
|
|
SAVE_PATTERN(Me.패턴명_전화번호2, "P", Me.전화번호2.Length, "\전화번호2패턴.TXT") '//선로명의 패턴을 저장합니다.
|
|
Case Else
|
|
MsgBox("알수없는 저장대상(" & 저장대상 & ") 입니다" & vbCrLf & "개발자에 문의하세요", MsgBoxStyle.Critical, "확인")
|
|
Exit Sub
|
|
End Select
|
|
ElseIf A = MsgBoxResult.No Then '//문자저장
|
|
Select Case 저장대상
|
|
Case "지역명"
|
|
SAVE_PATTERNII(Me.지역명, Me.패턴명_지역명, "A", "\지역명패턴2.TXT") '//선로명의 패턴을 저장합니다.
|
|
Case "관리번호1"
|
|
SAVE_PATTERNII(Me.관리번호1, Me.패턴명_관리번호1, "M", "\관리번호패턴1.TXT") '//선로명의 패턴을 저장합니다.
|
|
'Case "관리번호2"
|
|
' SAVE_PATTERNII(Me.관리번호2, Me.패턴명_관리번호2, "I", "\관리번호패턴2.TXT") '//선로명의 패턴을 저장합니다.
|
|
Case "전화번호1"
|
|
SAVE_PATTERNII(Me.전화번호1, Me.패턴명_전화번호1, "T", "\전화번호1패턴2.TXT") '//선로명의 패턴을 저장합니다.
|
|
Case "전화번호2"
|
|
SAVE_PATTERNII(Me.전화번호2, Me.패턴명_전화번호2, "P", "\전화번호2패턴2.TXT") '//선로명의 패턴을 저장합니다.
|
|
|
|
Case Else
|
|
MsgBox("알수없는 저장대상(" & 저장대상 & ") 입니다" & vbCrLf & "개발자에 문의하세요", MsgBoxStyle.Critical, "확인")
|
|
Exit Sub
|
|
End Select
|
|
Else
|
|
NOTICE("패턴저장이 취소되었습니다", Color.Red, Me.lb_msg)
|
|
End If
|
|
End Sub
|
|
|
|
'Private Sub odflStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles odflStripMenuItem.Click
|
|
' SAVE_PATTERN(Me.패턴명_관리번호2, "I", Me.관리번호2.Length, "\관리번호2패턴.TXT") '//선로명의 패턴을 저장합니다.
|
|
'End Sub
|
|
|
|
Private Sub ToolStripMenuItem6_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem6.Click
|
|
SAVE_PATTERN(Me.패턴명_관리번호1, "M", Me.관리번호1.Length, "\관리번호1패턴.TXT") '//선로명의 패턴을 저장합니다.
|
|
End Sub
|
|
|
|
'Private Sub olStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_mansave2.Click
|
|
' SAVE_PATTERNII(Me.관리번호2, Me.패턴명_관리번호2, "I", "\관리번호2패턴2.TXT") '//선로명의 패턴을 저장합니다.
|
|
'End Sub
|
|
|
|
Private Sub ToolStripMenuItem5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_mansave1.Click
|
|
SAVE_PATTERNII(Me.관리번호1, Me.패턴명_관리번호1, "M", "\관리번호1패턴2.TXT") '//선로명의 패턴을 저장합니다.
|
|
End Sub
|
|
|
|
Private Sub ToolStripMenuItem7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripMenuItem7.Click
|
|
Me.패턴저장("관리번호2")
|
|
End Sub
|
|
|
|
Private Sub helpolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles helpolStripMenuItem.Click
|
|
Me.패턴저장("관리번호1")
|
|
End Sub
|
|
|
|
#Region "자주 바꿀일없는 부분"
|
|
Public Function ChkNumPattern(ByVal index As Integer) As Int16
|
|
Arin.WLog2(Auto_Log, "번호패턴을 체크합니다. int16을 반환합니다.()", LogFile)
|
|
If Dv.Count <= 0 Or index < 0 OrElse index > Dv.Count Then
|
|
'MsgBox("데이터가 없거나 잘못된 인덱스 입니다(" & index & "/" & Me.CustFP1.ActiveSheet.RowCount & ")", MsgBoxStyle.Critical, "확인")
|
|
Return -1 '//잘못된 인덱스는 리턴
|
|
End If
|
|
|
|
Dim 검사번호패턴검사 As Integer = 0
|
|
Dim 검사번호 As String
|
|
|
|
검사번호 = GetSpread(index, "관리번호1") & GetSpread(index, "관리번호2")
|
|
If 검사번호.Trim = "" Then Return -1 '//검사번호자체에 문제가잇을시 에 리턴
|
|
|
|
Dim Wlen As Short = 검사번호.Length : If Wlen <= 0 Then Return -1 '//없는 글귀가 왓을때 턴해버린다.
|
|
Dim SRC() As Char = 검사번호.ToCharArray
|
|
Dim Log As String = "\Parse_검사번호패턴.txt"
|
|
Dim SepPos As Short = 검사번호.IndexOf(";")
|
|
Dim retval As Integer = 0 ''0은 정상 1은 길이패턴없음 2는 3은 길이+문자없음
|
|
|
|
'//검사번호는 길이패턴을 하지않고 문자패턴만 한다.
|
|
Dim pname As String
|
|
Dim Arinini As New MyINI(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File)
|
|
Dim PATTERN As String = PATTERN_ENC(검사번호)
|
|
|
|
'//먼저문자가있는지 확인한다.
|
|
pname = "JJNUMPATTERNII" & PATTERN
|
|
|
|
Dim Dr() As DataRow
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & "DESC'")
|
|
Arin.WLog2(Auto_Log, "길이패턴의 존재여부 = " & Dr.GetUpperBound(0) & ":" & pname, "\지중순차로그.txt")
|
|
If Dr.GetUpperBound(0) <> -1 Then '//있다.
|
|
retval += 2
|
|
'Arin.WLog2(Auto_Log, "관리구5번 문자를 찾았습니다 (" & pname & "DESC" & ")", Log)
|
|
End If
|
|
|
|
'If Arinini.Read(pname, "DESC") = vbNullString Then retval += 2 '//패턴이 없으므로 바로 넘긴다.
|
|
|
|
pname = "JJNUMPATTERN" & Wlen
|
|
Dr = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & "DESC'")
|
|
Arin.WLog2(Auto_Log, "문자패턴의 존재여부 = " & Dr.GetUpperBound(0) & ";" & pname, "\지중순차로그.txt")
|
|
If Dr.GetUpperBound(0) <> -1 Then '//있다.
|
|
retval += 1
|
|
'Arin.WLog2(Auto_Log, "관리구5번 문자를 찾았습니다 (" & pname & "DESC" & ")", Log)
|
|
End If
|
|
Return retval '// 0이 리턴될것이다. 패턴이 모두 정상이란 뜻이다
|
|
End Function
|
|
Public Sub New()
|
|
InitializeComponent()
|
|
Arin.WLog2(Auto_Log, "New()", LogFile)
|
|
End Sub
|
|
Public Sub New(ByRef Src As ireaDataSet.Detail_karoDataTable, Optional ByVal IRow As DataRowView = Nothing)
|
|
InitializeComponent()
|
|
Arin.WLog2(Auto_Log, "New(srctable,srcRow)", LogFile)
|
|
srcTable = Src '//가져온 테이블을 임시테이블에 저장을 해두고 사용한다.
|
|
Srcrow = IRow '//이것은 클릭된 행번호이다. 이 행번호를 가지고 스타일을 판별한다
|
|
End Sub
|
|
Private Sub printform_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
|
|
'If Not BackWork Is Nothing Then BackWork = Nothing
|
|
'Me.CustFP1.ColSize_Save()
|
|
Me.SetForm.Close()
|
|
Arin.WLog2(Auto_Log, "Form_Close", LogFile)
|
|
Save_Setting()
|
|
End Sub
|
|
Private Sub printform_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
|
|
'If SelCon Is Nothing Then Return
|
|
'Dim Tobj As MyControlOLEDBv2.MyLabel
|
|
Select Case e.KeyCode
|
|
Case Keys.Up
|
|
If e.Shift Then '//글씨높이
|
|
Me.CtrSize(True, -5)
|
|
Else
|
|
Me.CtrPos(True, -5)
|
|
End If
|
|
'Me.ViewProperty(SelCon(0))
|
|
e.Handled = True
|
|
Case Keys.Down
|
|
If e.Shift Then
|
|
Me.CtrSize(True, 5)
|
|
Else
|
|
Me.CtrPos(True, 5)
|
|
End If
|
|
'ViewProperty(Tobj)
|
|
e.Handled = True
|
|
Case Keys.Left
|
|
If e.Shift Then
|
|
Me.CtrSize(False, -5)
|
|
Else
|
|
Me.CtrPos(False, -5)
|
|
End If
|
|
'ViewProperty(Tobj)
|
|
e.Handled = True
|
|
Case Keys.Right
|
|
If e.Shift Then
|
|
Me.CtrSize(False, 5)
|
|
Else
|
|
Me.CtrPos(False, 5)
|
|
End If
|
|
'ViewProperty(Tobj)
|
|
e.Handled = True
|
|
Case Keys.S
|
|
If e.Control Then
|
|
Me.bt_mansave1.PerformClick()
|
|
Me.bt_mansave2.PerformClick()
|
|
End If
|
|
Case Keys.F8 '//프린트 미리보기
|
|
Me.bt_print_preview.PerformClick()
|
|
Case Keys.F9 '//프린트하기
|
|
Me.bt_print.PerformClick()
|
|
|
|
End Select
|
|
|
|
End Sub
|
|
|
|
Private Sub SETTOOLTIP()
|
|
Arin.WLog2(Auto_Log, "Settooltip()", LogFile)
|
|
Dim TMSG As New System.Text.StringBuilder()
|
|
TMSG.AppendLine()
|
|
TMSG.AppendLine("선택가능한 개체목록을 볼 수 잇습니다")
|
|
TMSG.AppendLine()
|
|
TMSG.AppendLine("화면에 보이지 않는 개체도 선택이 가능합니다")
|
|
TMSG.AppendLine()
|
|
Me.ToolTip1.SetToolTip(SetForm.cmb_controls, TMSG.ToString)
|
|
|
|
|
|
TMSG = New System.Text.StringBuilder()
|
|
TMSG.AppendLine()
|
|
TMSG.AppendLine("<개체들의 상태를 확인할 수 있습니다>")
|
|
TMSG.AppendLine()
|
|
TMSG.AppendLine("더블클릭시 임시적으로 해당 문자를 수정할 수 있습니다.")
|
|
TMSG.AppendLine("왼쪽클릭시 해당개체만 선택됩니다.")
|
|
TMSG.AppendLine("Ctrl + 왼쪽클릭시 해당개체가 속한 그룹이 선택됩니다.")
|
|
TMSG.AppendLine("우클릭시 선택된 개체가 추가됩니다(다중선택기능)")
|
|
TMSG.AppendLine()
|
|
TMSG.AppendLine("[번호출력시 색상구분]")
|
|
TMSG.AppendLine("흑색 : 문자패턴 적용")
|
|
TMSG.AppendLine("녹색 : 길이패턴 적용")
|
|
TMSG.AppendLine("적색 : 길이,문자패턴 미적용")
|
|
TMSG.AppendLine()
|
|
TMSG.AppendLine(">>환경설정에서 색상구분이 가능하도록 설정되어야 합니다")
|
|
TMSG.AppendLine()
|
|
Me.ToolTip1.SetToolTip(Me.PictureBox1, TMSG.ToString)
|
|
|
|
TMSG = New System.Text.StringBuilder()
|
|
TMSG.AppendLine("녹색은 길이패턴만 적용된 아이템이며")
|
|
TMSG.AppendLine("적색은 길이,문자패턴이 존재하지 않는 아이템입니다")
|
|
TMSG.AppendLine("흑색은 문자패턴이나 길이,문자패턴이 존재하는 경우입니다.")
|
|
TMSG.AppendLine()
|
|
'Me.ToolTip1.SetToolTip(Me.X1, X1.설명 & vbCrLf & TMSG.ToString)
|
|
'Me.ToolTip1.SetToolTip(Me.X2, X2.설명 & vbCrLf & TMSG.ToString)
|
|
'Me.ToolTip1.SetToolTip(Me.X3, X3.설명 & vbCrLf & TMSG.ToString)
|
|
|
|
End Sub
|
|
Private Sub con_dclick(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
Arin.WLog2(Auto_Log, "개체를 더블클릭했습니다.(이것은 사용되지 않음)", LogFile)
|
|
Dim Msg As New System.Text.StringBuilder("변경할 값을 입력하세요")
|
|
Msg.AppendLine("줄바꿈을하려면 \n 을 입력하세요")
|
|
Msg.AppendLine("예) 세로로 12를 출력하려면 1\n2 을 입력하세요")
|
|
Msg.AppendLine()
|
|
Msg.AppendLine("변경한 값은 현재페이지에만 적용됩니다")
|
|
Dim A As MyControlOLEDBv2.MyLabel = sender
|
|
Dim Val As String = InputBox(Msg.ToString, "변경", A.MyText)
|
|
If Val = "" Then Return
|
|
Val = Val.Replace("\n", vbCrLf)
|
|
A.MyText = Val
|
|
'//preview 는 아마도 픽쳐박스 더블클릭에서 정의한듯 하다.
|
|
End Sub
|
|
Private Sub Save_Setting()
|
|
Arin.WLog2(Auto_Log, "현재 설정(스타일)을 저장합니다.", LogFile)
|
|
Dim A As New MyINI(SettingFile)
|
|
A.Write("PRINTFORM", "printername", Frm_Prnset.cmb_prnlist.Text) '//패턴검사조건 콤보박스
|
|
End Sub
|
|
Private Sub Load_Setting()
|
|
Arin.WLog2(Auto_Log, "현재설정(스타일)을 가져옵니다.()", LogFile)
|
|
Arin.WLog2(Auto_Log, "Load_Setting()", LogFile)
|
|
Dim a As New MyINI(SettingFile)
|
|
Frm_Prnset.cmb_prnlist.Text = a.Read("PRINTFORM", "printername", "")
|
|
End Sub
|
|
Private Function GetSpread(ByVal row As Integer, ByVal col As Integer) As String
|
|
Try
|
|
Return Dv(row)(col)
|
|
'Return Me.CustFP1_Sheet1.Cells(row, col).Value.ToString
|
|
Catch ex As Exception
|
|
Return ""
|
|
End Try
|
|
End Function
|
|
Private Function GetSpread(ByVal row As Integer, ByVal colname As String) As String
|
|
Try
|
|
Return Dv(row)(colname)
|
|
'Return Me.CustFP1_Sheet1.Cells(row, col).Value.ToString
|
|
Catch ex As Exception
|
|
Return ""
|
|
End Try
|
|
End Function
|
|
|
|
Public Sub GetStyleList()
|
|
Arin.WLog2(Auto_Log, "GetStyleList진입()", LogFile)
|
|
'//스타일명을 가져와서 콤보박스에 표시합니다.
|
|
'//style 폴더아래의 ini 파일전체를 스타일 이라한다.
|
|
'//파일을 읽어서 메모리에 저장한다.
|
|
' Dim Arinini As MyINI
|
|
Dim CurIdx As Integer = 0
|
|
Dim StyleCnt As Short = StyleDir.GetFiles("*.ini").GetUpperBound(0)
|
|
ReDim StyleList(StyleCnt)
|
|
Dim Section, Value As New ArrayList
|
|
Dim SectionIdx As Integer = 0
|
|
|
|
Arin.WLog2(Auto_Log, "GetStyleList(파일에서 스타일목을 가져온다)", LogFile)
|
|
|
|
For Each FI As IO.FileInfo In StyleDir.GetFiles("*.ini")
|
|
Arin.WLog2(Auto_Log, "파일명=(" & FI.FullName & ") 의 스타일을 가져옵니다 메모리로", LogFile)
|
|
GetAllsection(FI.FullName, CurIdx)
|
|
SetForm.cmb_style.Items.Clear()
|
|
SetForm.cmb_style.Items.Add(StyleList(CurIdx).Desc)
|
|
CurIdx += 1
|
|
Next
|
|
|
|
End Sub
|
|
Private Sub 데이터테이블갱신()
|
|
Arin.WLog2(Auto_Log, "데이터테이블 갱신()", LogFile)
|
|
GetAllsection(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File, SetForm.cmb_style.SelectedIndex)
|
|
End Sub
|
|
Public Sub GetAllsection(ByVal FILENAME As String, ByVal CurIdx As Short)
|
|
Dim FS As New System.IO.FileStream(FILENAME, FileMode.Open)
|
|
Dim SR As New StreamReader(FS, System.Text.Encoding.Default)
|
|
Dim Findkey As String = ""
|
|
Dim Line As String
|
|
Dim KeyPos As Integer = -1
|
|
Dim Seppos As Integer = -1
|
|
Dim dr As DataRow
|
|
|
|
|
|
Arin.WLog2(Auto_Log, "getallSection : 파일의 모든내용을 테이블로 옴긴다.()", LogFile)
|
|
|
|
StyleList(CurIdx).PATTERNTABLE = New DataTable
|
|
StyleList(CurIdx).PATTERNTABLE.Columns.Add("설명")
|
|
StyleList(CurIdx).PATTERNTABLE.Columns.Add("값")
|
|
|
|
'//초기값셋팅
|
|
StyleList(CurIdx).Backimg = ""
|
|
StyleList(CurIdx).CanvasX = 292
|
|
StyleList(CurIdx).CanvasY = 520
|
|
StyleList(CurIdx).Desc = "기본걸명"
|
|
StyleList(CurIdx).dummmyx = 0
|
|
StyleList(CurIdx).dummmyy = 50
|
|
StyleList(CurIdx).Dummy = False
|
|
StyleList(CurIdx).Dummytype = 1
|
|
StyleList(CurIdx).File = ""
|
|
StyleList(CurIdx).Filter = ""
|
|
StyleList(CurIdx).LandScape = False
|
|
StyleList(CurIdx).MarginX = 50
|
|
StyleList(CurIdx).MarginY = 50
|
|
StyleList(CurIdx).picstyle = 1
|
|
StyleList(CurIdx).PrintFontOffset = 0
|
|
StyleList(CurIdx).ScaleX = 1.5
|
|
StyleList(CurIdx).ScaleY = 1.5
|
|
StyleList(CurIdx).Viewimage = False
|
|
|
|
'//모든줄을 읽어서 섹션&키 = 설명 으로 한다.
|
|
While SR.Peek > -1
|
|
Line = SR.ReadLine.ToUpper
|
|
|
|
If Line <> "" Then
|
|
|
|
|
|
|
|
If Findkey = "" Then '//아직 셋팅된 키가 없다면
|
|
If Line.ToUpper.IndexOf("[") > -1 Then Findkey = Line.Trim("[").ToString.Trim("]").ToString
|
|
Else '//셋팅된 키가 있다면 테이블에 추가해준다.
|
|
If Line.IndexOf("[") = -1 Then '//그다음 키가 오기전까지 모두 추가한다.
|
|
Seppos = Line.IndexOf("=")
|
|
|
|
' MsgBox(Line.Substring(0, Seppos).ToUpper)
|
|
|
|
Select Case Line.Substring(0, Seppos).ToUpper
|
|
Case "DESC"
|
|
If Findkey.ToUpper = "STYLE" Then
|
|
StyleList(CurIdx).Desc = Line.Substring(Seppos + 1).ToUpper
|
|
Else
|
|
dr = StyleList(CurIdx).PATTERNTABLE.NewRow
|
|
dr(0) = CStr(Findkey & Line.Substring(0, Seppos)).ToUpper
|
|
dr(1) = Line.Substring(Seppos + 1).ToUpper
|
|
StyleList(CurIdx).PATTERNTABLE.Rows.Add(dr)
|
|
End If
|
|
Case "FILE" : StyleList(CurIdx).File = Line.Substring(Seppos + 1).ToUpper
|
|
Case "BACKIMG" : StyleList(CurIdx).Backimg = Line.Substring(Seppos + 1).ToUpper
|
|
Case "CANVASX" : StyleList(CurIdx).CanvasX = Line.Substring(Seppos + 1).ToUpper
|
|
Case "CANVASY" : StyleList(CurIdx).CanvasY = Line.Substring(Seppos + 1).ToUpper
|
|
Case "DUMMMYX" : StyleList(CurIdx).dummmyx = Line.Substring(Seppos + 1).ToUpper
|
|
Case "DUMMMYY" : StyleList(CurIdx).dummmyy = Line.Substring(Seppos + 1).ToUpper
|
|
Case "LANDSCAPE" : StyleList(CurIdx).LandScape = Line.Substring(Seppos + 1).ToUpper
|
|
Case "MARGINX" : StyleList(CurIdx).MarginX = Line.Substring(Seppos + 1).ToUpper
|
|
Case "MARGINY" : StyleList(CurIdx).MarginY = Line.Substring(Seppos + 1).ToUpper
|
|
Case "PICSTYLE" : StyleList(CurIdx).picstyle = Line.Substring(Seppos + 1).ToUpper
|
|
Case "PRINTFONTOFFSET" : StyleList(CurIdx).PrintFontOffset = Line.Substring(Seppos + 1).ToUpper
|
|
Case "SCALEX" : StyleList(CurIdx).ScaleX = Line.Substring(Seppos + 1).ToUpper
|
|
Case "SCALEY" : StyleList(CurIdx).ScaleY = Line.Substring(Seppos + 1).ToUpper
|
|
Case "VIEWIMAGE" : StyleList(CurIdx).Viewimage = Line.Substring(Seppos + 1).ToUpper
|
|
Case "FILTER" : StyleList(CurIdx).Filter = Line.Substring(Seppos + 1).ToUpper
|
|
Case Else
|
|
dr = StyleList(CurIdx).PATTERNTABLE.NewRow
|
|
dr(0) = CStr(Findkey & Line.Substring(0, Seppos)).ToUpper
|
|
dr(1) = Line.Substring(Seppos + 1).ToUpper
|
|
StyleList(CurIdx).PATTERNTABLE.Rows.Add(dr)
|
|
End Select
|
|
|
|
|
|
|
|
Else
|
|
Findkey = Line.Trim("[").ToString.Trim("]").ToString
|
|
End If
|
|
End If
|
|
End If
|
|
End While
|
|
' MsgBox(StyleList(CurIdx).Filter)
|
|
SR.Close()
|
|
FS.Close()
|
|
|
|
End Sub
|
|
|
|
Public Function Prepare_Print() As Boolean '//범위내의 페이지번호와 일치하는 번호를 찾아서 배열에 할당한다.
|
|
|
|
|
|
Me.printindex = 0 '//배열의 첫번으로 출력을 준비한다.
|
|
|
|
Me.pDoc.DefaultPageSettings.Margins.Left = SetForm.tb_marginX.Text '//좌,우 여백 설정
|
|
Me.pDoc.DefaultPageSettings.Margins.Top = SetForm.tb_marginY.Text
|
|
Me.pDoc.DefaultPageSettings.Landscape = SetForm.rad_land.Checked ' IIf(Me.cmb_landscape.SelectedIndex = 0, False, True) '//가로,세로 출력결정
|
|
'//프린터명이 지정되어있다면 해당 프린터로설정,없으면 기본프린터
|
|
If SetForm.cmb_prnlist.Text <> "" Then Me.pDoc.PrinterSettings.PrinterName = SetForm.cmb_prnlist.Text
|
|
|
|
Dim Prn_Type As C_Epole.E_PrintRange
|
|
If Me.SetForm.rad_rangeall.Checked Then Prn_Type = C_Epole.E_PrintRange.All
|
|
If Me.SetForm.rad_Rangecurr.Checked Then Prn_Type = C_Epole.E_PrintRange.Current
|
|
If Me.SetForm.rad_rangecustom.Checked Then Prn_Type = C_Epole.E_PrintRange.Custom
|
|
|
|
Return C_Epole.Set_PrnRange(Me.Dv, Me.BindingNavigatorPositionItem.Text, Me.PrintArray, Prn_Type, Me.SetForm.tb_printrange.Text.Trim)
|
|
End Function
|
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Print_Preview()
|
|
End Sub
|
|
Public Sub Print_Preview()
|
|
Arin.WLog2(Auto_Log, "print_preview 미리보기 버튼을 눌렀을때다.()", LogFile)
|
|
If Not Prepare_Print() Then
|
|
MsgBox("인쇄할 목록이 없습니다", MsgBoxStyle.Critical, "확인")
|
|
Return
|
|
End If
|
|
Dim Preview As New PrintPreviewDialog()
|
|
Try
|
|
Preview.Document = pDoc
|
|
Preview.ShowDialog()
|
|
|
|
Catch EX As Exception
|
|
MsgBox("Prrint_Preview Error : " & EX.Message)
|
|
End Try
|
|
End Sub
|
|
Private Sub pDoc_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles pDoc.PrintPage
|
|
|
|
Arin.WLog2(Auto_Log, "proc_printpage 프린트패이지를 작성한다 중요하다.()", LogFile)
|
|
|
|
Dim fmt As New StringFormat(StringFormatFlags.LineLimit)
|
|
Dim MyFont As Font
|
|
Dim NewFontSize As Int16 = 10
|
|
Dim dummy As Boolean = False '//이값이 true 이면 출력시 변위를 지정해서 출력한다.
|
|
Dim C As MyControlOLEDBv2.MyLabel
|
|
|
|
'페이지 구분을 이해하고 몇개를 찍을지 결정한다.
|
|
'Debug.Print("프린터인덱스=" & Me.printindex)
|
|
'Debug.Print("프린터배열=" & Me.PrintArray.GetUpperBound(0))
|
|
|
|
If Me.printindex <> -1 Then Me.GeTviewData(Me.PrintArray(Me.printindex), False) '//페이지를 갱신하고 출력을 시작한다.
|
|
e.Graphics.ScaleTransform(SetForm.tb_scalex.Text, SetForm.tb_scaley.Text)
|
|
|
|
' If Not Me.PictureBox1.BackgroundImage Is Nothing Then e.Graphics.DrawImage(Me.PictureBox1.BackgroundImage, 0, 0)
|
|
|
|
Dummyflag: '//--2장출력일경우 이부분에서 다시 시작한다.
|
|
|
|
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
|
|
C = Me.AllLabels(i).ctl
|
|
If C.Visible = True AndAlso C.MyText <> "" Then
|
|
'//myfont 는 글꼴의 일괄크기변경 옵션의의해서 생성됨
|
|
NewFontSize = C.MyFont.Size + SetForm.tb_myfontsize.Text
|
|
If NewFontSize < 0 Then NewFontSize = 0
|
|
|
|
MyFont = New Font(C.MyFont.FontFamily, NewFontSize, C.MyFont.Style)
|
|
If C.장평 = 100 AndAlso C.장높이 = 100 Then '//장평미사용 문자열 처리
|
|
e.Graphics.DrawString(C.최종문자, MyFont, Brushes.Black, New Point(C.Left + e.PageSettings.Margins.Left + IIf(dummy, SetForm.tb_secx.Text, 0), C.Top + e.PageSettings.Margins.Top + IIf(dummy, SetForm.tb_secy.Text, 0)))
|
|
'e.Graphics.RotateTransform(Me.TextBox3.Text)
|
|
Else '//장평사용 이미지 처리
|
|
Dim NewX, Newy As Integer
|
|
Dim SrcDpix, SrcDPiY As Single
|
|
'MsgBox(Tobj.장높이)
|
|
SrcDpix = C.CreateGraphics.DpiX
|
|
SrcDPiY = C.CreateGraphics.DpiY
|
|
|
|
NewX = C.GetSize(MyFont).Width * (C.장평 / 100) * (e.Graphics.DpiX / SrcDpix)
|
|
Newy = C.GetSize(MyFont).Height * (C.장높이 / 100) * (e.Graphics.DpiY / SrcDPiY)
|
|
|
|
Dim BMP As New Bitmap(NewX, Newy, e.Graphics)
|
|
Dim G As Graphics = Graphics.FromImage(BMP)
|
|
|
|
G.ScaleTransform((C.장평 / 100), (C.장높이 / 100))
|
|
G.DrawString(C.최종문자, MyFont, Brushes.Black, 0, 0)
|
|
G.Dispose()
|
|
e.Graphics.DrawImage(BMP, New Point(C.Left + e.PageSettings.Margins.Left + IIf(dummy, SetForm.tb_secx.Text, 0), C.Top + e.PageSettings.Margins.Top + IIf(dummy, SetForm.tb_secy.Text, 0))) ', CInt(GetSize.Width * (v장평 / 100)), GetSize.Height)
|
|
'e.Graphics.RotateTransform(Me.TextBox3.Text)
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
'//페이지가 있던없던 2장복사를 먼저 확인한다.
|
|
'//다음페이지가 잇으면 다음기능을 확인하고 그렇지 않을경우에는 한장복사만 확인한다.
|
|
If dummy = False AndAlso SetForm.cb_dummy.Checked Then '//2장복사일경우에는 현재복사인지 다음복사인지 체크
|
|
|
|
dummy = True
|
|
If SetForm.cmb_dummy.SelectedIndex = 0 Then '//현재복사는 궂이 다음장없어도 가능하다.
|
|
'dummy = True
|
|
' MsgBox("잇던없던 현재복사")
|
|
GoTo Dummyflag
|
|
Else '//다음복사이므로 다음장이잇는지 확인하고해야한다.
|
|
If Me.printindex >= 0 AndAlso Me.printindex < Me.PrintArray.GetUpperBound(0) Then '//다음장이있다.
|
|
Me.printindex += 1 '/1장넘기고
|
|
Me.GeTviewData(Me.PrintArray(Me.printindex), False) '//데이터표시하고
|
|
GoTo Dummyflag '//바로 출력다시한다.
|
|
End If
|
|
'다음장이없으므로 그냥 넘어간다.
|
|
e.HasMorePages = False
|
|
End If
|
|
Else '//다음장으로넘깁니다.
|
|
If Me.printindex >= 0 AndAlso Me.printindex < Me.PrintArray.GetUpperBound(0) Then '//다음장이있다.
|
|
dummy = False '//장수를 넘어가면 더미를 해제한다.
|
|
Me.printindex += 1
|
|
e.HasMorePages = True
|
|
Else
|
|
e.HasMorePages = False
|
|
End If
|
|
End If
|
|
' e.Graphics.RotateTransform(Me.TextBox3.Text)
|
|
e.Graphics.Dispose()
|
|
End Sub
|
|
Public Sub Print()
|
|
If MsgBox("인쇄를 하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
|
|
Arin.WLog2(Auto_Log, "print 바로 출력을 하라는 명령이다()", "\Alllog.txt")
|
|
If Me.Prepare_Print() Then
|
|
pDoc.Print()
|
|
Else
|
|
MsgBox("인쇄가능한 목록이 없습니다", MsgBoxStyle.Critical, "확인")
|
|
End If
|
|
Else
|
|
NOTICE("인쇄가 취소되었습니다", Color.Tomato, Me.lb_msg)
|
|
End If
|
|
End Sub
|
|
Private Sub con_Mmove(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
|
|
Arin.WLog2(Auto_Log, "con _move 개체이동할 프로시져인데 현재 안쓴다.()", LogFile)
|
|
If My.Computer.Keyboard.CtrlKeyDown AndAlso e.Button = Windows.Forms.MouseButtons.Left Then
|
|
' Me.Text = CType(sender, Label).Left & "/" & e.X
|
|
CType(sender, MyControlOLEDBv2.MyLabel).Left += e.X
|
|
CType(sender, MyControlOLEDBv2.MyLabel).Top += e.Y
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ViewBackImage()
|
|
Arin.WLog2(Auto_Log, "viewBackImage 배경이미지를 표시합니다.()", LogFile)
|
|
If Not System.IO.File.Exists(SetForm.tb_picfile.Text) Then
|
|
SetForm.CheckBox4.Checked = False
|
|
Else
|
|
Me.PictureBox1.BackgroundImage = Image.FromFile(SetForm.tb_picfile.Text)
|
|
End If
|
|
End Sub
|
|
Private Sub CheckBox4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
|
|
End Sub
|
|
Private Sub Label11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
|
|
End Sub
|
|
Public Sub CtrPos(ByVal vertical As Boolean, ByVal offset As Short)
|
|
Arin.WLog2(Auto_Log, "ctrpos (선택된 개체들의 위치값을 변경합니다)", LogFile)
|
|
If SelCon Is Nothing OrElse SelCon.Count < 1 Then Exit Sub
|
|
|
|
For Each sender As Control In SelCon
|
|
If vertical Then '//좌우측
|
|
If My.Computer.Keyboard.AltKeyDown Then
|
|
If offset < 0 Then
|
|
sender.Top -= 1
|
|
Else
|
|
sender.Top += 1
|
|
End If
|
|
ElseIf My.Computer.Keyboard.CtrlKeyDown Then
|
|
If offset < 0 Then
|
|
sender.Top -= 10
|
|
Else
|
|
sender.Top += 10
|
|
End If
|
|
Else
|
|
sender.Top += offset
|
|
End If
|
|
Else '//상하측
|
|
If My.Computer.Keyboard.AltKeyDown Then
|
|
If offset < 0 Then
|
|
sender.Left -= 1
|
|
Else
|
|
sender.Left += 1
|
|
End If
|
|
ElseIf My.Computer.Keyboard.CtrlKeyDown Then
|
|
If offset < 0 Then
|
|
sender.Left -= 10
|
|
Else
|
|
sender.Left += 10
|
|
End If
|
|
Else
|
|
sender.Left += offset
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
Arin.WLog2(Auto_Log, "ctrpos =[ preview 호출합니다]", LogFile)
|
|
Me.preview_window()
|
|
'Me.ViewProperty(sender)
|
|
End Sub
|
|
Private Sub ShowMsg(ByVal Message As String)
|
|
Arin.WLog2(Auto_Log, "showmsg 메세지를 보여줍니다 =" & Message, LogFile)
|
|
Me.lb_msg.Text = "▷ " & Message & Space(1) & TimeOfDay.ToString
|
|
End Sub
|
|
|
|
Private Sub cmb_style_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
|
|
Arin.WLog2(Auto_Log, "스타일콤보박스에서 keyip 이 감지되었으나 핸들을 true 로 해버린다.", LogFile)
|
|
e.Handled = True
|
|
End Sub
|
|
Public Sub Selected_Style(ByVal SelIndex As Short)
|
|
'//여기서 데이터를 추려내고(필터를 가져온다.)
|
|
'//해당 스타일을 불러온다
|
|
Arin.WLog2(Auto_Log, "스타일 인덱스가 변경되었다.", LogFile)
|
|
If SetForm.cmb_style.SelectedIndex < 0 Then SetForm.cmb_style.SelectedIndex = 0
|
|
|
|
Dim DataFilter As String = StyleList(SetForm.cmb_style.SelectedIndex).Filter
|
|
If DataFilter.Trim = "" Then
|
|
DataFilter = "출력 = true" '//인쇄필드는 지선주 구분용으로 재사용한다.
|
|
Else
|
|
DataFilter &= " AND 출력 = true" '//지선주는 인쇄가 True 값이기때문에 해당 값을 제외한다
|
|
End If
|
|
|
|
Me.BindingSource1.Sort = ""
|
|
Me.BindingSource1.DataSource = Nothing
|
|
|
|
Try
|
|
Dv = New DataView(srcTable, DataFilter, "정렬번호,번호", DataViewRowState.CurrentRows)
|
|
|
|
'Dv = New DataView(srcTable, "len(DL명) > 0", "", DataViewRowState.CurrentRows)
|
|
|
|
If Dv.Count <= 0 Then '//데이터가없다면
|
|
MsgBox(SetForm.cmb_style.Text & "에 해당하는 데이터가존재하지 않습니다" & vbCrLf & vbCrLf & "다른 스타일을 선택하세요", MsgBoxStyle.Information, "확인")
|
|
Me.PictureBox1.Refresh()
|
|
Else
|
|
Arin.WLog2(Auto_Log, "선택된 스타일에 데이터가있다=" & Dv.Count, LogFile)
|
|
'Me.textbox2.Text = Dv.Count - 1 '//패턴검사시 종료카운터이다...
|
|
Me.VScrollBar1.Minimum = 0
|
|
Me.VScrollBar1.Maximum = Dv.Count - 1
|
|
|
|
'MsgBox("스크롤 수=" & Me.VScrollBar1.Maximum)
|
|
Me.LOAD_STYLE() '//스타일불러오기(여기서 모든컨트롤의 기본 위치와 글꼴이 결정된다)
|
|
If Me.FirstIdx = -1 Then
|
|
For i As Integer = 0 To Dv.Count - 1 '//맨첨보여줄놈을 찾는다. DV와 원래 인덱스값이 다르기때문에 찾아야한다.
|
|
If Dv(i)("번호") = Srcnum Then
|
|
FirstIdx = i
|
|
Exit For
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If FirstIdx = -1 OrElse FirstIdx > Dv.Count - 1 Then FirstIdx = 0 '//찾지못하고 나왓을경우에는 1번쨰 레코드를 보여주도록 한다.
|
|
|
|
|
|
NoView = True '//For Validate Index =0
|
|
|
|
|
|
If FirstIdx = 0 Then '//Index is first
|
|
Arin.WLog2(Auto_Log, "View : First Record // Set = 0", "\Alllog.txt")
|
|
Else '//index is not first
|
|
Arin.WLog2(Auto_Log, "View : Index Count = " & FirstIdx, "\Alllog.txt")
|
|
End If
|
|
|
|
Me.BindingSource1.DataSource = Dv 'Dv '//여기서셋팅되면서 바로 tview 가 작동된다.
|
|
Me.BindingSource1.Sort = "정렬번호,번호" ',번호"
|
|
Me.VScrollBar1.Value = FirstIdx
|
|
Me.BindingSource1.Position = FirstIdx
|
|
|
|
'MsgBox("ASDF" & Me.BindingNavigatorPositionItem.Text)
|
|
If FirstIdx = 0 Then Me.GeTviewData(Me.BindingNavigatorPositionItem.Text - 1, True)
|
|
End If
|
|
|
|
Catch ex As Exception
|
|
'//에러난다면 거의 뭐;;폼을 바로 실행하는경우다
|
|
MsgBox("관리자 모드인가봅니다")
|
|
|
|
End Try
|
|
|
|
''Arin.WLog2(Auto_Log, "cmb_style selectindexchanged 에서 preview 를 호출함", "\지중순차로그.txt")
|
|
'Me.preview_window()
|
|
End Sub
|
|
|
|
|
|
|
|
Public Sub LOAD_STYLE(Optional ByVal Div As String = "Z") '//저장된 스타일을 불러옵니다.
|
|
' MsgBox("LOADSTYLE" & "/" & Div)
|
|
' MsgBox("LOADSTYLE" & "/" & Div)
|
|
Arin.WLog2(Auto_Log, "load_style : 스타일을 불러옵니다. div= " & Div, LogFile)
|
|
Dim Arinini As New MyINI(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File)
|
|
Dim pos(), font(), visible, mytext As String
|
|
Dim Tobj As MyControlOLEDBv2.MyLabel
|
|
Dim DR() As DataRow
|
|
Dim idx As Integer = 0
|
|
|
|
'//모든아이템을 돈다
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0) '//모든아이템을 돈다.
|
|
Tobj = Me.AllLabels(i).ctl
|
|
If Div.ToUpper = "Z" Then '//모든아이템을 가져오고
|
|
'//메모리에서 찾는다.
|
|
Tobj.Tag = ""
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "POS'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
pos = DR(0)(1).ToString.Split(",")
|
|
Tobj.Location = New Point(pos(0), pos(1))
|
|
Tobj.Size = New Size(pos(2), pos(3))
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "FONT'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
font = DR(0)(1).ToString.Split(",")
|
|
Tobj.장평 = font(5)
|
|
Tobj.장높이 = font(6)
|
|
Tobj.MyFont = New Font(font(0), font(1), IIf(font(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "VISIBLE'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
visible = DR(0)(1).ToString
|
|
Tobj.Visible = CType(visible, Boolean)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "MYTEXT'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
mytext = DR(0)(1).ToString
|
|
Select Case Tobj.Name.ToUpper.Substring(0, 1)
|
|
Case "X" '//사용자문자일경우에는 문자열도 저장해야한다.
|
|
If mytext <> "" Then Tobj.MyText = Arin.TextDec(mytext) '//ini구조상 바로저장하면안되기때문에 변환해서 저장한다.
|
|
End Select
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "SPACE'")
|
|
If DR.GetUpperBound(0) = 0 Then Tobj.공백 = DR(0)(1).ToString
|
|
Else '//특정아이템구분일때
|
|
|
|
If Tobj.Name.ToUpper.Substring(0, 1) = Div Then
|
|
If Div.ToUpper = "H" Then '//H의경우는 따로 찾아본다.
|
|
|
|
'//메모리에서 찾는다.
|
|
Tobj.Tag = ""
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "POS'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
pos = DR(0)(1).ToString.Split(",")
|
|
Tobj.Location = New Point(pos(0), pos(1))
|
|
Tobj.Size = New Size(pos(2), pos(3))
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "FONT'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
font = DR(0)(1).ToString.Split(",")
|
|
Tobj.장평 = font(5)
|
|
Tobj.장높이 = font(6)
|
|
Tobj.MyFont = New Font(font(0), font(1), IIf(font(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "VISIBLE'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
visible = DR(0)(1).ToString
|
|
Tobj.Visible = CType(visible, Boolean)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "MYTEXT'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
mytext = DR(0)(1).ToString
|
|
Select Case Tobj.Name.ToUpper.Substring(0, 1)
|
|
Case "X" '//사용자문자일경우에는 문자열도 저장해야한다.
|
|
If mytext <> "" Then Tobj.MyText = Arin.TextDec(mytext) '//ini구조상 바로저장하면안되기때문에 변환해서 저장한다.
|
|
End Select
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "SPACE'")
|
|
If DR.GetUpperBound(0) = 0 Then Tobj.공백 = DR(0)(1).ToString
|
|
|
|
Else
|
|
'//메모리에서 찾는다.
|
|
Tobj.Tag = ""
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "POS'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
pos = DR(0)(1).ToString.Split(",")
|
|
Tobj.Location = New Point(pos(0), pos(1))
|
|
Tobj.Size = New Size(pos(2), pos(3))
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "FONT'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
font = DR(0)(1).ToString.Split(",")
|
|
Tobj.장평 = font(5)
|
|
Tobj.장높이 = font(6)
|
|
Tobj.MyFont = New Font(font(0), font(1), IIf(font(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "VISIBLE'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
visible = DR(0)(1).ToString
|
|
Tobj.Visible = CType(visible, Boolean)
|
|
End If
|
|
|
|
'DR = StyleList(setform.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "MYTEXT'")
|
|
'If DR.GetUpperBound(0) = 0 Then
|
|
'mytext = DR(0)(1).ToString
|
|
'Select Case Tobj.Name.ToUpper.Substring(0, 1)
|
|
' Case "U", "A", "B", "D", "E" '//사용자문자일경우에는 문자열도 저장해야한다.
|
|
'If mytext <> "" Then Tobj.MyText = Arin.TextDec(mytext) '//ini구조상 바로저장하면안되기때문에 변환해서 저장한다.
|
|
'End Select
|
|
'End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = 'STYLE" & Tobj.Name.ToUpper & "SPACE'")
|
|
If DR.GetUpperBound(0) = 0 Then Tobj.공백 = DR(0)(1).ToString
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
Next
|
|
|
|
If Div.ToUpper <> "Z" Then Return '//모든템이아니다
|
|
Arin.WLog2(Auto_Log, "load_style 기본값 체크박스등의 값을 불러온다. 이것은 맨첨에만 불러오면 된다. ", LogFile)
|
|
''''''''''''''''''' 개체조정''우측 스타일 체크박스를 가져온다.
|
|
For Each B As Control In SetForm.TabPage2.Controls
|
|
If B.GetType.Name.ToUpper = "CHECKBOX" Then '//체크박스라면 태그를 저장한다.
|
|
CType(B, Windows.Forms.CheckBox).Checked = Arinini.Read("STYLE", B.Name, False) '//기본값 false
|
|
End If
|
|
Next
|
|
|
|
If Admin Then
|
|
For Each A As ToolStripDropDownItem In Me.mainmenu.DropDownItems '//여기서 체크박스인것들만
|
|
If A.GetType.Name.ToUpper = "TOOLSTRIPMENUITEM" Then
|
|
If CType(A, ToolStripMenuItem).CheckOnClick Then
|
|
CType(A, ToolStripMenuItem).Checked = Arinini.Read("STYLE", A.Name, False)
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
|
|
'For Each B As Control In Me.TabPage3.Controls
|
|
' If B.GetType.Name.ToUpper = "CHECKBOX" Then '//체크박스라면 태그를 저장한다.
|
|
' CType(B, Windows.Forms.CheckBox).Checked = Arinini.Read("STYLE", B.Name, False) '//기본값 false
|
|
' End If
|
|
'Next
|
|
''''''''''''''''''''''''''''외'''''''''''''''''''''''''''''''''
|
|
SetForm.tb_marginX.Text = StyleList(SetForm.cmb_style.SelectedIndex).MarginX 'Arinini.Read("STYLE", "MarginX", 10)
|
|
SetForm.tb_marginY.Text = StyleList(SetForm.cmb_style.SelectedIndex).MarginY ' Arinini.Read("STYLE", "MarginY", 10)
|
|
SetForm.tb_scalex.Text = StyleList(SetForm.cmb_style.SelectedIndex).ScaleX ' Arinini.Read("STYLE", "ScaleX", "1.5")
|
|
SetForm.tb_scaley.Text = StyleList(SetForm.cmb_style.SelectedIndex).ScaleY ' Arinini.Read("STYLE", "ScaleY", "1.3")
|
|
''''''''''''2중
|
|
SetForm.cb_dummy.Checked = StyleList(SetForm.cmb_style.SelectedIndex).Dummy 'Arinini.Read("STYLE", "dummy", False)
|
|
SetForm.cmb_dummy.SelectedIndex = StyleList(SetForm.cmb_style.SelectedIndex).Dummytype ' Arinini.Read("STYLE", "dummytype", 0)
|
|
SetForm.tb_secx.Text = StyleList(SetForm.cmb_style.SelectedIndex).dummmyx ' Arinini.Read("STYLE", "dummmyx", "0")
|
|
SetForm.tb_secy.Text = StyleList(SetForm.cmb_style.SelectedIndex).dummmyy ' Arinini.Read("STYLE", "dummmyy", "300")
|
|
|
|
SetForm.tb_picfile.Text = StyleList(SetForm.cmb_style.SelectedIndex).Backimg ' Arinini.Read("STYLE", "backimg", My.Application.Info.DirectoryPath & "\image\wall.bmp").ToString.Trim(Chr(0))
|
|
Me.pDoc.DefaultPageSettings.Landscape = StyleList(SetForm.cmb_style.SelectedIndex).LandScape ' Arinini.Read("STYLE", "LandScape", False)
|
|
If StyleList(SetForm.cmb_style.SelectedIndex).LandScape Then
|
|
SetForm.rad_land.Checked = True
|
|
Else
|
|
SetForm.rad_port.Checked = True
|
|
End If
|
|
'SetForm.rad_land.Checked = IIf(StyleList(SetForm.cmb_style.SelectedIndex).LandScape, 1, 0)
|
|
'Me.SetLayOut(IIf(Me.cmb_landscape.SelectedIndex = 0, False, True))
|
|
|
|
SetForm.CheckBox4.Checked = StyleList(SetForm.cmb_style.SelectedIndex).Viewimage ' Arinini.Read("STYLE", "ViewImage", True)
|
|
SetForm.tb_myfontsize.Text = StyleList(SetForm.cmb_style.SelectedIndex).PrintFontOffset ' Arinini.Read("STYLE", "PrintFontOffset", 0)
|
|
|
|
'Me.PictureBox1.Width = StyleList(setform.cmb_style.SelectedIndex).CanvasX 'Arinini.Read("STYLE", "CanvasX", 297) '520
|
|
'Me.PictureBox1.Height = StyleList(setform.cmb_style.SelectedIndex).CanvasY ' Arinini.Read("STYLE", "CanvasY", 520) '520
|
|
|
|
NOTICE(SetForm.cmb_style.Text & "스타일을 불러왔습니다.", Me.lb_msg)
|
|
|
|
End Sub
|
|
Public Sub SAVE_STYLE()
|
|
Arin.WLog2(Auto_Log, "ini파일에 스타일을 저장합니다. ", LogFile)
|
|
Dim Arinini As New MyINI(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File)
|
|
Dim Tobj As MyControlOLEDBv2.MyLabel
|
|
'//현재 선택된 스타일을 저장합니다.
|
|
If SetForm.cmb_style.SelectedIndex < 0 Then
|
|
erp.SetError(SetForm.cmb_style, "저장할 스타일이 선택되어있지 않습니다")
|
|
NOTICE("스타일을 선택하세요", Me.lb_msg)
|
|
Return
|
|
End If
|
|
erp.SetError(SetForm.cmb_style, vbNullString)
|
|
|
|
'Dim Div As Char
|
|
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
|
|
Tobj = Me.AllLabels(i).ctl
|
|
Arinini.Write("STYLE", Tobj.Name & "pos", Tobj.Left & "," & Tobj.Top & "," & Tobj.Width & "," & Tobj.Height)
|
|
Arinini.Write("STYLE", Tobj.Name & "font", Tobj.MyFont.Name & "," & Tobj.MyFont.Size & "," & Tobj.MyFont.Underline & "," & Tobj.MyFont.Bold & "," & Tobj.MyFont.Italic & "," & Tobj.장평 & "," & Tobj.장높이)
|
|
Arinini.Write("STYLE", Tobj.Name & "visible", "true") '기본값으로 표시로 정해놓고 체크박스 체크한다.
|
|
Arinini.Write("STYLE", Tobj.Name & "space", Tobj.공백)
|
|
'Select Case Tobj.Name.ToUpper.Substring(0, 1)
|
|
' Case "U", "A", "B", "D", "E"
|
|
'Arinini.Write("STYLE", Tobj.Name & "mytext", Arin.TextEnc(Tobj.MyText))
|
|
'End Select
|
|
|
|
'Div = Tobj.Name.Substring(0, 1) '1자리만끊어서 체크박스 태그랑 연결한다.
|
|
'For Each B As Control In Me.TabPage1.Controls
|
|
' If B.GetType.Name.ToUpper = "CHECKBOX" Then '//체크박스라면 태그를 저장한다.
|
|
' If B.Tag <> Nothing AndAlso B.Tag.ToString.ToUpper = Div.ToString.ToUpper Then '//해당 체크박스를 찾았으면 체크박스 상태로 저장을한다.
|
|
' Arinini.Write("STYLE", Tobj.Name & "visible", CType(B, Windows.Forms.CheckBox).Checked) 'A.Visible)
|
|
' Exit For
|
|
' End If
|
|
' End If
|
|
'Next
|
|
Next
|
|
|
|
|
|
|
|
For Each TC As TabPage In SetForm.TabControl1.TabPages '//탭컨트롤1의 모든 페이지에서 체크박스의 상태를 저장한다.
|
|
For Each B As Control In TC.Controls
|
|
If B.GetType.Name.ToUpper = "CHECKBOX" Then '//체크박스라면 태그를 저장한다.
|
|
Arinini.Write("STYLE", B.Name, CType(B, Windows.Forms.CheckBox).Checked) 'A.Visible)
|
|
End If
|
|
Next
|
|
Next
|
|
|
|
'For Each B As Control In Me.TabPage1.Controls
|
|
' If B.GetType.Name.ToUpper = "CHECKBOX" Then '//체크박스라면 태그를 저장한다.
|
|
' Arinini.Write("STYLE", B.Name, CType(B, Windows.Forms.CheckBox).Checked) 'A.Visible)
|
|
' End If
|
|
'Next
|
|
'For Each B As Control In Me.TabPage3.Controls
|
|
' If B.GetType.Name.ToUpper = "CHECKBOX" Then '//체크박스라면 태그를 저장한다.
|
|
' Arinini.Write("STYLE", B.Name, CType(B, Windows.Forms.CheckBox).Checked) 'A.Visible)
|
|
' End If
|
|
'Next
|
|
|
|
'Arinini.Write("STYLE", "CanvasX", Me.PictureBox1.Width) '//캔버스사이즈저장한다.
|
|
'Arinini.Write("STYLE", "CanvasY", Me.PictureBox1.Height)
|
|
|
|
Arinini.Write("STYLE", "ViewImage", SetForm.CheckBox4.Checked)
|
|
Arinini.Write("STYLE", "MarginX", SetForm.tb_marginX.Text)
|
|
Arinini.Write("STYLE", "MarginY", SetForm.tb_marginY.Text)
|
|
Arinini.Write("STYLE", "ScaleX", SetForm.tb_scalex.Text)
|
|
Arinini.Write("STYLE", "ScaleY", SetForm.tb_scaley.Text)
|
|
|
|
If SetForm.tb_picfile.Text.Trim = "" Then
|
|
Arinini.Write("STYLE", "backimg", "")
|
|
Else
|
|
Dim newpath As String = CStr(My.Application.Info.DirectoryPath & "\image\").ToUpper
|
|
Dim NEwpathp As Short = (SetForm.tb_picfile.Text.ToUpper.IndexOf(newpath))
|
|
If NEwpathp = -1 Then
|
|
Arinini.Write("STYLE", "backimg", SetForm.tb_picfile.Text)
|
|
Else
|
|
Arinini.Write("STYLE", "backimg", SetForm.tb_picfile.Text.Substring(NEwpathp + newpath.Length))
|
|
End If
|
|
End If
|
|
|
|
Arinini.Write("STYLE", "PrintFontOffset", SetForm.tb_myfontsize.Text)
|
|
Arinini.Write("STYLE", "LandScape", Me.pDoc.DefaultPageSettings.Landscape)
|
|
|
|
'//더미 체크박스랑 더미콤보박스 인덱스랑 변위 x,y
|
|
Arinini.Write("STYLE", "dummy", SetForm.cb_dummy.Checked)
|
|
Arinini.Write("STYLE", "dummytype", SetForm.cmb_dummy.SelectedIndex)
|
|
Arinini.Write("STYLE", "dummmyx", SetForm.tb_secx.Text)
|
|
Arinini.Write("STYLE", "dummmyy", SetForm.tb_secy.Text)
|
|
' Arinini.Write("STYLE", "picstyle", Me.ComboBox1.SelectedIndex)
|
|
|
|
'//스타일저장시에 현재 레이아웃상태또한 저장하게한다. 이부분은 스타일불러올때 쓰지는 않고
|
|
'//가로/세로 선택할때 불러오게한다(파일에서 직접 불러오게한다 어차피 한번뿐이므로 궃이 메모리에 올리필요없다
|
|
SaveReadLayOut(False) '//레이아웃저장한다.
|
|
|
|
NOTICE("기본스타일을 저장했습니다", Me.lb_msg)
|
|
Arin.WLog2(Auto_Log, "save style 완료후 데이터테이블 갱신을 호춣 ", LogFile)
|
|
Me.데이터테이블갱신()
|
|
|
|
End Sub
|
|
Public Sub SaveReadLayOut(ByVal read As Boolean) '//현재 화면구성을 가로/세로 결정합니다.
|
|
'//ini파일에저장한다. 섹션명은 pagetype0 ,pagetyp1 0은 세로 1은 가로다
|
|
Dim ini As New MyINI(StyleDir.FullName & "\" & StyleList(SetForm.cmb_style.SelectedIndex).File)
|
|
Dim Secname As String = "pagetype" & IIf(SetForm.rad_land.Checked, 1, 0) 'Me.cmb_landscape.SelectedIndex
|
|
|
|
If read = False Then
|
|
'ini.Write(Secname, "tablelayoutpanel1loc", Me.TableLayoutPanel1.Left & "," & Me.TableLayoutPanel1.Top)
|
|
'ini.Write(Secname, "tablelayoutpanel1size", Me.TableLayoutPanel1.Width & "," & Me.TableLayoutPanel1.Height)
|
|
ini.Write(Secname, "PictureBox1loc", Me.PictureBox1.Left & "," & Me.PictureBox1.Top)
|
|
ini.Write(Secname, "PictureBox1size", Me.PictureBox1.Width & "," & Me.PictureBox1.Height)
|
|
'ini.Write(Secname, "TabControl1loc", Me.TabControl1.Left & "," & Me.TabControl1.Top)
|
|
'ini.Write(Secname, "TabControl1size", Me.TabControl1.Width & "," & Me.TabControl1.Height)
|
|
'ini.Write(Secname, "GroupBox3loc", Me.GroupBox3.Left & "," & Me.GroupBox3.Top)
|
|
'ini.Write(Secname, "GroupBox3size", Me.GroupBox3.Width & "," & Me.GroupBox3.Height)
|
|
'ini.Write(Secname, "GroupBox2loc", Me.GroupBox2.Left & "," & Me.GroupBox2.Top)
|
|
'ini.Write(Secname, "GroupBox2size", Me.GroupBox2.Width & "," & Me.GroupBox2.Height)
|
|
ini.Write(Secname, "cmb_styleloc", SetForm.cmb_style.Left & "," & SetForm.cmb_style.Top)
|
|
ini.Write(Secname, "cmb_stylesize", SetForm.cmb_style.Width & "," & SetForm.cmb_style.Height)
|
|
' ini.Write(Secname, "ToolStrip2loc", Me.ToolStrip2.Left & "," & Me.ToolStrip2.Top)
|
|
ini.Write(Secname, "mesize", Me.Width & "," & Me.Height)
|
|
Else '//여기는 읽는 부분
|
|
If SetForm.rad_land.Checked = False Then '//세로
|
|
Me.pDoc.DefaultPageSettings.Landscape = False
|
|
'TableLayoutPanel1.Location = New Point(ini.Read(Secname, "tablelayoutpanel1loc", "0,31").Split(",")(0), ini.Read(Secname, "tablelayoutpanel1loc", "0,31").Split(",")(1))
|
|
'TableLayoutPanel1.Size = New Size(ini.Read(Secname, "tablelayoutpanel1size", "297,522").Split(",")(0), ini.Read(Secname, "tablelayoutpanel1size", "297,522").Split(",")(1))
|
|
PictureBox1.Location = New Point(ini.Read(Secname, "PictureBox1loc", "3,3").Split(",")(0), ini.Read(Secname, "PictureBox1loc", "3,3").Split(",")(1))
|
|
PictureBox1.Size = New Size(ini.Read(Secname, "PictureBox1size", "270,479").Split(",")(0), ini.Read(Secname, "PictureBox1size", "270,479").Split(",")(1))
|
|
'TabControl1.Location = New Point(ini.Read(Secname, "TabControl1loc", "303,34").Split(",")(0), ini.Read(Secname, "TabControl1loc", "303,34").Split(",")(1))
|
|
'TabControl1.Size = New Size(ini.Read(Secname, "TabControl1size", "279,519").Split(",")(0), ini.Read(Secname, "TabControl1size", "279,519").Split(",")(1))
|
|
''GroupBox3.Location = New Point(ini.Read(Secname, "GroupBox3loc", "11,368").Split(",")(0), ini.Read(Secname, "GroupBox3loc", "11,368").Split(",")(1))
|
|
'GroupBox3.Size = New Size(ini.Read(Secname, "GroupBox3size", "246,78").Split(",")(0), ini.Read(Secname, "GroupBox3size", "246,78").Split(",")(1))
|
|
'GroupBox2.Location = New Point(ini.Read(Secname, "GroupBox2loc", "11,170").Split(",")(0), ini.Read(Secname, "GroupBox2loc", "11,170").Split(",")(1))
|
|
'GroupBox2.Size = New Size(ini.Read(Secname, "GroupBox2size", "245,192").Split(",")(0), ini.Read(Secname, "GroupBox2size", "245,192").Split(",")(1))
|
|
'cmb_style.Location = New Point(ini.Read(Secname, "cmb_styleloc", "11,18").Split(",")(0), ini.Read(Secname, "cmb_styleloc", "11,18").Split(",")(1))
|
|
'cmb_style.Size = New Size(ini.Read(Secname, "cmb_stylesize", "245,146").Split(",")(0), ini.Read(Secname, "cmb_stylesize", "245,146").Split(",")(1))
|
|
' ToolStrip2.Location = New Point(ini.Read(Secname, "ToolStrip2loc", "3,451").Split(",")(0), ini.Read(Secname, "ToolStrip2loc", "3,451").Split(",")(1))
|
|
Me.Size = New Size(ini.Read(Secname, "mesize", "588,632").Split(",")(0), ini.Read(Secname, "mesize", "588,632").Split(",")(1))
|
|
Else
|
|
Me.pDoc.DefaultPageSettings.Landscape = True
|
|
'TableLayoutPanel1.Location = New Point(ini.Read(Secname, "tablelayoutpanel1loc", "0,31").Split(",")(0), ini.Read(Secname, "tablelayoutpanel1loc", "0,31").Split(",")(1))
|
|
'TableLayoutPanel1.Size = New Size(ini.Read(Secname, "tablelayoutpanel1size", "710,292").Split(",")(0), ini.Read(Secname, "tablelayoutpanel1size", "710,292").Split(",")(1))
|
|
PictureBox1.Location = New Point(ini.Read(Secname, "PictureBox1loc", "325,3").Split(",")(0), ini.Read(Secname, "PictureBox1loc", "325,3").Split(",")(1))
|
|
PictureBox1.Size = New Size(ini.Read(Secname, "PictureBox1size", "355,200").Split(",")(0), ini.Read(Secname, "PictureBox1size", "355,200").Split(",")(1))
|
|
'TabControl1.Location = New Point(ini.Read(Secname, "TabControl1loc", "3,326").Split(",")(0), ini.Read(Secname, "TabControl1loc", "3,326").Split(",")(1))
|
|
'TabControl1.Size = New Size(ini.Read(Secname, "TabControl1size", "711,228").Split(",")(0), ini.Read(Secname, "TabControl1size", "711,228").Split(",")(1))
|
|
''GroupBox3.Location = New Point(ini.Read(Secname, "GroupBox3loc", "513,6").Split(",")(0), ini.Read(Secname, "GroupBox3loc", "513,6").Split(",")(1))
|
|
'GroupBox3.Size = New Size(ini.Read(Secname, "GroupBox3size", "184,78").Split(",")(0), ini.Read(Secname, "GroupBox3size", "184,78").Split(",")(1))
|
|
'GroupBox2.Location = New Point(ini.Read(Secname, "GroupBox2loc", "262,6").Split(",")(0), ini.Read(Secname, "GroupBox2loc", "262,6").Split(",")(1))
|
|
'GroupBox2.Size = New Size(ini.Read(Secname, "GroupBox2size", "245,192").Split(",")(0), ini.Read(Secname, "GroupBox2size", "245,192").Split(",")(1))
|
|
'cmb_style.Location = New Point(ini.Read(Secname, "cmb_styleloc", "11,18").Split(",")(0), ini.Read(Secname, "cmb_styleloc", "11,18").Split(",")(1))
|
|
'cmb_style.Size = New Size(ini.Read(Secname, "cmb_stylesize", "245,139").Split(",")(0), ini.Read(Secname, "cmb_stylesize", "245,139").Split(",")(1))
|
|
' ToolStrip2.Location = New Point(ini.Read(Secname, "ToolStrip2loc", "3,159").Split(",")(0), ini.Read(Secname, "ToolStrip2loc", "3,159").Split(",")(1))
|
|
Me.Size = New Size(ini.Read(Secname, "mesize", "730,643").Split(",")(0), ini.Read(Secname, "mesize", "730,643").Split(",")(1))
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub cmb_controls_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
'//개체가 선택되면 해당 개체의 내역을 보여준다.
|
|
'Me.Timer1.Enabled = False
|
|
Arin.WLog2(Auto_Log, "개체목록 콤보박스에서 특정 개체가 선택되었다 view property 호출", LogFile)
|
|
|
|
End Sub
|
|
|
|
|
|
Public Sub CtrSize(ByVal vertical As Boolean, ByVal offset As Short)
|
|
If SelCon Is Nothing OrElse SelCon.Count < 1 Then Exit Sub
|
|
|
|
For Each sender As MyControlOLEDBv2.MyLabel In SelCon
|
|
If vertical Then '//상하
|
|
If My.Computer.Keyboard.AltKeyDown Then
|
|
If offset < 0 Then
|
|
sender.장높이 -= 1
|
|
Else
|
|
sender.장높이 += 1
|
|
End If
|
|
ElseIf My.Computer.Keyboard.CtrlKeyDown Then
|
|
If offset < 0 Then
|
|
sender.장높이 -= 10
|
|
Else
|
|
sender.장높이 += 10
|
|
End If
|
|
Else
|
|
sender.장높이 += offset
|
|
End If
|
|
Else '//좌우
|
|
If My.Computer.Keyboard.AltKeyDown Then
|
|
If offset < 0 Then
|
|
sender.장평 -= 1
|
|
Else
|
|
sender.장평 += 1
|
|
End If
|
|
ElseIf My.Computer.Keyboard.CtrlKeyDown Then
|
|
If offset < 0 Then
|
|
sender.장평 -= 10
|
|
Else
|
|
sender.장평 += 10
|
|
End If
|
|
Else
|
|
sender.장평 += offset
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
Me.preview_window()
|
|
End Sub
|
|
Public Sub LOAD_STYLEC(ByVal StyleName As String, ByVal Div As String)
|
|
'//기타스타일은 빈도가 적으니 파일에서 불러오기로한다.;;메모리는 싫타.
|
|
Dim Arinini As New MyINI(FileC)
|
|
If Not IO.File.Exists(FileC) Then
|
|
MSG("기타스타일설정 파일이 존재하지 않습니다\n\n관리자에 문의하세요", MsgBoxStyle.Critical, "오류")
|
|
Return
|
|
End If
|
|
Dim pos(), font(), visible As String '//구전산번호를 구현해본다.
|
|
Dim Tobj As MyControlOLEDBv2.MyLabel
|
|
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
|
|
Tobj = Me.AllLabels(i).ctl
|
|
Try
|
|
If Div.ToUpper = "Z" Then '//모든아이템을 가져오고
|
|
pos = Arinini.Read(StyleName, Tobj.Name & "pos").Split(",")
|
|
font = Arinini.Read(StyleName, Tobj.Name & "font").Trim(Chr(0)).Split(",")
|
|
visible = Arinini.Read(StyleName, Tobj.Name & "visible")
|
|
'//상태를 읽어서 바로 적용한다.
|
|
Tobj.Location = New Point(pos(0), pos(1))
|
|
Tobj.Size = New Size(pos(2), pos(3))
|
|
Tobj.MyFont = New Font(font(0), font(1), IIf(font(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
Tobj.장평 = font(5)
|
|
Tobj.장높이 = font(6)
|
|
Tobj.공백 = Arinini.Read(StyleName, Tobj.Name & "space", 0)
|
|
Tobj.Visible = CType(visible, Boolean)
|
|
Else '이곳에 O가올것이다.
|
|
If Tobj.Name.ToUpper.Substring(0, 1) = Div Then
|
|
pos = Arinini.Read(StyleName, Tobj.Name & "pos").Split(",")
|
|
font = Arinini.Read(StyleName, Tobj.Name & "font").Trim(Chr(0)).Split(",")
|
|
visible = Arinini.Read(StyleName, Tobj.Name & "visible")
|
|
'//상태를 읽어서 바로 적용한다.
|
|
Tobj.Location = New Point(pos(0), pos(1))
|
|
Tobj.Size = New Size(pos(2), pos(3))
|
|
Tobj.MyFont = New Font(font(0), font(1), IIf(font(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
Tobj.장평 = font(5)
|
|
Tobj.장높이 = font(6)
|
|
Tobj.공백 = Arinini.Read(StyleName, Tobj.Name & "space", 0)
|
|
Tobj.Visible = CType(visible, Boolean)
|
|
End If
|
|
End If
|
|
Catch ex As Exception
|
|
Arin.WLog2(Auto_Log, "LOAD_STYLE_CUSTOM 오류:" & ex.Message.ToString, "LOAD_STYLEC")
|
|
End Try
|
|
Next
|
|
NOTICE(StyleName & "기타스타일을 불러왔습니다.", Me.lb_msg)
|
|
Me.preview_window()
|
|
End Sub
|
|
Public Sub SAVE_STYLEC(ByVal stylename As String, ByVal div As String) '//기타스타일 저장한다.
|
|
Dim Arinini As New MyINI(FileC)
|
|
'//현재 선택된 스타일을 저장합니다.
|
|
Arinini.Write(stylename, "DESC", stylename)
|
|
Dim Tobj As MyControlOLEDBv2.MyLabel
|
|
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
|
|
Tobj = Me.AllLabels(i).ctl
|
|
Arinini.Write(stylename, Tobj.Name & "pos", Tobj.Left & "," & Tobj.Top & "," & Tobj.Width & "," & Tobj.Height)
|
|
Arinini.Write(stylename, Tobj.Name & "font", Tobj.MyFont.Name & "," & Tobj.MyFont.Size & "," & Tobj.MyFont.Underline & "," & Tobj.MyFont.Bold & "," & Tobj.MyFont.Italic & "," & Tobj.장평 & "," & Tobj.장높이)
|
|
Arinini.Write(stylename, Tobj.Name & "visible", Tobj.Visible)
|
|
Arinini.Write(stylename, Tobj.Name & "space", Tobj.공백)
|
|
Next
|
|
NOTICE("기타스타일을 저장했습니다", Me.lb_msg)
|
|
End Sub
|
|
Private Sub Button30_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrSize(False, -5)
|
|
End Sub
|
|
Private Sub Button29_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrSize(False, 5)
|
|
End Sub
|
|
Private Sub Button32_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrSize(True, -5)
|
|
End Sub
|
|
Private Sub Button31_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrSize(True, 5)
|
|
End Sub
|
|
Private Sub Button7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrPos(False, -5)
|
|
End Sub
|
|
Private Sub Button6_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrPos(False, 5)
|
|
End Sub
|
|
Private Sub Button27_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrPos(True, -5)
|
|
End Sub
|
|
Private Sub Button26_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.CtrPos(True, 5)
|
|
End Sub
|
|
Private Sub BindingNavigatorPositionItem_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles BindingNavigatorPositionItem.KeyUp
|
|
'//현재위치에서 엔터켯을경우 데이터베이스 위치값을 변경한다.(position)
|
|
If e.KeyCode = Keys.Enter Then
|
|
If IsNumeric(Me.BindingNavigatorPositionItem.Text) Then Me.GeTviewData(Me.BindingNavigatorPositionItem.Text - 1, True)
|
|
End If
|
|
End Sub
|
|
'Private Sub NPartternCheck()
|
|
' Dim 번호패턴검사 As Integer = 0
|
|
|
|
' '//패턴검사시작
|
|
' ' Me.PictureBox1.Image = Image.FromFile(My.Application.Info.DirectoryPath & "\image\start.png")
|
|
|
|
|
|
' Dim endcnt As Integer = Me.textbox2.Text
|
|
|
|
' For i As Integer = Me.textbox1.Text To Me.textbox2.Text
|
|
' ' If chkFlag Then Exit For
|
|
' showcnt(i, endcnt, "패턴검사중")
|
|
' Me.textbox1.Text = i
|
|
' 번호패턴검사 = ChkNumPattern(i)
|
|
' ' MsgBox(번호패턴검사)
|
|
|
|
' If 번호패턴검사 = 0 Then '1은 길이패턴이 없고 3이나 2는 문자패턴이다
|
|
' NOTICE("일련번호=" & i + 1 & "번 문자,길이 패턴이 존재하지 않습니다", Me.lb_msg)
|
|
' My.Computer.Audio.Play(My.Application.Info.DirectoryPath & "\sound\ding.wav", AudioPlayMode.Background)
|
|
' 'If MsgBox("Sdf", MsgBoxStyle.OkCancel) = MsgBoxResult.Ok Then
|
|
' Me.BindingSource1.Position = i
|
|
' Exit For
|
|
' End If
|
|
' Next
|
|
' If Me.textbox1.Text = Me.textbox2.Text Then '//완료되었다면
|
|
' My.Computer.Audio.Play(My.Application.Info.DirectoryPath & "\sound\notify.wav", AudioPlayMode.Background)
|
|
' NOTICE("패턴검사가 완료되었습니다", Me.lb_msg)
|
|
' End If
|
|
' Me.bt_chkpattern.Text = "시작(&S)"
|
|
'End Sub
|
|
Private Sub showcnt(ByVal cnt1 As Integer, ByVal cnt2 As Integer, Optional ByVal tag As String = "")
|
|
Me.lb_msg.Text = cnt1 & "/" & cnt2 & Space(1) & tag
|
|
My.Application.DoEvents()
|
|
End Sub
|
|
|
|
|
|
Private Sub cmb_landscape_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs)
|
|
Me.SaveReadLayOut(True)
|
|
End Sub
|
|
|
|
Private Sub printform_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
|
|
If e.Delta < 0 Then
|
|
'If Me.BindingNavigatorPositionItem.Text < Me.BindingNavigatorCountItem.Text Then
|
|
Me.BindingNavigatorMoveNextItem.PerformClick()
|
|
Me.BindingNavigatorPositionItem.Focus()
|
|
'End If
|
|
Else
|
|
If Me.BindingNavigatorPositionItem.Text > 0 Then
|
|
Me.BindingNavigatorMovePreviousItem.PerformClick()
|
|
Me.BindingNavigatorPositionItem.Focus()
|
|
End If
|
|
End If
|
|
End Sub
|
|
|
|
|
|
|
|
Public Sub preview_window() '//미리보기화면을 생성합니다.
|
|
|
|
Dim MyFont As Font
|
|
Dim NewFontSize As Int16 = 10
|
|
Dim dummy As Boolean = False '//이값이 true 이면 출력시 변위를 지정해서 출력한다.
|
|
Dim BackScr As New Bitmap(Me.PictureBox1.Width, Me.PictureBox1.Height, Me.PictureBox1.CreateGraphics)
|
|
Dim Ga As Graphics = Graphics.FromImage(BackScr)
|
|
Dim Brush As SolidBrush
|
|
Dim obj As MyControlOLEDBv2.MyLabel
|
|
|
|
|
|
'페이지 구분을 이해하고 몇개를 찍을지 결정한다.
|
|
'Debug.Print("프린터인덱스=" & Me.printindex)
|
|
'Debug.Print("프린터배열=" & Me.PrintArray.GetUpperBound(0))
|
|
|
|
' If Me.printindex <> -1 Then Me.GeTviewData(Me.PrintArray(Me.printindex)) '//페이지를 갱신하고 출력을 시작한다.
|
|
'Dummyflag: '//--2장출력일경우 이부분에서 다시 시작한다.
|
|
|
|
'If Not Me.PictureBox1.BackgroundImage Is Nothing Then
|
|
' Ga.DrawImage(Me.PictureBox1.BackgroundImage, 0, 0, Me.PictureBox1.Width, Me.PictureBox1.Height)
|
|
' End If
|
|
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0) '//모든 개체들에 대해서 인쇄를 설정한다.
|
|
obj = Me.AllLabels(i).ctl
|
|
If obj.Visible AndAlso obj.MyText <> "" Then '//화면에 보이는것만 한다.
|
|
NewFontSize = obj.MyFont.Size + SetForm.tb_myfontsize.Text
|
|
If NewFontSize < 0 Then NewFontSize = 0
|
|
Brush = New SolidBrush(obj.MyForeColor) '//전경색으로 브러쉬를 만든다.
|
|
|
|
MyFont = New Font(obj.MyFont.FontFamily, NewFontSize, obj.MyFont.Style)
|
|
If obj.장평 = 100 AndAlso obj.장높이 = 100 Then '//장평미사용 문자열 처리
|
|
'Ga.RotateTransform(45)
|
|
Ga.DrawString(obj.최종문자, MyFont, Brush, obj.Location)
|
|
Else '//장평사용 이미지 처리
|
|
Dim NewX, Newy As Integer
|
|
Dim SrcDpix, SrcDPiY As Single
|
|
'MsgBox(Tobj.장높이)
|
|
SrcDpix = obj.CreateGraphics.DpiX
|
|
SrcDPiY = obj.CreateGraphics.DpiY
|
|
|
|
NewX = obj.GetSize(MyFont).Width * (obj.장평 / 100) * (Ga.DpiX / SrcDpix)
|
|
Newy = obj.GetSize(MyFont).Height * (obj.장높이 / 100) * (Ga.DpiY / SrcDPiY)
|
|
|
|
Dim BMP As New Bitmap(NewX, Newy, Ga)
|
|
Dim G As Graphics = Graphics.FromImage(BMP)
|
|
|
|
G.ResetTransform()
|
|
G.ScaleTransform((obj.장평 / 100), (obj.장높이 / 100))
|
|
G.DrawString(obj.최종문자, MyFont, Brush, 0, 0)
|
|
G.Dispose()
|
|
Ga.DrawImage(BMP, New Point(obj.Left, obj.Top)) ', CInt(GetSize.Width * (v장평 / 100)), GetSize.Height)
|
|
'Ga.RotateTransform(20
|
|
|
|
|
|
|
|
End If
|
|
End If
|
|
Next
|
|
|
|
If SetForm.cb_dummy.Checked Then '//복사가 선택되어있으며 ㄴ한번더 출력한다.
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0) '//모든 개체들에 대해서 인쇄를 설정한다.
|
|
obj = Me.AllLabels(i).ctl
|
|
If obj.Visible AndAlso obj.MyText <> "" Then '//화면에 보이는것만 한다.
|
|
NewFontSize = obj.MyFont.Size + SetForm.tb_myfontsize.Text
|
|
If NewFontSize < 0 Then NewFontSize = 0
|
|
Brush = New SolidBrush(obj.MyForeColor) '//전경색으로 브러쉬를 만든다.
|
|
|
|
MyFont = New Font(obj.MyFont.FontFamily, NewFontSize, obj.MyFont.Style)
|
|
If obj.장평 = 100 AndAlso obj.장높이 = 100 Then '//장평미사용 문자열 처리
|
|
Ga.DrawString(obj.최종문자, MyFont, Brushes.Gray, (obj.Left + SetForm.tb_secx.Text), (obj.Top + SetForm.tb_secy.Text))
|
|
Else '//장평사용 이미지 처리
|
|
Dim NewX, Newy As Integer
|
|
Dim SrcDpix, SrcDPiY As Single
|
|
'MsgBox(Tobj.장높이)
|
|
SrcDpix = obj.CreateGraphics.DpiX
|
|
SrcDPiY = obj.CreateGraphics.DpiY
|
|
|
|
NewX = obj.GetSize(MyFont).Width * (obj.장평 / 100) * (Ga.DpiX / SrcDpix)
|
|
Newy = obj.GetSize(MyFont).Height * (obj.장높이 / 100) * (Ga.DpiY / SrcDPiY)
|
|
Dim BMP As New Bitmap(NewX, Newy, Ga)
|
|
Dim G As Graphics = Graphics.FromImage(BMP)
|
|
|
|
G.ResetTransform()
|
|
G.ScaleTransform((obj.장평 / 100), (obj.장높이 / 100))
|
|
G.DrawString(obj.최종문자, MyFont, Brushes.Gray, 0, 0)
|
|
G.Dispose()
|
|
Ga.DrawImage(BMP, CSng(obj.Left + SetForm.tb_secx.Text), CSng(obj.Top + SetForm.tb_secy.Text)) ', CInt(GetSize.Width * (v장평 / 100)), GetSize.Height)
|
|
End If
|
|
End If
|
|
Next
|
|
End If
|
|
Ga.Dispose()
|
|
Me.PictureBox1.Image = BackScr
|
|
End Sub
|
|
|
|
Private Sub BindingSource1_PositionChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles BindingSource1.PositionChanged
|
|
'MsgBox("BindingSource1_PositionChanged=" & Now.ToString & "current=" & Me.BindingNavigatorPositionItem.Text & "mnoview=" & NoView)
|
|
Debug.Print("BindingSource1_PositionChanged : " & Me.BindingSource1.Position)
|
|
Debug.Print("스크롤바값 범위값 " & Me.VScrollBar1.Minimum & "/" & Me.VScrollBar1.Maximum)
|
|
If Me.BindingSource1.Position >= 0 Then Me.VScrollBar1.Value = Me.BindingSource1.Position
|
|
If Me.NoView Then
|
|
Me.NoView = False
|
|
Else
|
|
Me.GeTviewData(Me.BindingNavigatorPositionItem.Text - 1, True)
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub VScrollBar1_Scroll(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ScrollEventArgs) Handles VScrollBar1.Scroll
|
|
Debug.Print("Scroll Old:" & e.OldValue & "/ New :" & e.NewValue & "/ Current : " & Me.VScrollBar1.Value)
|
|
Debug.Print("스크롤바값 범위값 " & Me.VScrollBar1.Minimum & "/" & Me.VScrollBar1.Maximum)
|
|
If e.NewValue > 0 Then
|
|
Me.BindingSource1.Position = e.NewValue
|
|
Else
|
|
Debug.Print("스크롤바value값이 0보다 작습니다. 소스의 위치를 0으로 설정합니다")
|
|
Me.BindingSource1.Position = 0
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub PictureBox1_MouseClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseClick
|
|
Dim Tobj As MyControlOLEDBv2.MyLabel
|
|
Dim selitem As New ArrayList
|
|
|
|
Tobj = Nothing
|
|
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
|
|
If Me.AllLabels(i).ctl.Visible AndAlso Me.AllLabels(i).ctl.MyText <> "" AndAlso _
|
|
((e.X >= Me.AllLabels(i).ctl.Left) And e.X <= (Me.AllLabels(i).ctl.Left + Me.AllLabels(i).ctl.GetSize.Width)) _
|
|
AndAlso ((e.Y >= Me.AllLabels(i).ctl.Top) AndAlso (e.Y <= (Me.AllLabels(i).ctl.Top + Me.AllLabels(i).ctl.GetSize.Height))) Then
|
|
Tobj = Me.AllLabels(i).ctl
|
|
selitem.Add(Me.AllLabels(i).ctl)
|
|
'Exit For
|
|
End If
|
|
Next
|
|
|
|
If Tobj Is Nothing Then Return '//선택된게 없으면 날린다
|
|
|
|
'If Me.chk_multisel.Checked Then '//다중목록에서 선택시가 체크되어있으면 목록을 표시해준다.
|
|
If selitem.Count > 1 Then
|
|
Dim A As New selitem
|
|
For si As Short = 1 To selitem.Count
|
|
A.ListBox1.Items.Add(CType(selitem.Item(si - 1), MyControlOLEDBv2.MyLabel).설명)
|
|
Next
|
|
If A.ShowDialog() = Windows.Forms.DialogResult.OK Then
|
|
Tobj = selitem.Item(A.ListBox1.SelectedIndex)
|
|
Else '//캔슬시에는 첫번째 아템으로 한다.
|
|
Tobj = selitem.Item(0)
|
|
End If
|
|
End If
|
|
'End If
|
|
|
|
Dim Exist As Boolean = False '//선택개체에 존재여부
|
|
If SelCon Is Nothing Then
|
|
SelCon.Add(Tobj)
|
|
Else
|
|
If e.Button = Windows.Forms.MouseButtons.Right Then
|
|
For Each obj As MyControlOLEDBv2.MyLabel In SelCon
|
|
If obj.Name = Tobj.Name Then '//삭제된다.
|
|
obj.MyForeColor = Color.Black
|
|
SelCon.Remove(obj)
|
|
Exist = True
|
|
Exit For
|
|
End If
|
|
Next
|
|
If Exist = False Then
|
|
SelCon.Add(Tobj)
|
|
Tobj.MyForeColor = Color.Tomato
|
|
End If
|
|
ElseIf e.Button = Windows.Forms.MouseButtons.Left Then '왼쪽클리이면 지우고 다시 셋팅
|
|
For Each SC As MyControlOLEDBv2.MyLabel In SelCon
|
|
SC.MyForeColor = Color.Black
|
|
Next
|
|
SelCon.Clear()
|
|
SelCon.Add(Tobj)
|
|
Tobj.MyForeColor = Color.DodgerBlue
|
|
|
|
If My.Computer.Keyboard.CtrlKeyDown Then '//컨트롤이 눌러졋으면 해당 그룹을 전부 찾는다.
|
|
'MsgBox(Tobj.Name)
|
|
SelCon.Clear()
|
|
For z As Short = 0 To Me.AllLabels.GetUpperBound(0)
|
|
If Me.AllLabels(z).ctl.Name.Substring(0, 1) = Tobj.Name.Substring(0, 1) Then
|
|
Me.AllLabels(z).ctl.MyForeColor = Color.Blue
|
|
SelCon.Add(Me.AllLabels(z).ctl)
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
Else '//가운데버튼이다. 가운데는 폰트변경으로한다.
|
|
SetForm.bt_fontchange.PerformClick()
|
|
End If
|
|
End If
|
|
|
|
SetForm.cmb_controls.Text = Tobj.설명
|
|
SetForm.ViewProperty(Tobj)
|
|
|
|
Me.preview_window()
|
|
End Sub
|
|
|
|
Private Sub PictureBox1_MouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDoubleClick
|
|
Dim Tobj As MyControlOLEDBv2.MyLabel
|
|
Tobj = Nothing
|
|
|
|
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0)
|
|
If Me.AllLabels(i).ctl.Visible AndAlso Me.AllLabels(i).ctl.MyText <> "" AndAlso _
|
|
((e.X >= Me.AllLabels(i).ctl.Left) And e.X <= (Me.AllLabels(i).ctl.Left + Me.AllLabels(i).ctl.GetSize.Width)) _
|
|
AndAlso ((e.Y >= Me.AllLabels(i).ctl.Top) AndAlso (e.Y <= (Me.AllLabels(i).ctl.Top + Me.AllLabels(i).ctl.GetSize.Height))) Then
|
|
Tobj = Me.AllLabels(i).ctl
|
|
Exit For
|
|
End If
|
|
Next
|
|
|
|
If Tobj Is Nothing Then Return '//선택된게 없으면 날린다
|
|
|
|
Dim Msg As New System.Text.StringBuilder("변경할 값을 입력하세요")
|
|
Msg.AppendLine("줄바꿈을하려면 \n 을 입력하세요")
|
|
Msg.AppendLine("예) 세로로 12를 출력하려면 1\n2 을 입력하세요")
|
|
Msg.AppendLine()
|
|
Msg.AppendLine("변경한 값은 현재페이지에만 적용됩니다")
|
|
|
|
|
|
Dim Val As String = InputBox(Msg.ToString, "변경", Tobj.MyText)
|
|
If Val = "" Then Return
|
|
Val = Val.Replace("\n", vbCrLf)
|
|
Tobj.MyText = Val
|
|
|
|
Me.preview_window()
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
Private Sub 길이패턴연습(ByVal srcstr As String, ByVal pname As String, ByVal log As String, ByVal loadStyle As String, ByVal S라벨() As MyControlOLEDBv2.MyLabel)
|
|
Dim Wlen As Short = srcstr.Length : If Wlen <= 0 Then Return '//없는 글귀가 왓을때 턴해버린다.
|
|
Dim SepPos As Short = srcstr.IndexOf(";")
|
|
Dim DR() As DataRow
|
|
Dim CTLPOS() As String
|
|
Dim CTLFONT() As String
|
|
Dim CTLVISIBLE As Boolean
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & "DESC'")
|
|
If DR.GetUpperBound(0) = 0 Then '//길이패턴이 있으면
|
|
Arin.WLog2(Auto_Log, "길이패턴 검색 길이=" & Wlen & " 구분자위치=" & SepPos & " 미들네임=" & pname, log)
|
|
For Each C As MyControlOLEDBv2.MyLabel In S라벨
|
|
Try
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "POS'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
CTLPOS = DR(0)(1).ToString.Split(",")
|
|
C.Location = New Point(CTLPOS(0), CTLPOS(1))
|
|
C.Size = New Size(CTLPOS(2), CTLPOS(3))
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "FONT'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
CTLFONT = DR(0)(1).ToString.Split(",")
|
|
C.MyFont = New Font(CTLFONT(0), CTLFONT(1), IIf(CTLFONT(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
C.장평 = CTLFONT(5)
|
|
C.장높이 = CTLFONT(6)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "VISIBLE'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
CTLVISIBLE = DR(0)(1).ToString
|
|
C.Visible = CType(CTLVISIBLE, Boolean)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "SPACE'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
C.공백 = DR(0)(1).ToString
|
|
End If
|
|
C.Tag = "L"
|
|
Catch ex As Exception
|
|
Arin.WLog2(Auto_Log, "길이패턴오류 길이=" & Wlen & " Message=" & ex.Message.ToString, log)
|
|
End Try
|
|
Next
|
|
Else
|
|
Arin.WLog2(Auto_Log, "길이패턴불일치 기본스타일 복원 길이=" & Wlen & " 문자열=" & srcstr, log)
|
|
Me.LOAD_STYLE(loadStyle) '//패턴이 존재하지 않을경우 S스타일을 초기화합니다(이전 패턴타입을 초기화하는것이다)
|
|
End If
|
|
End Sub
|
|
Private Sub 문자패턴연습(ByVal srcstr As String, ByVal pname As String, ByVal log As String, ByVal S라벨() As MyControlOLEDBv2.MyLabel)
|
|
Dim Wlen As Short = srcstr.Length : If Wlen <= 0 Then Return '//없는 글귀가 왓을때 턴해버린다.
|
|
Dim SepPos As Short = srcstr.IndexOf(";")
|
|
Dim DR() As DataRow
|
|
Dim CTLPOS() As String
|
|
Dim CTLFONT() As String
|
|
Dim CTLVISIBLE As Boolean
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & "DESC'")
|
|
If DR.GetUpperBound(0) = 0 Then '//길이패턴이 있으면
|
|
Arin.WLog2(Auto_Log, "문자패턴 검색 길이=" & Wlen & " 구분자위치=" & SepPos & " 미들네임=" & pname, log)
|
|
For Each C As MyControlOLEDBv2.MyLabel In S라벨
|
|
Try
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "POS'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
CTLPOS = DR(0)(1).ToString.Split(",")
|
|
C.Location = New Point(CTLPOS(0), CTLPOS(1))
|
|
C.Size = New Size(CTLPOS(2), CTLPOS(3))
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "FONT'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
CTLFONT = DR(0)(1).ToString.Split(",")
|
|
C.MyFont = New Font(CTLFONT(0), CTLFONT(1), IIf(CTLFONT(3).ToUpper = "TRUE", FontStyle.Bold, FontStyle.Regular), GraphicsUnit.Point)
|
|
C.장평 = CTLFONT(5)
|
|
C.장높이 = CTLFONT(6)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "VISIBLE'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
CTLVISIBLE = DR(0)(1).ToString
|
|
C.Visible = CType(CTLVISIBLE, Boolean)
|
|
End If
|
|
|
|
DR = StyleList(SetForm.cmb_style.SelectedIndex).PATTERNTABLE.Select("설명 = '" & pname & C.Name & "SPACE'")
|
|
If DR.GetUpperBound(0) = 0 Then
|
|
C.공백 = DR(0)(1).ToString
|
|
End If
|
|
C.Tag = "L"
|
|
Catch ex As Exception
|
|
Arin.WLog2(Auto_Log, "문자패턴오류 길이=" & Wlen & " Message=" & ex.Message.ToString, log)
|
|
End Try
|
|
Next
|
|
Else
|
|
Arin.WLog2(Auto_Log, "문자패턴불일치 길이=" & Wlen & " 문자열=" & srcstr, log)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub cmb_style_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
'//스타일을 직접 선택햇을때 기본idx값을 0 으로한다.
|
|
' MsgBox("스타일직접선택")
|
|
FirstIdx = 0
|
|
End Sub
|
|
|
|
Private Sub tb_ntype_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_ntype.MouseEnter
|
|
Me.tb_ntype.Focus()
|
|
Me.tb_ntype.SelectAll()
|
|
End Sub
|
|
|
|
|
|
Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click
|
|
If MsgBox("현재 스타일(기본)을 저장하시겠습니까?", MsgBoxStyle.Information + MsgBoxStyle.YesNo, "스타일저장") = MsgBoxResult.Yes Then
|
|
SAVE_STYLE()
|
|
Else
|
|
NOTICE("스타일(기존)저장이 취소되었습니다", Me.lb_msg)
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub BindingNavigatorPositionItem_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles BindingNavigatorPositionItem.MouseEnter
|
|
Me.BindingNavigatorPositionItem.Focus()
|
|
Me.BindingNavigatorPositionItem.SelectAll()
|
|
End Sub
|
|
|
|
Private Sub cm_styleedit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cm_styleedit.Click
|
|
StyleEdit.ListIndex = SetForm.cmb_style.SelectedIndex
|
|
StyleEdit.Path = Me.StyleDir
|
|
StyleEdit.Show()
|
|
End Sub
|
|
|
|
Private Sub bt_canvasD_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles bt_canvasD.MouseDown, bt_canvasL.MouseDown, bt_canvasR.MouseDown, bt_canvasU.MouseDown
|
|
If e.Button = Windows.Forms.MouseButtons.Right Then
|
|
Select Case sender.name.ToString.ToUpper
|
|
Case "BT_CANVASD"
|
|
Me.PictureBox1.Top += 5
|
|
Case "BT_CANVASU"
|
|
Me.PictureBox1.Top -= 5
|
|
Case "BT_CANVASR"
|
|
Me.PictureBox1.Left += 5
|
|
Case "BT_CANVASL"
|
|
Me.PictureBox1.Left -= 5
|
|
End Select
|
|
ElseIf e.Button = Windows.Forms.MouseButtons.Left Then
|
|
|
|
Select Case sender.name.ToString.ToUpper
|
|
Case "BT_CANVASL"
|
|
Me.PictureBox1.Width -= 2
|
|
Case "BT_CANVASR"
|
|
Me.PictureBox1.Width += 2
|
|
Case "BT_CANVASU"
|
|
Me.PictureBox1.Height -= 2
|
|
Case "BT_CANVASD"
|
|
Me.PictureBox1.Height += 2
|
|
End Select
|
|
|
|
ElseIf e.Button = Windows.Forms.MouseButtons.Middle Then
|
|
Select Case sender.name.ToString.ToUpper
|
|
Case "BT_CANVASL"
|
|
Me.Width -= 2
|
|
Case "BT_CANVASR"
|
|
Me.Width += 2
|
|
Case "BT_CANVASU"
|
|
Me.Height -= 2
|
|
Case "BT_CANVASD"
|
|
Me.Height += 2
|
|
End Select
|
|
|
|
|
|
End If
|
|
|
|
End Sub
|
|
|
|
#End Region
|
|
#Region "이곳에서는 사용되지않는 부분"
|
|
|
|
|
|
#End Region
|
|
|
|
Private Sub Printform_Karo_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Move
|
|
If Not SetForm Is Nothing Then
|
|
SetForm.Top = Me.Top
|
|
SetForm.Left = Me.Left + Me.Width + 10
|
|
End If
|
|
End Sub
|
|
|
|
|
|
Private Sub Printform_Karo_Resize(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Resize
|
|
If Not SetForm Is Nothing Then
|
|
SetForm.Top = Me.Top
|
|
SetForm.Left = Me.Left + Me.Width + 10
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_print.Click
|
|
Me.Print()
|
|
End Sub
|
|
|
|
Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_print_preview.Click
|
|
Me.Print_Preview()
|
|
End Sub
|
|
End Class
|
|
|
|
|