initial commit
스타일 숨김/표시 처리 기능 추가됨
This commit is contained in:
420
C_Epole.vb
Normal file
420
C_Epole.vb
Normal file
@@ -0,0 +1,420 @@
|
||||
Imports System
|
||||
Public Class C_Epole
|
||||
'Structure Str_Alllabels '레이블들을 저장한다.
|
||||
' Dim ctl As CEpole.C_label
|
||||
' Dim desc As String
|
||||
'End Structure
|
||||
Enum E_DesignMode
|
||||
Shape = 1
|
||||
Text = 0
|
||||
End Enum
|
||||
|
||||
Enum E_PatternType
|
||||
None = 0
|
||||
Length = 1
|
||||
Character = 2
|
||||
End Enum
|
||||
Enum E_LineType
|
||||
Union = 0
|
||||
Separate = 1
|
||||
sum = 2
|
||||
None = -1
|
||||
End Enum
|
||||
Enum E_PaperOrient
|
||||
세로 = 0
|
||||
가로 = 1
|
||||
End Enum
|
||||
Enum E_useNotUse
|
||||
사용 = 1
|
||||
사용안함 = 0
|
||||
End Enum
|
||||
Enum E_Dummytype
|
||||
현재복사 = 0
|
||||
다음출력 = 1
|
||||
End Enum
|
||||
|
||||
|
||||
Public Enum EQR_Incoding
|
||||
AlphaNumeric
|
||||
Numeric
|
||||
[Byte]
|
||||
End Enum
|
||||
|
||||
Public Enum EQR_Version
|
||||
v1
|
||||
v2
|
||||
v3
|
||||
v4
|
||||
v5
|
||||
v6
|
||||
v7
|
||||
v8
|
||||
v9
|
||||
v10
|
||||
v11
|
||||
v12
|
||||
v13
|
||||
v14
|
||||
v15
|
||||
v16
|
||||
v17
|
||||
v18
|
||||
v19
|
||||
v20
|
||||
v21
|
||||
v22
|
||||
v23
|
||||
v24
|
||||
v25
|
||||
v26
|
||||
v27
|
||||
v28
|
||||
v29
|
||||
v30
|
||||
v31
|
||||
v32
|
||||
v33
|
||||
v34
|
||||
v35
|
||||
v36
|
||||
v37
|
||||
v38
|
||||
v39
|
||||
v40
|
||||
End Enum
|
||||
|
||||
Public Enum EQR_CLEVE
|
||||
L
|
||||
M
|
||||
Q
|
||||
H
|
||||
End Enum
|
||||
|
||||
Structure S_FullLable
|
||||
Dim Desc As String '//레이블의설명
|
||||
Dim Si As Short '//레이블의 시작인덱스 alllabels 의 오프셋이다.
|
||||
Dim Ei As Short '//레이블의 종료인덱스 alllabels 의 오프셋이다.
|
||||
Dim text As String '//전체문자열이 들어있음
|
||||
Dim Pattern As String '//패턴네임을 적는다.
|
||||
Dim Tag As String '//개체태그입력
|
||||
Dim LineType As E_LineType '//0혼함 1분리 2통합
|
||||
Dim NumType As String '//번호형식 9,9,9 의 형식을 보통띈다.
|
||||
Dim LineMaxChar As Short '//한줄에 최대몇자를 기본으로할때 혼합시 줄의 갯수에 사용한다.
|
||||
Dim ApplyPattern As E_PatternType '//0없음 1길이 2문자
|
||||
Dim Moved As Boolean '//이동했는지
|
||||
Dim CheckBox As Windows.Forms.ToolStripMenuItem '//이것과 연계된 체크박스
|
||||
' Dim SeparatePattern As Boolean '//개별문자에대한 패턴을 적용할지 여부
|
||||
Dim Fixed As Boolean '//고정문자열이있는지
|
||||
End Structure
|
||||
|
||||
Structure SStyle
|
||||
Dim Desc As String
|
||||
Dim File As String
|
||||
Dim Backimg As String
|
||||
Dim MarginX As Integer
|
||||
Dim MarginY As Integer
|
||||
Dim ScaleX As Single
|
||||
Dim ScaleY As Single
|
||||
Dim PrintFontOffset As Integer
|
||||
Dim Viewimage As Boolean
|
||||
Dim LandScape As Boolean
|
||||
|
||||
Dim Dummy As Boolean
|
||||
Dim DummyCnt As Short
|
||||
Dim Dummytype As Short
|
||||
Dim dummmyx As Short
|
||||
Dim dummmyy As Short
|
||||
|
||||
Dim visible As Boolean '//190223
|
||||
Dim RowDivCnt As Short '170715
|
||||
Dim rowdivx As Short
|
||||
Dim rowdivy As Short
|
||||
Dim DrawItemRepeat As Boolean
|
||||
|
||||
Dim picstyle As Short
|
||||
Dim CanvasX As Integer
|
||||
Dim CanvasY As Integer
|
||||
Dim Filter As String
|
||||
Dim PATTERNTABLE As DataTable
|
||||
Dim FixedStyle As Boolean
|
||||
Dim PrintRange As String
|
||||
End Structure
|
||||
|
||||
Structure SCStyle
|
||||
Dim Margin As System.Drawing.Point '//인쇄여백
|
||||
Dim Scale As System.Drawing.Point '//인쇄확대비율
|
||||
Dim Orient As E_PaperOrient '//종이방향
|
||||
Dim DummyMargin As System.Drawing.Point
|
||||
Dim Dummy As E_useNotUse
|
||||
Dim UseBG As E_useNotUse
|
||||
Dim PrnBG As E_useNotUse
|
||||
Dim Dummytype As E_Dummytype '//현재복사,다음출력
|
||||
End Structure
|
||||
|
||||
Enum e_EventMessage
|
||||
Normal = 0
|
||||
Parse = 1
|
||||
End Enum
|
||||
Enum E_PrintRange
|
||||
All = 0
|
||||
Current = 1
|
||||
Custom = 2
|
||||
FixedStyle = 3
|
||||
End Enum
|
||||
Enum E_DrawType
|
||||
Box = 0
|
||||
Line = 1
|
||||
End Enum
|
||||
Structure S_Line
|
||||
Dim X As Single
|
||||
Dim Y As Single
|
||||
Dim X2 As Single
|
||||
Dim Y2 As Single
|
||||
Dim PenColor As Drawing.Color
|
||||
Dim PenWidth As Single
|
||||
End Structure
|
||||
Structure S_Box
|
||||
Dim X As Single
|
||||
Dim Y As Single
|
||||
Dim Width As Single
|
||||
Dim Height As Single
|
||||
Dim PenColor As Drawing.Color
|
||||
Dim PenWidth As Single
|
||||
Dim Radius As Single '//휘어짐수치
|
||||
End Structure
|
||||
Structure S_Circle
|
||||
Dim X As Single
|
||||
Dim Y As Single
|
||||
Dim Width As Single
|
||||
Dim Height As Single
|
||||
Dim PenColor As Drawing.Color
|
||||
Dim PenWidth As Single
|
||||
'Dim Radius As Single '//휘어짐수치
|
||||
End Structure
|
||||
Structure S_Image
|
||||
Dim X As Single
|
||||
Dim Y As Single
|
||||
Dim Width As Single
|
||||
Dim Height As Single
|
||||
Dim FileName As String
|
||||
End Structure
|
||||
|
||||
Structure S_QRCode
|
||||
Dim X As Single
|
||||
Dim Y As Single
|
||||
Dim Width As Single
|
||||
Dim Height As Single
|
||||
Dim QRData As String '//표시하고자하는 데이터를 표시 {필드명} 으로 대체가능
|
||||
Dim Encoding As Integer
|
||||
Dim Version As Integer
|
||||
Dim CLeve As Integer
|
||||
Dim Size As Integer
|
||||
Dim Format As String '//출력포맷
|
||||
Dim fColor As System.Drawing.Color
|
||||
Dim bColor As System.Drawing.Color
|
||||
End Structure
|
||||
|
||||
Structure S_DrawShape
|
||||
Dim DrawType As E_DrawType
|
||||
Dim DrawObject As Object
|
||||
Public Sub New(ByVal DT As E_DrawType, ByVal Obj As Object, ByVal oldtype As Boolean)
|
||||
DrawType = DT
|
||||
DrawObject = Obj
|
||||
End Sub
|
||||
End Structure
|
||||
Public Shared Function Get_SavePatternString(ByVal 저장대상 As String, ByVal pc As Boolean, ByVal cp As String, ByVal pl As Boolean, ByVal pstr As String, ByVal plen As Short, _
|
||||
ByVal pchr As String) As System.Text.StringBuilder
|
||||
|
||||
If pc Then cp = "[문자패턴]"
|
||||
If pl Then cp &= "[길이패턴]"
|
||||
If cp = "" Then cp = "[패턴없음]"
|
||||
|
||||
Dim Msg As New System.Text.StringBuilder("(" & 저장대상 & ")" & " 패턴을 저장합니다")
|
||||
'//문자패턴이 적용되어있다면 문자패턴으로 적용할 것을 궎장하며 그렇지 않은 경우에는 길이패턴이나 문자패턴을 적절히 권장한다.
|
||||
'//길이가 5자리이하이고 특수문자(-,;)등이 없는경우에 길이패턴 적용을 권유한다.
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine("패턴 저장방법에는 길이,문자가 있습니다")
|
||||
Msg.AppendLine("패턴우선순위 : 문자패턴 -> 길이패턴")
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine("현재적용된 패턴 : " & cp)
|
||||
|
||||
If pc Then
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine(">> 현재 문자패턴이 적용되어있습니다" & vbCrLf & ">> 문자패턴은 가장우선되는 패턴방식입니다")
|
||||
Msg.AppendLine(">> 저장시에는 [문자패턴]으로 저장하시기 바랍니다.")
|
||||
Msg.AppendLine(">> [길이패턴]으로 저장하는것은 의미가 없습니다")
|
||||
ElseIf pl Then
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine(">> 현재 길이패턴이 적용되어있습니다" & vbCrLf & ">> 패턴은 길이,문자 둘다 저장이 가능합니다")
|
||||
Else
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine(">> 적용된 패턴이없습니다")
|
||||
Msg.AppendLine(">> 문자수(길이)가 적은 문자의경우 [길이패턴] 저장을 권장합니다")
|
||||
End If
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine("길이패턴이란? (문자의 길이가 같을떄 적용)")
|
||||
Msg.AppendLine(" 선택된문자는 " & pstr & " 이며 길이는 = " & plen & " 입니다")
|
||||
Msg.AppendLine(" 저장을 하면 " & 저장대상 & " 의 길이가 " & plen & vbCrLf & " 인 문자가 오면 패턴이 적용됩니다")
|
||||
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine("문자패턴이란? (같은 형태의 문자일때 적용)")
|
||||
Msg.AppendLine(" 선택된문자는 " & pstr & " 이며 형태는 = " & pchr & " 입니다")
|
||||
Msg.AppendLine(" 저장을 하면 " & 저장대상 & " 의 형태가 " & pchr & vbCrLf & " 인 문자가 오면 패턴이 적용됩니다")
|
||||
Msg.AppendLine(" * 1=숫자,0=알파벳문자,H=한글문자,;=특수문자(;),-=특수문자(-)")
|
||||
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine("패턴우선순위란? (패턴이 중복적용되었을때 높은우선순위가 적용)")
|
||||
Msg.AppendLine(" 길이,문자 패턴이 둘다 적용되어있을경우 우선순위가 높은")
|
||||
Msg.AppendLine(" 문자패턴이 최종적으로 적용이 됩니다.(길이패턴은 무시됨)")
|
||||
|
||||
Msg.AppendLine()
|
||||
Msg.AppendLine("# 길이패턴으로 저장하시겠습니까?")
|
||||
Msg.AppendLine("# 예) 길이저장 , 아니오) 문자저장 , 취소) 취소")
|
||||
If pc Then Msg.AppendLine("# 문자패턴이 적용되었으므로 [길이패턴] 저장은 의미가 없습니다")
|
||||
Return Msg
|
||||
End Function
|
||||
|
||||
Public Shared Sub GetAllsection(ByRef stylelist() As SStyle, ByVal FILENAME As String, ByVal CurIdx As Short, ByVal OldType As Boolean)
|
||||
'//이제 OLD는 사용하징낳는다 3월14일 변경한다.
|
||||
If OldType = False Then
|
||||
FileToDataTable.ReadFile_New(stylelist, FILENAME, CurIdx)
|
||||
Else
|
||||
'MsgBox("구파일" & FILENAME)
|
||||
FileToDataTable.ReadFile_OLD(stylelist, FILENAME, CurIdx)
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Shared Function PATTERN_ENC(ByVal SRCSTR As String, Optional hsave As Boolean = False) As String
|
||||
Dim MSG As New System.Text.StringBuilder
|
||||
For Each A As Char In SRCSTR.ToCharArray '//모든문자의 숫자번호를 판별한다.
|
||||
|
||||
If hsave Then
|
||||
If A = ";" Then '//구분자라면
|
||||
MSG.Append(";")
|
||||
ElseIf A = "H" Then '//h문자별도 처리해줌
|
||||
MSG.Append("Z")
|
||||
ElseIf A = "-" Then
|
||||
MSG.Append("-")
|
||||
ElseIf Char.IsNumber(A) Then
|
||||
MSG.Append("1")
|
||||
ElseIf Asc(A) < 0 Then
|
||||
MSG.Append("H")
|
||||
Else
|
||||
MSG.Append("0")
|
||||
End If
|
||||
Else
|
||||
If A = ";" Then '//구분자라면
|
||||
MSG.Append(";")
|
||||
ElseIf A = "-" Then
|
||||
MSG.Append("-")
|
||||
ElseIf Char.IsNumber(A) Then
|
||||
MSG.Append("1")
|
||||
ElseIf Asc(A) < 0 Then
|
||||
MSG.Append("H")
|
||||
Else
|
||||
MSG.Append("0")
|
||||
End If
|
||||
End If
|
||||
|
||||
Next
|
||||
Return MSG.ToString
|
||||
End Function
|
||||
|
||||
Public Shared Function GetPrintersName() As ArrayList
|
||||
Dim value As Drawing.Printing.PrinterSettings.StringCollection = System.Drawing.Printing.PrinterSettings.InstalledPrinters
|
||||
Dim Retval As New ArrayList
|
||||
For i As Integer = 0 To value.Count - 1
|
||||
Retval.Add(value(i))
|
||||
Next
|
||||
Return Retval
|
||||
End Function
|
||||
|
||||
''' <summary>
|
||||
''' 데이터와 출력장수(전체,현재,범위,고정스타일)를 판단하여 T,F 반환한다.
|
||||
''' </summary>
|
||||
''' <param name="Dv"></param>
|
||||
''' <param name="CurrPos"></param>
|
||||
''' <param name="PrintArray"></param>
|
||||
''' <param name="RangeType"></param>
|
||||
''' <param name="UserRange"></param>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Shared Function Set_PrnRange(ByRef Dv As DataView, ByVal CurrPos As Integer, ByRef PrintArray() As Integer, ByVal RangeType As E_PrintRange, ByVal UserRange As String) As Boolean '//범위내의 페이지번호와 일치하는 번호를 찾아서 배열에 할당한다.
|
||||
Dim Number As Integer = 0
|
||||
Dim FindNum As Boolean = False
|
||||
'printindex = 0 '//배열의 첫번으로 출력을 준비한다.
|
||||
|
||||
ReDim PrintArray(0)
|
||||
PrintArray(0) = 1
|
||||
|
||||
If RangeType = E_PrintRange.Custom AndAlso UserRange = "" Then RangeType = E_PrintRange.Current
|
||||
|
||||
' MsgBox("rane : " & Dv.Count & "curpos:" & CurrPos)
|
||||
|
||||
Select Case RangeType
|
||||
Case E_PrintRange.FixedStyle '//고정스타일이라면 userrange 에 할당된 숫자만큼 버퍼를 생성한다.
|
||||
If IsNumeric(UserRange) = False Then
|
||||
MsgBox("출력장수에 숫자만 입력하세요", MsgBoxStyle.Critical, "확인")
|
||||
Return False
|
||||
End If
|
||||
ReDim PrintArray(Val(UserRange) - 1)
|
||||
For i As Integer = 0 To Val(UserRange) - 1
|
||||
PrintArray(i) = CurrPos
|
||||
Next
|
||||
Case E_PrintRange.All
|
||||
ReDim PrintArray(Dv.Count - 1)
|
||||
For i As Integer = 0 To Dv.Count - 1
|
||||
PrintArray(i) = i
|
||||
Next
|
||||
Case E_PrintRange.Current
|
||||
' MsgBox("현재")
|
||||
ReDim PrintArray(0)
|
||||
PrintArray(0) = CurrPos '/현재카운트보다 1작다 배열은 0부터 시작하기떄문에
|
||||
Case E_PrintRange.Custom
|
||||
Dim buff As String = UserRange
|
||||
ReDim PrintArray(0) : PrintArray(0) = -1
|
||||
'//먼저 -가 있나없나 판단해서 한페이지용인지 범위용인지 구분한다.
|
||||
If buff.IndexOf("-") >= 0 Then '//범위이다.
|
||||
Dim SubBuff() As String = buff.Split("-")
|
||||
Dim Sttnum As Integer = CInt(SubBuff(0)) '//시작
|
||||
Dim endnum As Integer = CInt(SubBuff(1)) '//종료값
|
||||
|
||||
For SI As Integer = 0 To endnum - Sttnum '//범위갯수만큼 돈다
|
||||
FindNum = False
|
||||
Number = CInt(Sttnum + SI) '//페이지만 적엇을 것이므로
|
||||
For ni As Integer = 0 To Dv.Count - 1 '//현재뷰의 모든데이터를 가지고 검색한다 좌->우 순차검색
|
||||
If Number = Dv(ni).Row("번호") Then
|
||||
If PrintArray(0) = -1 Then '//처음데이터이므로
|
||||
PrintArray(0) = ni
|
||||
Else '//처음이아니므로 배열을 증가시키고 기입한다.
|
||||
ReDim Preserve PrintArray(PrintArray.GetUpperBound(0) + 1) '//배열1증가
|
||||
PrintArray(PrintArray.GetUpperBound(0)) = ni
|
||||
End If
|
||||
FindNum = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Next
|
||||
|
||||
Else '//페이지번호만 적었을때다
|
||||
If IsNumeric(buff) Then
|
||||
Number = CInt(buff) '//페이지만 적엇을 것이므로
|
||||
For ni As Integer = 0 To Dv.Count - 1 '//현재뷰의 모든데이터를 가지고 검색한다 좌->우 순차검색
|
||||
If Number = Dv(ni).Row("번호") Then
|
||||
PrintArray(0) = ni
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
MsgBox("범위(-)를 제외하고 숫자만 입력하세요", MsgBoxStyle.Critical, "입력오류")
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
If PrintArray(0) = -1 Then '//배열에 아무것도 없다면
|
||||
Return False
|
||||
Else
|
||||
Return True
|
||||
End If
|
||||
End Function
|
||||
|
||||
End Class
|
||||
Reference in New Issue
Block a user