Imports System.IO
Imports System.Text
Imports MyControlOLEDBv2

Public Class XLSImport

    Dim TabName As String
    Dim ColName() As String
    Dim Value() As String
    Dim vtype() As String
    Dim ColDesc() As String '열제목'

    Dim SubSqlCnt As Integer
    Dim SubSql() As String

    Dim USERFC() As String

    Dim DivString As String '//구분자

    Dim Err As Boolean = False  '//에러발생상태
    Dim StartPos As Integer = 0   '//시작열순서
    Dim EndPos As Integer = 0   '//종료열순서

    Dim IniFile As String = My.Application.Info.DirectoryPath & "\import.ini"
    Dim SelControl As Windows.Forms.TextBox
    Dim sql As New StringBuilder
    Dim DelSql As New StringBuilder

    Dim MyTextBox() As Windows.Forms.TextBox
    Dim MyComBo() As Windows.Forms.ComboBox
    Dim MyLaBel() As Label

    Dim SRC전주세부 As New ireaDataSet.jjutableDataTable
    Dim SRC지중세부 As New ireaDataSet.jjungtableDataTable
    Dim SRC기타세부 As New ireaDataSet.EtcTableDataTable
    Dim SRCDetail_Deung As New ireaDataSet.Detail_DeungDataTable
    Dim SRCDetail_Karo As New ireaDataSet.Detail_karoDataTable
    Dim SRCDetail_Cable As New ireaDataSet.Detail_CableDataTable
    Dim SRCDetail_Cable2 As New ireaDataSet.Detail_Cable2DataTable
    Dim SRCDetail_CableLABEL As New ireaDataSet.Detail_CableLabelDataTable
    Dim Src기기세부 As New ireaDataSet.Detail_kikiDataTable
    Dim SRCjjutableRow As ireaDataSet.jjutableRow
    Dim SRCjjungtableRow As ireaDataSet.jjungtableRow
    Dim SRCetctableRow As ireaDataSet.EtcTableRow
    Dim SrcdeungTablerow As ireaDataSet.Detail_DeungRow
    Dim SrcKaroTableRow As ireaDataSet.Detail_karoRow
    Dim SrcKikiTableRow As ireaDataSet.Detail_kikiRow
    Dim SRCCABLEROW As ireaDataSet.Detail_CableRow
    Dim SRCCABLELABLEROW As ireaDataSet.Detail_CableLabelRow
    Dim SRCCABLE2ROW As ireaDataSet.Detail_Cable2Row


    Dim SrcDataSet As ireaDataSet
    Dim MyAdapt As ireaDataSetTableAdapters.jjutableTableAdapter

    Dim 관리id As Integer    '//추가될 관리id를 받는다.
    Dim 관리구분 As Short = 0  '//관리구분을 받는다. 없을경우 기본 0(가공번호찰로 한다)

    'Dim MaxArray As String '"엑셀의 최대범위"
    Dim Sview As FarPoint.Win.Spread.SheetView

    Public Sub New()
        ' 이 호출은 Windows Form 디자이너에 필요합니다.
        InitializeComponent()
    End Sub

    Public Sub New(ByVal 번호찰구분 As Integer, ByVal rowid As Integer)   '//현재이걸로 데이터를 가져온다.
        InitializeComponent()
        관리id = rowid
        관리구분 = 번호찰구분

        Select Case 관리구분
            Case 0
                Me.Text = "가공(일반) 가져오기"
            Case 1
                Me.Text = "지중(일반) 가져오기"
            Case 9
                Me.Text = "중요수용 가져오기"
            Case 2
                Me.Text = "정액등 가져오기"
            Case 4
                Me.Text = "가공(기기) 가져오기"
            Case 6
                Me.Text = "지중(맨홀표시찰및계통도) 가져오기"
            Case 7
                Me.Text = "지중(케이블표시라벨) 가져오기"
            Case 8
                Me.Text = "지중(기기표시찰) 가져오기"
            Case Else
                Me.Text = "번호찰 가져오기(" & 관리구분 & ")"
        End Select


        'Me.CustFP1_Sheet1.DataSource = Me.전주세부BindingSource
    End Sub

    Public Sub New(ByVal DataSrc As ireaDataSet, ByVal rowid As Short, ByVal 번호찰구분 As Integer)   '//현재이걸로 데이터를 가져온다.
        InitializeComponent()
        관리id = rowid
        관리구분 = 번호찰구분

        SrcDataSet = DataSrc

        Select Case 관리구분
            Case 0
                Me.Text = "가공(일반) 가져오기"
            Case 1
                Me.Text = "지중(일반) 가져오기"
            Case 9
                Me.Text = "중요수용 가져오기"
            Case 2
                Me.Text = "정액등 가져오기"
            Case 4
                Me.Text = "가공(기기) 가져오기"
            Case 6
                Me.Text = "지중(맨홀표시찰및계통도) 가져오기"
            Case 7
                Me.Text = "지중(케이블표시라벨) 가져오기"
            Case 8
                Me.Text = "지중(기기표시찰) 가져오기"
            Case Else
                Me.Text = "번호찰 가져오기(" & 관리구분 & ")"
        End Select

    End Sub

    Private Sub 구분(ByVal 관리구분 As Short)

        Select Case 관리구분
            Case 0  '//가공
                SetControl(Me.ImpCtl2, "관리구(구)")
                SetControl(Me.ImpCtl3, "전산번호(구)")

                SetControl(Me.ImpCtl4, "관리구(신)")
                SetControl(Me.ImpCtl5, "전산번호(신)")

                SetControl(Me.ImpCtl6, "선로명")
                SetControl(Me.ImpCtl7, "번호1")
                SetControl(Me.ImpCtl8, "번호2")
                SetControl(Me.ImpCtl9, "번호3")
                SetControl(Me.ImpCtl10, "번호4")
                SetControl(Me.ImpCtl11, "번호5")
                SetControl(Me.ImpCtl12, "장척")

                SetControl(Me.ImpCtl13, "시공년월")
                SetControl(Me.ImpCtl14, "시공자")
                SetControl(Me.ImpCtl15, "DL명")
                SetControl(Me.ImpCtl16, "감독자")
                SetControl(Me.ImpCtl17, "접지1")
                SetControl(Me.ImpCtl18, "지선주")

                SetControl(Me.ImpCtl19, "선로명(구)")
                SetControl(Me.ImpCtl20, "전주번호(구)")

                SetControl(Me.ImpCtl21, "점검일자")

                SetControl(Me.ImpCtl22, "휴즈용량")
                SetControl(Me.ImpCtl23, "상표시찰1단")
                SetControl(Me.ImpCtl24, "상표시찰2단")

                SetControl(Me.ImpCtl25, "선로전방")
                SetControl(Me.ImpCtl26, "선로좌측")
                SetControl(Me.ImpCtl27, "선로우측")


            Case 1  '//지중

                SetControl(Me.ImpCtl2, "관리구")
                SetControl(Me.ImpCtl3, "전산번호")

                SetControl(Me.ImpCtl4, "변압기/관리구")
                SetControl(Me.ImpCtl5, "변압기/전산번호")

                SetControl(Me.ImpCtl6, "선로명(기)")
                SetControl(Me.ImpCtl7, "선로번호(기)")

                SetControl(Me.ImpCtl8, "시공년월")
                SetControl(Me.ImpCtl9, "시공업체")

                SetControl(Me.ImpCtl10, "선로명(변)")
                SetControl(Me.ImpCtl11, "선로번호(변)")
                SetControl(Me.ImpCtl12, "변압기_상별")
                SetControl(Me.ImpCtl13, "변압기/용량(형식)")

                SetControl(Me.ImpCtl14, "전원측")
                SetControl(Me.ImpCtl15, "부하측")

                SetControl(Me.ImpCtl16, "기기명")

                SetControl(Me.ImpCtl17, "제조년월")
                SetControl(Me.ImpCtl18, "제조회사")


            Case 9  '//기타(중요수용)

                'SetControl(Me.ImpCtl2, "관리구(구)")
                'SetControl(Me.ImpCtl3, "전산번호(구)")
                SetControl(Me.ImpCtl4, "관리구(신)")
                SetControl(Me.ImpCtl5, "전산번호(신)")
                SetControl(Me.ImpCtl6, "선로명")
                SetControl(Me.ImpCtl7, "번호1")
                SetControl(Me.ImpCtl8, "번호2")
                SetControl(Me.ImpCtl9, "번호3")
                SetControl(Me.ImpCtl10, "번호4")
                SetControl(Me.ImpCtl11, "번호5")
                'SetControl(Me.ImpCtl12, "장척")
                'SetControl(Me.ImpCtl13, "시공년월")
                'SetControl(Me.ImpCtl14, "시공자")
                SetControl(Me.ImpCtl15, "비고1")
                SetControl(Me.ImpCtl16, "비고2")
                SetControl(Me.ImpCtl17, "비고3")
                SetControl(Me.ImpCtl18, "비고4")
                'SetControl(Me.ImpCtl19, "선로명(구)")
                'SetControl(Me.ImpCtl20, "전주번호(구)")

            Case 2  '//이건 정액등 지중 2~20 가지잇다.

                SetControl(Me.ImpCtl2, "고객번호1")
                SetControl(Me.ImpCtl3, "고객번호2")
                SetControl(Me.ImpCtl4, "고객번호3")
                SetControl(Me.ImpCtl5, "관리번호1")

                SetControl(Me.ImpCtl6, "관리번호2")
                SetControl(Me.ImpCtl7, "관리번호3")
                SetControl(Me.ImpCtl8, "지점명")
                SetControl(Me.ImpCtl9, "전산화번호1")
                SetControl(Me.ImpCtl10, "전산화번호2")
                SetControl(Me.ImpCtl11, "선로명")
                SetControl(Me.ImpCtl12, "전주번호1")

                SetControl(Me.ImpCtl13, "전주번호2")
                SetControl(Me.ImpCtl14, "전주번호3")

            Case 4  '//기기용

                SetControl(Me.ImpCtl2, "관리구")
                SetControl(Me.ImpCtl3, "전산화번호")
                SetControl(Me.ImpCtl4, "선로명")
                SetControl(Me.ImpCtl5, "번호1")
                SetControl(Me.ImpCtl6, "번호2")
                SetControl(Me.ImpCtl7, "번호3")
                SetControl(Me.ImpCtl8, "번호4")
                SetControl(Me.ImpCtl9, "번호5")

                SetControl(Me.ImpCtl10, "1회선1")
                SetControl(Me.ImpCtl11, "1회선2")
                'SetControl(Me.ImpCtl12, "1회선3")
                'SetControl(Me.ImpCtl13, "1회선4")
                'SetControl(Me.ImpCtl14, "1회선5")

                SetControl(Me.ImpCtl12, "2회선1")
                SetControl(Me.ImpCtl13, "2회선2")
                'SetControl(Me.ImpCtl17, "2회선3")
                'SetControl(Me.ImpCtl18, "2회선4")
                'SetControl(Me.ImpCtl19, "2회선5")

                SetControl(Me.ImpCtl14, "3회선1")
                SetControl(Me.ImpCtl15, "3회선2")
                'SetControl(Me.ImpCtl22, "3회선3")
                'SetControl(Me.ImpCtl23, "3회선4")
                'SetControl(Me.ImpCtl24, "3회선5")

                SetControl(Me.ImpCtl16, "비고1")
                SetControl(Me.ImpCtl17, "비고2")
                SetControl(Me.ImpCtl18, "비고3")
                SetControl(Me.ImpCtl19, "비고4")


            Case 6  '//지중케이블

                SetControl(Me.ImpCtl2, "관리구")
                SetControl(Me.ImpCtl3, "전산번호")
                SetControl(Me.ImpCtl4, "HASS")
                SetControl(Me.ImpCtl5, "HADL")
                SetControl(Me.ImpCtl6, "HA구간")
                SetControl(Me.ImpCtl7, "HBSS")
                SetControl(Me.ImpCtl8, "HBDL")
                SetControl(Me.ImpCtl9, "HB구간")

                SetControl(Me.ImpCtl10, "S0번호1")
                SetControl(Me.ImpCtl11, "S0번호2")
                SetControl(Me.ImpCtl12, "S0번호3")
                SetControl(Me.ImpCtl13, "S0번호4")
                SetControl(Me.ImpCtl14, "S0SW명")
                SetControl(Me.ImpCtl15, "S0위치")

                SetControl(Me.ImpCtl16, "S1번호1")
                SetControl(Me.ImpCtl17, "S1번호2")
                SetControl(Me.ImpCtl18, "S1번호3")
                SetControl(Me.ImpCtl19, "S1번호4")
                SetControl(Me.ImpCtl20, "S1SW명")
                SetControl(Me.ImpCtl21, "S1위치")

                SetControl(Me.ImpCtl22, "S2번호1")
                SetControl(Me.ImpCtl23, "S2번호2")
                SetControl(Me.ImpCtl24, "S2번호3")
                SetControl(Me.ImpCtl25, "S2번호4")
                SetControl(Me.ImpCtl26, "S2SW명")
                SetControl(Me.ImpCtl27, "S2수용가")

                SetControl(Me.ImpCtl28, "S3번호1")
                SetControl(Me.ImpCtl29, "S3번호2")
                SetControl(Me.ImpCtl30, "S3번호3")
                SetControl(Me.ImpCtl31, "S3번호4")
                SetControl(Me.ImpCtl32, "S3SW명")
                SetControl(Me.ImpCtl33, "S3수용가")

                SetControl(Me.ImpCtl34, "S4번호1")
                SetControl(Me.ImpCtl35, "S4번호2")
                SetControl(Me.ImpCtl36, "S4번호3")
                SetControl(Me.ImpCtl37, "S4번호4")
                SetControl(Me.ImpCtl38, "S4SW명")
                SetControl(Me.ImpCtl39, "S4수용가")

                SetControl(Me.ImpCtl40, "시공년월")
                SetControl(Me.ImpCtl41, "시공회사")
                SetControl(Me.ImpCtl42, "공사번호")
                SetControl(Me.ImpCtl43, "감독자")

                SetControl(Me.ImpCtl44, "비고1")
                SetControl(Me.ImpCtl45, "비고2")
                SetControl(Me.ImpCtl46, "비고3")
                SetControl(Me.ImpCtl47, "비고4")
                SetControl(Me.ImpCtl48, "비고5")
                SetControl(Me.ImpCtl49, "비고6")

                SetControl(Me.ImpCtl50, "HA단자명")
                SetControl(Me.ImpCtl51, "HB단자명")
            Case 8  '//지중케이블기기표시찰

                SetControl(Me.ImpCtl2, "관리구")
                SetControl(Me.ImpCtl3, "전산번호")

                SetControl(Me.ImpCtl4, "HA단자명")
                SetControl(Me.ImpCtl5, "HASS")
                SetControl(Me.ImpCtl6, "HADL")
                SetControl(Me.ImpCtl7, "HA구간")

                SetControl(Me.ImpCtl8, "HB단자명")
                SetControl(Me.ImpCtl9, "HBSS")
                SetControl(Me.ImpCtl10, "HBDL")
                SetControl(Me.ImpCtl11, "HB구간")

                SetControl(Me.ImpCtl12, "상대1단자")
                SetControl(Me.ImpCtl13, "S/S")
                SetControl(Me.ImpCtl14, "D/L")
                'SetControl(Me.ImpCtl15, "S1번호4")
                SetControl(Me.ImpCtl15, "구간")
                'SetControl(Me.ImpCtl17, "S1위치")

                SetControl(Me.ImpCtl16, "상대2단자")
                SetControl(Me.ImpCtl17, "S/S")
                SetControl(Me.ImpCtl18, "D/L")
                'SetControl(Me.ImpCtl21, "S2번호4")
                SetControl(Me.ImpCtl19, "구간")
                'SetControl(Me.ImpCtl23, "S2수용가")

                SetControl(Me.ImpCtl20, "상대3단자")
                SetControl(Me.ImpCtl21, "S/S")
                SetControl(Me.ImpCtl22, "D/L")
                'SetControl(Me.ImpCtl27, "S3번호4")
                SetControl(Me.ImpCtl23, "구간")
                ' SetControl(Me.ImpCtl29, "S3수용가")

                SetControl(Me.ImpCtl24, "상대4단자")
                SetControl(Me.ImpCtl25, "S/S")
                SetControl(Me.ImpCtl26, "D/L")
                'SetControl(Me.ImpCtl33, "S4번호4")
                SetControl(Me.ImpCtl27, "구간")
                'SetControl(Me.ImpCtl35, "S4수용가")

                'SetControl(Me.ImpCtl40, "시공년월")
                'SetControl(Me.ImpCtl41, "시공회사")
                'SetControl(Me.ImpCtl42, "공사번호")
                'SetControl(Me.ImpCtl43, "감독자")

                SetControl(Me.ImpCtl28, "비고1")
                SetControl(Me.ImpCtl29, "비고2")
                SetControl(Me.ImpCtl30, "비고3")
                SetControl(Me.ImpCtl31, "비고4")
                SetControl(Me.ImpCtl32, "비고5")
                SetControl(Me.ImpCtl33, "비고6")

            Case 7  '//지중(케이블선로표시라벨)

                SetControl(Me.ImpCtl2, "전산번호(현위치)")
                SetControl(Me.ImpCtl3, "단자명")
                SetControl(Me.ImpCtl4, "S/S")
                SetControl(Me.ImpCtl5, "D/L")
                SetControl(Me.ImpCtl6, "H1(상대측)")
                SetControl(Me.ImpCtl7, "H2(상대측)")

                SetControl(Me.ImpCtl8, "전산번호(현위치)")
                SetControl(Me.ImpCtl9, "저압번호(회선)")
                SetControl(Me.ImpCtl10, "공급상")
                SetControl(Me.ImpCtl11, "공급변압기")
                SetControl(Me.ImpCtl12, "전산번호(전원측)")
                SetControl(Me.ImpCtl13, "전산번호(부하측)")
                SetControl(Me.ImpCtl14, "고객명")

                SetControl(Me.ImpCtl15, "전산번호(현위치)")
                SetControl(Me.ImpCtl16, "저압번호(회선)")
                SetControl(Me.ImpCtl17, "공급상")
                SetControl(Me.ImpCtl18, "공급변압기(TR)")
                SetControl(Me.ImpCtl19, "전산번호(전원측)")
                SetControl(Me.ImpCtl20, "전산번호(부하측)")
                SetControl(Me.ImpCtl21, "고객명")



        End Select
    End Sub
    Private Sub SetControl(ByVal ic As MyControlOLEDBv2.ImpCtl, ByVal 제목 As String)
        ic.eNABLED = True
        ic.제목 = 제목
    End Sub

    Private Sub XLSImport_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        ' Me.ListView3.COLSIZE_SAVE()
        Me.Save_Setting()

    End Sub
    Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        If Not GetINI(IniFile) Then
            MsgBox("오류로인해 프로그램이 종료됩니다." & vbCrLf & vbCrLf & "환경설정 데이터가 반환되지 않았습니다", MsgBoxStyle.Critical, "Er")
            End
        End If

        For Each Ctl As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel2.Controls
            Ctl.eNABLED = False
        Next
        For Each Ctl As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel3.Controls
            Ctl.eNABLED = False
        Next
        For Each Ctl As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel4.Controls
            Ctl.eNABLED = False
        Next

        ' Add_handle()
        구분(관리구분)
        LOadCurrentSet()
        ' Me.ListView3.COLSIZE_LOAD()

        Me.CustFP1.Font = New Font(ViewFont.FontName, ViewFont.FontSize, Me.Font.Style)
        ' Me.ListView3.Font = New Font(ViewFont.FontName, ViewFont.FontSize, Me.Font.Style)

        Me.ToolStrip1.Font = New Font(MenuFont.FontName, MenuFont.FontSize, Me.Font.Style)   '//글자정보 불러오기
        Me.ToolStrip2.Font = New Font(MenuFont.FontName, MenuFont.FontSize, Me.Font.Style)   '//글자정보 불러오기
        Me.StatusStrip1.Font = New Font(MenuFont.FontName, MenuFont.FontSize, Me.Font.Style)   '//글자정보 불러오기

        '//일단은 부모로부터 가져온 바인딩소스를 사용하게된다.
        'Me.tyableAdapter1.Connection.ConnectionString = ConString
        '  Me.jjutableTableAdapter1.Fill(Me.IreaDataSet1.jjutable, 관리id)

    End Sub

    '''
    ''' 현재 텍스트박스 셋팅을 저장합니다.
    '''
    Private Sub LOadCurrentSet()
        Dim ini As New MyINI2(IniFile)
        For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel2.Controls
            A.열번호 = ini.Read("CURSETNUM" & 관리구분, A.Name)
            A.문자열자르기 = ini.Read("CURSETSPL" & 관리구분, A.Name)
            A.빈값체크 = ini.Read("CURSETNUL" & 관리구분, A.Name, False)
            A.Valuetype = ini.Read("CURSETVTYPE" & 관리구분, A.Name, 0)
        Next
        For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel3.Controls
            A.열번호 = ini.Read("CURSETNUM" & 관리구분, A.Name)
            A.문자열자르기 = ini.Read("CURSETSPL" & 관리구분, A.Name)
            A.빈값체크 = ini.Read("CURSETNUL" & 관리구분, A.Name, False)
            A.Valuetype = ini.Read("CURSETVTYPE" & 관리구분, A.Name, 0)
        Next
        For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel4.Controls
            A.열번호 = ini.Read("CURSETNUM" & 관리구분, A.Name)
            A.문자열자르기 = ini.Read("CURSETSPL" & 관리구분, A.Name)
            A.빈값체크 = ini.Read("CURSETNUL" & 관리구분, A.Name, False)
            A.Valuetype = ini.Read("CURSETVTYPE" & 관리구분, A.Name, 0)
        Next
    End Sub

    Private Sub Save_Setting()  '//현재 셋팅을 저장합니다.
        '//저장목록은 시작/종료 열번호 아이템의 텍스트이다.
        Dim Aranini As New MyINI2(IniFile)
        Aranini.Write("normal", "startpos", Me.tb_scnt.Text)    '//시작
        Aranini.Write("normal", "endpos", Me.tb_ecnt.Text)  '//종료
        For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel2.Controls  '//각 텍스트박스
            Aranini.Write("CURSETNUM" & 관리구분, A.Name, A.열번호)
            Aranini.Write("CURSETSPL" & 관리구분, A.Name, A.문자열자르기)
            Aranini.Write("CURSETNUL" & 관리구분, A.Name, A.빈값체크)
            Aranini.Write("CURSETVTYPE" & 관리구분, A.Name, A.Valuetype)
        Next
        For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel3.Controls  '//각 텍스트박스
            Aranini.Write("CURSETNUM" & 관리구분, A.Name, A.열번호)
            Aranini.Write("CURSETSPL" & 관리구분, A.Name, A.문자열자르기)
            Aranini.Write("CURSETNUL" & 관리구분, A.Name, A.빈값체크)
            Aranini.Write("CURSETVTYPE" & 관리구분, A.Name, A.Valuetype)
        Next
        For Each A As MyControlOLEDBv2.ImpCtl In Me.TableLayoutPanel4.Controls  '//각 텍스트박스
            Aranini.Write("CURSETNUM" & 관리구분, A.Name, A.열번호)
            Aranini.Write("CURSETSPL" & 관리구분, A.Name, A.문자열자르기)
            Aranini.Write("CURSETNUL" & 관리구분, A.Name, A.빈값체크)
            Aranini.Write("CURSETVTYPE" & 관리구분, A.Name, A.Valuetype)
        Next
    End Sub

    Private Sub Add_handle()    '//더블클릭시 열번호를 변경할 수 있게 한다.
        ' For Each A As Control In TableLayoutPanel2.Controls
        ' If A.GetType.Name.ToUpper = "TEXTBOX" Then
        ' If CType(A, Windows.Forms.TextBox).BorderStyle <> BorderStyle.None Then
        ' AddHandler A.DoubleClick, AddressOf MyDoubleClick
        ' End If
        ' End If
        ' Next
    End Sub
    Private Sub MyDoubleClick(ByVal sender As Object, ByVal e As System.EventArgs)
        If Not SelControl Is Nothing Then SelControl.BackColor = Color.White
        If Not SelControl Is Nothing AndAlso SelControl.Tag = CType(sender, TextBox).Tag Then '//같은거라면 선택하제한다.
            SelControl.BackColor = Color.White
            Me.lb_selcontrol.Text = "선택없음"
            SelControl = Nothing
            Return
        End If
        SelControl = CType(sender, Windows.Forms.TextBox)
        SelControl.BackColor = Color.Green
        If SelControl.Tag Is Nothing Then
            MsgBox("TAG 속성이 비어있습니다", MsgBoxStyle.Information, "Error")
        Else
            Me.lb_selcontrol.Text = "선택됨 : " & SelControl.Tag.ToString
        End If
    End Sub

    Private Function GetINI(ByVal filename As String) As Boolean    '//'REad INi file

        If filename Is vbNullString Then Return False
        Dim INiFn As String

        If filename.IndexOf(":") >= 0 Then
            INiFn = filename
        Else
            INiFn = My.Application.Info.DirectoryPath & "\" & filename
        End If
        Dim Aranini As New MyINI2(INiFn)

        Try
            StartPos = Aranini.Read("NORMAL", "StartPos")
            EndPos = Aranini.Read("NORMAL", "endpos")
            Me.lb_file.Text = Aranini.Read("NORMAL", "file")
            Me.lb_file.Text = Me.lb_file.Text.Trim(Chr(0))
            Value = Aranini.Read("NORMAL", "value").Split(",")
            'MaxArray = Aranini.Read("NORMAL", "MaxArray")
        Catch ex As Exception
            MsgBox("Err-Read_INI" & vbCrLf & vbCrLf & "File=" & INiFn _
            & vbCrLf & ex.Message.ToString, MsgBoxStyle.Critical, "Error")
            Return False
        End Try

        'Me.lb_file.Text = FN
        Me.tb_scnt.Text = StartPos
        Me.tb_ecnt.Text = EndPos

        Return True
    End Function

    Private Sub ControlChanged(ByVal sender As Object, ByVal e As System.EventArgs) '//Not use
        Dim A As Windows.Forms.TextBox = CType(sender, Windows.Forms.TextBox)
        If A.Text.Length <= 0 Then Exit Sub
        Select Case A.Text.Substring(0, 1)
            Case ":"
                If IsNumeric(A.Text.Substring(1)) Then
                    A.BackColor = Color.LawnGreen
                Else
                    A.BackColor = Color.Tomato
                End If
            Case "?"
                A.BackColor = Color.Gray
            Case "#"
                A.BackColor = Color.SteelBlue
            Case Else
                A.BackColor = Color.White
        End Select
    End Sub


    Private Sub ReadXls(ByVal Filename As String)   '//Read xls File

        Me.CustFP1.OpenExcel(Filename)
        For index As Integer = 0 To Me.CustFP1.Sheets.Count - 1
            For Each Cl As FarPoint.Win.Spread.Column In Me.CustFP1.Sheets(index).Columns '//Set columns label
                Cl.Label = Cl.Index + 1
            Next
        Next
        ''//연속 5개의 공백이 보이면 카운트를 종료한다.
        Dim 공백 As Int16 = 0
        For Each Row As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows
            If Me.CustFP1.ActiveSheet.Cells(Row.Index, 0).Text = "" AndAlso Me.CustFP1.ActiveSheet.Cells(Row.Index, 1).Text = "" AndAlso Me.CustFP1.ActiveSheet.Cells(Row.Index, 2).Text = "" Then
                ' MsgBox(Row.Index)
                공백 += 1
            Else
                공백 = 0
            End If
            If 공백 >= 10 Then
                '  MsgBox("종료시점검색완료" & Row.Index)
                Me.CustFP1.ActiveSheet.RowCount = Row.Index + 1 - 8
                Exit For
            End If
        Next
    End Sub

    Private Function GetItemFP(ByVal Src As FarPoint.Win.Spread.Row, ByVal idx As TextBox, ByVal SUbstr As TextBox, Optional ByVal NotNull As Boolean = False) As Object
        Dim SUbidx As Integer = IIf(idx.Text = "", 0, Val(idx.Text))   '//없으면 -1을

        If SUbidx = 0 Then '//즉 없다는뜻이다.
            If NotNull Then Return Src.Index '//널이안되면 리뷰의 인덱스를 넘기고
            Return "" '//널이되면 빈값을 리턴한다.
        Else    '//있다.
            If SUbstr.Text = "" OrElse SUbstr.Text = "0,0" Then '//문자열자르기확인 없다 그대로 리턴
                Return Me.CustFP1.ActiveSheet.Cells(Src.Index, CInt(SUbidx - 1)).Text
            Else    '//문자열자르기가 있으면 잘라서 보내준다.
                Dim DIV() As String = SUbstr.Text.Split(",")
                If DIV(1) = "0" Then    '//시작부터 끝까지
                    Return Me.CustFP1.ActiveSheet.Cells(Src.Index, CInt(SUbidx - 1)).Text.Substring(DIV(0) - 1)
                Else    '/지정범위
                    Return Me.CustFP1.ActiveSheet.Cells(Src.Index, CInt(SUbidx - 1)).Text.Substring(DIV(0) - 1, DIV(1))
                End If
            End If
        End If
    End Function

    Private Function GetFPData(ByVal sender As MyControlOLEDBv2.ImpCtl, ByVal Drow As FarPoint.Win.Spread.Row) As String
        '//만약 날짜포맷이면 FORMAT 을 지정해서 사용한다"

        Dim SUbidx As Integer
        Dim VALSTR As String

        If sender.열번호 = "" Then '//즉 없다는뜻이다.
            Return ""
        Else    '//열번호가 있다.
            SUbidx = sender.열번호
            VALSTR = Me.CustFP1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text
            If VALSTR = "" Then Return "" ' MsgBox("값이없어서 바로보낸다")

            Select Case sender.Valuetype
                Case MyControlOLEDBv2.ImpCtl.e_Valuetype.날짜
                    VALSTR = VALSTR.Trim(".").Trim("/").Trim("\").Trim("-").Trim    '//날짜지정문구 모두제거
                    If IsNumeric(VALSTR) = False Then Return "" '//문구제거하면 숫자여야한다.
                    Select Case VALSTR.Length
                        Case 4    '//0804 => 20080401
                            If VALSTR >= 1900 AndAlso VALSTR <= Format(Now, "yyyy") Then
                                VALSTR = VALSTR & "0101"
                            ElseIf VALSTR.Substring(0, 1) = "0" Then
                                VALSTR = "20" & VALSTR & "01"
                            Else
                                VALSTR = "19" & VALSTR & "01"
                            End If
                        Case 6    '//200812 => 20081201 , 081201 => 20081201
                            If VALSTR.Substring(0, 4) >= 1900 AndAlso VALSTR.Substring(0, 4) <= 2100 Then
                                VALSTR = VALSTR & "01"
                            Else
                                If VALSTR.Substring(0, 1) = "0" Then
                                    VALSTR = "20" & VALSTR
                                Else
                                    VALSTR = "19" & VALSTR
                                End If
                            End If
                        Case 7    '//2008712 => 20080712
                            VALSTR = VALSTR.Substring(0, 4) & "0" & VALSTR.Substring(4, 1) & VALSTR.Substring(5)
                        Case 8
                            '//그냥 넘긴다.
                    End Select
                Case MyControlOLEDBv2.ImpCtl.e_Valuetype.숫자
                    If IsNumeric(VALSTR) = False Then Return "" '//숫자가아닐때 오류
            End Select

            If sender.문자열자르기 = "" OrElse sender.문자열자르기 = "0,0" Then '//문자열자르기확인 없다 그대로 리턴
                'VALSTR = Me.CustFP1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text
                Return VALSTR

            Else    '//문자열자르기가 있으면 잘라서 보내준다.
                Dim DIV() As String
                If sender.문자열자르기.IndexOf(",") = -1 Then
                    ReDim DIV(1)
                    DIV(0) = sender.문자열자르기
                    DIV(1) = 0
                Else
                    DIV = sender.문자열자르기.Split(",")
                End If

                If DIV(1) = "0" Then    '//시작부터 끝까지
                    Try
                        VALSTR = (VALSTR.Substring(DIV(0) - 1))
                    Catch ex As Exception
                        'VALSTR = VALSTR
                    End Try
                    Return VALSTR

                Else    '/지정범위
                    Try
                        VALSTR = VALSTR.Substring(DIV(0) - 1, DIV(1))
                    Catch ex As Exception
                        'VALSTR = Me.CustFP1.ActiveSheet.Cells(Drow.Index, CInt(SUbidx - 1)).Text
                    End Try
                    Return VALSTR
                End If
            End If
        End If

    End Function

    Private Function NullCHeck() As Boolean
        If Me.ImpCtl2.열번호 <> "" AndAlso Me.ImpCtl2.빈값체크 Then Return True
        If Me.ImpCtl3.열번호 <> "" AndAlso Me.ImpCtl3.빈값체크 Then Return True
        If Me.ImpCtl4.열번호 <> "" AndAlso Me.ImpCtl4.빈값체크 Then Return True
        If Me.ImpCtl5.열번호 <> "" AndAlso Me.ImpCtl5.빈값체크 Then Return True
        If Me.ImpCtl6.열번호 <> "" AndAlso Me.ImpCtl6.빈값체크 Then Return True
        If Me.ImpCtl7.열번호 <> "" AndAlso Me.ImpCtl7.빈값체크 Then Return True
        If Me.ImpCtl8.열번호 <> "" AndAlso Me.ImpCtl8.빈값체크 Then Return True
        If Me.ImpCtl9.열번호 <> "" AndAlso Me.ImpCtl9.빈값체크 Then Return True
        If Me.ImpCtl10.열번호 <> "" AndAlso Me.ImpCtl10.빈값체크 Then Return True
        If Me.ImpCtl11.열번호 <> "" AndAlso Me.ImpCtl11.빈값체크 Then Return True
        If Me.ImpCtl12.열번호 <> "" AndAlso Me.ImpCtl12.빈값체크 Then Return True
        If Me.ImpCtl13.열번호 <> "" AndAlso Me.ImpCtl13.빈값체크 Then Return True
        If Me.ImpCtl14.열번호 <> "" AndAlso Me.ImpCtl14.빈값체크 Then Return True
        If Me.ImpCtl15.열번호 <> "" AndAlso Me.ImpCtl15.빈값체크 Then Return True
        If Me.ImpCtl16.열번호 <> "" AndAlso Me.ImpCtl16.빈값체크 Then Return True
        If Me.ImpCtl17.열번호 <> "" AndAlso Me.ImpCtl17.빈값체크 Then Return True
        If Me.ImpCtl18.열번호 <> "" AndAlso Me.ImpCtl18.빈값체크 Then Return True
        If Me.ImpCtl19.열번호 <> "" AndAlso Me.ImpCtl19.빈값체크 Then Return True
        If Me.ImpCtl20.열번호 <> "" AndAlso Me.ImpCtl20.빈값체크 Then Return True

        If Me.ImpCtl21.열번호 <> "" AndAlso Me.ImpCtl21.빈값체크 Then Return True
        If Me.ImpCtl22.열번호 <> "" AndAlso Me.ImpCtl22.빈값체크 Then Return True
        If Me.ImpCtl23.열번호 <> "" AndAlso Me.ImpCtl23.빈값체크 Then Return True
        If Me.ImpCtl24.열번호 <> "" AndAlso Me.ImpCtl24.빈값체크 Then Return True
        If Me.ImpCtl25.열번호 <> "" AndAlso Me.ImpCtl25.빈값체크 Then Return True
        If Me.ImpCtl26.열번호 <> "" AndAlso Me.ImpCtl26.빈값체크 Then Return True
        If Me.ImpCtl27.열번호 <> "" AndAlso Me.ImpCtl27.빈값체크 Then Return True
        If Me.ImpCtl28.열번호 <> "" AndAlso Me.ImpCtl28.빈값체크 Then Return True
        If Me.ImpCtl29.열번호 <> "" AndAlso Me.ImpCtl29.빈값체크 Then Return True
        If Me.ImpCtl30.열번호 <> "" AndAlso Me.ImpCtl30.빈값체크 Then Return True
        If Me.ImpCtl31.열번호 <> "" AndAlso Me.ImpCtl31.빈값체크 Then Return True
        If Me.ImpCtl32.열번호 <> "" AndAlso Me.ImpCtl32.빈값체크 Then Return True
        If Me.ImpCtl33.열번호 <> "" AndAlso Me.ImpCtl33.빈값체크 Then Return True
        If Me.ImpCtl34.열번호 <> "" AndAlso Me.ImpCtl34.빈값체크 Then Return True
        If Me.ImpCtl35.열번호 <> "" AndAlso Me.ImpCtl35.빈값체크 Then Return True
        If Me.ImpCtl36.열번호 <> "" AndAlso Me.ImpCtl36.빈값체크 Then Return True
        If Me.ImpCtl37.열번호 <> "" AndAlso Me.ImpCtl37.빈값체크 Then Return True
        If Me.ImpCtl38.열번호 <> "" AndAlso Me.ImpCtl38.빈값체크 Then Return True
        If Me.ImpCtl39.열번호 <> "" AndAlso Me.ImpCtl39.빈값체크 Then Return True
        If Me.ImpCtl40.열번호 <> "" AndAlso Me.ImpCtl40.빈값체크 Then Return True

        Return False
    End Function

    Private Sub SHowCnt(ByVal cnt As Integer, ByVal maxcnt As Integer)
        Me.lb_cnt.Text = cnt & "/" & maxcnt
        My.Application.DoEvents()
    End Sub

    Private Sub Apply가공() '//적용루틴 끝에 추가를 해주는것뿐이다 (가공번호찰)

        Dim 번호 As Integer = 0    '//번호는 notnull 이다
        Dim 구관리구 As String = "'" '//번호는 notnull 이다
        Dim 구전산번호 As String = "'"   '//번호는 notnull 이다
        Dim 관리구 As String = "'"  '//번호는 notnull 이다
        Dim 전산번호 As String = "'"   '//번호는 notnull 이다
        Dim 선로명 As String = "'"   '//번호는 notnull 이다
        Dim 번호1 As String = "'"  '//번호는 notnull 이다
        Dim 번호2 As String = "'"   '//번호는 notnull 이다
        Dim 번호3 As String = "'" '//번호는 notnull 이다
        Dim 번호4 As String = "'" '//번호는 notnull 이다
        Dim 번호5 As String = "'"     '//번호는 notnull 이다
        Dim 장척 As String = "'"   '//번호는 notnull 이다
        Dim 시공년월 As String = "'"   '//번호는 notnull 이다
        Dim 시공자 As String = "'"    '//번호는 notnull 이다
        Dim DL명 As String = "'" '//번호는 notnull 이다
        Dim 감독자 As String = "'"  '//번호는 notnull 이다
        Dim 접지1 As String = "'"   '//번호는 notnull 이다
        Dim 접지2 As String = "'"   '//접지2는 인쇄로 사용한다(인쇄의 의미는 지선주 유무다)
        Dim 점검일자 As String = ""
        Dim 인쇄, 기입, 인입 As Boolean
        Dim 선로전방 As String = String.Empty
        Dim 선로좌측 As String = String.Empty
        Dim 선로우측 As String = String.Empty


        '//20071102 추가함
        Dim 구선로명 As String = "'"
        Dim 구전주번호 As String

        '//20150203
        Dim 휴즈용량 As String = ""
        Dim 상표시찰1단 As String = "'"
        Dim 상표시찰2단 As String = "'"

        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""

        Dim cnt As Integer = -1


        NOTICE("데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))

        '//src전주세부 테이블에 데이터를 기록한다.
        '//먼저 null check가 잇는지 확인한다. 체크되어있다면.. 널값을 확인해야한다.

        Me.SRC전주세부.Clear()

        Dim index As Integer = 0
        ' MsgBox(NullChk)


        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                Me.SHowCnt(index, EndCnt)
                번호 = index ' Me.GetItemFP(Dr, Me.TextBox5, Me.TextBox42, True).ToString.ToUpper    '//번호는 notnull 이다
                구관리구 = Me.GetFPData(Me.ImpCtl2, Dr).ToUpper.Trim
                구전산번호 = Me.GetFPData(Me.ImpCtl3, Dr).ToUpper.Trim
                관리구 = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim
                전산번호 = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim
                선로명 = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                번호1 = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim
                번호2 = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim
                번호3 = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim
                번호4 = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                번호5 = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim
                장척 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim("-").Trim
                시공년월 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                시공자 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim
                DL명 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                감독자 = Me.GetFPData(Me.ImpCtl16, Dr).ToUpper.Trim
                접지1 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                접지2 = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim
                구선로명 = Me.GetFPData(Me.ImpCtl19, Dr).ToUpper.Trim
                구전주번호 = Me.GetFPData(Me.ImpCtl20, Dr).ToUpper.Trim

                점검일자 = Me.GetFPData(Me.ImpCtl21, Dr).ToUpper.Trim
                휴즈용량 = Me.GetFPData(Me.ImpCtl22, Dr).ToUpper.Trim
                상표시찰1단 = Me.GetFPData(Me.ImpCtl23, Dr).ToUpper.Trim
                상표시찰2단 = Me.GetFPData(Me.ImpCtl24, Dr).ToUpper.Trim

                선로전방 = Me.GetFPData(Me.ImpCtl25, Dr).ToUpper.Trim
                선로좌측 = Me.GetFPData(Me.ImpCtl26, Dr).ToUpper.Trim
                선로우측 = Me.GetFPData(Me.ImpCtl27, Dr).ToUpper.Trim

                인쇄 = IIf(접지2.Trim <> "", True, False)
                If 장척 <> "" AndAlso 장척.Length = 1 Then 장척 = "0" & 장척

                If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                    NullVal = ""
                    If Me.ImpCtl2.빈값체크 Then NullVal = IIf(구관리구.Trim = "", "", "X")
                    If Me.ImpCtl3.빈값체크 Then NullVal &= IIf(구전산번호.Trim = "", "", "X")
                    If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(관리구.Trim = "", "", "X")
                    If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(전산번호.Trim = "", "", "X")
                    If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(선로명.Trim = "", "", "X")
                    If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(번호1.Trim = "", "", "X")
                    If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(번호2.Trim = "", "", "X")
                    If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(번호3.Trim = "", "", "X")
                    If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(번호4.Trim = "", "", "X")
                    If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(번호5.Trim = "", "", "X")
                    If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(장척.Trim = "", "", "X")
                    If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(시공년월.Trim = "", "", "X")
                    If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(시공자.Trim = "", "", "X")
                    If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(DL명.Trim = "", "", "X")
                    If Me.ImpCtl16.빈값체크 Then NullVal &= IIf(감독자.Trim = "", "", "X")
                    If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(접지1.Trim = "", "", "X")
                    If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(접지2.Trim = "", "", "X")
                    If Me.ImpCtl19.빈값체크 Then NullVal &= IIf(구선로명.Trim = "", "", "X")
                    If Me.ImpCtl20.빈값체크 Then NullVal &= IIf(구전주번호.Trim = "", "", "X")
                    If Me.ImpCtl21.빈값체크 Then NullVal &= IIf(점검일자.Trim = "", "", "X")
                    If Me.ImpCtl22.빈값체크 Then NullVal &= IIf(휴즈용량.Trim = "", "", "X")
                    If Me.ImpCtl23.빈값체크 Then NullVal &= IIf(상표시찰1단.Trim = "", "", "X")
                    If Me.ImpCtl24.빈값체크 Then NullVal &= IIf(상표시찰2단.Trim = "", "", "X")

                    If Me.ImpCtl25.빈값체크 Then NullVal &= IIf(선로전방.Trim = "", "", "X")
                    If Me.ImpCtl26.빈값체크 Then NullVal &= IIf(선로좌측.Trim = "", "", "X")
                    If Me.ImpCtl27.빈값체크 Then NullVal &= IIf(선로우측.Trim = "", "", "X")

                Else
                    NullVal = "X" '//기본false로 해줘야한다.
                End If


                If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                    ' Me.CustFP1.ActiveSheet.Rows(Dr.Index).BackColor = Color.Blue
                    Select Case 장척.ToUpper
                        Case "B06", "B6", "06"
                            인입 = True    '//인입
                            기입 = False    '//기입
                        Case ""
                            인입 = False    '//인입
                            기입 = True    '//기입
                        Case Else
                            인입 = False
                            기입 = False
                    End Select

                    '기입 = IIf(DL명 <> "", True, False)

                    Me.SRCjjutableRow = Me.SRC전주세부.NewjjutableRow
                    Me.SRCjjutableRow.rowid = System.Guid.NewGuid
                    Me.SRCjjutableRow.관리ID = 관리id
                    Me.SRCjjutableRow.번호 = 번호
                    Me.SRCjjutableRow.구관리구 = 구관리구
                    Me.SRCjjutableRow.구전산번호 = 구전산번호
                    Me.SRCjjutableRow.관리구 = 관리구
                    Me.SRCjjutableRow.전주번호 = 전산번호
                    Me.SRCjjutableRow.선로명 = 선로명
                    Me.SRCjjutableRow.번호1 = 번호1
                    Me.SRCjjutableRow.번호2 = 번호2
                    Me.SRCjjutableRow.번호3 = 번호3
                    Me.SRCjjutableRow.번호4 = 번호4
                    Me.SRCjjutableRow.번호5 = 번호5
                    If 장척.Length = 1 Then
                        장척 = "0" & 장척
                    ElseIf 장척.Length > 3 Then
                        장척 = 장척.Substring(0, 3)
                    End If
                    Me.SRCjjutableRow.장척 = 장척
                    Me.SRCjjutableRow.시공년월 = 시공년월
                    Me.SRCjjutableRow.시공자 = 시공자
                    Me.SRCjjutableRow.DL명 = DL명
                    Me.SRCjjutableRow.감독자 = 감독자
                    Me.SRCjjutableRow.접지저항1 = 접지1
                    'Me.SRCjjutableRow.접지저항2 = 접지2
                    Me.SRCjjutableRow.인쇄 = 인쇄
                    Me.SRCjjutableRow.기입 = 기입
                    Me.SRCjjutableRow.인입 = 인입

                    Me.SRCjjutableRow.구선로명 = 구선로명
                    Me.SRCjjutableRow.구전주번호 = 구전주번호
                    Me.SRCjjutableRow.출력 = True
                    Me.SRCjjutableRow.정렬번호 = ""

                    '//20150203
                    Me.SRCjjutableRow.점검일자 = 점검일자
                    Me.SRCjjutableRow.COS휴즈용량 = 휴즈용량
                    Me.SRCjjutableRow.상표시찰1단 = 상표시찰1단
                    Me.SRCjjutableRow.상표시찰2단 = 상표시찰2단

                    '//1707152100
                    Me.SRCjjutableRow.선로전방 = 선로전방
                    Me.SRCjjutableRow.선로좌측 = 선로좌측
                    Me.SRCjjutableRow.선로우측 = 선로우측

                    Try
                        Me.SRC전주세부.Rows.Add(Me.SRCjjutableRow)
                    Catch ex As Exception
                        MsgBox("가져오기오류!" & 관리id & "/" & 번호 & vbCrLf & ex.ToString)
                        'AddLog(ex.InnerException.ToString, ex.Message.ToString)
                    End Try
                Else
                    '  If Me.CustFP1.ActiveSheet.Rows(Dr.Index).BackColor = Color.Blue Then Me.CustFP1.ActiveSheet.Rows(Dr.Index).BackColor = Color.Black
                End If
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.SRC전주세부


        Me.CustFP2.ActiveSheet.Columns(0).Width = 0
        Me.CustFP2.ActiveSheet.Columns(1).Width = 0
        Me.CustFP2.ActiveSheet.Columns(2).Width = 0
        Me.CustFP2.ActiveSheet.Columns(17).Width = 0
        Me.CustFP2.ActiveSheet.Columns(19).Label = "지선주"
        Me.CustFP2.ActiveSheet.Columns(20).Width = 0
        For i As Short = 23 To 28
            Me.CustFP2.ActiveSheet.Columns(i).Width = 0
        Next
        For i As Short = 31 To 36
            Me.CustFP2.ActiveSheet.Columns(i).Width = 0
        Next


    End Sub
    Private Sub Apply지중() '//적용루틴 끝에 추가를 해주는것뿐이다 (가공번호찰)

        Dim 번호 As Integer     '//번호는 notnull 이다
        Dim 관리구 As String    '//번호는 notnull 이다
        Dim 전산번호 As String    '//번호는 notnull 이다

        Dim 선로명_기기 As String     '//번호는 notnull 이다
        Dim 선로번호_기기 As String    '//번호는 notnull 이다

        Dim 선로번호_변압 As String
        Dim 선로명_변압 As String
        'Dim 번호2 As String     '//번호는 notnull 이다
        'Dim 번호3 As String   '//번호는 notnull 이다
        'Dim 번호4 As String  '//번호는 notnull 이다
        'Dim 번호5 As String     '//번호는 notnull 이다
        Dim 변압기상 As String    '//번호는 notnull 이다
        Dim 변압기용량 As String   '//번호는 notnull 이다
        Dim 시공업체 As String    '//번호는 notnull 이다
        Dim 시공년월 As String  '//번호는 notnull 이다
        Dim 제조년월 As String  '//170321
        Dim 제조회사 As String
        Dim 기기명 As String
        'Dim 비고 As String
        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""
        '20090512
        Dim 변압기관리구, 변압기전산번호 As String
        Dim 전원측, 부하측 As String


        Dim cnt As Integer = -1

        NOTICE("데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))


        '//src지중세부 테이블에 데이터를 기록한다.

        Me.SRC지중세부.Clear()
        Dim index As Integer = 0

        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                Me.SHowCnt(index, EndCnt)
                NullVal = False
                Try
                    번호 = index ' Me.GetItemFP(Dr, Me.TextBox5, Me.TextBox42, True).ToString.ToUpper    '//번호는 notnull 이다

                    관리구 = Me.GetFPData(Me.ImpCtl2, Dr).ToUpper.Trim
                    전산번호 = Me.GetFPData(Me.ImpCtl3, Dr).ToUpper.Trim

                    변압기관리구 = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim
                    변압기전산번호 = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim

                    선로명_기기 = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                    선로번호_기기 = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim

                    시공년월 = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim
                    시공업체 = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim

                    선로명_변압 = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                    선로번호_변압 = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim
                    변압기상 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    변압기용량 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                    전원측 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim
                    부하측 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                    기기명 = Me.GetFPData(Me.ImpCtl16, Dr).ToUpper.Trim

                    제조년월 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    제조회사 = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim
                    '비고 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim







                    If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                        NullVal = ""

                        If Me.ImpCtl2.빈값체크 Then NullVal &= IIf(관리구.Trim = "", "", "X")
                        If Me.ImpCtl3.빈값체크 Then NullVal &= IIf(전산번호.Trim = "", "", "X")

                        If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(변압기관리구.Trim = "", "", "X")
                        If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(변압기전산번호.Trim = "", "", "X")

                        If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(선로명_기기.Trim = "", "", "X")
                        If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(선로번호_기기.Trim = "", "", "X")

                        If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(시공년월.Trim = "", "", "X")
                        If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(시공업체.Trim = "", "", "X")

                        If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(선로명_변압.Trim = "", "", "X")
                        If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(선로번호_변압.Trim = "", "", "X")
                        If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(변압기상.Trim = "", "", "X")
                        If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(변압기용량.Trim = "", "", "X")

                        If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(전원측.Trim = "", "", "X")
                        If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(부하측.Trim = "", "", "X")

                        If Me.ImpCtl16.빈값체크 Then NullVal &= IIf(기기명.Trim = "", "", "X")

                        If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(제조년월.Trim = "", "", "X")
                        If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(제조회사.Trim = "", "", "X")

                    Else
                        NullVal = "X" '//기본false로 해줘야한다.
                    End If

                    If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                        Me.SRCjjungtableRow = Me.SRC지중세부.NewjjungtableRow
                        Me.SRCjjungtableRow.rowid = System.Guid.NewGuid
                        Me.SRCjjungtableRow.관리ID = 관리id
                        Me.SRCjjungtableRow.번호 = 번호
                        Me.SRCjjungtableRow.관리구 = 관리구
                        Me.SRCjjungtableRow.전산화번호 = 전산번호
                        Me.SRCjjungtableRow.선로명 = 선로명_기기
                        Me.SRCjjungtableRow.번호1 = 선로번호_기기
                        'Me.SRCjjungtableRow.번호2 = 번호2
                        'Me.SRCjjungtableRow.번호3 = 번호3
                        'Me.SRCjjungtableRow.번호4 = 번호4
                        'Me.SRCjjungtableRow.번호5 = 번호5
                        Me.SRCjjungtableRow.변압기상 = 변압기상
                        Me.SRCjjungtableRow.변압기용량 = 변압기용량
                        Me.SRCjjungtableRow.시공업체 = 시공업체
                        Me.SRCjjungtableRow.시공년월 = 시공년월
                        Me.SRCjjungtableRow.비고1 = 기기명   '//비고 0,2 는 사용하지 않는다.
                        'Me.SRCjjungtableRow.비고3 = 비고
                        Me.SRCjjungtableRow.출력 = True
                        Me.SRCjjungtableRow.정렬번호 = True
                        Me.SRCjjungtableRow.관리구2 = 변압기관리구
                        Me.SRCjjungtableRow.전산번호2 = 변압기전산번호

                        Me.SRCjjungtableRow.변압기명 = 선로번호_변압
                        Me.SRCjjungtableRow.변압기선로 = 선로명_변압

                        Me.SRCjjungtableRow.전원측 = 전원측
                        Me.SRCjjungtableRow.부하측 = 부하측

                        Me.SRCjjungtableRow.제조년월 = 제조년월
                        Me.SRCjjungtableRow.제조회사 = 제조회사

                        Me.SRC지중세부.Rows.Add(Me.SRCjjungtableRow)
                        '  Catch ex As ConstraintException '//중복
                        '      ' AddLog("번호중복", "중복된 번호:" & 번호)
                    End If
                Catch ex As Exception
                    MsgBox("가져오기오류!" & 관리id & "/" & 번호 & vbCrLf & ex.ToString)
                    'AddLog(ex.InnerException.ToString, ex.Message.ToString)
                End Try
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.SRC지중세부
        Me.CustFP2.ActiveSheet.Columns(11).Label = "기기명"

        'Me.CustFP2.ActiveSheet.Columns(11).Width = 0
        'Me.CustFP2.ActiveSheet.Columns(19).Width = 0

    End Sub
    Private Sub ApplyETC() '//적용루틴 끝에 추가를 해주는것뿐이다 (기타번호찰)

        Dim 번호 As Integer     '//번호는 notnull 이다
        Dim 관리구 As String    '//번호는 notnull 이다
        Dim 전산번호 As String    '//번호는 notnull 이다
        Dim 선로명 As String     '//번호는 notnull 이다
        Dim 번호1 As String    '//번호는 notnull 이다
        Dim 번호2 As String     '//번호는 notnull 이다
        Dim 번호3 As String   '//번호는 notnull 이다
        Dim 번호4 As String  '//번호는 notnull 이다
        Dim 번호5 As String     '//번호는 notnull 이다
        Dim 비고1 As String    '//번호는 notnull 이다
        Dim 비고2 As String   '//번호는 notnull 이다
        Dim 비고3 As String    '//번호는 notnull 이다
        Dim 비고4 As String  '//번호는 notnull 이다
        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""

        Dim cnt As Integer = -1

        NOTICE("데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))

        Dim index As Integer = 0

        Me.SRC기타세부.Clear()

        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                SHowCnt(index, EndCnt)

                NullVal = False
                Try
                    번호 = index


                    관리구 = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim
                    전산번호 = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim
                    선로명 = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                    번호1 = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim
                    번호2 = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim
                    번호3 = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim
                    번호4 = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                    번호5 = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim
                    '장척 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    '시공년월 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper
                    '시공자 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper
                    비고1 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                    비고2 = Me.GetFPData(Me.ImpCtl16, Dr).ToUpper.Trim
                    비고3 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    비고4 = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim

                    If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                        NullVal = ""
                        If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(관리구.Trim = "", "", "X")
                        If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(전산번호.Trim = "", "", "X")
                        If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(선로명.Trim = "", "", "X")
                        If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(번호1.Trim = "", "", "X")
                        If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(번호2.Trim = "", "", "X")
                        If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(번호3.Trim = "", "", "X")
                        If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(번호4.Trim = "", "", "X")
                        If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(번호5.Trim = "", "", "X")
                        If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(비고1.Trim = "", "", "X")
                        If Me.ImpCtl16.빈값체크 Then NullVal &= IIf(비고2.Trim = "", "", "X")
                        If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(비고3.Trim = "", "", "X")
                        If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(비고4.Trim = "", "", "X")
                    Else
                        NullVal = "X" '//기본false로 해줘야한다.
                    End If


                    If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                        Me.SRCetctableRow = Me.SRC기타세부.NewEtcTableRow   '//임시테이블
                        Me.SRCetctableRow.rowid = System.Guid.NewGuid
                        Me.SRCetctableRow.관리ID = 관리id
                        Me.SRCetctableRow.번호 = index
                        Me.SRCetctableRow.관리구 = 관리구
                        Me.SRCetctableRow.전주번호 = 전산번호
                        Me.SRCetctableRow.선로명 = 선로명
                        Me.SRCetctableRow.번호1 = 번호1
                        Me.SRCetctableRow.번호2 = 번호2
                        Me.SRCetctableRow.번호3 = 번호3
                        Me.SRCetctableRow.번호4 = 번호4
                        Me.SRCetctableRow.번호5 = 번호5
                        Me.SRCetctableRow.비고1 = 비고1
                        Me.SRCetctableRow.비고2 = 비고2
                        Me.SRCetctableRow.비고3 = 비고3
                        Me.SRCetctableRow.비고4 = 비고4
                        Me.SRCetctableRow.출력 = True
                        Me.SRCetctableRow.정렬번호 = True
                        Me.SRC기타세부.Rows.Add(Me.SRCetctableRow)
                    End If
                Catch ex As ConstraintException '//중복
                    ' AddLog("번호중복", "중복된 번호:" & 번호)
                Catch ex As Exception
                    ' AddLog(ex.InnerException.ToString, ex.Message.ToString)
                End Try
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.SRC기타세부
        Me.CustFP2.ActiveSheet.Columns(0).Width = 0
        Me.CustFP2.ActiveSheet.Columns(1).Width = 0
    End Sub
    Private Sub ApplyDeung() '//정액등 미리보기
        Dim 번호 As Integer     '//번호는 notnull 이다
        Dim 고객번호1, 고객번호2, 고객번호3 As String    '//번호는 notnull 이다
        Dim 관리번호1, 관리번호2, 관리번호3 As String    '//번호는 notnull 이다
        Dim 지점명 As String
        Dim 전산화번호1, 전산화번호2 As String
        Dim 선로명 As String
        Dim 전주번호1, 전주번호2, 전주번호3 As String
        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""

        Dim cnt As Integer = -1

        NOTICE("(임시)데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))
        Dim index As Integer = 0
        Me.SRCDetail_Deung.Clear()   '//기존데이터 삭제

        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                SHowCnt(index, EndCnt)

                NullVal = False
                Try
                    번호 = index

                    고객번호1 = Me.GetFPData(Me.ImpCtl2, Dr).ToUpper.Trim
                    고객번호2 = Me.GetFPData(Me.ImpCtl3, Dr).ToUpper.Trim
                    고객번호3 = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim

                    관리번호1 = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim
                    관리번호2 = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                    관리번호3 = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim
                    지점명 = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim

                    전산화번호1 = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim
                    전산화번호2 = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                    선로명 = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim
                    전주번호1 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    전주번호2 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                    전주번호3 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim

                    If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                        NullVal = ""
                        If Me.ImpCtl2.빈값체크 Then NullVal &= IIf(고객번호1.Trim = "", "", "X")
                        If Me.ImpCtl3.빈값체크 Then NullVal &= IIf(고객번호2.Trim = "", "", "X")
                        If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(고객번호3.Trim = "", "", "X")
                        If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(관리번호1.Trim = "", "", "X")
                        If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(관리번호2.Trim = "", "", "X")
                        If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(관리번호3.Trim = "", "", "X")
                        If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(지점명.Trim = "", "", "X")

                        If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(전산화번호1.Trim = "", "", "X")
                        If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(전산화번호2.Trim = "", "", "X")

                        If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(선로명.Trim = "", "", "X")

                        If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(전주번호1.Trim = "", "", "X")
                        If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(전주번호2.Trim = "", "", "X")
                        If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(전주번호3.Trim = "", "", "X")
                    Else
                        NullVal = "X" '//기본false로 해줘야한다.
                    End If


                    If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                        Me.SrcdeungTablerow = Me.SRCDetail_Deung.NewDetail_DeungRow   '//임시테이블
                        Me.SrcdeungTablerow.rowid = System.Guid.NewGuid
                        Me.SrcdeungTablerow.관리ID = 관리id
                        Me.SrcdeungTablerow.번호 = index
                        Me.SrcdeungTablerow.고객번호1 = 고객번호1
                        Me.SrcdeungTablerow.고객번호2 = 고객번호2
                        Me.SrcdeungTablerow.고객번호3 = 고객번호3
                        Me.SrcdeungTablerow.관리번호1 = 관리번호1
                        Me.SrcdeungTablerow.관리번호2 = 관리번호2
                        Me.SrcdeungTablerow.관리번호3 = 관리번호3
                        Me.SrcdeungTablerow.지점명 = 지점명
                        Me.SrcdeungTablerow.전산화번호1 = 전산화번호1
                        Me.SrcdeungTablerow.전산화번호2 = 전산화번호2
                        Me.SrcdeungTablerow.선로명 = 선로명
                        Me.SrcdeungTablerow.전주번호1 = 전주번호1
                        Me.SrcdeungTablerow.전주번호2 = 전주번호2
                        Me.SrcdeungTablerow.전주번호3 = 전주번호3
                        Me.SrcdeungTablerow.출력 = True
                        Me.SrcdeungTablerow.정렬번호 = ""

                        Me.SRCDetail_Deung.Rows.Add(Me.SrcdeungTablerow)
                        '
                    End If
                Catch ex As ConstraintException '//중복
                    ' AddLog("번호중복", "중복된 번호:" & 번호)
                Catch ex As Exception
                    ' AddLog(ex.InnerException.ToString, ex.Message.ToString)
                End Try
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.SRCDetail_Deung
        Me.CustFP2.ActiveSheet.Columns(0).Width = 0
        Me.CustFP2.ActiveSheet.Columns(1).Width = 0
        Me.CustFP2.ActiveSheet.Columns(2).Width = 0
        Me.CustFP2.ActiveSheet.Columns(7).Width = 0
        Me.CustFP2.ActiveSheet.Columns(8).Width = 0
        Me.CustFP2.ActiveSheet.Columns(9).Width = 0
        Me.CustFP2.ActiveSheet.Columns(10).Width = 0
    End Sub
    Private Sub Apply가공_기기() '//정액등 미리보기
        Dim 번호 As Integer     '//번호는 notnull 이다
        Dim 관리구, 전산화번호 As String    '//번호는 notnull 이다
        Dim 번호1, 번호2, 번호3, 번호4, 번호5 As String    '//번호는 notnull 이다
        Dim 회선11, 회선12, 회선21, 회선22, 회선31, 회선32 As String
        Dim 선로명 As String
        Dim 비고1, 비고2, 비고3, 비고4 As String
        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""

        Dim cnt As Integer = -1

        NOTICE("(임시)데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))
        Dim index As Integer = 0
        Me.Src기기세부.Clear()   '//기존데이터 삭제

        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                SHowCnt(index, EndCnt)

                NullVal = False
                Try
                    번호 = index

                    관리구 = Me.GetFPData(Me.ImpCtl2, Dr).ToUpper.Trim
                    전산화번호 = Me.GetFPData(Me.ImpCtl3, Dr).ToUpper.Trim
                    선로명 = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim

                    번호1 = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim
                    번호2 = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                    번호3 = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim
                    번호4 = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim
                    번호5 = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim

                    회선11 = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                    회선12 = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim
                    '회선13 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    '회선14 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                    '회선15 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim

                    회선21 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    회선22 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                    '회선23 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    '회선24 = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim
                    '회선25 = Me.GetFPData(Me.ImpCtl19, Dr).ToUpper.Trim

                    회선31 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim
                    회선32 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                    '회선33 = Me.GetFPData(Me.ImpCtl22, Dr).ToUpper.Trim
                    '회선34 = Me.GetFPData(Me.ImpCtl23, Dr).ToUpper.Trim
                    '회선35 = Me.GetFPData(Me.ImpCtl24, Dr).ToUpper.Trim

                    비고1 = Me.GetFPData(Me.ImpCtl16, Dr).ToUpper.Trim
                    비고2 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    비고3 = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim
                    비고4 = Me.GetFPData(Me.ImpCtl19, Dr).ToUpper.Trim

                    If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                        NullVal = ""
                        If Me.ImpCtl2.빈값체크 Then NullVal &= IIf(관리구.Trim = "", "", "X")
                        If Me.ImpCtl3.빈값체크 Then NullVal &= IIf(전산화번호.Trim = "", "", "X")
                        If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(선로명.Trim = "", "", "X")
                        If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(번호1.Trim = "", "", "X")
                        If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(번호2.Trim = "", "", "X")
                        If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(번호3.Trim = "", "", "X")
                        If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(번호4.Trim = "", "", "X")
                        If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(번호5.Trim = "", "", "X")

                        If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(회선11.Trim = "", "", "X")
                        If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(회선12.Trim = "", "", "X")
                        'If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(회선13.Trim = "", "", "X")
                        'If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(회선14.Trim = "", "", "X")
                        'If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(회선15.Trim = "", "", "X")
                        If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(회선21.Trim = "", "", "X")
                        If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(회선22.Trim = "", "", "X")
                        'If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(회선23.Trim = "", "", "X")
                        'If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(회선24.Trim = "", "", "X")
                        'If Me.ImpCtl19.빈값체크 Then NullVal &= IIf(회선25.Trim = "", "", "X")
                        If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(회선31.Trim = "", "", "X")
                        If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(회선32.Trim = "", "", "X")
                        'If Me.ImpCtl22.빈값체크 Then NullVal &= IIf(회선33.Trim = "", "", "X")
                        'If Me.ImpCtl23.빈값체크 Then NullVal &= IIf(회선34.Trim = "", "", "X")
                        'If Me.ImpCtl24.빈값체크 Then NullVal &= IIf(회선35.Trim = "", "", "X")

                        If Me.ImpCtl16.빈값체크 Then NullVal &= IIf(비고1.Trim = "", "", "X")
                        If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(비고2.Trim = "", "", "X")
                        If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(비고3.Trim = "", "", "X")
                        If Me.ImpCtl19.빈값체크 Then NullVal &= IIf(비고4.Trim = "", "", "X")
                    Else
                        NullVal = "X" '//기본false로 해줘야한다.
                    End If


                    If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                        Me.SrcKikiTableRow = Me.Src기기세부.NewDetail_kikiRow   '//임시테이블
                        Me.SrcKikiTableRow.rowid = System.Guid.NewGuid
                        Me.SrcKikiTableRow.관리ID = 관리id
                        Me.SrcKikiTableRow.번호 = index
                        Me.SrcKikiTableRow.관리구 = 관리구
                        Me.SrcKikiTableRow.전주번호 = 전산화번호
                        Me.SrcKikiTableRow.선로명 = 선로명
                        Me.SrcKikiTableRow.번호1 = 번호1
                        Me.SrcKikiTableRow.번호2 = 번호2
                        Me.SrcKikiTableRow.번호3 = 번호3
                        Me.SrcKikiTableRow.번호4 = 번호4
                        Me.SrcKikiTableRow.번호5 = 번호5
                        Me.SrcKikiTableRow.회선11 = 회선11
                        Me.SrcKikiTableRow.회선12 = 회선12
                        'Me.SrcKikiTableRow.회선13 = 회선13
                        'Me.SrcKikiTableRow.회선14 = 회선14
                        'Me.SrcKikiTableRow.회선15 = 회선15

                        Me.SrcKikiTableRow.회선21 = 회선21
                        Me.SrcKikiTableRow.회선22 = 회선22
                        'Me.SrcKikiTableRow.회선23 = 회선23
                        'Me.SrcKikiTableRow.회선24 = 회선24
                        'Me.SrcKikiTableRow.회선25 = 회선25

                        Me.SrcKikiTableRow.회선31 = 회선31
                        Me.SrcKikiTableRow.회선32 = 회선32
                        'Me.SrcKikiTableRow.회선33 = 회선33
                        'Me.SrcKikiTableRow.회선34 = 회선34
                        'Me.SrcKikiTableRow.회선35 = 회선35

                        Me.SrcKikiTableRow.비고1 = 비고1
                        Me.SrcKikiTableRow.비고2 = 비고2
                        Me.SrcKikiTableRow.비고3 = 비고3
                        Me.SrcKikiTableRow.비고4 = 비고4

                        Me.SrcKikiTableRow.출력 = True
                        Me.SrcKikiTableRow.정렬번호 = ""

                        Me.Src기기세부.Rows.Add(Me.SrcKikiTableRow)
                        '
                    End If
                Catch ex As ConstraintException '//중복
                    ' AddLog("번호중복", "중복된 번호:" & 번호)
                Catch ex As Exception
                    ' AddLog(ex.InnerException.ToString, ex.Message.ToString)
                End Try
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.Src기기세부
        Me.CustFP2.ActiveSheet.Columns(0).Width = 0
        Me.CustFP2.ActiveSheet.Columns(1).Width = 0
        'Me.CustFP2.ActiveSheet.Columns(10).Width = 0
        'Me.CustFP2.ActiveSheet.Columns(11).Width = 0
        'Me.CustFP2.ActiveSheet.Columns(12).Width = 0
        'Me.CustFP2.ActiveSheet.Columns(13).Width = 0
        'Me.CustFP2.ActiveSheet.Columns(26).Width = 0
        'Me.CustFP2.ActiveSheet.Columns(27).Width = 0
    End Sub
    Private Sub Apply지중케이블2() '//적용루틴 끝에 추가를 해주는것뿐이다 (가공번호찰)
        Dim 관리구 As String = ""
        Dim 전산번호 As String = ""
        Dim ha단자명 As String = ""
        Dim HA구간 As String = ""
        Dim HASS As String = ""
        Dim HADL As String = ""

        Dim HB단자명 As String = ""
        Dim HBSS As String = ""
        Dim HBDL As String = ""
        Dim HB구간 As String = ""

        Dim S1번호1 As String = ""
        Dim S1번호2 As String = ""
        Dim S1번호3 As String = ""
        'Dim S1번호4 As String = ""
        Dim S1SW명 As String = ""
        'Dim S1위치 As String = ""
        Dim s2번호1 As String = ""
        Dim s2번호2 As String = ""
        Dim s2번호3 As String = ""
        'Dim s2번호4 As String = ""
        Dim s2SW명 As String = ""
        'Dim s2위치 As String = ""
        Dim s3번호1 As String = ""
        Dim s3번호2 As String = ""
        Dim s3번호3 As String = ""
        'Dim s3번호4 As String = ""
        Dim s3SW명 As String = ""
        'Dim s3위치 As String = ""
        Dim s4번호1 As String = ""
        Dim s4번호2 As String = ""
        Dim s4번호3 As String = ""
        'Dim s4번호4 As String = ""
        Dim s4SW명 As String = ""
        'Dim s4위치 As String = ""

        Dim 비고1, 비고2, 비고3, 비고4, 비고5, 비고6 As String

        Dim 번호 As Integer     '//번호는 notnull 이다
        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""

        Dim cnt As Integer = -1

        NOTICE("데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))


        '//src지중세부 테이블에 데이터를 기록한다.

        Me.SRCDetail_Cable.Clear()
        Dim index As Integer = 0

        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                Me.SHowCnt(index, EndCnt)
                NullVal = False
                Try
                    번호 = index ' Me.GetItemFP(Dr, Me.TextBox5, Me.TextBox42, True).ToString.ToUpper    '//번호는 notnull 이다
                    관리구 = Me.GetFPData(Me.ImpCtl2, Dr).ToUpper.Trim
                    전산번호 = Me.GetFPData(Me.ImpCtl3, Dr).ToUpper.Trim

                    ha단자명 = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim
                    HASS = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim
                    HADL = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                    HA구간 = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim

                    HB단자명 = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim
                    HBSS = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim
                    HBDL = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                    HB구간 = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim

                    S1번호1 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    S1번호2 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                    S1번호3 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim
                    ' S1번호4 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                    S1SW명 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                    'S1위치 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    s2번호1 = Me.GetFPData(Me.ImpCtl16, Dr).ToUpper.Trim
                    s2번호2 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    s2번호3 = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim
                    's2번호4 = Me.GetFPData(Me.ImpCtl21, Dr).ToUpper.Trim
                    s2SW명 = Me.GetFPData(Me.ImpCtl19, Dr).ToUpper.Trim
                    's2위치 = Me.GetFPData(Me.ImpCtl23, Dr).ToUpper.Trim
                    s3번호1 = Me.GetFPData(Me.ImpCtl20, Dr).ToUpper.Trim
                    s3번호2 = Me.GetFPData(Me.ImpCtl21, Dr).ToUpper.Trim
                    s3번호3 = Me.GetFPData(Me.ImpCtl22, Dr).ToUpper.Trim
                    's3번호4 = Me.GetFPData(Me.ImpCtl27, Dr).ToUpper.Trim
                    s3SW명 = Me.GetFPData(Me.ImpCtl23, Dr).ToUpper.Trim
                    's3위치 = Me.GetFPData(Me.ImpCtl29, Dr).ToUpper.Trim
                    s4번호1 = Me.GetFPData(Me.ImpCtl24, Dr).ToUpper.Trim
                    s4번호2 = Me.GetFPData(Me.ImpCtl25, Dr).ToUpper.Trim
                    s4번호3 = Me.GetFPData(Me.ImpCtl26, Dr).ToUpper.Trim
                    's4번호4 = Me.GetFPData(Me.ImpCtl33, Dr).ToUpper.Trim
                    s4SW명 = Me.GetFPData(Me.ImpCtl27, Dr).ToUpper.Trim
                    's4위치 = Me.GetFPData(Me.ImpCtl35, Dr).ToUpper.Trim
                    '시공년월 = Me.GetFPData(Me.ImpCtl40, Dr).ToUpper.Trim
                    '시공회사 = Me.GetFPData(Me.ImpCtl41, Dr).ToUpper.Trim
                    '공사번호 = Me.GetFPData(Me.ImpCtl42, Dr).ToUpper.Trim
                    '감독자 = Me.GetFPData(Me.ImpCtl43, Dr).ToUpper.Trim

                    비고1 = Me.GetFPData(Me.ImpCtl28, Dr).ToUpper.Trim
                    비고2 = Me.GetFPData(Me.ImpCtl29, Dr).ToUpper.Trim
                    비고3 = Me.GetFPData(Me.ImpCtl30, Dr).ToUpper.Trim
                    비고4 = Me.GetFPData(Me.ImpCtl31, Dr).ToUpper.Trim
                    비고5 = Me.GetFPData(Me.ImpCtl32, Dr).ToUpper.Trim
                    비고6 = Me.GetFPData(Me.ImpCtl33, Dr).ToUpper.Trim

                    If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                        NullVal = ""
                        If Me.ImpCtl2.빈값체크 Then NullVal &= IIf(관리구.Trim = "", "", "X")
                        If Me.ImpCtl3.빈값체크 Then NullVal &= IIf(전산번호.Trim = "", "", "X")

                        If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(ha단자명.Trim = "", "", "X")
                        If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(HASS.Trim = "", "", "X")
                        If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(HADL.Trim = "", "", "X")
                        If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(HA구간.Trim = "", "", "X")

                        If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(HB단자명.Trim = "", "", "X")
                        If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(HBSS.Trim = "", "", "X")
                        If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(HBDL.Trim = "", "", "X")
                        If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(HB구간.Trim = "", "", "X")

                        If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(S1번호1.Trim = "", "", "X")
                        If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(S1번호2.Trim = "", "", "X")
                        If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(S1번호3.Trim = "", "", "X")
                        'If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(S1번호4.Trim = "", "", "X")
                        If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(S1SW명.Trim = "", "", "X")
                        ' If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(S1위치.Trim = "", "", "X")
                        If Me.ImpCtl16.빈값체크 Then NullVal &= IIf(s2번호1.Trim = "", "", "X")
                        If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(s2번호2.Trim = "", "", "X")
                        If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(s2번호3.Trim = "", "", "X")
                        'If Me.ImpCtl21.빈값체크 Then NullVal &= IIf(s2번호4.Trim = "", "", "X")
                        If Me.ImpCtl19.빈값체크 Then NullVal &= IIf(s2SW명.Trim = "", "", "X")
                        'If Me.ImpCtl23.빈값체크 Then NullVal &= IIf(s2위치.Trim = "", "", "X")
                        If Me.ImpCtl20.빈값체크 Then NullVal &= IIf(s3번호1.Trim = "", "", "X")
                        If Me.ImpCtl21.빈값체크 Then NullVal &= IIf(s3번호2.Trim = "", "", "X")
                        If Me.ImpCtl22.빈값체크 Then NullVal &= IIf(s3번호3.Trim = "", "", "X")
                        'If Me.ImpCtl27.빈값체크 Then NullVal &= IIf(s3번호4.Trim = "", "", "X")
                        If Me.ImpCtl23.빈값체크 Then NullVal &= IIf(s3SW명.Trim = "", "", "X")
                        'If Me.ImpCtl29.빈값체크 Then NullVal &= IIf(s3위치.Trim = "", "", "X")
                        If Me.ImpCtl24.빈값체크 Then NullVal &= IIf(s4번호1.Trim = "", "", "X")
                        If Me.ImpCtl25.빈값체크 Then NullVal &= IIf(s4번호2.Trim = "", "", "X")
                        If Me.ImpCtl26.빈값체크 Then NullVal &= IIf(s4번호3.Trim = "", "", "X")
                        'If Me.ImpCtl33.빈값체크 Then NullVal &= IIf(s4번호4.Trim = "", "", "X")
                        If Me.ImpCtl27.빈값체크 Then NullVal &= IIf(s4SW명.Trim = "", "", "X")
                        'If Me.ImpCtl35.빈값체크 Then NullVal &= IIf(s4위치.Trim = "", "", "X")
                        'If Me.ImpCtl40.빈값체크 Then NullVal &= IIf(시공년월.Trim = "", "", "X")
                        'If Me.ImpCtl41.빈값체크 Then NullVal &= IIf(시공회사.Trim = "", "", "X")
                        'If Me.ImpCtl42.빈값체크 Then NullVal &= IIf(공사번호.Trim = "", "", "X")
                        'If Me.ImpCtl43.빈값체크 Then NullVal &= IIf(감독자.Trim = "", "", "X")
                        If Me.ImpCtl28.빈값체크 Then NullVal &= IIf(비고1.Trim = "", "", "X")
                        If Me.ImpCtl29.빈값체크 Then NullVal &= IIf(비고2.Trim = "", "", "X")
                        If Me.ImpCtl30.빈값체크 Then NullVal &= IIf(비고3.Trim = "", "", "X")
                        If Me.ImpCtl31.빈값체크 Then NullVal &= IIf(비고4.Trim = "", "", "X")
                        If Me.ImpCtl32.빈값체크 Then NullVal &= IIf(비고5.Trim = "", "", "X")
                        If Me.ImpCtl33.빈값체크 Then NullVal &= IIf(비고6.Trim = "", "", "X")

                    Else
                        NullVal = "X" '//기본false로 해줘야한다.
                    End If

                    If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                        Me.SRCCABLE2ROW = Me.SRCDetail_Cable2.NewDetail_Cable2Row
                        Me.SRCCABLE2ROW.rowid = System.Guid.NewGuid
                        Me.SRCCABLE2ROW.관리ID = 관리id
                        Me.SRCCABLE2ROW.번호 = 번호

                        Me.SRCCABLE2ROW.관리구 = 관리구
                        Me.SRCCABLE2ROW.전산번호 = 전산번호

                        Me.SRCCABLE2ROW.HA단자명 = ha단자명
                        Me.SRCCABLE2ROW.HASS = HASS
                        Me.SRCCABLE2ROW.HADL = HADL
                        Me.SRCCABLE2ROW.HA구간 = HA구간

                        Me.SRCCABLE2ROW.HB단자명 = HB단자명
                        Me.SRCCABLE2ROW.HBSS = HBSS
                        Me.SRCCABLE2ROW.HBDL = HBDL
                        Me.SRCCABLE2ROW.HB구간 = HB구간

                        Me.SRCCABLE2ROW.S1번호1 = S1번호1
                        Me.SRCCABLE2ROW.S1번호2 = S1번호2
                        Me.SRCCABLE2ROW.S1번호3 = S1번호3
                        'Me.SRCCABLE2ROW.S1번호4 = S1번호4
                        Me.SRCCABLE2ROW.S1SW명 = S1SW명
                        'Me.SRCCABLE2ROW.S1위치 = S1위치

                        Me.SRCCABLE2ROW.S2번호1 = s2번호1
                        Me.SRCCABLE2ROW.S2번호2 = s2번호2
                        Me.SRCCABLE2ROW.S2번호3 = s2번호3
                        'Me.SRCCABLE2ROW.S2번호4 = s2번호4
                        Me.SRCCABLE2ROW.S2SW명 = s2SW명
                        'Me.SRCCABLE2ROW.S2위치 = s2위치

                        Me.SRCCABLE2ROW.S3번호1 = s3번호1
                        Me.SRCCABLE2ROW.S3번호2 = s3번호2
                        Me.SRCCABLE2ROW.S3번호3 = s3번호3
                        'Me.SRCCABLE2ROW.S3번호4 = s3번호4
                        Me.SRCCABLE2ROW.S3SW명 = s3SW명
                        'Me.SRCCABLE2ROW.S3위치 = s3위치

                        Me.SRCCABLE2ROW.S4번호1 = s4번호1
                        Me.SRCCABLE2ROW.S4번호2 = s4번호2
                        Me.SRCCABLE2ROW.S4번호3 = s4번호3
                        'Me.SRCCABLE2ROW.S4번호4 = s4번호4
                        Me.SRCCABLE2ROW.S4SW명 = s4SW명
                        'Me.SRCCABLE2ROW.S4위치 = s4위치

                        'Me.SRCCABLE2ROW.시공년월 = 시공년월
                        'Me.SRCCABLE2ROW.시공회사 = 시공회사
                        'Me.SRCCABLE2ROW.공사번호 = 공사번호
                        'Me.SRCCABLE2ROW.감독자 = 감독자

                        Me.SRCCABLE2ROW.비고1 = 비고1
                        Me.SRCCABLE2ROW.비고2 = 비고2
                        Me.SRCCABLE2ROW.비고3 = 비고3
                        Me.SRCCABLE2ROW.비고4 = 비고4
                        Me.SRCCABLE2ROW.비고5 = 비고5
                        Me.SRCCABLE2ROW.비고6 = 비고6

                        Me.SRCCABLE2ROW.출력 = True
                        Me.SRCCABLE2ROW.정렬번호 = ""

                        Me.SRCDetail_Cable2.Rows.Add(Me.SRCCABLE2ROW)
                        '  Catch ex As ConstraintException '//중복
                        '      ' AddLog("번호중복", "중복된 번호:" & 번호)
                    End If
                Catch ex As Exception
                    MsgBox("가져오기오류!" & 관리id & "/" & 번호 & vbCrLf & ex.ToString)
                    'AddLog(ex.InnerException.ToString, ex.Message.ToString)
                End Try
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.SRCDetail_Cable2

    End Sub
    Private Sub Apply지중케이블() '//적용루틴 끝에 추가를 해주는것뿐이다 (가공번호찰)
        Dim 관리구 As String = ""
        Dim 전산번호 As String = ""
        Dim HA구간 As String = ""
        Dim HASS As String = ""
        Dim HADL As String = ""
        Dim HBSS As String = ""
        Dim HBDL As String = ""
        Dim HB구간 As String = ""
        Dim S0번호1 As String = ""
        Dim S0번호2 As String = ""
        Dim S0번호3 As String = ""
        Dim S0번호4 As String = ""
        Dim S0SW명 As String = ""

        Dim S0수용가 As String = ""
        Dim S1번호1 As String = ""
        Dim S1번호2 As String = ""
        Dim S1번호3 As String = ""
        Dim S1번호4 As String = ""
        Dim S1SW명 As String = ""
        Dim S1위치 As String = ""
        Dim s2번호1 As String = ""
        Dim s2번호2 As String = ""
        Dim s2번호3 As String = ""
        Dim s2번호4 As String = ""
        Dim s2SW명 As String = ""
        Dim s2위치 As String = ""
        Dim s3번호1 As String = ""
        Dim s3번호2 As String = ""
        Dim s3번호3 As String = ""
        Dim s3번호4 As String = ""
        Dim s3SW명 As String = ""
        Dim s3위치 As String = ""
        Dim s4번호1 As String = ""
        Dim s4번호2 As String = ""
        Dim s4번호3 As String = ""
        Dim s4번호4 As String = ""
        Dim s4SW명 As String = ""
        Dim s4위치 As String = ""
        Dim 시공년월 As String = ""
        Dim 시공회사 As String = ""
        Dim 공사번호 As String = ""
        Dim 감독자 As String = ""

        Dim ha단자명, hb단자명 As String


        Dim 비고1, 비고2, 비고3, 비고4, 비고5, 비고6 As String

        Dim 번호 As Integer     '//번호는 notnull 이다
        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""


        Dim cnt As Integer = -1

        NOTICE("데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))


        '//src지중세부 테이블에 데이터를 기록한다.

        Me.SRCDetail_Cable.Clear()
        Dim index As Integer = 0

        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                Me.SHowCnt(index, EndCnt)
                NullVal = False
                Try
                    번호 = index ' Me.GetItemFP(Dr, Me.TextBox5, Me.TextBox42, True).ToString.ToUpper    '//번호는 notnull 이다
                    관리구 = Me.GetFPData(Me.ImpCtl2, Dr).ToUpper.Trim
                    전산번호 = Me.GetFPData(Me.ImpCtl3, Dr).ToUpper.Trim
                    HASS = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim
                    HADL = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim
                    HA구간 = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                    HBSS = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim
                    HBDL = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim
                    HB구간 = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim
                    S0번호1 = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                    S0번호2 = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim
                    S0번호3 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    S0번호4 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                    S0SW명 = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim
                    S0수용가 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                    S1번호1 = Me.GetFPData(Me.ImpCtl16, Dr).ToUpper.Trim
                    S1번호2 = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    S1번호3 = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim
                    S1번호4 = Me.GetFPData(Me.ImpCtl19, Dr).ToUpper.Trim
                    S1SW명 = Me.GetFPData(Me.ImpCtl20, Dr).ToUpper.Trim
                    S1위치 = Me.GetFPData(Me.ImpCtl21, Dr).ToUpper.Trim
                    s2번호1 = Me.GetFPData(Me.ImpCtl22, Dr).ToUpper.Trim
                    s2번호2 = Me.GetFPData(Me.ImpCtl23, Dr).ToUpper.Trim
                    s2번호3 = Me.GetFPData(Me.ImpCtl24, Dr).ToUpper.Trim
                    s2번호4 = Me.GetFPData(Me.ImpCtl25, Dr).ToUpper.Trim
                    s2SW명 = Me.GetFPData(Me.ImpCtl26, Dr).ToUpper.Trim
                    s2위치 = Me.GetFPData(Me.ImpCtl27, Dr).ToUpper.Trim
                    s3번호1 = Me.GetFPData(Me.ImpCtl28, Dr).ToUpper.Trim
                    s3번호2 = Me.GetFPData(Me.ImpCtl29, Dr).ToUpper.Trim
                    s3번호3 = Me.GetFPData(Me.ImpCtl30, Dr).ToUpper.Trim
                    s3번호4 = Me.GetFPData(Me.ImpCtl31, Dr).ToUpper.Trim
                    s3SW명 = Me.GetFPData(Me.ImpCtl32, Dr).ToUpper.Trim
                    s3위치 = Me.GetFPData(Me.ImpCtl33, Dr).ToUpper.Trim
                    s4번호1 = Me.GetFPData(Me.ImpCtl34, Dr).ToUpper.Trim
                    s4번호2 = Me.GetFPData(Me.ImpCtl35, Dr).ToUpper.Trim
                    s4번호3 = Me.GetFPData(Me.ImpCtl36, Dr).ToUpper.Trim
                    s4번호4 = Me.GetFPData(Me.ImpCtl37, Dr).ToUpper.Trim
                    s4SW명 = Me.GetFPData(Me.ImpCtl38, Dr).ToUpper.Trim
                    s4위치 = Me.GetFPData(Me.ImpCtl39, Dr).ToUpper.Trim
                    시공년월 = Me.GetFPData(Me.ImpCtl40, Dr).ToUpper.Trim
                    시공회사 = Me.GetFPData(Me.ImpCtl41, Dr).ToUpper.Trim
                    공사번호 = Me.GetFPData(Me.ImpCtl42, Dr).ToUpper.Trim
                    감독자 = Me.GetFPData(Me.ImpCtl43, Dr).ToUpper.Trim

                    비고1 = Me.GetFPData(Me.ImpCtl44, Dr).ToUpper.Trim
                    비고2 = Me.GetFPData(Me.ImpCtl45, Dr).ToUpper.Trim
                    비고3 = Me.GetFPData(Me.ImpCtl46, Dr).ToUpper.Trim
                    비고4 = Me.GetFPData(Me.ImpCtl47, Dr).ToUpper.Trim
                    비고5 = Me.GetFPData(Me.ImpCtl48, Dr).ToUpper.Trim
                    비고6 = Me.GetFPData(Me.ImpCtl49, Dr).ToUpper.Trim

                    ha단자명 = Me.GetFPData(Me.ImpCtl50, Dr).ToUpper.Trim
                    hb단자명 = Me.GetFPData(Me.ImpCtl51, Dr).ToUpper.Trim


                    If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                        NullVal = ""
                        If Me.ImpCtl2.빈값체크 Then NullVal &= IIf(관리구.Trim = "", "", "X")
                        If Me.ImpCtl3.빈값체크 Then NullVal &= IIf(전산번호.Trim = "", "", "X")
                        If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(HASS.Trim = "", "", "X")
                        If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(HADL.Trim = "", "", "X")
                        If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(HA구간.Trim = "", "", "X")
                        If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(HBSS.Trim = "", "", "X")
                        If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(HBDL.Trim = "", "", "X")
                        If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(HB구간.Trim = "", "", "X")
                        If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(S0번호1.Trim = "", "", "X")
                        If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(S0번호2.Trim = "", "", "X")
                        If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(S0번호3.Trim = "", "", "X")
                        If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(S0번호4.Trim = "", "", "X")
                        If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(S0SW명.Trim = "", "", "X")
                        If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(S0수용가.Trim = "", "", "X")
                        If Me.ImpCtl16.빈값체크 Then NullVal &= IIf(S1번호1.Trim = "", "", "X")
                        If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(S1번호2.Trim = "", "", "X")
                        If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(S1번호3.Trim = "", "", "X")
                        If Me.ImpCtl19.빈값체크 Then NullVal &= IIf(S1번호4.Trim = "", "", "X")
                        If Me.ImpCtl20.빈값체크 Then NullVal &= IIf(S1SW명.Trim = "", "", "X")
                        If Me.ImpCtl21.빈값체크 Then NullVal &= IIf(S1위치.Trim = "", "", "X")
                        If Me.ImpCtl22.빈값체크 Then NullVal &= IIf(s2번호1.Trim = "", "", "X")
                        If Me.ImpCtl23.빈값체크 Then NullVal &= IIf(s2번호2.Trim = "", "", "X")
                        If Me.ImpCtl24.빈값체크 Then NullVal &= IIf(s2번호3.Trim = "", "", "X")
                        If Me.ImpCtl25.빈값체크 Then NullVal &= IIf(s2번호4.Trim = "", "", "X")
                        If Me.ImpCtl26.빈값체크 Then NullVal &= IIf(s2SW명.Trim = "", "", "X")
                        If Me.ImpCtl27.빈값체크 Then NullVal &= IIf(s2위치.Trim = "", "", "X")
                        If Me.ImpCtl28.빈값체크 Then NullVal &= IIf(s3번호1.Trim = "", "", "X")
                        If Me.ImpCtl29.빈값체크 Then NullVal &= IIf(s3번호2.Trim = "", "", "X")
                        If Me.ImpCtl30.빈값체크 Then NullVal &= IIf(s3번호3.Trim = "", "", "X")
                        If Me.ImpCtl31.빈값체크 Then NullVal &= IIf(s3번호4.Trim = "", "", "X")
                        If Me.ImpCtl32.빈값체크 Then NullVal &= IIf(s3SW명.Trim = "", "", "X")
                        If Me.ImpCtl33.빈값체크 Then NullVal &= IIf(s3위치.Trim = "", "", "X")
                        If Me.ImpCtl34.빈값체크 Then NullVal &= IIf(s4번호1.Trim = "", "", "X")
                        If Me.ImpCtl35.빈값체크 Then NullVal &= IIf(s4번호2.Trim = "", "", "X")
                        If Me.ImpCtl36.빈값체크 Then NullVal &= IIf(s4번호3.Trim = "", "", "X")
                        If Me.ImpCtl37.빈값체크 Then NullVal &= IIf(s4번호4.Trim = "", "", "X")
                        If Me.ImpCtl38.빈값체크 Then NullVal &= IIf(s4SW명.Trim = "", "", "X")
                        If Me.ImpCtl39.빈값체크 Then NullVal &= IIf(s4위치.Trim = "", "", "X")
                        If Me.ImpCtl40.빈값체크 Then NullVal &= IIf(시공년월.Trim = "", "", "X")
                        If Me.ImpCtl41.빈값체크 Then NullVal &= IIf(시공회사.Trim = "", "", "X")
                        If Me.ImpCtl42.빈값체크 Then NullVal &= IIf(공사번호.Trim = "", "", "X")
                        If Me.ImpCtl43.빈값체크 Then NullVal &= IIf(감독자.Trim = "", "", "X")
                        If Me.ImpCtl44.빈값체크 Then NullVal &= IIf(비고1.Trim = "", "", "X")
                        If Me.ImpCtl45.빈값체크 Then NullVal &= IIf(비고2.Trim = "", "", "X")
                        If Me.ImpCtl46.빈값체크 Then NullVal &= IIf(비고3.Trim = "", "", "X")
                        If Me.ImpCtl47.빈값체크 Then NullVal &= IIf(비고4.Trim = "", "", "X")
                        If Me.ImpCtl48.빈값체크 Then NullVal &= IIf(비고5.Trim = "", "", "X")
                        If Me.ImpCtl49.빈값체크 Then NullVal &= IIf(비고6.Trim = "", "", "X")
                        If Me.ImpCtl50.빈값체크 Then NullVal &= IIf(ha단자명.Trim = "", "", "X")
                        If Me.ImpCtl51.빈값체크 Then NullVal &= IIf(hb단자명.Trim = "", "", "X")
                    Else
                        NullVal = "X" '//기본false로 해줘야한다.
                    End If

                    If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                        Me.SRCCABLEROW = Me.SRCDetail_Cable.NewDetail_CableRow
                        Me.SRCCABLEROW.rowid = System.Guid.NewGuid
                        Me.SRCCABLEROW.관리ID = 관리id
                        Me.SRCCABLEROW.번호 = 번호

                        Me.SRCCABLEROW.관리구 = 관리구
                        Me.SRCCABLEROW.전산번호 = 전산번호
                        Me.SRCCABLEROW.HASS = HASS
                        Me.SRCCABLEROW.HADL = HADL
                        Me.SRCCABLEROW.HA구간 = HA구간
                        Me.SRCCABLEROW.HBSS = HBSS
                        Me.SRCCABLEROW.HBDL = HBDL

                        Me.SRCCABLEROW.HB구간 = HB구간
                        Me.SRCCABLEROW.S0번호1 = S0번호1
                        Me.SRCCABLEROW.S0번호2 = S0번호2
                        Me.SRCCABLEROW.S0번호3 = S0번호3
                        Me.SRCCABLEROW.S0번호4 = S0번호4
                        Me.SRCCABLEROW.S0SW명 = S0SW명
                        Me.SRCCABLEROW.S0수용가 = S0수용가

                        Me.SRCCABLEROW.S1번호1 = S1번호1
                        Me.SRCCABLEROW.S1번호2 = S1번호2
                        Me.SRCCABLEROW.S1번호3 = S1번호3
                        Me.SRCCABLEROW.S1번호4 = S1번호4
                        Me.SRCCABLEROW.S1SW명 = S1SW명
                        Me.SRCCABLEROW.S1위치 = S1위치

                        Me.SRCCABLEROW.S2번호1 = s2번호1
                        Me.SRCCABLEROW.S2번호2 = s2번호2
                        Me.SRCCABLEROW.S2번호3 = s2번호3
                        Me.SRCCABLEROW.S2번호4 = s2번호4
                        Me.SRCCABLEROW.S2SW명 = s2SW명
                        Me.SRCCABLEROW.S2위치 = s2위치

                        Me.SRCCABLEROW.S3번호1 = s3번호1
                        Me.SRCCABLEROW.S3번호2 = s3번호2
                        Me.SRCCABLEROW.S3번호3 = s3번호3
                        Me.SRCCABLEROW.S3번호4 = s3번호4
                        Me.SRCCABLEROW.S3SW명 = s3SW명
                        Me.SRCCABLEROW.S3위치 = s3위치

                        Me.SRCCABLEROW.S4번호1 = s4번호1
                        Me.SRCCABLEROW.S4번호2 = s4번호2
                        Me.SRCCABLEROW.S4번호3 = s4번호3
                        Me.SRCCABLEROW.S4번호4 = s4번호4
                        Me.SRCCABLEROW.S4SW명 = s4SW명
                        Me.SRCCABLEROW.S4위치 = s4위치

                        Me.SRCCABLEROW.시공년월 = 시공년월
                        Me.SRCCABLEROW.시공회사 = 시공회사
                        Me.SRCCABLEROW.공사번호 = 공사번호
                        Me.SRCCABLEROW.감독자 = 감독자

                        Me.SRCCABLEROW.비고1 = 비고1
                        Me.SRCCABLEROW.비고2 = 비고2
                        Me.SRCCABLEROW.비고3 = 비고3
                        Me.SRCCABLEROW.비고4 = 비고4
                        Me.SRCCABLEROW.비고5 = 비고5
                        Me.SRCCABLEROW.비고6 = 비고6


                        Me.SRCCABLEROW.HA단자명 = ha단자명
                        Me.SRCCABLEROW.HB단자명 = hb단자명
                        Me.SRCCABLEROW.출력 = True
                        Me.SRCCABLEROW.정렬번호 = ""

                        Me.SRCDetail_Cable.Rows.Add(Me.SRCCABLEROW)
                        '  Catch ex As ConstraintException '//중복
                        '      ' AddLog("번호중복", "중복된 번호:" & 번호)
                    End If
                Catch ex As Exception
                    MsgBox("가져오기오류!" & 관리id & "/" & 번호 & vbCrLf & ex.ToString)
                    'AddLog(ex.InnerException.ToString, ex.Message.ToString)
                End Try
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.SRCDetail_Cable

    End Sub
    Private Sub Apply지중케이블라벨() '//적용루틴 끝에 추가를 해주는것뿐이다 (가공번호찰)

        Dim N10 As String = ""
        Dim N1D As String = ""
        Dim N1S As String = ""
        Dim N1L As String = ""
        Dim N1H1 As String = ""
        Dim N1H2 As String = ""

        Dim N20 As String = ""
        Dim N2J As String = ""
        Dim N2K As String = ""
        Dim N2B As String = ""
        Dim N21 As String = ""
        Dim N22 As String = ""
        Dim N2C As String = ""

        Dim N30 As String = ""
        Dim N3J As String = ""
        Dim N3K As String = ""
        Dim N3B As String = ""
        Dim N31 As String = ""
        Dim N32 As String = ""
        Dim N3C As String = ""

        'Dim 비고1, 비고2, 비고3 As String

        Dim 번호 As Integer     '//번호는 notnull 이다
        Dim NullChk As Boolean = Me.NullCHeck
        Dim NullVal As String = ""


        Dim cnt As Integer = -1

        NOTICE("데이터베이스에 기록합니다(취소불가능)", Me.lb_msg)

        Dim StartCnt As Integer = CInt(Me.tb_scnt.Text)
        Dim EndCnt As Integer = IIf(CInt(Me.tb_ecnt.Text) = 0, Me.CustFP1.ActiveSheet.RowCount, CInt(Me.tb_ecnt.Text))


        '//src지중세부 테이블에 데이터를 기록한다.

        Me.SRCDetail_CableLABEL.Clear()
        Dim index As Integer = 0

        For Each Dr As FarPoint.Win.Spread.Row In Me.CustFP1.ActiveSheet.Rows   '//모든로우에해당하는데 시작줄부터한다
            If Dr.Index + 1 >= StartCnt AndAlso Dr.Index + 1 <= EndCnt Then   '//시작인덱스 이상일경우에만 한다.
                index += 1
                Me.SHowCnt(index, EndCnt)
                NullVal = False
                Try
                    번호 = index ' Me.GetItemFP(Dr, Me.TextBox5, Me.TextBox42, True).ToString.ToUpper    '//번호는 notnull 이다
                    N10 = Me.GetFPData(Me.ImpCtl2, Dr).ToUpper.Trim
                    N1D = Me.GetFPData(Me.ImpCtl3, Dr).ToUpper.Trim
                    N1S = Me.GetFPData(Me.ImpCtl4, Dr).ToUpper.Trim
                    N1L = Me.GetFPData(Me.ImpCtl5, Dr).ToUpper.Trim
                    N1H1 = Me.GetFPData(Me.ImpCtl6, Dr).ToUpper.Trim
                    N1H2 = Me.GetFPData(Me.ImpCtl7, Dr).ToUpper.Trim

                    N20 = Me.GetFPData(Me.ImpCtl8, Dr).ToUpper.Trim
                    N2J = Me.GetFPData(Me.ImpCtl9, Dr).ToUpper.Trim
                    N2K = Me.GetFPData(Me.ImpCtl10, Dr).ToUpper.Trim
                    N2B = Me.GetFPData(Me.ImpCtl11, Dr).ToUpper.Trim
                    N21 = Me.GetFPData(Me.ImpCtl12, Dr).ToUpper.Trim
                    N22 = Me.GetFPData(Me.ImpCtl13, Dr).ToUpper.Trim
                    N2C = Me.GetFPData(Me.ImpCtl14, Dr).ToUpper.Trim

                    N30 = Me.GetFPData(Me.ImpCtl15, Dr).ToUpper.Trim
                    N3J = Me.GetFPData(Me.ImpCtl16, Dr).ToUpper.Trim
                    N3K = Me.GetFPData(Me.ImpCtl17, Dr).ToUpper.Trim
                    N3B = Me.GetFPData(Me.ImpCtl18, Dr).ToUpper.Trim
                    N31 = Me.GetFPData(Me.ImpCtl19, Dr).ToUpper.Trim
                    N32 = Me.GetFPData(Me.ImpCtl20, Dr).ToUpper.Trim
                    N3C = Me.GetFPData(Me.ImpCtl21, Dr).ToUpper.Trim
                    '비고2 = Me.GetFPData(Me.ImpCtl22, Dr).ToUpper.Trim
                    '비고3 = Me.GetFPData(Me.ImpCtl23, Dr).ToUpper.Trim


                    If NullChk Then '//널값 체크시에 체크된것이 null이라면 nullval 을 true로 바꾼다.
                        NullVal = ""
                        If Me.ImpCtl2.빈값체크 Then NullVal &= IIf(N10.Trim = "", "", "X")

                        If Me.ImpCtl3.빈값체크 Then NullVal &= IIf(N1D.Trim = "", "", "X")
                        If Me.ImpCtl4.빈값체크 Then NullVal &= IIf(N1S.Trim = "", "", "X")

                        If Me.ImpCtl5.빈값체크 Then NullVal &= IIf(N1L.Trim = "", "", "X")
                        If Me.ImpCtl6.빈값체크 Then NullVal &= IIf(N1H1.Trim = "", "", "X")
                        If Me.ImpCtl7.빈값체크 Then NullVal &= IIf(N1H2.Trim = "", "", "X")
                        If Me.ImpCtl8.빈값체크 Then NullVal &= IIf(N20.Trim = "", "", "X")

                        If Me.ImpCtl9.빈값체크 Then NullVal &= IIf(N2J.Trim = "", "", "X")
                        If Me.ImpCtl10.빈값체크 Then NullVal &= IIf(N2K.Trim = "", "", "X")
                        If Me.ImpCtl11.빈값체크 Then NullVal &= IIf(N2B.Trim = "", "", "X")
                        If Me.ImpCtl12.빈값체크 Then NullVal &= IIf(N21.Trim = "", "", "X")
                        If Me.ImpCtl13.빈값체크 Then NullVal &= IIf(N22.Trim = "", "", "X")
                        If Me.ImpCtl14.빈값체크 Then NullVal &= IIf(N2C.Trim = "", "", "X")

                        If Me.ImpCtl15.빈값체크 Then NullVal &= IIf(N30.Trim = "", "", "X")
                        If Me.ImpCtl16.빈값체크 Then NullVal &= IIf(N3J.Trim = "", "", "X")
                        If Me.ImpCtl17.빈값체크 Then NullVal &= IIf(N3K.Trim = "", "", "X")
                        If Me.ImpCtl18.빈값체크 Then NullVal &= IIf(N3B.Trim = "", "", "X")
                        If Me.ImpCtl19.빈값체크 Then NullVal &= IIf(N31.Trim = "", "", "X")
                        If Me.ImpCtl20.빈값체크 Then NullVal &= IIf(N32.Trim = "", "", "X")

                        If Me.ImpCtl21.빈값체크 Then NullVal &= IIf(N3C.Trim = "", "", "X")
                        ' If Me.ImpCtl22.빈값체크 Then NullVal &= IIf(비고2.Trim = "", "", "X")
                        'If Me.ImpCtl23.빈값체크 Then NullVal &= IIf(비고3.Trim = "", "", "X")


                    Else
                        NullVal = "X" '//기본false로 해줘야한다.
                    End If

                    If NullVal.Trim <> "" Then 'false일때만 추가한다. true는 널값이잇으므로 넘어간다.
                        Me.SRCCABLELABLEROW = Me.SRCDetail_CableLABEL.NewDetail_CableLabelRow
                        Me.SRCCABLELABLEROW.rowid = System.Guid.NewGuid
                        Me.SRCCABLELABLEROW.관리ID = 관리id
                        Me.SRCCABLELABLEROW.번호 = 번호

                        Me.SRCCABLELABLEROW.N10 = N10
                        Me.SRCCABLELABLEROW.N1D = N1D
                        Me.SRCCABLELABLEROW.N1S = N1S
                        Me.SRCCABLELABLEROW.N1L = N1L
                        Me.SRCCABLELABLEROW.N1H1 = N1H1
                        Me.SRCCABLELABLEROW.N1H2 = N1H2

                        Me.SRCCABLELABLEROW.N20 = N20
                        Me.SRCCABLELABLEROW.N2J = N2J
                        Me.SRCCABLELABLEROW.N2K = N2K
                        Me.SRCCABLELABLEROW.N2B = N2B
                        Me.SRCCABLELABLEROW.N21 = N21
                        Me.SRCCABLELABLEROW.N22 = N22
                        Me.SRCCABLELABLEROW.N2C = N2C

                        Me.SRCCABLELABLEROW.N30 = N30
                        Me.SRCCABLELABLEROW.N3J = N3J
                        Me.SRCCABLELABLEROW.N3K = N3K
                        Me.SRCCABLELABLEROW.N3B = N3B
                        Me.SRCCABLELABLEROW.N31 = N31
                        Me.SRCCABLELABLEROW.N32 = N32
                        Me.SRCCABLELABLEROW.N3C = N3C




                        Me.SRCCABLELABLEROW.출력 = True
                        Me.SRCCABLELABLEROW.정렬번호 = ""
                        Me.SRCDetail_CableLABEL.Rows.Add(Me.SRCCABLELABLEROW)
                        '  Catch ex As ConstraintException '//중복
                        '      ' AddLog("번호중복", "중복된 번호:" & 번호)
                    End If
                Catch ex As Exception
                    MsgBox("가져오기오류!" & 관리id & "/" & 번호 & vbCrLf & ex.ToString)
                    'AddLog(ex.InnerException.ToString, ex.Message.ToString)
                End Try
            End If
        Next
        NOTICE("가져오기완료", Me.lb_msg)
        Me.CustFP2.DataSource = Me.SRCDetail_CableLABEL

        Dim Idx As Integer = 0
        Me.CustFP2.ActiveSheet.Columns(0).Width = 0
        Me.CustFP2.ActiveSheet.Columns(1).Width = 0
        Me.CustFP2.ActiveSheet.Columns(2).Width = 0
        Me.CustFP2.ActiveSheet.Columns(3).Width = 0
        Me.CustFP2.ActiveSheet.Columns(4).Width = 0
        Me.CustFP2.ActiveSheet.Columns(5).Width = 0
        Me.CustFP2.ActiveSheet.Columns(6).Width = 0
        Me.CustFP2.ActiveSheet.Columns(7).Width = 0
        Me.CustFP2.ActiveSheet.Columns(8).Width = 0
        Me.CustFP2.ActiveSheet.Columns(9).Width = 0
        Me.CustFP2.ActiveSheet.Columns(10).Width = 0

        Idx = 11
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "고압(전산번호)"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "단자명"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "S/S"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "D/L"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "H1"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "H2"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "저압I(전산번호)"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "저압번호"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "공급상"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "공급변압기"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "전산번호(전원측)"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "전산번호(부하측)"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "고객명"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "저압II(전산번호)"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "저압번호"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "공급상"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "공급변압기"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "전산번호(전원측)"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "전산번호(부하측)"
        Idx += 1 : Me.CustFP2.ActiveSheet.Columns(Idx).Label = "고객명"

    End Sub

    Private Sub ToolStripButton2_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton2.Click

        If Me.CustFP1.ActiveSheet.RowCount <= 0 Then
            NOTICE("데이터가 없습니다", Me.lb_msg)
            Exit Sub
        End If

        Select Case 관리구분
            Case 0  '//가공번호찰
                Me.Apply가공()
            Case 1  '//지중번호찰
                Me.Apply지중()
            Case 9  '//기타수용번호찰
                Me.ApplyETC()
            Case 2    '//정액등
                Me.ApplyDeung()
            Case 4    '//정액등
                Me.Apply가공_기기()
            Case 6    '//정액등
                Me.Apply지중케이블()
            Case 7    '//정액등
                Me.Apply지중케이블라벨()
            Case 8    '//정액등
                Me.Apply지중케이블2()
        End Select
        Me.CustFP2.ASetting_Load(False, Me.관리구분)
        'If Me.관리구분 = 9 Then ApplyETC()
        'If Me.관리구분 = 0 Then Apply()

    End Sub

    Private Sub CustFP1_CellDoubleClick(ByVal sender As Object, ByVal e As FarPoint.Win.Spread.CellClickEventArgs) Handles CustFP1.CellDoubleClick
        If SelControl Is Nothing Then Return
        SelControl.Text = Me.CustFP1.ActiveSheet.ActiveColumnIndex + 1
    End Sub

    Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton1.Click
        Dim OD As New OpenFileDialog
        Dim Aranini As New MyINI2(IniFile)
        OD.FileName = Me.lb_file.Text
        OD.Filter = "MS Office Excel WorkSheet(*.xls)|*.xls"
        OD.FilterIndex = 1
        ' OD.RestoreDirectory = True
        If OD.ShowDialog() = Windows.Forms.DialogResult.Cancel Then
            NOTICE("불러오기가 취소되었습니다", Me.lb_msg)
        Else
            Aranini.Write("normal", "file", OD.FileName)
            Me.lb_file.Text = OD.FileName
            ReadXls(OD.FileName)
        End If
    End Sub

    Private Sub ToolStripButton6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton6.Click
        '//기존에 존재하는 모든 데이터를 삭제하고 새로 추가합니다.


        Select Case 관리구분
            Case 0  '//가공
                If Me.SrcDataSet.jjutable.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)
                    For I As Integer = Me.SrcDataSet.jjutable.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.jjutable.Rows.Count - 1)
                        Me.SrcDataSet.jjutable.Rows(I).Delete()
                    Next
                End If

                Me.SrcDataSet.jjutable.Merge(Me.SRC전주세부)
            Case 1  '//지중
                If Me.SrcDataSet.jjungtable.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)
                    For I As Integer = Me.SrcDataSet.jjungtable.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.jjungtable.Rows.Count - 1)
                        Me.SrcDataSet.jjungtable.Rows(I).Delete()
                    Next
                End If
                Me.SrcDataSet.jjungtable.Merge(Me.SRC지중세부)
            Case 6  '//케이블
                If Me.SrcDataSet.Detail_Cable.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)
                    For I As Integer = Me.SrcDataSet.Detail_Cable.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.Detail_Cable.Rows.Count - 1)
                        Me.SrcDataSet.Detail_Cable.Rows(I).Delete()
                    Next
                End If
                Me.SrcDataSet.Detail_Cable.Merge(Me.SRCDetail_Cable)
            Case 8  '//케이블
                If Me.SrcDataSet.Detail_Cable2.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)
                    For I As Integer = Me.SrcDataSet.Detail_Cable2.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.Detail_Cable2.Rows.Count - 1)
                        Me.SrcDataSet.Detail_Cable2.Rows(I).Delete()
                    Next
                End If
                Me.SrcDataSet.Detail_Cable2.Merge(Me.SRCDetail_Cable2)
            Case 7  '//케이블라벨
                If Me.SrcDataSet.Detail_CableLabel.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)
                    For I As Integer = Me.SrcDataSet.Detail_CableLabel.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.Detail_CableLabel.Rows.Count - 1)
                        Me.SrcDataSet.Detail_CableLabel.Rows(I).Delete()
                    Next
                End If
                Me.SrcDataSet.Detail_CableLabel.Merge(Me.SRCDetail_CableLABEL)
            Case 2  '//정액등
                If Me.SrcDataSet.Detail_Deung.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)


                    For I As Integer = Me.SrcDataSet.Detail_Deung.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.Detail_Deung.Rows.Count - 1)
                        Me.SrcDataSet.Detail_Deung.Rows(I).Delete()
                    Next
                End If

                Me.SrcDataSet.Detail_Deung.Merge(Me.SRCDetail_Deung)
            Case 4  '//정액등
                If Me.SrcDataSet.Detail_kiki.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)
                    For I As Integer = Me.SrcDataSet.Detail_kiki.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.Detail_kiki.Rows.Count - 1)
                        Me.SrcDataSet.Detail_kiki.Rows(I).Delete()
                    Next
                End If

                Me.SrcDataSet.Detail_kiki.Merge(Me.Src기기세부)
            Case 9  '//기타
                If Me.SrcDataSet.EtcTable.Rows.Count <> 0 Then
                    NOTICE("기존의 자료를 삭제합니다", Me.lb_msg)
                    For I As Integer = Me.SrcDataSet.EtcTable.Rows.Count - 1 To 0 Step -1
                        Me.SHowCnt(I, Me.SrcDataSet.EtcTable.Rows.Count - 1)
                        Me.SrcDataSet.EtcTable.Rows(I).Delete()
                    Next
                End If

                Me.SrcDataSet.EtcTable.Merge(Me.SRC기타세부)
        End Select

        Me.Close()

    End Sub

    Private Sub ToolStripButton5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton5.Click
        '//기존에 존재하는 모든 데이터를 삭제하고 새로 추가합니다.

        Select Case 관리구분
            Case 0  '//가공
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.jjutable, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If
                NOTICE("번호를 새로 부여합니다", Me.lb_msg)
                For I As Integer = 0 To Me.SRC전주세부.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.SRC전주세부.Rows.Count - 1)
                    Me.SRC전주세부.Rows(I)("번호") = 최대값 + I + 1
                    Me.SRC전주세부.Rows(I)("출력") = True
                Next

                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.jjutable.Merge(Me.SRC전주세부)
            Case 1  '//지중
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.jjungtable, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If

                NOTICE("번호를 새로 부여합니다", Me.lb_msg)

                For I As Integer = 0 To Me.SRC지중세부.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.SRC지중세부.Rows.Count - 1)
                    Me.SRC지중세부.Rows(I)("번호") = 최대값 + I + 1
                    Me.SRC지중세부.Rows(I)("출력") = True
                Next

                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.jjungtable.Merge(Me.SRC지중세부)
            Case 6  '//지중ㅋ에ㅣ블
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.Detail_Cable, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If

                NOTICE("번호를 새로 부여합니다", Me.lb_msg)

                For I As Integer = 0 To Me.SRCDetail_Cable.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.SRCDetail_Cable.Rows.Count - 1)
                    Me.SRCDetail_Cable.Rows(I)("번호") = 최대값 + I + 1
                    Me.SRCDetail_Cable.Rows(I)("출력") = True
                Next

                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.Detail_Cable.Merge(Me.SRCDetail_Cable)
            Case 8  '//지중ㅋ에ㅣ블
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.Detail_Cable2, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If

                NOTICE("번호를 새로 부여합니다", Me.lb_msg)

                For I As Integer = 0 To Me.SRCDetail_Cable2.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.SRCDetail_Cable2.Rows.Count - 1)
                    Me.SRCDetail_Cable2.Rows(I)("번호") = 최대값 + I + 1
                    Me.SRCDetail_Cable2.Rows(I)("출력") = True
                Next

                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.Detail_Cable2.Merge(Me.SRCDetail_Cable2)
            Case 7  '//지중ㅋ에ㅣ블라벨
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.Detail_CableLabel, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If

                NOTICE("번호를 새로 부여합니다", Me.lb_msg)

                For I As Integer = 0 To Me.SRCDetail_CableLABEL.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.SRCDetail_CableLABEL.Rows.Count - 1)
                    Me.SRCDetail_CableLABEL.Rows(I)("번호") = 최대값 + I + 1
                    Me.SRCDetail_CableLABEL.Rows(I)("출력") = True
                Next

                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.Detail_CableLabel.Merge(Me.SRCDetail_CableLABEL)
            Case 9  '//기타수용
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.EtcTable, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If

                NOTICE("번호를 새로 부여합니다", Me.lb_msg)

                For I As Integer = 0 To Me.SRC기타세부.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.SRC기타세부.Rows.Count - 1)
                    Me.SRC기타세부.Rows(I)("번호") = 최대값 + I + 1
                    Me.SRC기타세부.Rows(I)("출력") = True
                Next

                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.EtcTable.Merge(Me.SRC기타세부)

            Case 2  '//정액등
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.Detail_Deung, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If

                NOTICE("번호를 새로 부여합니다", Me.lb_msg)
                For I As Integer = 0 To Me.SRCDetail_Deung.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.SRCDetail_Deung.Rows.Count - 1)
                    Me.SRCDetail_Deung.Rows(I)("번호") = 최대값 + I + 1
                    Me.SRCDetail_Deung.Rows(I)("출력") = True
                Next
                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.Detail_Deung.Merge(Me.SRCDetail_Deung)

            Case 4      '//정액등
                '//최대값을 찾습니다.
                NOTICE("새로운 번호를 찾습니다", Me.lb_msg)
                Dim 최대값 As Integer
                Dim Dv As New DataView(Me.SrcDataSet.Detail_kiki, "", "번호 desc", DataViewRowState.CurrentRows)
                If Dv.Count = 0 Then
                    최대값 = 0
                Else
                    최대값 = Dv(0)("번호")
                End If

                NOTICE("번호를 새로 부여합니다", Me.lb_msg)
                For I As Integer = 0 To Me.Src기기세부.Rows.Count - 1   '//추가는 번호를 새로 받는다.
                    Me.SHowCnt(I, Me.Src기기세부.Rows.Count - 1)
                    Me.Src기기세부.Rows(I)("번호") = 최대값 + I + 1
                    Me.Src기기세부.Rows(I)("출력") = True
                Next
                NOTICE("기존의 데이터와 병합합니다", Me.lb_msg)
                Me.SrcDataSet.Detail_kiki.Merge(Me.Src기기세부)
        End Select
        Me.Close()
    End Sub

    Private Sub ToolStripButton4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ToolStripButton4.Click
        Me.Close()
    End Sub

    Private Sub bt_colsizesave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_colsizesave.Click
        Me.CustFP2.ASetting_Save(False, Me.관리구분)
    End Sub
End Class

