Imports System.Drawing
Imports System.Drawing.Printing
Imports System.Math
Imports acc.ARINCLASS
Imports System.IO
Imports CEpole.C_Epole

Public Class PrintForm
    '//기본 Datatable 인데 사용하기 편하게 Shadow 한다.
    'Public Shadows srctable As ireaDataSet.Detail_tongsinDataTable

    '//Loadstyle 후에 일련번호를 부여한다. (SetControlIndex)
    Dim IDX_일련번호 As Short
    Dim IDX_행정도시 As Short
    Dim IDX_지역명 As Short
    Dim IDX_번지 As Short
    Dim IDX_관리번호1 As Short
    Dim IDX_관리번호2 As Short
    Dim IDX_문의전화1 As Short '2008/07/10
    Dim IDX_문의전화2 As Short '2008/07/10
    Dim IDX_비고1 As Short '2008/07/10
    Dim IDX_비고2 As Short '2008/07/10
    Dim IDX_비고3 As Short '2008/07/10

    Dim IDX_고정문자1 As Short
    Dim IDX_고정문자2 As Short

    Dim 변변변 As String

#Region "New Function"
    Public Sub New()
        InitializeComponent()
    End Sub

    Public Sub New(ByVal v_적용 As String)

        ' 이 호출은 Windows Form 디자이너에 필요합니다.    'QR추가
        InitializeComponent()

        Me.qr적용.Text = v_적용



    End Sub

    Public Sub New(ByRef Src As DataTable, ByVal vAdmin As Boolean, ByVal vDefStyleIndex As Short, Optional ByVal IRow As DataRowView = Nothing)
        InitializeComponent()
        SrcTable = Src  '//가져온 테이블을 임시테이블에 저장을 해두고 사용한다.
        Srcrow = IRow  '//이것은 클릭된 행의 데이터이다.
        Me.Admin = vAdmin
        Me.DefStyleIndex = vDefStyleIndex
    End Sub
