Files
Hanjeon/Epole/패치문서/090729 연속출력추가.txt
2019-05-03 21:10:44 +09:00

207 lines
9.0 KiB
Plaintext

If Me.tb_pagerepeat.Text = "" Or Me.tb_pagerepeat.Text < 1 Then Me.tb_pagerepeat.Text = "0"
For pi As Short = 0 To Me.tb_pagerepeat.Text - 1 '//페이지당 연속출력할 횟수
For i As Integer = 0 To Me.AllLabels.GetUpperBound(0) '//모든 개체들에 대해서 인쇄를 설정한다.
obj = Me.AllLabels(i).ctl
If obj.Visible AndAlso obj.MyText <> "" Then '//화면에 보이는것만 한다.
For rcnt As Short = 0 To obj.Repeat '//반복기능추가한다
NewFontSize = obj.MyFont.Size + Me.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 '//장평미사용 문자열 처리
If rcnt > 0 Then
Ga.DrawString(obj.최종문자, MyFont, Brushes.LightGray, (obj.Left + Me.tb_secX.Text * pi + obj.RepeatX * rcnt), (obj.Top + Me.tb_secY.Text * pi + obj.RepeatY * rcnt))
Else
Ga.DrawString(obj.최종문자, MyFont, Brush, (obj.Left + Me.tb_secX.Text * pi), (obj.Top + Me.tb_secY.Text * pi))
End If
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))
If rcnt > 0 Then
G.DrawString(obj.최종문자, MyFont, Brushes.LightGray, 0, 0)
G.Dispose()
Ga.DrawImage(BMP, New Point(obj.Left + Me.tb_secX.Text * pi + obj.RepeatX * rcnt, obj.Top + Me.tb_secY.Text * pi + obj.RepeatY * rcnt)) ', CInt(GetSize.Width * (v장평 / 100)), GetSize.Height)
Else
G.DrawString(obj.최종문자, MyFont, Brush, 0, 0)
G.Dispose()
Ga.DrawImage(BMP, New Point(obj.Left + Me.tb_secX.Text * pi, obj.Top + Me.tb_secY.Text * pi)) ', CInt(GetSize.Width * (v장평 / 100)), GetSize.Height)
End If
End If
Next
End If
Next
Next
---가공출력물 변경
For i As Integer = 0 To S관리구.GetUpperBound(0) '//모든문자를 할당한다.
S관리구(i) = New MyControlOLEDBv2.MyLabel
S관리구(i).설명 = "관리구" & i + 1
S관리구(i).Name = "H" & i + 1
S관리구(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S관리구(i)
Me.cmb_controls.Items.Add(S관리구(i).설명)
CtlCnt += 1
Next
For i As Integer = 0 To SDL명.GetUpperBound(0) '//모든문자를 할당한다.
SDL명(i) = New MyControlOLEDBv2.MyLabel
SDL명(i).설명 = "DL명" & i + 1
SDL명(i).Name = "K" & i + 1
SDL명(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = SDL명(i)
Me.cmb_controls.Items.Add(SDL명(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 = "S" & i + 1
S전산번호(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S전산번호(i)
Me.cmb_controls.Items.Add(S전산번호(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 = "L" & i + 1
S선로명(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S선로명(i)
Me.cmb_controls.Items.Add(S선로명(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 = "X" & i + 1
S전주번호(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S전주번호(i)
Me.cmb_controls.Items.Add(S전주번호(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 = "Y" & i + 1
S시공년월(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S시공년월(i)
Me.cmb_controls.Items.Add(S시공년월(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 = "G" & i + 1
S관리구전주번호(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S관리구전주번호(i)
Me.cmb_controls.Items.Add(S관리구전주번호(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 = "J" & i + 1
S장척(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S장척(i)
Me.cmb_controls.Items.Add(S장척(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 = "C" & i + 1
S시공자(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S시공자(i)
Me.cmb_controls.Items.Add(S시공자(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 = "Z" & i + 1
S접지(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S접지(i)
Me.cmb_controls.Items.Add(S접지(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 = "M" & i + 1
S감독자(i).Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S감독자(i)
Me.cmb_controls.Items.Add(S감독자(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)
Me.cmb_controls.Items.Add(S일련번호(i).설명)
CtlCnt += 1
Next
=======테스트
S사용자1 = New MyControlOLEDBv2.MyLabel
S사용자1.설명 = "사용자문자1"
S사용자1.MyText = ""
S사용자1.Name = "U"
S사용자1.Visible = False
ReDim Preserve AllLabels(CtlCnt)
Me.AllLabels(CtlCnt).ctl = S사용자1
Me.cmb_controls.Items.Add(S사용자1.설명)
CtlCnt += 1