#End Region

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Me.Left = 100
        Me.Initialize(Me.SrcTable, "StyleKR", My.Application.Info.DirectoryPath & "\epole.ini", DefStyleIndex)
    End Sub

    Public Overrides Sub SetControls()   '//오버라이드됫으며 라벨들을 생성초기화한다.
        AddLog("-> SetControls")
        Dim CtlCnt As Short = 0

        If Me.AllLabels Is Nothing Then ReDim Me.AllLabels(0) '//이건라벨들의 배열이며
        If Me.AllFullLabels Is Nothing Then ReDim Me.AllFullLabels(0) '//이건라벨들의 그룹배열이다. (쪼개지지않은 1개의 아이템을 가지고있다.)

        '//initial...
        Dim FirstIndex As Short = 0
        Dim A_Firstindex As Short = 0

        InitControl(IDX_일련번호, A_Firstindex, FirstIndex, 1, 20, Me.cb_seq, "일련번호", "U", "SEQPATTERN", )
        InitControl(IDX_행정도시, A_Firstindex, FirstIndex, 10, 20, Me.chk1, "행정도시", "A", "A21PATTERN")
        InitControl(IDX_지역명, A_Firstindex, FirstIndex, 10, 20, Me.chk2, "지역명", "B", "A1PATTERN")
        InitControl(IDX_번지, A_Firstindex, FirstIndex, 20, 20, Me.chk3, "번지", "C", "F1PATTERN")
        InitControl(IDX_관리번호1, A_Firstindex, FirstIndex, 20, 20, Me.chk4, "관리번호1", "D", "M1PATTERN")
        InitControl(IDX_관리번호2, A_Firstindex, FirstIndex, 20, 20, Me.chk5, "관리번호2", "E", "M2PATTERN")
        InitControl(IDX_문의전화1, A_Firstindex, FirstIndex, 1, 20, Me.chk6, "문의전화1", "F", "TEL1PATTERN")
        InitControl(IDX_문의전화2, A_Firstindex, FirstIndex, 1, 20, Me.chk7, "문의전화2", "G", "TEL2PATTERN")
        InitControl(IDX_비고1, A_Firstindex, FirstIndex, 1, 10, Me.chk8, "비고1", "H", "B1PATTERN")
        InitControl(IDX_비고2, A_Firstindex, FirstIndex, 1, 10, Me.chk9, "비고2", "I", "B2PATTERN")
        InitControl(IDX_비고3, A_Firstindex, FirstIndex, 1, 10, Me.chk10, "비고3", "J", "B3PATTERN")
        InitControl(IDX_고정문자1, A_Firstindex, FirstIndex, 1, 10, Me.chk20, "고정문자1", "V", "STATIC1PATTERN", True)
        InitControl(IDX_고정문자2, A_Firstindex, FirstIndex, 1, 10, Me.chk21, "고정문자2", "W", "STATIC2PATTERN", True)

    End Sub

    Public Overrides Sub SetControlIndex() '//그룹의 인덱스를 가지고있는 // 나중에 편하게 사용하려고
        AddLog("-> SetControlIndex")
        Me.IDX_일련번호 = lbl("일련번호")
        Me.IDX_행정도시 = lbl("행정도시")
        Me.IDX_지역명 = lbl("지역명")
        Me.IDX_번지 = lbl("번지")
        Me.IDX_관리번호1 = lbl("관리번호1")
        Me.IDX_관리번호2 = lbl("관리번호2")
        Me.IDX_문의전화1 = lbl("문의전화1")
        Me.IDX_문의전화2 = lbl("문의전화2")
        Me.IDX_비고1 = lbl("비고1")
        Me.IDX_비고2 = lbl("비고2")
        Me.IDX_비고3 = lbl("비고3")

        Me.IDX_고정문자1 = lbl("고정문자1")
        Me.IDX_고정문자2 = lbl("고정문자2")

    End Sub

    '//메인함수다(오버라이드) 값을 분석하고 표시하는 총괄을 담당한다.
    Public Overrides Sub GeTviewData(ByVal index As Integer, ByVal previewWindow As Boolean, Optional ByRef 번호패턴검사 As Integer = -1)

        Dim 관리번호, 행정도시, 지역명, 번지 As String
        'Dim QRCODE As String


        AddLog(">> 오버라이드된 함수 GetTviewData 진입")

        If Dv.Count <= 0 OrElse index < 0 OrElse index > Dv.Count Then
            AddLog(">> 데이터인덱스가 없거나 문제가 있어서 GettviewData를 리턴합니다")
            Return '//잘못된 인덱스는 리턴
        End If

        '//DataRow_Value -> Group Label
        관리번호 = GetSpread(index, "m1") & GetSpread(index, "m2")
        일련번호 = GetSpread(index, "번호")
        행정도시 = GetSpread(index, "area2")
        지역명 = GetSpread(index, "area1")
        번지 = GetSpread(index, "f1")
        QRCODE1 = GetSpread(index, "QRCODE")

        Me.AllFullLabels(Me.IDX_일련번호).text = 일련번호
        Me.AllFullLabels(Me.IDX_행정도시).text = 행정도시
        Me.AllFullLabels(Me.IDX_지역명).text = 지역명
        Me.AllFullLabels(Me.IDX_번지).text = 번지
        Me.AllFullLabels(Me.IDX_관리번호1).text = GetSpread(index, "m1")
        Me.AllFullLabels(Me.IDX_관리번호2).text = GetSpread(index, "m2")
        Me.AllFullLabels(Me.IDX_문의전화1).text = GetSpread(index, "tel1")
        Me.AllFullLabels(Me.IDX_문의전화2).text = GetSpread(index, "tel2")
        Me.AllFullLabels(Me.IDX_비고1).text = GetSpread(index, "bigo1")
        Me.AllFullLabels(Me.IDX_비고2).text = GetSpread(index, "bigo2")
        Me.AllFullLabels(Me.IDX_비고3).text = GetSpread(index, "bigo3")

        Me.AllFullLabels(Me.IDX_고정문자1).text = Me.AllLabels(Me.AllFullLabels(Me.IDX_고정문자1).Si).Text
        Me.AllFullLabels(Me.IDX_고정문자2).text = Me.AllLabels(Me.AllFullLabels(Me.IDX_고정문자2).Si).Text

        Me.qr적용.Text = "번호:" & 일련번호 & Space(1) & "관리번호:" & 관리번호 & Space(1) & ":" & Space(1) & 행정도시 & Space(1) & 지역명 & Space(1) & 번지

        AddLog(">> DataRow_Value -> Group Label_text")

        '//Show WindowTitle
        Me.Text = "출력작업(번호:" & 일련번호 & Space(1) & "관리번호:" & 관리번호 & Space(1) & ":" & Space(1) & 행정도시 & Space(1) & 지역명 & Space(1) & 번지 & ")"
        '=====================================================================
        Me.Parse_LineBatch(New Short() { _
         Me.IDX_일련번호, _
         Me.IDX_행정도시, _
         Me.IDX_지역명, _
         Me.IDX_번지, _
         Me.IDX_관리번호1, _
         Me.IDX_관리번호2, _
         Me.IDX_문의전화1, _
         Me.IDX_문의전화2, _
         Me.IDX_비고1, _
         Me.IDX_비고2, _
         Me.IDX_비고3, _
         Me.IDX_고정문자1, _
         Me.IDX_고정문자2})
        '======================== 기타 =================================================
        If previewWindow Then Me.preview_window() '//이건 기본폼에 정의되어있다.
        '휴 끝났다.......................................................
    End Sub

#Region "자주 바꿀일없는 부분"

    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 BindingNavigatorPositionItem_MouseEnter(ByVal sender As Object, ByVal e As System.EventArgs) Handles BindingNavigatorPositionItem.MouseEnter
        Me.BindingNavigatorPositionItem.Focus()
        Me.BindingNavigatorPositionItem.SelectAll()
    End Sub

#End Region
#Region "자주안고치는것"

    ''' <summary>
    ''' 데이터표시항목아래의 모든 아이템의 클릭이벤트에  지정된 프로시져를 할당한다.
    ''' </summary>
    ''' <remarks></remarks>
    Public Overrides Sub SetEventHandler()
        For Each MI As ToolStripMenuItem In Me.m_viewdata.DropDownItems
            AddHandler MI.Click, AddressOf ViewCheck_Click
        Next
    End Sub

    ''' <summary>
    ''' 개체가 선택되었을때 의 이벤트
    ''' </summary>
    ''' <param name="obj"></param>
    ''' <remarks></remarks>
    Private Sub PrintForm_tongsin_SelectedControl(ByVal obj As CEpole.C_label) Handles Me.SelectedControl
        '//특정개체가 선택되었을때 (부모그룹에서 패턴적용여부를 찾아표시한다.)
        AddLog("##다음개체가 선택되었습니다(" & obj.Desc & " 태그=" & obj.Tag & ")")
        Me.lb_selcon.Text = "[" & obj.Desc & "]"
    End Sub

    Private Sub ToolStripButton1_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_close.Click
        Me.Close()
    End Sub
    Private Sub m_shortkey_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles m_shortkey.Click
        Me.Show_ShortKey()
    End Sub

#End Region

  
End Class


