Imports C1.Win.C1Ribbon
Imports Microsoft.VisualBasic
Public Class MdiMain
    Dim T As String = "ȭ"
    Enum E_MenuIdx
        NONE = 0
        뷮
        Form1 = 50
        Form2
        Form3
        Form4
        Form5
    End Enum
    Dim FileExt As String = "ECL2"
    '''翭ִ ̸ Ѵ.
    Public OpenedForm As E_MenuIdx = E_MenuIdx.NONE
    Private Sub MdiMain_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
        If Not Prj.Opened Then
            If MsgBox(CLang.ҷ, MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, CLang.Ȯ) = MsgBoxResult.Ok Then
                'Me.Close()
            Else
                e.Cancel = True
            End If
        Else
            Dim dlg As DialogResult = MsgBox(CLang.ҷ2, MsgBoxStyle.Information Or MsgBoxStyle.YesNoCancel, CLang.Ȯ)
            If dlg = MsgBoxResult.Yes Then
                '//մ  ִٸ ϵѴ.
                For Each ChildForm As CForm In Me.MdiChildren
                    If ChildForm.HasChanged Then ChildForm.AcceptChanged()
                Next
                '// Ѵ.
                Func_Save_OD(Prj.FileName)
            ElseIf dlg = DialogResult.Cancel Then '//ڰ Ҹ ߴ.
                e.Cancel = True
            End If
        End If
    End Sub
    Private Sub MdiMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.F1
                If e.Control AndAlso e.Shift Then
                    If ribbonGroup4.Visible Then
                        ribbonGroup4.Visible = Not ribbonGroup4.Visible
                    Else
                        Dim f As New LoginForm1()
                        If f.ShowDialog() = Windows.Forms.DialogResult.OK Then
                            ribbonGroup4.Visible = Not ribbonGroup4.Visible
                        End If
                    End If
                Else
                    Read_PreFile(0)
                End If
            Case Keys.F2
                Read_PreFile(1)
            Case Keys.F3
                Read_PreFile(2)
            Case Keys.F4
                Read_PreFile(3)
            Case Keys.F5
                Show_Menu(1)
            Case Keys.F6
                Show_Menu(2)
            Case Keys.F7
                Show_Menu(3)
            Case Keys.F8
                Show_Menu(4)
            Case Keys.F9
                Show_Menu(5)
            Case Keys.F11
                If e.Control Then
                    ExportCSV()
                End If
            Case Keys.F12
                Dim tblname As String = InputBox("", "")
                If tblname = "" Then Return
                Dim f As New Frm_Debug(tblname) With {
                    .TopMost = True
                }
                f.Show()
        End Select
    End Sub
    Private Sub CreateAppMenu()
        '//ư ̺Ʈ ҴѴ.
        AddHandler abt_exit.Click, Sub()
                                       Me.Close()
                                   End Sub
        AddHandler abt_new.Click, Sub()
                                      Menu_New()
                                  End Sub
        AddHandler abt_open.Click, Sub()
                                       Menu_Open()
                                   End Sub
        AddHandler abt_save.Click, Sub()
                                       Menu_Save()
                                   End Sub
        AddHandler abt_saveas.Click, Sub()
                                         Menu_SaveAs()
                                     End Sub
    End Sub
    Private Sub pinButton_Click(ByVal sender As Object, ByVal e As EventArgs)
        Dim pin As RibbonToggleButton = CType(sender, RibbonToggleButton)
        If pin.Pressed Then
            MsgBox("cli")
            '/ pin.SmallImage = My.Resources.pinned
        Else
            MsgBox("ncli")
            ' pin.SmallImage = My.Resources.unpinned
        End If
    End Sub
    Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As EventArgs) Handles MyBase.Load
        '//α 
        ribbonGroup4.Visible = False
        Me.Text = "ѷ  α"
        Me.mbt_save.Enabled = False    '//ưȰ
        Me.mbt_save2.Enabled = mbt_save.Enabled
        Me.Show()
        My.Application.DoEvents() '//ȭ鿡 ǥ
        Try
            Refresh_StatusInfo()
            Read_SEtting() '//ȯ漳 ´. Splah ߵ.
            bt5.Visible = False
            Dim Param As String = Command.ToString
            Param = Param.Replace(Chr(34), "")
            If Param.ToLower().LastIndexOf(".ecl2") <> -1 Then
                Program = EProgram.ѷ
                FileExt = "ECL2"
            ElseIf Param.ToLower().LastIndexOf(".ecl3") <> -1 Then
                Program = EProgram.ģȯ
                FileExt = "ECL3"
            Else
                Dim F As New Frm_Intro  '//αȭ ǥ
                If F.ShowDialog <> Windows.Forms.DialogResult.OK Then End
                If F.RadioButton1.Checked Then  '//eco2 αؾ
                    Program = EProgram.ѷ
                    FileExt = "ECL2"
                Else
                    bt5.Visible = True
                    Program = EProgram.ģȯ
                    FileExt = "ECL3"
                End If
            End If
            If Program = EProgram.ѷ Then
                Me.Text = "  Һ ѷ"
            Else
                Me.Text = "  ģȯ"
            End If
            Me.Text &= " Ver " & _
                My.Application.Info.Version.Minor & "." & _
                My.Application.Info.Version.Build & "." & _
                My.Application.Info.Version.Revision ' & "(Beta)"
            '// ϸ
            Read_FilHistory()
            Me.lb_program.Text = "[" + Program.ToString() + "]"
            '//Version  Ȯ
            '//170514 other button - btvercheck
            Work_msg("")
            CreateAppMenu()
            '//ĶȮ
            If Param <> "" Then
                If System.IO.File.Exists(Param) Then  '//ش ϸ
                    Select Case Program
                        Case EProgram.ģȯ
                            Me.Func_Open_OD(Param)
                        Case EProgram.ѷ
                            Me.Func_Open_OD(Param)
                    End Select
                End If
            End If
        Catch ex As Exception
            Dim sb As New System.Text.StringBuilder
            Dim st As New StackTrace(True)
            sb.AppendLine("(Load)  : " + st.FrameCount.ToString())
            sb.AppendLine("   : " + st.GetFrame(0).GetMethod().Name)
            sb.AppendLine("ȣ : " + st.GetFrame(1).GetMethod().Name)
            sb.AppendLine("   : " + st.GetFrame(st.FrameCount - 1).GetMethod().Name)
            sb.AppendLine()
            sb.AppendLine("-- ȣ  --")
            For Each sf As StackFrame In st.GetFrames()
                sb.AppendLine(
                     "    : " + sf.GetFileName() +
                     "      : " + sf.GetFileLineNumber().ToString() +
                     "      : " + sf.GetFileColumnNumber().ToString() +
                     "  : " + sf.GetILOffset().ToString() +
                     "  : " + sf.GetMethod().Name)
            Next
            MsgBox(sb.ToString(), MsgBoxStyle.Critical, "File Open Error")
        End Try
       
    End Sub
    ''' 
    ''' ϴ ǥâ  մϴ.
    ''' 
    Public Sub Refresh_StatusInfo()
        Try
            'If Prj.Admin Then
            '    Me.lb_usermode.Text = "[]"
            'Else
            '    Me.lb_usermode.Text = "[Ϲ]"
            'End If
            '//ø 
            If Prj.EditTime = "" Then
                Me.lbl_lastedit.Text = "[]"
            Else
                Me.lbl_lastedit.Text = "[" & Prj.EditTime.Trim & "]"
            End If
            If Prj.Name = "" Then
                Me.lbl_prjname.Text = "[̸]"
                Me.lbl_prjname.ToolTip = ""
            Else
                Me.lbl_prjname.Text = "[" & Prj.Name.Trim.Replace(Space(1), "") & "]"
                Me.lbl_prjname.ToolTip = Prj.Desc
            End If
            If Prj.SFType = "" Then
                Me.lbl_FileInfo.Text = "[]"
            Else
                Me.lbl_FileInfo.Text = "[" & Prj.LGVersino.Trim & "]"
            End If
            'If Prj.Password = "" Then
            '    Me.lbl_password.Text = "[ȣ]"
            'Else
            '    Me.lbl_password.Text = "[ȣ]"
            'End If
            'Me.lbl_user.Text = "[" & Prj.UserId & "]"
            Me.lbl_mac.Text = "[" & Prj.CUrMac & "]"
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
       
    End Sub
    Public Sub Func_Open_OD(ByVal FileName As String, Optional ByVal SyncServer As Boolean = False)
        '//  ø̸ ´
        If Not System.IO.File.Exists(FileName) Then
            Return
        End If
        '//մȭ ݴ´.
        RibbonButton3_Click(Nothing, Nothing)
        Try
            Dim fi As New System.IO.FileInfo(FileName)
            Dim FS As System.IO.Stream
            Dim Source() As Byte = My.Computer.FileSystem.ReadAllBytes(FileName)
            Dim Desbuf() As Byte = {} '// ȣȭ ؾѴ
            If Source.Length < 4 Then
                MsgBox("˼ų ջ Դϴ", MsgBoxStyle.Critical, "Ȯ")
                Return
            End If
            '//Ͱ ȣȭǾ üũѴ.( OD)
            Dim isEnc As Boolean = False
            If (fi.Extension.ToLower() = ".ecl") Then isEnc = True
            If isEnc Then
                Desbuf = DeCryptArea(Source, New Byte() {&HAC, &H29, &H55, &H42})
                FS = New IO.MemoryStream(Desbuf, True)
            Else
                FS = New IO.MemoryStream(Source, True)
            End If
            '//ҷ± ߰
            Setting.Data("presetting", "filename") = Prj.FileName
            Dim Br As New IO.BinaryReader(FS, System.Text.Encoding.Default)
            Prj.FileName = FileName
            Prj.Opened = False
            Prj.SFType = STB(Br.ReadBytes(2)) '//̺ϱ(2)
            'If CInt(Prj.SFType) <> 9 Then
            '    If MsgBox("α ġ ʴ Դϴ" + vbCrLf + " Ͻðڽϱ?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ") <> MsgBoxResult.Ok Then Return
            'End If
            'SyncServer = True ' 2011.06.15 ߰  ڵ ڵ ڵ带 ȭ
            Try
                '//Ȯ
                Prj.UIVersion = STB(Br.ReadBytes(10))
                Prj.LGVersino = STB(Br.ReadBytes(10))
                '//߰Ȯ
                Prj.Name = STB(Br.ReadBytes(100))
                Prj.Desc = STB(Br.ReadBytes(256))
                Prj.MakeTime = STB(Br.ReadBytes(19))
                Prj.EditTime = STB(Br.ReadBytes(19))
                '//DS1 ʱȭ  
                DSET1 = New DS()
                DSET1.AcceptChanges()
                Dim DS1Len As Int64 = Br.ReadInt64
                Dim DS1() As Byte = Br.ReadBytes(CInt(DS1Len))
                'System.IO.File.WriteAllBytes("c:\intel\a.xml", DS1)
                Dim Ms As New IO.MemoryStream(DS1)
                Ms.Position = 0
                Try
                    DSET1.ReadXml(Ms)
                    DSET1.AcceptChanges()
                    Ms.Close()
                Catch ex As Exception
                    MsgBox(" ջǾϴ." & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "Ds1 Open Error")
                End Try
                '//DS1 ִٸ Լ Ѵ
                If String.Compare(Prj.UIVersion, "2014041400") >= 0 Then
                    DSETR1 = New DSR()
                    DSETR1.AcceptChanges()
                    DS1Len = Br.ReadInt64
                    DS1 = Br.ReadBytes(CInt(DS1Len))
                    Ms = New IO.MemoryStream(DS1)
                    Try
                        DSETR1.ExtReport.ReadXml(Ms)
                        DSETR1.AcceptChanges()
                        Ms.Close()
                    Catch ex As Exception
                        MsgBox("     ϴ." & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "Ds2 Open Error")
                    End Try
                End If
                Prj.IsError = False
            Catch ex As Exception
                MsgBox(" ¸   ϴ" + vbCrLf + ex.Message.ToString, MsgBoxStyle.Critical, "ҷ")
                Prj.IsError = True
            End Try
            Br.Close()
            FS.Close()
            If Not Prj.IsError Then
                Prj.Opened = True
                Frm_Work.Label1.Text = " Ȯϰ ֽϴ"
                Frm_Work.Show()
                If DSET1.tbl_buha.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_buha.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_bunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_bunbae.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_kongjo.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongjo.Rows.Add(New String() {"0", "()"})
                'If DSET1.tbl_kongkub.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongkub.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_myoun.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_myoun.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_nanbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nanbangkiki.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_nangbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nangbangkiki.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_nbunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nbunbae.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_new.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_new.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_profile_od.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_profile_od.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_weather_od.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_weather_od.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_yk.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_yk.Rows.Add(New String() {"0", "()"})
                If DSET1.tbl_ReqInfo.Rows.Count < 1 Then
                    Dim newdreq As DS.tbl_ReqInfoRow = DSET1.tbl_ReqInfo.Newtbl_ReqInfoRow()
                    DSET1.tbl_ReqInfo.Addtbl_ReqInfoRow(newdreq)
                End If
                If DSETR1.ExtReport.Rows.Count < 1 Then
                    Dim newdr As DSR.ExtReportRow = DSETR1.ExtReport.NewExtReportRow
                    For i As Integer = 1 To 82
                        newdr("c" + i.ToString("000")) = "-"
                    Next
                    DSETR1.ExtReport.AddExtReportRow(newdr)
                End If
                For Each Drow As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Rows
                    If Drow.õ = "0" Then Drow.õ = ""
                Next
                For Each Drow As DS.tbl_kongjoRow In DSET1.tbl_kongjo.Rows
                    If Drow. = "0" Then Drow. = "dz"
                Next
                For Each drow As DS.tbl_newRow In DSET1.tbl_new.Rows
                    If drow.ó汸 = "" Then drow.ó汸 = drow.ó汸
                Next
                '//save file (weather, profile)
                DSET1.tbl_common_od.Clear()
                DSET1.tbl_profile_od.Clear()
                DSET1.tbl_weather_od.Clear()
                DSET1.weather_cha_od.Clear()
                DSET1.weather_group.Clear()
                DSET1.weather_ilsa_od.Clear()
                DSET1.weather_supdo_od.Clear()
                DSET1.weather_temp_od.Clear()
                Dim fn0 As String = AppDomain.CurrentDomain.BaseDirectory + "\common.dat"
                Dim fn1 As String = AppDomain.CurrentDomain.BaseDirectory + "\profile.dat"
                Dim fn2 As String = AppDomain.CurrentDomain.BaseDirectory + "\weather{0}.dat"
                If System.IO.File.Exists(fn0) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn0, ""))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.tbl_common_od.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.tbl_common_od.ReadXml(String.Format(fn0, ""))
                    End If
                End If
                If System.IO.File.Exists(fn1) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn1, ""))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.tbl_profile_od.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.tbl_profile_od.ReadXml(String.Format(fn1, ""))
                    End If
                End If
                If System.IO.File.Exists(String.Format(fn2, "")) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn2, ""))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.tbl_weather_od.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.tbl_weather_od.ReadXml(String.Format(fn2, ""))
                    End If
                End If
                If System.IO.File.Exists(String.Format(fn2, "_ch")) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn2, "_ch"))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.weather_cha_od.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.weather_cha_od.ReadXml(String.Format(fn2, "_ch"))
                    End If
                End If
                If System.IO.File.Exists(String.Format(fn2, "_gr")) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn2, "_gr"))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.weather_group.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.weather_group.ReadXml(String.Format(fn2, "_gr"))
                    End If
                End If
                If System.IO.File.Exists(String.Format(fn2, "_is")) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn2, "_is"))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.weather_ilsa_od.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.weather_ilsa_od.ReadXml(String.Format(fn2, "_is"))
                    End If
                End If
                If System.IO.File.Exists(String.Format(fn2, "_sd")) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn2, "_sd"))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.weather_supdo_od.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.weather_supdo_od.ReadXml(String.Format(fn2, "_sd"))
                    End If
                End If
                If System.IO.File.Exists(String.Format(fn2, "_tp")) Then
                    Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn2, "_tp"))
                    If (buffer(0) = &H90) Then '//ȣȭ
                        Dim decKey() As Byte = New Byte() {&HAC, &H29, &H55, &H42}
                        Dim newbuffer() As Byte = DeCryptArea(buffer, decKey)
                        Dim ms0 As New System.IO.MemoryStream(newbuffer)
                        DSET1.weather_temp_od.ReadXml(ms0)
                    Else
                        '//ƴ
                        DSET1.weather_temp_od.ReadXml(String.Format(fn2, "_tp"))
                    End If
                End If
                    DSET1.tbl_common_od.AcceptChanges()
                    DSET1.tbl_profile_od.AcceptChanges()
                    DSET1.tbl_weather_od.AcceptChanges()
                    DSET1.weather_cha_od.AcceptChanges()
                    DSET1.weather_group.AcceptChanges()
                    DSET1.weather_ilsa_od.AcceptChanges()
                    DSET1.weather_supdo_od.AcceptChanges()
                    DSET1.weather_temp_od.AcceptChanges()
                    DSET1.AcceptChanges()
                    Frm_Work.Close()
                    '//ڷ  ڷḸ Ѵ
                    SyncServer = False
                    '//̰ ͳ Ǿ Ʈ Ѵ.
                    If isEnc AndAlso Pub.CheckInternet() Then
                        Read_Profile_OD()
                        If SyncServer Then     '//  ڵũ
                            Read_WeatherData_OD()
                            Read_CommonCode_OD()
                            Read_Profile_OD()
                            Read_WatherGroup()
                        End If
                    End If
                    CalcO = New CalculatorOD(Prj.LGVersino)    '//Ŭ ʱȭ
                    Me.mbt_save.Enabled = True
                    Me.mbt_save2.Enabled = Me.mbt_save.Enabled
                    Refresh_StatusInfo()  '//ȭϴ âǥ
                    Menu_ȭ()
                    '//  ϸ ش.
                    Me.Save_FilHistory(Prj.FileName)
                    Me.Read_FilHistory()
                    CalcO.Validation()    '//null
                    '//θ ʹȵǴ θ   ϸ ݴϴ.
                    'Me.lbl_filename.Text = Prj.FileName.Substring(Prj.FileName.LastIndexOf("\") + 1)
                    '//Version  Ȯ
                    'Work_msg(" Ȯ")
                    'Dim MyVersion As String '= Format(My.Application.Info.Version.Minor, "0000") & Format(My.Application.Info.Version.Build, "0000")
                    'Dim L As New ArinLogin.ArinLOgin
                    'Dim VersionInfo As ArinLogin.ArinLOgin.sVersionInfo = Nothing
                    ''/ڵȮ
                    'Try
                    '    MyVersion = DSET1.tbl_Desc.Rows(0)("versionc").ToString
                    '    If MyVersion = "" Then MyVersion = "20100101"
                    'Catch ex As Exception
                    '    MyVersion = "20100101"
                    'End Try
                    'Try
                    '    VersionInfo = L.Get_LastVersion("CO")   '// µ  eco   ٲ߰ ^^ ڸ ֵ սô!
                    '    If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyVersion)) Then   '//0 ų  ̹Ƿ Ѿ.
                    '        Dim Msg As New System.Text.StringBuilder
                    '        Msg.AppendLine("ο  ȮεǾϴ" & vbCrLf)
                    '        Msg.AppendLine(":" & MyVersion & " űԹ:" & VersionInfo.Ver)
                    '        Msg.AppendLine("----------------------------------")
                    '        Msg.AppendLine(VersionInfo.Desc)
                    '        Msg.AppendLine("----------------------------------")
                    '        If VersionInfo.Link.Trim = "" Then VersionInfo.Link = "http://Ȩּ"
                    '        ' Msg.AppendLine("űԹ Ȯϱ  ðڽϱ?")
                    '        If MsgBox(Msg.ToString, MsgBoxStyle.Information, "Ȯ") = MsgBoxResult.Ok Then
                    '            SyncServer = True
                    '            'Shell("explorer " & VersionInfo.Link, AppWinStyle.NormalFocus)
                    '            ' End
                    '        End If
                    '    End If
                    'Catch ex As Exception
                    '    MsgBox("ڵ " & ex.Message.ToString)
                    'End Try
                    '//Ϲüũ 140420
                    'Try
                    '    MyVersion = DSET1.tbl_Desc.Rows(0)("versionp").ToString
                    '    If MyVersion = "" Then MyVersion = "20100101"
                    'Catch ex As Exception
                    '    MyVersion = "20100101"
                    'End Try
                    'Try
                    '    VersionInfo = L.Get_LastVersion("PO")   '// µ  eco   ٲ߰ ^^ ڸ ֵ սô!
                    '    If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyVersion)) Then   '//0 ų  ̹Ƿ Ѿ.
                    '        Dim Msg As New System.Text.StringBuilder
                    '        Msg.AppendLine("ο  ȮεǾϴ" & vbCrLf)
                    '        Msg.AppendLine(":" & MyVersion & " űԹ:" & VersionInfo.Ver)
                    '        Msg.AppendLine("----------------------------------")
                    '        Msg.AppendLine(VersionInfo.Desc)
                    '        Msg.AppendLine("----------------------------------")
                    '        If VersionInfo.Link.Trim = "" Then VersionInfo.Link = "http://Ȩּ"
                    '        ' Msg.AppendLine("űԹ Ȯϱ  ðڽϱ?")
                    '        If MsgBox(Msg.ToString, MsgBoxStyle.Information, "Ȯ") = MsgBoxResult.Ok Then
                    '            SyncServer = True
                    '            'Shell("explorer " & VersionInfo.Link, AppWinStyle.NormalFocus)
                    '            ' End
                    '        End If
                    '    End If
                    'Catch ex As Exception
                    '    MsgBox("ǥ(OD) " & ex.Message.ToString)
                    'End Try
                    '/Ȯ
                    'Try
                    '    MyVersion = DSET1.tbl_Desc.Rows(0)("versionw").ToString
                    '    If MyVersion = "" Then MyVersion = "20100101"
                    'Catch ex As Exception
                    '    MyVersion = "20100101"
                    'End Try
                    'Try
                    '    'MyVersion = dset1.tbl_Desc.Rows(0)("versionw").ToString
                    '    VersionInfo = L.Get_LastVersion("W")   '// µ  eco   ٲ߰ ^^ ڸ ֵ սô!
                    '    If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyVersion)) Then   '//0 ų  ̹Ƿ Ѿ.
                    '        Dim Msg As New System.Text.StringBuilder
                    '        Msg.AppendLine("ο  ȮεǾϴ" & vbCrLf)
                    '        Msg.AppendLine(":" & MyVersion & " űԹ:" & VersionInfo.Ver)
                    '        Msg.AppendLine("----------------------------------")
                    '        Msg.AppendLine(VersionInfo.Desc)
                    '        Msg.AppendLine("----------------------------------")
                    '        If VersionInfo.Link.Trim = "" Then VersionInfo.Link = "http://Ȩּ"
                    '        ' Msg.AppendLine("űԹ Ȯϱ  ðڽϱ?")
                    '        If MsgBox(Msg.ToString, MsgBoxStyle.Information, "Ȯ") = MsgBoxResult.Ok Then
                    '            SyncServer = True
                    '            'Shell("explorer " & VersionInfo.Link, AppWinStyle.NormalFocus)
                    '            ' End
                    '        End If
                    '    End If
                    'Catch ex As Exception
                    'End Try
                    'Me.Refresh_MenuItems("")
                    '/Dim fi As New System.IO.FileInfo(Prj.FileName)
                    lbl_filename.Text = "[" + fi.Name + "]"
                    Work_msg("")
                Else
                    '//Ϻҷ зؼ ó ʴ´.
                    lbl_filename.Text = "[ERROR]"
                End If
        Catch ex As Exception
            Dim sb As New System.Text.StringBuilder
            Dim st As New StackTrace(True)
            sb.AppendLine("     : " + st.FrameCount.ToString())
            sb.AppendLine("   : " + st.GetFrame(0).GetMethod().Name)
            sb.AppendLine("ȣ : " + st.GetFrame(1).GetMethod().Name)
            sb.AppendLine("   : " + st.GetFrame(st.FrameCount - 1).GetMethod().Name)
            sb.AppendLine()
            sb.AppendLine("-- ȣ  --")
            For Each sf As StackFrame In st.GetFrames()
                sb.AppendLine(
                     "    : " + sf.GetFileName() +
                     "      : " + sf.GetFileLineNumber().ToString() +
                     "      : " + sf.GetFileColumnNumber().ToString() +
                     "  : " + sf.GetILOffset().ToString() +
                     "  : " + sf.GetMethod().Name)
            Next
            MsgBox(sb.ToString(), MsgBoxStyle.Critical, "File Open Error")
        End Try
    End Sub
    Private GroupList_Zone As ArrayList
    Private GroupList_nanbangkiki As ArrayList
    Private GroupList_NanbangKongkub As ArrayList
    Private GroupList_Kongjo As ArrayList
    Private GroupList_NanbangBunbae As ArrayList
    Private GroupList_Naengbankiki As ArrayList
    Private GroupList_New As ArrayList
    Private GroupList_Yk As ArrayList
    Private GroupList_Bunbae As ArrayList
    Private Sub Save_FilHistory(ByVal filename As String)
        Dim Path As String = filename.Substring(0, filename.LastIndexOf("\"))
        Dim Name As String = filename.Substring(filename.LastIndexOf("\"))
        Path = Path.ToUpper.Replace(My.Application.Info.DirectoryPath.ToUpper, ".\")
        Path = Path.Replace("\\", "\")
        Name = Name.Trim(CChar("\"))
        '// Ʈ ϴȮ
        Dim Exist As Boolean = False
        For i As Integer = 0 To 4
            If PreFile(i).ToLower.Trim = filename.ToLower.Trim Then
                PreFile(i) = Path & "\" & Name
                Exist = True
                Exit For
            End If
        Next
        If Exist = False Then    '//̷M 1 ֵ Ѵ.
            PreFile(4) = PreFile(3)
            PreFile(3) = PreFile(2)
            PreFile(2) = PreFile(1)
            PreFile(1) = PreFile(0)
            PreFile(0) = filename
        End If
        For i As Integer = 1 To 5
            Setting.Data("presetting2", "filename" & i) = PreFile(i - 1)
        Next
        Read_FilHistory() '//Ŀ ٽ оѴ.
    End Sub
    ''' 
    '''     ´.
    ''' 
    ''' 
    Private Sub Read_FilHistory()
        Dim listItem As RibbonListItem = New RibbonListItem(New RibbonLabel("ֱ  "))
        listItem.AllowSelection = False
        c1Ribbon1.ApplicationMenu.RightPaneItems.Clear()
        c1Ribbon1.ApplicationMenu.RightPaneItems.Add(listItem)
        c1Ribbon1.ApplicationMenu.RightPaneItems.Add(New RibbonListItem(New RibbonSeparator()))
        Dim Path As String
        Dim Name As String
        '// Ʈ ϴȮ
        Dim filelist As New List(Of String)
        For i As Integer = 1 To 10
            Dim Filename As String = ""
            Filename = Setting.Read("presetting2", "filename" & i, "")
            Filename = Filename.Replace(".\", My.Application.Info.DirectoryPath & "\")
            PreFile(i - 1) = Filename
            Path = "" : Name = ""
            If Filename.Trim <> "" Then
                Path = Filename.Substring(0, Filename.LastIndexOf("\")) & "\"
                Path = Path.Replace("\\", "\")
                Name = Filename.Substring(Filename.LastIndexOf("\"))
                Name = Name.Trim(CChar("\"))
            End If
            If (String.IsNullOrEmpty(Name)) Then Continue For
            listItem = New RibbonListItem()
            listItem.AllowSelection = True
            If filelist.IndexOf(Path + Name) = -1 Then
                filelist.Add(Path + Name)
            Else
                Continue For
            End If
            Dim but As New RibbonButton(Name)
            but.Tag = Path + Name
            but.Enabled = True
            but.Visible = True
            but.SelectableInListItem = True
            but.ToolTip = Path + Name
            'c1Ribbon1.ApplicationMenu.LeftPaneItems.Add(but)
            If but.Text.Length > 15 Then
                but.Text = but.Text.Substring(0, 15) + "..."
            End If
            AddHandler but.Click, AddressOf clickHistitem
            listItem.Items.Add(but)
            c1Ribbon1.ApplicationMenu.RightPaneItems.Add(listItem)
        Next
    End Sub
    Sub clickHistitem(sender As Object, e As System.EventArgs)
        Dim but As RibbonButton = sender
        Dim filename As String = but.Tag.ToString()
        If MsgBox("  ҷڽϱ?" + vbCrLf + filename, MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "Ȯ") <> MsgBoxResult.Yes Then Return
        Func_Open_OD(filename)
    End Sub
    ''' 
    '''   ܵ ȣϷ 켱 ִ   Ϸּ menu  ȣϴ  ̸ ۵˴ϴ.
    ''' 
    ''' 
    Private Sub Func_Save_OD(ByVal FileName As String, Optional msg As Boolean = True)
        DSET1.AcceptChanges()
        DSETR1.AcceptChanges()
        '//  ø̸ ´
        Dim Fs As New IO.FileStream(FileName, IO.FileMode.Create)
        Dim Bw As New IO.BinaryWriter(Fs, System.Text.Encoding.Default)
        Prj.SFType = "10" '// EcoODNew 
        '//̺ϱȣ(2)
        Bw.Write(System.Text.Encoding.Default.GetBytes(Prj.SFType))
        '// ReadMe.txt 
        Dim UIVer() As Byte = System.Text.Encoding.Default.GetBytes("2017062000")
        Bw.Write(UIVer)
        Dim LGVer() As Byte = System.Text.Encoding.Default.GetBytes("2017062000")
        Bw.Write(LGVer)
        '//ø ̸ (100ѱ 50)
        Dim Name() As Byte = System.Text.Encoding.Default.GetBytes(Prj.Name)
        ReDim Preserve Name(99)
        Bw.Write(Name)
        '//ø  (256 ѱ 128)
        Dim Desc() As Byte = System.Text.Encoding.Default.GetBytes(Prj.Desc)
        ReDim Preserve Desc(255)
        Bw.Write(Desc)
        '//ø ð
        Bw.Write(System.Text.Encoding.Default.GetBytes(Prj.MakeTime))
        '//ø ð(ð Ѵ)
        Bw.Write(System.Text.Encoding.Default.GetBytes(CStr(Format(Now, "yyyy-MM-dd HH:mm:ss"))))
        'Select Case Prj.SFType
        '    Case "01"   '//ȣ 8Ʈ߰Ѵ.
        '        If Prj.Password.Length > 8 Then
        '            MsgBox("ȣDZ̰ 8 ʰմϴ" & vbCrLf & "ȣ ʽϴ", MsgBoxStyle.Information, "Ȯ")
        '            Prj.Password = ""
        '        End If
        '        Dim Pass() As Byte = System.Text.Encoding.Default.GetBytes(Prj.Password)
        '        ReDim Preserve Pass(7)
        '        Bw.Write(Pass)
        'End Select
        '//1 ͼҽ մϴ.
        Dim Pos1 As Int64 = Bw.BaseStream.Position
        DSET1.WriteXml(Fs)
        Dim Pos1e As Int64 = Bw.BaseStream.Position
        Dim Dse1Len As Int64 = Pos1e - Pos1   '//ͼ 
        Bw.BaseStream.Position = Pos1   '//óġ̵
        Bw.Write(Dse1Len)   '//ͼ±
        DSET1.WriteXml(Fs)   '//ͼ´ٽ
        '// Ѵ(ExtReport) - 170414
        Dim Pos2 As Int64 = Bw.BaseStream.Position
        DSETR1.ExtReport.WriteXml(Fs)
        Dim Pos2e As Int64 = Bw.BaseStream.Position
        Dim Dse2Len As Int64 = Pos2e - Pos2  '//ͼ 
        Bw.BaseStream.Position = Pos2   '//óġ̵
        Bw.Write(Dse2Len)   '//ͼ±
        DSETR1.ExtReport.WriteXml(Fs)   '//ͼ´ٽ
ENDSTAT:  '// Ḧ  б
        Bw.Flush()
        Bw.Close()
        Fs.Close()
        '//Ͽ Ҷ(̸) ̸ ٲǷ ش ̺Ʈ ȭ Ұſ~
        'Me.lbl_filename.Text = Prj.FileName.Substring(Prj.FileName.LastIndexOf("\") + 1)
        'Dim ȣȭ As Boolean = False
        'If ȣȭ Then
        '    Dim Desbuf() As Byte = {}
        '    Dim Source() As Byte = My.Computer.FileSystem.ReadAllBytes(Prj.FileName)
        '    Desbuf = DeCryptArea(Source, New Byte() {&HAC, &H29, &H55, &H42})
        '    My.Computer.FileSystem.WriteAllBytes(Prj.FileName, Desbuf, False)
        'End If
        If msg Then
            MsgBox(" Ǿϴ", MsgBoxStyle.Information, "Ȯ")
        End If
        'Me.bt_desc.PerformClick()
        'Bw.Write(CStr(Prj.UIVersion))
        'Bw.Write(CStr(Prj.LGVersino))
        'Bw.Write(CStr(IIf(Prj.Name = "", "Ʈ̸", Prj.Name)))
        'Bw.Write(CStr(IIf(Prj.Desc = "", "Ʈ", Prj.Desc)))
        ''//ø ð
        'Bw.Write(CStr(Format(Now, "yyyy-MM-dd HH:mm:ss")))
        'DSET.WriteXml(Fs)
    End Sub
#Region "Show_Menu"
    Private Sub Menu_ȭ()
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        Show_Menu(1)
    End Sub
#End Region
    Private Sub Read_SEtting()
        Work_msg(" Ȯϴ")
        'Ʈ 
        Prj.MaxUI = "20091231"
        Prj.MaxLG = "20091231"
        Prj.Admin = True
        Prj.Password = ""   '//ȣ ⺻Ǿ
        Try
            For Each A As Net.NetworkInformation.NetworkInterface In ArinNet.MyNet.GetMacArray
                If A.NetworkInterfaceType <> Net.NetworkInformation.NetworkInterfaceType.Loopback Then
                    Prj.CUrMac = A.GetPhysicalAddress.ToString
                End If
            Next
            Dim ipentry As Net.IPHostEntry = System.Net.Dns.GetHostEntry(System.Net.Dns.GetHostName)
            For Each C As Net.IPAddress In ipentry.AddressList
                If C.ToString.Length <= 15 AndAlso C.ToString.Length > 4 Then
                    Prj.CUrIP = C.ToString
                    Exit For
                End If
            Next
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error - Network")
        End Try
      
        '//͵丮 ȮѴ ̰ ͺ̽ Ÿ  ϰѴ 
        '//̴ ͳݼġǰ  ⋚̴
        Work_msg(" Ȯմϴ")
        Try
            If DataDir.Exists = False Then DataDir.Create() '//ٸ 
            If TemplateDir.Exists = False Then
                TemplateDir.Create()
                'If System.IO.File.Exists(My.Application.Info.DirectoryPath & "\template\sample.tpl") = True Then
                '    My.Computer.FileSystem.CopyFile(My.Application.Info.DirectoryPath & "\template\sample.tpl", TemplateDir.FullName & "\sample.tpl", True)
                'End If
            End If
            Work_msg("⺻ մϴ")
            Setting = New arUtil.Setting() ' CEnergy.MyINI(DataDir.FullName & "\arinwaret4.ini")
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error - Setting")
        End Try
       
        Work_msg("")
        Me.Activate()
    End Sub
    Private Sub Read_PreFile(ByVal i As Short)
        'If Prj.LoginTime = "" Then
        '    MsgBox(" α ϼ", MsgBoxStyle.Information, "Ȯ")
        '    Return
        'End If
        If PreFile(i).Trim <> "" Then
            If MsgBox(PreFile(i) & " ҷðڽϱ?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "ҷ") <> MsgBoxResult.Ok Then Return
            Dim Filename As String = PreFile(i)
            If System.IO.File.Exists(Filename) = True Then
                Me.Func_Open_OD(Filename)
            Else
                MsgBox("ش   ʽϴ." + vbCrLf + PreFile(i), MsgBoxStyle.Critical, "Ȯ")
            End If
        End If
    End Sub
#Region "Top Menu"
    Private Sub Menu_Open()
        '.Filter = "ø(*.ecl;*.ecl2)|*.ecl;*.ecl2|(*.*)|*.*",
        'Od.InitialDirectory = TemplteDir.FullName
        Dim Od As New OpenFileDialog With {
            .FileName = Prj.FileName,
            .Filter = "ø(*." + FileExt + ")|*." + FileExt + "|(*.*)|*.*",
        .FilterIndex = 0
        }
        If Od.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
        Func_Open_OD(Od.FileName)
    End Sub
    Private Sub Menu_New()
        'ϴ if
        If MsgBox(" ۼϽðڽϱ?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ") <> MsgBoxResult.Ok Then Return '//ok ϸ 
        Dim new_string As String = ""
        new_string = "\basefile\new." + FileExt
        '//
        Dim Srcfile As New System.IO.FileInfo(My.Application.Info.DirectoryPath & new_string)
        If Srcfile.Exists = False Then
            MsgBox("(" + new_string + ") ʽϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        Dim SD As New SaveFileDialog With {
            .FileName = "new" & Format(Now, "mmdd") & "." + FileExt,
            .Filter = "(*." + FileExt + ")|*." + FileExt
        }
        '// ϸ Է¾ϸ 
        If SD.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
        '//ؼ ֱ
        If System.IO.File.Exists(SD.FileName) Then System.IO.File.Delete(SD.FileName)
        Srcfile.CopyTo(SD.FileName)
        Me.Func_Open_OD(SD.FileName, True)
    End Sub
#End Region
    '''翭ִ  ݽϴ.
    Private Sub Close_menu()
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        If Me.OpenedForm <> E_MenuIdx.NONE Then
            MsgBox("翭ִ :" + Me.OpenedForm.ToString())
        End If
    End Sub
    '''εشϴ  ȯմϴ.
    Private Function GetFormfromMenuIDX(nidx As E_MenuIdx) As CForm
        Dim f As CForm
        Select Case nidx
            Case E_MenuIdx.Form1
                f = Frm_1_Basic
            Case E_MenuIdx.Form2
                f = Frm_2_Build
            Case E_MenuIdx.Form3
                f = Frm_3_Mach
            Case E_MenuIdx.Form5
                f = Frm_5_New
            Case Else
                f = Nothing
        End Select
        Return f
    End Function
    Private Function GetMenuIDX(tagstring As String) As E_MenuIdx
        Dim v As Array = [Enum].GetValues(GetType(E_MenuIdx))
        For i As Integer = 0 To v.Length - 1
            Dim val As Integer = v(i)
            Dim str As String = [Enum].GetName(GetType(E_MenuIdx), val)
            If str = tagstring Then
                Return val
            End If
        Next
        Return E_MenuIdx.NONE
    End Function
    Dim CurFormName As String = "Nothing" '//2011.06.03 ű߰
    Public Sub Func_Calc_OD()
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        DSET1.AcceptChanges()
        DSETR1.AcceptChanges()
        If DSET1.tbl_Desc.Rows.Count < 1 Then
            MsgBox("Ϲݻ Էµ ʾҽϴ", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ")
            Return
        End If
        Dim drArea As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
        If drArea.IsbuildareaNull() OrElse drArea.buildarea = "0" Then
            MsgBox(" Էµ ʾҽϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        '//
        If DSET1.tbl_type.Select("code <> '0'").Length < 1 Then
            MsgBox("䰡 Էµ ʾҽϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        If DSET1.tbl_yk.Select("code <> '0'").Length < 1 Then
            MsgBox(" Էµ ʾҽϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        If DSET1.tbl_myoun.Select("code <> '0'").Length < 1 Then
            MsgBox("Է¸  Էµ ʾҽϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        If DSET1.tbl_nanbangkiki.Select("code <> '0'").Length + DSET1.tbl_nangbangkiki.Select("code <> '0'").Length < 1 Then
            MsgBox("ó  Էµ ʾҽϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        '//ⵥͰ˻ 170628 0005
        For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0'")
            If dr. = "Ʈ" Then
                Dim ݺϷCOP As String = dr.ݺϷCOP
                If ݺϷCOP = "" Then ݺϷCOP = "0"
                Dim fcop As Decimal = TOSG(ݺϷCOP)
                If fcop <= 0 Then
                    MsgBox("Ʈ  Էµ ʾҽϴ", MsgBoxStyle.Critical, "Ȯ")
                    Return
                End If
            Else
                'ݺϷȿ
                Dim ݺϷȿ As String = dr.ݺϷȿ
                If ݺϷȿ = "" Then ݺϷȿ = "0"
                Dim fcop As Decimal = TOSG(ݺϷȿ)
                If fcop <= 0 AndAlso dr. <> "" Then
                    MsgBox(dr. + " ȿ Էµ ʾҽϴ", MsgBoxStyle.Critical, "Ȯ")
                    Return
                End If
            End If
        Next
        'If Frm_Calc.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
        Dim Type As CalculatorOD.ECalc = CalculatorOD.ECalc.All
        If MsgBox(" Ͻðڽϱ?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ") <> MsgBoxResult.Ok Then Return
        Work_msg("غ...")
        Frm_Work.ProgressBar1.Visible = True
        Frm_Work.ProgressBar1.Maximum = 12
        Frm_Work.ProgressBar1.Minimum = 0
        Frm_Work.ProgressBar1.Value = 0
        'Frm_Work.TopMost = True
        Frm_Work.Show()
        CalcO = New CalculatorOD(Prj.LGVersino)    '//Ŭ ʱȭ
        Dim St As Date = Now    '//
        Dim calcOK As Boolean = False
        Try
            calcOK = CalcO.Start(Type, Log)
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
            Log.AppendLine(ex.Message + ex.StackTrace)
            calcOK = False
        End Try
        If calcOK Then   '//Ķ True  ҿ䷮ ߰ Իȴ.
            CalcO.Summary.All()
        Else
            Frm_Work.Dispose()
            MsgBox(" Ϸ ʾҽϴ", MsgBoxStyle.Information, "Ȯ")
            If Log.ToString <> "" Then
                Dim fn As String = AppDomain.CurrentDomain.BaseDirectory + "\\Error.txt"
                My.Computer.FileSystem.WriteAllText(fn, Log.ToString, False)
                Shell("notepad " + fn, AppWinStyle.NormalFocus)
            End If
            Return  '/Ϲؼ ؿ   ʽϴ.
        End If
        Dim Et As Date = Now    '//Ի
        Frm_Work.Dispose()
        If Log.ToString <> "" Then '//̰  α ϰѰǵ..۵Ѱź   ճ. ߿Ѱ ƴ.
            Dim fn As String = AppDomain.CurrentDomain.BaseDirectory + "\\Error.txt"
            My.Computer.FileSystem.WriteAllText(fn, Log.ToString, False)
            Shell("notepad " + fn, AppWinStyle.NormalFocus)
        Else
            Func_Calc_OD_ExtReport()
            Frm_v20091231_Report.Visible = False
            Frm_v20091231_Report.Show()
            Frm_v20091231_Report.Visible = False
            'MsgBox("Ϸ" & vbCrLf & CType(Et - St, System.TimeSpan).ToString, MsgBoxStyle.Information, "ð")
            Frm_v20091231_Report.Visible = True
        End If
    End Sub
    ''' 
    ''' 17-05-14 ҿ䷮   
    ''' 
    ''' 
    Public Sub Func_Calc_OD_ExtReport()
        Dim IDX As Integer = 0
        Dim Total2 As Double = 0.0
        Dim Total1 As Double = 0.0
        For Each Dr0 As DS.tbl_typeRow In DSET1.tbl_type.Rows
            Dim multi As Double = 1.0
            Select Case Dr0.ü뵵
                Case "0011" 'ü(߰)"
                    multi = 1.12
                Case "0012" 'ü(etc)
                    multi = 0.98
            End Select
            Total1 += Dr0. * multi
            Total2 += Dr0.
        Next
        Dim addmulti As Double = 0
        If Total2 <> 0 Then
            addmulti = Total1 / Total2
        Else
            addmulti = 1.0
        End If
        DSETR1.ExtReport.Clear()
        Dim NewDR As DSR.ExtReportRow = DSETR1.ExtReport.NewExtReportRow
        '//c001 = . => 2. - ְŸ 
        Dim P(100) As String
        For i As Integer = 0 To P.GetUpperBound(0)
            P(i) = ""
        Next
        Dim _C001 As Single = 0
        For Each dr As DS.tbl_typeRow In DSET1.tbl_type.Rows
            If Not dr.IsNull Then _C001 += dr.
        Next
        P(0) = _C001.ToString("N2") + "()"
        '//C002 =   = 2.- 
        '//C003 =   = 2.- 
        '//c004 = 
        '//c005 = õ
        '//c006 = 
        '//c007 = 
        Dim _C002 As Single = 0
        Dim _C003 As Single = 0
        'Dim C004 As String = ""
        'Dim C005 As String = ""
        'Dim C006 As String = ""
        'Dim C007 As String = ""
        If DSET1.tbl_Desc.Rows.Count > 0 Then
            Dim drDesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
            If IsNumeric(drDesc.buildm23) Then _C002 = TOSG(T, drDesc.buildm23)
            If IsNumeric(drDesc.buildm21) Then _C003 = TOSG(T, drDesc.buildm21)
            If Not drDesc.IsNull() Then P(3) = drDesc. + "(m)"
            If Not drDesc.IsõNull() Then P(4) = drDesc.õ + "(m)"
            If Not drDesc.Isbuilds2Null() Then P(5) = drDesc.builds2 + ""
            If Not drDesc.Isbuilds1Null() Then P(6) = drDesc.builds1 + ""
        End If
        P(1) = _C002.ToString("N2") + "()"
        P(2) = _C003.ToString("N2") + "()"
        '//C008 ~ C0015 ( Է¸    )
        'Dim C008, C009, C010, C011, C012, C013, C014, C015 As String
        'C008 = ""
        'C009 = ""
        'C010 = ""
        'C011 = ""
        'C012 = ""
        'C013 = ""
        'C014 = ""
        'C015 = ""
        Dim ü As Single = 0
        Dim â As Single = 0
        Dim ظ As Single = 0
        Dim ٴڸ As Single = 0
        Dim ü As Single = 0
        Dim â As Single = 0
        Dim ؿ As Single = 0
        Dim ٴڿ As Single = 0
        For Each dr As DS.tbl_myounRow In DSET1.tbl_myoun.Select("code <> '0' and isnull(2,'') <> ''")
            Dim ڵ As String = dr.2
            For Each dr As DS.tbl_ykRow In DSET1.tbl_yk.Select("code='" + ڵ + "'")
                Select Case CInt(dr.)
                    Case 0  '//ܺ,ü
                        ü += TOSG(T, dr.)
                        ü += TOSG(T, dr.) * TOSG(T, dr.)
                    Case 3  '//,ü
                        ü += TOSG(T, dr.)
                        ü += TOSG(T, dr.) * TOSG(T, dr.) * 0.7
                    Case 1  '//ܺ,
                        ظ += TOSG(T, dr.)
                        ؿ += TOSG(T, dr.) * TOSG(T, dr.)
                    Case 4 '//,
                        ظ += TOSG(T, dr.)
                        ؿ += TOSG(T, dr.) * TOSG(T, dr.) * 0.7
                    Case 2  '//ܺ,ٴ
                        ٴڸ += TOSG(T, dr.)
                        ٴڿ += TOSG(T, dr.) * TOSG(T, dr.)
                    Case 5  '//,ٴ
                        ٴڸ += TOSG(T, dr.)
                        ٴڿ += TOSG(T, dr.) * TOSG(T, dr.) * 0.7
                    Case 7, 10, 12  '//ܺâ
                        â += TOSG(T, dr.)
                        â += TOSG(T, dr.) * TOSG(T, dr.)
                    Case 8, 11, 13 '//â
                        â += TOSG(T, dr.)
                        â += TOSG(T, dr.) * TOSG(T, dr.) * 0.8
                End Select
            Next
        Next
        P(7) = ü.ToString("N2")
        P(8) = â.ToString("N2")
        P(9) = ظ.ToString("N2")
        P(10) = ٴڸ.ToString("N2")
        If ü > 0 Then
            P(11) = (ü / ü).ToString("N3")
        End If
        If â > 0 Then
            P(12) = (â / â).ToString("N3")
        End If
        If ظ > 0 Then
            P(13) = (ؿ / ظ).ToString("N3")
        End If
        If ٴڸ > 0 Then
            P(14) = (ٴڿ / ٴڸ).ToString("N3")
        End If
        '// - 
        Dim _MAX_뷮 As Single = 0
        Dim _MAX_Ī As String = ""
        Dim _MAX_ As String = ""
        Dim _MAX_ As String = ""
        Dim _SUM_뷮 As Single = 0
        Dim _뷮ȿ As Single = 0
        Dim _뷮COP As Single = 0
        Dim _뷮ȿ_MAX_뷮 As String = 0
        Dim _SUM_ As Single = 0
        Dim _SUM__뷮 As Single = 0
        Dim _SUM_ü_뷮 As Single = 0
        Dim _MAX_뷮 As Single = 0
        Dim _MAX_Ī As String = ""
        Dim _MAX_ As String = ""
        Dim _MAX_ As String = ""
        Dim _SUM_뷮 As Single = 0
        Dim _뷮ȿ As Single = 0
        Dim _뷮COP As Single = 0
        Dim _뷮ȿ_MAX_뷮 As String = 0
        Dim _SUM_ As Single = 0
        Dim _SUM__뷮 As Single = 0
        Dim _SUM_ü_뷮 As Single = 0
        For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0'")
            _SUM_ü_뷮 += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
            _SUM_ü_뷮 += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
            '//Ϸ,,⺸Ϸ,Ʈ
            Dim 뷮 As Single = 0
            Dim 뷮 As Single = 0
            If dr. = "" Then
                _SUM_뷮 += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                _SUM_ += TOSG(T, dr.)
                뷮 = TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                If 뷮 > _MAX_뷮 Then
                    _MAX_뷮 = 뷮
                    _MAX_Ī = dr.
                    _MAX_ = dr.
                    _MAX_ = dr.뿬
                End If
                Select Case dr.
                    Case "Ʈ"
                        If dr.뿬 = "" Then
                            _SUM__뷮 += 뷮
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮COP = dr.ݺϷCOP
                        End If
                    Case ""
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                    Case "⺸Ϸ"
                        If dr.뿬 = "" Then
                            _SUM__뷮 += 뷮
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                    Case "Ϸ"
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮COP = dr.ݺϷCOP
                        End If
                End Select
            ElseIf dr. = "" Then
                _SUM_뷮 += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                _SUM_ += TOSG(T, dr.)
                뷮 = TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                If 뷮 > _MAX_뷮 Then
                    _MAX_뷮 = 뷮
                    _MAX_Ī = dr.
                    _MAX_ = dr.
                    _MAX_ = dr.뿬
                End If
                Select Case dr.
                    Case "Ʈ"
                        If dr.뿬 = "" Then
                            _SUM__뷮 += 뷮
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮COP = dr.ݺϷCOP
                        End If
                    Case ""
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                    Case "⺸Ϸ"
                        If dr.뿬 = "" Then
                            _SUM__뷮 += 뷮
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                    Case "Ϸ"
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                End Select
            ElseIf dr. = "" Then
                _SUM_뷮 += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                _SUM_ += TOSG(T, dr.)
                뷮 = TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                _SUM_뷮 += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                _SUM_ += TOSG(T, dr.)
                뷮 = TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                If 뷮 > _MAX_뷮 Then
                    _MAX_뷮 = 뷮
                    _MAX_Ī = dr.
                    _MAX_ = dr.
                    _MAX_ = dr.뿬
                End If
                If 뷮 > _MAX_뷮 Then
                    _MAX_뷮 = 뷮
                    _MAX_Ī = dr.
                    _MAX_ = dr.
                    _MAX_ = dr.뿬
                End If
                Select Case dr.
                    Case "Ʈ"
                        If dr.뿬 = "" Then
                            _SUM__뷮 += 뷮
                            _SUM__뷮 += 뷮
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮COP = dr.ݺϷCOP
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮COP = dr.ݺϷCOP
                        End If
                    Case ""
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                    Case "⺸Ϸ"
                        If dr.뿬 = "" Then
                            _SUM__뷮 += 뷮
                            _SUM__뷮 += 뷮
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                    Case "Ϸ"
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                        If 뷮 > _뷮ȿ_MAX_뷮 Then
                            _뷮ȿ_MAX_뷮 = 뷮
                            _뷮ȿ = dr.ݺϷȿ
                        End If
                End Select
            End If
        Next
        P(82) = _MAX_Ī
        P(15) = _SUM_뷮.ToString("N2") + "()"
        If _MAX_ = "Ʈ" Then
            '//Ͽ ã
            Dim SUM__ As Double = 0
            Dim SUM__и As Double = 0
            For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0' and ='" + _MAX_ + "' and 뿬='" + _MAX_ + "'")
                SUM__ += dr.ݺϷCOP * TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                SUM__и += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
            Next
            If SUM__и <= 0 Then
                P(16) = "(COP)"
            Else
                P(16) = (SUM__ / SUM__и).ToString("N2") + "(COP)" ' _뷮COP.ToString("N2") + "(COP)"
            End If
        Else
            '//Ͽ ã
            Dim SUM__ As Double = 0
            Dim SUM__и As Double = 0
            For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0' and ='" + _MAX_ + "' and 뿬='" + _MAX_ + "'")
                SUM__ += dr.ݺϷȿ * TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                SUM__и += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
            Next
            If SUM__и <= 0 Then
                P(16) = "(%)"
            Else
                P(16) = (SUM__ / SUM__и).ToString("N2") + "(%)"   'P(16) = _뷮ȿ.ToString("N2") + "(%)"
            End If
        End If
        'P(17) = "" '//??
        P(17) = _SUM_.ToString("N2") + "()"
        P(18) = ((_SUM__뷮 / _SUM_뷮) * 100).ToString("N2") + "(%)"
        P(83) = _MAX_Ī
        P(20) = _SUM_뷮.ToString("N2") + "()"
        If _MAX_ = "Ʈ" Then
            '//Ͽ ã
            Dim SUM__ As Double = 0
            Dim SUM__и As Double = 0
            For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0' and ='" + _MAX_ + "' and 뿬='" + _MAX_ + "'")
                SUM__ += dr.ݺϷCOP * TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                SUM__и += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
            Next
            If SUM__и <= 0 Then
                P(22) = "(COP)"
            Else
                P(22) = (SUM__ / SUM__и).ToString("N2") + "(COP)"   'P(22) = _뷮COP.ToString("N2") + "(COP)"
            End If
        Else
            '//Ͽ ã
            '//Ͽ ã
            Dim SUM__ As Double = 0
            Dim SUM__и As Double = 0
            For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0' and ='" + _MAX_ + "' and 뿬='" + _MAX_ + "'")
                SUM__ += dr.ݺϷȿ * TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
                SUM__и += TOSG(T, dr.Ϸ) * TOSG(T, dr.Ϸ)
            Next
            If SUM__и <= 0 Then
                P(22) = "(%)"
            Else
                P(22) = (SUM__ / SUM__и).ToString("N2") + "(%)"   'P(22) = _뷮ȿ.ToString("N2") + "(%)""
            End If
        End If
        P(23) = "" '//??
        P(24) = _SUM_.ToString("N2") + "()"
        P(25) = ((_SUM__뷮 / _SUM_뷮) * 100).ToString("N2") + "(%)"
        '//ù漳
        Dim ù_MAX_뷮չ As String = ""
        Dim ù_MAX_뷮 As Single = 0
        Dim ù_MAX_ As String = 0
        Dim ù_SUM_뷮 As Single = 0
        Dim ù_뷮_ɺ As String = ""
        Dim ù_SUM_ü As Single = 0
        Dim ù_SUM_ð As Single = 0
        Dim ù_SUM_ As Single = 0
        Dim ù_SUM_õ As Single = 0
        For Each dr As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code <> '0'")
            Dim 뷮 As Single = TOSG(dr.õ뷮) * TOSG(dr.)
            If 뷮 > ù_MAX_뷮 Then
                ù_MAX_뷮 = 뷮
                ù_MAX_뷮չ = dr.õ
                ù_MAX_ = dr.뿬
            End If
            ù_SUM_뷮 += 뷮 'TOSG(T, dr.õ뷮)
            ù_뷮_ɺ = dr.ɺ '//
            ù_SUM_ü += TOSG(T, dr.ü)
            ù_SUM_ð += TOSG(T, dr.ð)
            If dr.õ = "" Then
                ù_SUM_ += 뷮
            End If
            ù_SUM_õ += 뷮
        Next
        P(84) = ù_MAX_뷮չ
        P(26) = ù_SUM_뷮.ToString("N2") + "()"
        Dim ù_뷮_ As Double = 0
        Dim ù_뷮_и As Double = 0
        For Each dr As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code <> '0' and õ='" + ù_MAX_뷮չ + "' and 뿬='" + ù_MAX_ + "'")
            ù_뷮_ += TOSG(dr.ɺ) * TOSG(dr.õ뷮) * TOSG(dr.)
            ù_뷮_и += TOSG(dr.õ뷮) * TOSG(dr.)
        Next
        If (ù_뷮_ < 0) Then
            P(27) = "(COP)"
        Else
            P(27) = (ù_뷮_ / ù_뷮_и).ToString("N2") + "(COP)" ' ù_뷮_ɺ + "(COP)"
        End If
        P(28) = "" '//??
        P(29) = ù_SUM_ü.ToString("N2") + "()"
        P(30) = ù_SUM_ð.ToString("N2") + "()"
        P(31) = ((ù_SUM_ / ù_SUM_õ) * 100).ToString("N2") + "(%)"
        '//
        Dim _MAX_ޱdz As Single = 0
        Dim _MAX_ޱdz As String = ""
        Dim _SUM_ޱdz As Single = 0
        Dim _SUM_dz As Single = 0
        Dim _뷮ȿ_ޱ As Single = 0
        Dim _뷮ȿ_ As Single = 0
        Dim _SUM_ޱҵ As Single = 0
        Dim _SUM_ҵ As Single = 0
        Dim _ȸ_ As Single = 0
        Dim _ȸ_ù As Single = 0
        'ޱ : ޱҵ 0  ƴҶ (ޱdz*ޱ/9.8) / (ޱҵ*102*3600) ȿ Ͽ ޱdzհ
        ' : ҵ 0  ƴҶ (dz*/9.8) / (ҵ*102*3600) ȿ Ͽ dzհ"
        Dim K1 As Single = 0
        Dim K2 As Single = 0
        Dim N1 As Single = 0
        Dim N2 As Single = 0
        Dim Sum_ޱdz As Single = 0
        Dim Sum_dz As Single = 0
        Dim Sum_ȸ As Single = 0
        Dim Sum_ùȸ As Single = 0
        For Each dr As DS.tbl_kongjoRow In DSET1.tbl_kongjo.Select("code <> '0'")
            Dim ޱdz As Single = TOSG(T, dr.ޱdz) * TOSG(T, dr.)
            Dim ޱ As Single = TOSG(T, dr.Ѿз¼սDZޱ)
            Dim ޱҵ As Single = TOSG(T, dr.ޱҵ) * TOSG(T, dr.)
            Dim dz As Single = TOSG(T, dr.dz) * TOSG(T, dr.)
            Dim  As Single = TOSG(T, dr.Ѿз¼սǹ)
            Dim ҵ As Single = TOSG(T, dr.ҵ) * TOSG(T, dr.)
            Dim ȸ As Single = TOSG(T, dr.ȸ)
            Dim ùȸ As Single = TOSG(T, dr.ȸ_ù)
            '//ȯ ° ȸ ʱȭ
            If dr.ȯ = "0" OrElse dr.ȯ = "ȸҰ" Then
                ȸ = 0
                ùȸ = 0
            End If
            N1 += ȸ * ޱdz
            N2 += ùȸ * ޱdz
            If ޱҵ > 0 Then
                K1 += ((ޱdz * ޱ / 9.8) / (ޱҵ * 102 * 3600)) * ޱdz
            End If
            If ҵ > 0 Then
                K2 += ((dz *  / 9.8) / (ҵ * 102 * 3600)) * dz
            End If
            If ޱdz > _MAX_ޱdz Then
                _MAX_ޱdz = ޱdz
                _MAX_ޱdz = dr.
            End If
            _SUM_ޱdz += TOSG(T, dr.ޱdz) * TOSG(T, dr.)
            _SUM_dz += TOSG(T, dr.dz) * TOSG(T, dr.)
            _SUM_ޱҵ += TOSG(T, dr.ޱҵ) * TOSG(T, dr.)
            _SUM_ҵ += TOSG(T, dr.ҵ) * TOSG(T, dr.)
            If dr.ȯ <> "0" OrElse dr.ȯ <> "ȸҰ" Then
                Sum_ޱdz += ޱdz
                Sum_dz += dz
                Sum_ȸ += ȸ
                Sum_ùȸ += ùȸ
            End If
        Next
        If Sum_ޱdz > 0 Then _뷮ȿ_ޱ = ((K1 / Sum_ޱdz) * 100).ToString("N2")
        If Sum_dz > 0 Then _뷮ȿ_ = ((K2 / Sum_dz) * 100).ToString("N2")
        If Sum_ȸ > 0 Then _ȸ_ = (N1 / Sum_ޱdz).ToString("N2") '//170827 *100
        If Sum_ùȸ > 0 Then _ȸ_ù = (N2 / Sum_ޱdz).ToString("N2")
        P(85) = _MAX_ޱdz
        P(32) = "ޱ:" & _SUM_ޱdz.ToString("N0") & "(CMH)" & vbCrLf & _
                ":" & _SUM_dz.ToString("N0") & "(CMH)"
        P(33) = ""
        P(34) = "ޱ:" & _뷮ȿ_ޱ.ToString("N2") & "(%)" & vbCrLf & _
                ":" & _뷮ȿ_.ToString("N2") & "(%)"
        P(35) = ""
        P(36) = "ޱ:" & _SUM_ޱҵ.ToString("N2") & "()" & vbCrLf & _
                ":" & _SUM_ҵ.ToString("N2") & "()"
        P(37) = ""
        'P(36) = _SUM_ޱҵ.ToString("N2")
        'P(37) = _SUM_ҵ.ToString("N2")
        P(38) = ":" & _ȸ_.ToString("N2") & "(%)" & vbCrLf & _
                "ù:" & _ȸ_ù.ToString("N2") & "(%)"
        P(39) = ""
        '//
        Dim _MAX_ As String = ""
        Dim _MAX_´ As Single = 0
        Dim _SUM_´ As Single = 0
        Dim _SUM_LED´ As Single = 0
        Dim _SUM_ As Single = 0
        Dim _SUM_ As Single = 0
        Dim _SUM_LED As Single = 0
        Dim _SUM_ As Single = 0
        For Each dr As DS.tbl_typeRow In DSET1.tbl_type.Select("code<>'0'", "code")
            _SUM_ += TOSG(T, dr.)
        Next
        For Each dr As DS.tbl_lightRow In DSET1.tbl_light.Select("code <> '0'")
            _SUM_ += TOSG(T, dr.)
            Dim ´ As Single = TOSG(T, dr.) * TOSG(T, dr.)
            _SUM_´ += ´
            If dr. = "LED" Then
                _SUM_LED´ += ´
                _SUM_LED += TOSG(T, dr.)
            End If
            _SUM_ += TOSG(T, dr.)
            If ´ > _MAX_´ Then
                _MAX_´ = ´
                _MAX_ = dr.
            End If
            ' _SUM_ += TOSG(T, dr.)
        Next
        P(40) = _MAX_
        P(41) = (_SUM_LED´ / 1000).ToString("N2") + "()"
        P(42) = (_SUM_´ / 1000).ToString("N2") + "()"
        P(43) = _SUM_.ToString("N2") + "()"
        P(44) = (_SUM_´ / _SUM_).ToString("N2") + "(W/)"
        '//
        Dim ¾翭_MAX__ As String = ""
        Dim ¾翭_MAX__DZ As String = ""
        Dim ¾翭_MAX__ As String = ""
        Dim ¾翭_MAX__ȿ As String = ""
        Dim ¾翭_MAX_ As Single = 0
        Dim ¾翭_SUM_ As Single = 0
        Dim Grp_E As New Dictionary(Of String, Single)
        '//group sum
        For Each dr As DS.tbl_new_energyRow In DSET1.tbl_new_energy.Select("code <> '0'")
            If Grp_E.ContainsKey(dr.) Then
                Dim oldValue As Single = Grp_E.Item(dr.)
                Grp_E.Item(dr.) = oldValue + TOSG(T, dr.Ǹ)
            Else
                Grp_E.Add(dr., TOSG(T, dr.Ǹ))
            End If
        Next
        For Each dr As System.Collections.Generic.KeyValuePair(Of String, Single) In Grp_E
            ¾翭_SUM_ += TOSG(T, dr.Value)
            If dr.Value > ¾翭_MAX_ Then
                ¾翭_MAX_ = dr.Value
                ¾翭_MAX__ = dr.Key
            End If
        Next
        If Not String.IsNullOrEmpty(¾翭_MAX__) Then
            Dim dr As DS.tbl_new_energyRow = DSET1.tbl_new_energy.Select(" = '" + ¾翭_MAX__ + "'")(0)
            ¾翭_MAX__DZ = "45" ' dr.DZ
            ¾翭_MAX__ = dr.ǹ
            ¾翭_MAX__ȿ = dr.ȿ
        End If
        If Not String.IsNullOrEmpty(¾翭_MAX__) Then
            P(45) = ¾翭_MAX__
            P(46) = ¾翭_SUM_.ToString("N2") + "()"
            P(47) = ¾翭_MAX__DZ
            P(48) = ¾翭_MAX__
            If (¾翭_MAX__ = "ġԷ") Then P(49) = ¾翭_MAX__ȿ + "(%)"
        End If
        Dim ¾籤_MAX__ As String = ""
        Dim ¾籤_MAX__ As String = ""
        Dim ¾籤_MAX__ As String = ""
        Dim ¾籤_MAX__ȿ As String = ""
        Dim ¾籤_MAX_ As Single = 0
        Dim ¾籤_SUM_ As Single = 0
        '//group sum
        Dim Grp_L As New Dictionary(Of String, Single)
        For Each dr As DS.tbl_new_lightRow In DSET1.tbl_new_light.Select("code <> '0'")
            If Grp_L.ContainsKey(dr.¾籤) Then
                Dim oldValue As Single = Grp_L.Item(dr.¾籤)
                Grp_L.Item(dr.¾籤) = oldValue + TOSG(T, dr.¾籤)
            Else
                Grp_L.Add(dr.¾籤, TOSG(T, dr.¾籤))
            End If
        Next
        For Each dr As System.Collections.Generic.KeyValuePair(Of String, Single) In Grp_L
            ¾籤_SUM_ += TOSG(T, dr.Value)
            If TOSG(T, dr.Value) > ¾籤_MAX_ Then
                ¾籤_MAX_ = TOSG(T, dr.Value)
                ¾籤_MAX__ = dr.Key
            End If
        Next
        If Not String.IsNullOrEmpty(¾籤_MAX__) Then
            Dim dr As DS.tbl_new_lightRow = DSET1.tbl_new_light.Select("¾籤 = '" + ¾籤_MAX__ + "'")(0)
            ¾籤_MAX__ = dr.¾籤
            ¾籤_MAX__ = dr.¾籤
            ¾籤_MAX__ȿ = dr.¾籤ȿ
        End If
        If Not String.IsNullOrEmpty(¾籤_MAX__) Then
            P(50) = ¾籤_MAX__
            P(51) = ¾籤_SUM_.ToString("N2") + "()"
            P(52) = ¾籤_MAX__
            P(53) = ¾籤_MAX__
            If (¾籤_MAX__ = "ġԷ") Then P(54) = (¾籤_MAX__ȿ) + "(%)"
        End If
        Dim _SUM_Ʈ As String = ""
        Dim _SUM_Ʈ As String = ""
        Dim _MAX_ As String = ""
        Dim _뷮 As Single = 0
        Dim _ȿ As Single = 0 '//
        Dim _ù뷮 As Single = 0
        Dim _ùȿ As Single = 0 '//
        Dim _뷮 As Single = 0
        Dim _ȿ As Single = 0 '//
        Dim _ȯ As Single = 0
        Dim _SUM_Ʈ뷮 As Single = 0
        If DSET1.tbl_new_ground.Select("code <> '0'").Length > 0 Then
            For Each dr As DS.tbl_new_groundRow In DSET1.tbl_new_ground.Select("code <> '0'")
                If dr. = "" OrElse dr. = "õ" OrElse dr. = "ȭ" Then
                    _SUM_Ʈ += dr.Ʈ뷮
                Else
                    _SUM_Ʈ += dr.Ʈ뷮
                End If
            Next
            If _SUM_Ʈ > _SUM_Ʈ Then
                _MAX_ = "Ʈ"
            ElseIf _SUM_Ʈ = _SUM_Ʈ Then
                Dim dr As DS.tbl_new_groundRow = DSET1.tbl_new_ground.Select("code <> '0'", "Ʈ뷮 desc")(0)
                If dr. = "" Then
                    _MAX_ = "Ʈ"
                Else
                    _MAX_ = "Ʈ"
                End If
            Else
                _MAX_ = "Ʈ"
            End If
            For Each dr As DS.tbl_new_groundRow In DSET1.tbl_new_ground.Select("code <> '0'")
                _SUM_Ʈ뷮 += TOSG(T, dr.Ʈ뷮)
                If dr.ó汸 = "" Then
                    _뷮 += TOSG(T, dr.Ʈ뷮)
                    _ȿ += TOSG(T, dr.Ʈ뷮) * TOSG(T, dr.ɺ)
                End If
                If dr.ó汸 = "" Then
                    _뷮 += TOSG(T, dr.Ʈ뷮)
                    _ȿ += TOSG(T, dr.Ʈ뷮) * TOSG(T, dr.ɺ)
                End If
                If dr.ó汸 = "" Then
                    _뷮 += TOSG(T, dr.Ʈ뷮)
                    _뷮 += TOSG(T, dr.Ʈ뷮)
                    _ȿ += TOSG(T, dr.Ʈ뷮) * TOSG(T, dr.ɺ)
                    _ȿ += TOSG(T, dr.Ʈ뷮) * TOSG(T, dr.ɺ)
                End If
                If dr.ó汸 = "ù" Then
                    _ù뷮 += TOSG(T, dr.Ʈ뷮)
                    _ùȿ += TOSG(T, dr.Ʈ뷮) * TOSG(T, dr.ɺù)
                End If
                _ȯ += TOSG(T, dr.뷮1)
            Next
        End If
        If Not String.IsNullOrEmpty(_MAX_) Then
            P(55) = _MAX_
            If (_뷮 > 0) Then
                P(56) = _뷮.ToString("N2") + "(kW)" + vbCrLf + _
                          (_ȿ / _SUM_Ʈ뷮).ToString("N2") + "(COP)"
            End If
            If (_ù뷮 > 0) Then
                P(57) = _ù뷮.ToString("N2") + "(kW)" + vbCrLf + _
                (_ùȿ / _SUM_Ʈ뷮).ToString("N2") + "(COP)"
            End If
            If (_뷮 > 0) Then
                P(58) = _뷮.ToString("N2") + "(kW)" + vbCrLf + _
                (_ȿ / _SUM_Ʈ뷮).ToString("N2") + "(COP)"
            End If
            If (_ȯ > 0) Then
                P(59) = _ȯ.ToString("N0") + "(W)"
            End If
        End If
        '// 䱸, ҿ䷮, 1ҿ䷮
        '//,,ù,,ȯ,հ
        '//65,66,67
        '//68,69,70
        IDX = 60
        Dim r As Decimal
        Dim r濡 As Decimal
        Dim rù濡 As Decimal
        Dim r As Decimal
        Dim r As Decimal
        Dim rȯ As Decimal
        Dim rհ As Decimal
        Dim Dr2 As DSR.Graph_ReqUseRow
        For Gubun As Short = 0 To 2
            Select Case Gubun
                Case 2  '//䱸
                    r = 0
                    r濡 = Result1o.E䱸(0). * addmulti
                    r = Result1o.E䱸(0). * addmulti
                    rù濡 = Result1o.E䱸(0).ù * addmulti
                    r = Result1o.E䱸(0). * addmulti
                    rȯ = 0 * addmulti
                    rհ = r濡 + rù濡 + r + r
                  
                    If r濡 = 0 Then
                        P(64) = ""
                    Else
                        P(64) = r濡.ToString("N1")
                    End If
                    If rù濡 = 0 Then
                        P(65) = ""
                    Else
                        P(65) = rù濡.ToString("N1")
                    End If
                    If r = 0 Then
                        P(66) = ""
                    Else
                        P(66) = r.ToString("N1")
                    End If
                    If r = 0 Then
                        P(67) = ""
                    Else
                        P(67) = r.ToString("N1")
                    End If
                    If rȯ = 0 Then
                        P(68) = ""
                    Else
                        P(68) = rȯ.ToString("N1")
                    End If
                    P(69) = rհ.ToString("N1")
                Case 1  '//ҿ䷮
                    Dim Sum As Decimal = Result1o.E(0).¾籤»귮 / (Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ù + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ȯ)
                    Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).  '//ƸԻ̾ȵ Ⱚ 0ſ.
                    Dim ù As Decimal = Sum * Result1o.Eҿ䷮(0).ù
                    Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).
                    Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).
                    Dim ȯ As Decimal = Sum * Result1o.Eҿ䷮(0).ȯ
                    Dim  As Decimal = 0
                    Dim ù As Decimal = 0
                    Dim  As Decimal = 0
                    Dim  As Decimal = 0
                    Dim ȯ As Decimal = 0
                    If Result1o..H <> 0 Then
                         = TOSG(T, IIf( = 0, 0,  / Result1o..H))
                    End If
                    If Result1o..C <> 0 Then
                        ù = TOSG(T, IIf(ù = 0, 0, ù / Result1o..C))
                    End If
                    If Result1o..L <> 0 Then
                         = TOSG(T, IIf( = 0, 0,  / Result1o..L))
                    End If
                    If Result1o..W <> 0 Then
                         = TOSG(T, IIf( = 0, 0,  / Result1o..W))
                    End If
                    If Result1o..V <> 0 Then
                        ȯ = TOSG(T, IIf(ȯ = 0, 0, ȯ / Result1o..V))
                    End If
                    Dim  As Decimal =  + ù +  +  + ȯ
                    r = -1 * (Result1o.E(0).귮¾翭 + Result1o.E(0).翭귮 + Result1o.E(0).귮) - 
                    r濡 = Result1o.Eҿ䷮(0). * addmulti
                    rù濡 = Result1o.Eҿ䷮(0).ù * addmulti
                    r = Result1o.Eҿ䷮(0). * addmulti
                    r = Result1o.Eҿ䷮(0). * addmulti
                    rȯ = Result1o.Eҿ䷮(0).ȯ * addmulti
                    rհ = r濡 + rù濡 + r + r + rȯ
                    If r = 0 Then
                        P(91) = ""
                    Else
                        P(91) = (r * -1).ToString("N1")
                    End If
                    If r濡 = 0 Then
                        P(70) = ""
                    Else
                        P(70) = r濡.ToString("N1")
                    End If
                    If rù濡 = 0 Then
                        P(71) = ""
                    Else
                        P(71) = rù濡.ToString("N1")
                    End If
                    If r = 0 Then
                        P(72) = ""
                    Else
                        P(72) = r.ToString("N1")
                    End If
                    If r = 0 Then
                        P(73) = ""
                    Else
                        P(73) = r.ToString("N1")
                    End If
                    If rȯ = 0 Then
                        P(74) = ""
                    Else
                        P(74) = rȯ.ToString("N1")
                    End If
                    P(75) = rհ.ToString("N1")
                Case 0  '//1ҿ䷮
                    If Pub.Program = EProgram.ѷ Then
                        Dim Sum As Decimal = Result1o.E(0).¾籤»귮 / (Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ù + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ȯ)
                        Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).  '//ƸԻ̾ȵ Ⱚ 0ſ.
                        Dim ù As Decimal = Sum * Result1o.Eҿ䷮(0).ù
                        Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).
                        Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).
                        Dim ȯ As Decimal = Sum * Result1o.Eҿ䷮(0).ȯ
                        Dim  As Decimal = 0
                        Dim ù As Decimal = 0
                        Dim  As Decimal = 0
                        Dim  As Decimal = 0
                        Dim ȯ As Decimal = 0
                        If Result1o..H <> 0 Then
                             = TOSG(T, IIf( = 0, 0,  / Result1o..H))
                        End If
                        If Result1o..C <> 0 Then
                            ù = TOSG(T, IIf(ù = 0, 0, ù / Result1o..C))
                        End If
                        If Result1o..L <> 0 Then
                             = TOSG(T, IIf( = 0, 0,  / Result1o..L))
                        End If
                        If Result1o..W <> 0 Then
                             = TOSG(T, IIf( = 0, 0,  / Result1o..W))
                        End If
                        If Result1o..V <> 0 Then
                            ȯ = TOSG(T, IIf(ȯ = 0, 0, ȯ / Result1o..V))
                        End If
                        Dim  As Decimal =  + ù +  +  + ȯ
                        r = -1 * (Result1o.E(0).귮¾翭 + Result1o.E(0).翭귮 + Result1o.E(0).귮 +  * 2.75)
                        If Program = EProgram.ѷ Then
                            r濡 = Result1o.Eҿ䷮(0). * 1.0 * addmulti '//171021 
                            rù濡 = Result1o.Eҿ䷮(0).ù * 1.0 * addmulti '//171021 
                            r = Result1o.Eҿ䷮(0). * 1.0 * addmulti '//171021 
                            r = Result1o.Eҿ䷮(0). * 1.0 * addmulti '//171021 
                            rȯ = Result1o.Eҿ䷮(0).ȯ * 1.0 * addmulti '//171021 
                        Else
                            r濡 = Result1o.Eҿ䷮(0). * 1.0 '//171021 
                            rù濡 = Result1o.Eҿ䷮(0).ù * 1.0 '//171021 
                            r = Result1o.Eҿ䷮(0). * 1.0 '//171021 
                            r = Result1o.Eҿ䷮(0). * 1.0 '//171021 
                            rȯ = Result1o.Eҿ䷮(0).ȯ * 1.0 '//171021 
                        End If
                        
                        rհ = r濡 + rù濡 + r + r + rȯ
                       
                        If r濡 = 0 Then
                            P(76) = ""
                        Else
                            P(76) = r濡.ToString("N1")
                        End If
                        If rù濡 = 0 Then
                            P(77) = ""
                        Else
                            P(77) = rù濡.ToString("N1")
                        End If
                        If r = 0 Then
                            P(78) = ""
                        Else
                            P(78) = r.ToString("N1")
                        End If
                        If r = 0 Then
                            P(79) = ""
                        Else
                            P(79) = r.ToString("N1")
                        End If
                        If rȯ = 0 Then
                            P(80) = ""
                        Else
                            P(80) = rȯ.ToString("N1")
                        End If
                        If r = 0 Then
                            P(89) = ""
                        Else
                            P(89) = (r * -1).ToString("N1")
                        End If
                        P(81) = rհ.ToString("N1")
                    Else
                        '//ģȯ
                        Dim Sum As Decimal = Result1o.E(0).¾籤»귮 / (Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ù + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ȯ)
                        Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).  '//ƸԻ̾ȵ Ⱚ 0ſ.
                        Dim ù As Decimal = Sum * Result1o.Eҿ䷮(0).ù
                        Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).
                        Dim  As Decimal = Sum * Result1o.Eҿ䷮(0).
                        Dim ȯ As Decimal = Sum * Result1o.Eҿ䷮(0).ȯ
                        Dim  As Decimal = 0
                        Dim ù As Decimal = 0
                        Dim  As Decimal = 0
                        Dim  As Decimal = 0
                        Dim ȯ As Decimal = 0
                        If Result1o..H <> 0 Then
                             = TOSG(T, IIf( = 0, 0,  / Result1o..H))
                        End If
                        If Result1o..C <> 0 Then
                            ù = TOSG(T, IIf(ù = 0, 0, ù / Result1o..C))
                        End If
                        If Result1o..L <> 0 Then
                             = TOSG(T, IIf( = 0, 0,  / Result1o..L))
                        End If
                        If Result1o..W <> 0 Then
                             = TOSG(T, IIf( = 0, 0,  / Result1o..W))
                        End If
                        If Result1o..V <> 0 Then
                            ȯ = TOSG(T, IIf(ȯ = 0, 0, ȯ / Result1o..V))
                        End If
                        Dim  As Decimal =  + ù +  +  + ȯ
                        r = -1 * (Result1o.E(0).귮¾翭 + Result1o.E(0).翭귮 + Result1o.E(0).귮 +  * 2.75)
                        r濡 = Result1o.Eҿ䷮(0).
                        'If (Result1o..H_WF = 0) Then
                        '    r濡 = 0
                        'Else
                        '    r濡 = Result1o.Eҿ䷮(0).2 * Result1o..H / Result1o..H_WF
                        'End If
                        rù濡 = Result1o.Eҿ䷮(0).ù
                        r = Result1o.Eҿ䷮(0). '// 170707 2332
                        'If (Result1o..W_WF = 0) Then
                        '    r = 0
                        'Else
                        '    r = Result1o.Eҿ䷮(0).2 * Result1o..W / Result1o..W_WF
                        'End If
                        r = Result1o.Eҿ䷮(0).
                        rȯ = Result1o.Eҿ䷮(0).ȯ
                        rհ = r濡 + rù濡 + r + r + rȯ
                        If r濡 = 0 Then
                            P(76) = ""
                        Else
                            P(76) = r濡.ToString("N1")
                        End If
                        If rù濡 = 0 Then
                            P(77) = ""
                        Else
                            P(77) = rù濡.ToString("N1")
                        End If
                        If r = 0 Then
                            P(78) = ""
                        Else
                            P(78) = r.ToString("N1")
                        End If
                        If r = 0 Then
                            P(79) = ""
                        Else
                            P(79) = r.ToString("N1")
                        End If
                        If rȯ = 0 Then
                            P(80) = ""
                        Else
                            P(80) = rȯ.ToString("N1")
                        End If
                        If r = 0 Then
                            P(89) = ""
                        Else
                            P(89) = (r * -1).ToString("N1")
                        End If
                        P(81) = rհ.ToString("N1")
                    End If
            End Select
        Next
        '  P(89) = "" '//
        Dim Sum1 As Decimal = Result1o.E(0).¾籤»귮 / (Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ù + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0). + Result1o.Eҿ䷮(0).ȯ)
        Dim 1 As Decimal = Sum1 * Result1o.Eҿ䷮(0).  '//ƸԻ̾ȵ Ⱚ 0ſ.
        Dim ù1 As Decimal = Sum1 * Result1o.Eҿ䷮(0).ù
        Dim 1 As Decimal = Sum1 * Result1o.Eҿ䷮(0).
        Dim 1 As Decimal = Sum1 * Result1o.Eҿ䷮(0).
        Dim ȯ1 As Decimal = Sum1 * Result1o.Eҿ䷮(0).ȯ
        Dim 1 As Decimal = 0
        Dim ù1 As Decimal = 0
        Dim 1 As Decimal = 0
        Dim 1 As Decimal = 0
        Dim ȯ1 As Decimal = 0
        If Result1o..H <> 0 Then
            1 = TOSG(T, IIf(1 = 0, 0, 1 / Result1o..H))
        End If
        If Result1o..C <> 0 Then
            ù1 = TOSG(T, IIf(ù1 = 0, 0, ù1 / Result1o..C))
        End If
        If Result1o..L <> 0 Then
            1 = TOSG(T, IIf(1 = 0, 0, 1 / Result1o..L))
        End If
        If Result1o..W <> 0 Then
            1 = TOSG(T, IIf(1 = 0, 0, 1 / Result1o..W))
        End If
        If Result1o..V <> 0 Then
            ȯ1 = TOSG(T, IIf(ȯ1 = 0, 0, ȯ1 / Result1o..V))
        End If
        Dim 1 As Decimal = 1 + ù1 + 1 + 1 + ȯ1
        '// _ҿ䷮
        P(92) = (-1 * (Result1o.E(0).귮¾翭 + Result1o.E(0).귮) - 1).ToString()
        For i As Integer = 1 To 99
            NewDR("c" + i.ToString("000")) = P(i - 1)
        Next
        DSETR1.ExtReport.AddExtReportRow(NewDR)
        DSETR1.ExtReport.AcceptChanges()
    End Sub
#Region "̻"
    Private Sub κк()
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        'Me.Toggle_Menu_Color(E_MenuIdx.κк)
        Select Case Prj.UIVersion
            Case "2009123100", StartVersion
                Frm_V20091231_buha.ControlBox = True
                Frm_V20091231_buha.ShowDialog()
                'Show_menu(New Frm_V20091231_buha)
            Case Else
                MsgBox(CLang.UI, MsgBoxStyle.Information, "Ȯ")
        End Select
    End Sub
    Private Sub ͼε()
        MsgBox("   ʽϴ.")
        'If MsgBox("   Ͻðڽϱ?" & vbCrLf &
        '          " Ͱ ǰ 絥Ͱ ϴ." & vbCrLf &
        '          "۾ ǵ ϴ", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ") <> MsgBoxResult.Ok Then Return
        'Dim pass As String = InputBox("ȣԷ")
        'If pass <> "raytrace" Then Return
        'Dim Cn As New SqlClient.SqlConnection(My.Settings.cs)
        'Cn.Open()
        'Dim CMd As New SqlClient.SqlCommand("delete from tbl_weather", Cn)
        'CMd.ExecuteNonQuery()
        'CMd.CommandText = "delete from weather_cha" : CMd.ExecuteNonQuery()
        'CMd.CommandText = "delete from weather_ilsa" : CMd.ExecuteNonQuery()
        'CMd.CommandText = "delete from weather_temp" : CMd.ExecuteNonQuery()
        'CMd.CommandText = "delete from weather_supdo" : CMd.ExecuteNonQuery()
        'CMd.Dispose()
        'Cn.Close()
        'Cn.Dispose()
        'Dim Taw As New DSTableAdapters.tbl_weatherTableAdapter
        'Dim Ta1 As New DSTableAdapters.weather_chaTableAdapter
        'Dim Ta2 As New DSTableAdapters.weather_ilsaTableAdapter
        'Dim Ta3 As New DSTableAdapters.weather_supdoTableAdapter
        'Dim Ta4 As New DSTableAdapters.weather_tempTableAdapter
        'Dim Rcnt As Integer = 0
        'For Each Dr As DS.tbl_weatherRow In DSET1.tbl_weather.Rows
        '    Rcnt += Taw.Insert(Dr.code, Dr.ǹġ, Dr., Dr.ù, Dr.m01, Dr.m02, Dr.m03, Dr.m04, Dr.m05, Dr.m06, Dr.m07, Dr.m08, Dr.m09, Dr.m10, Dr.m11, Dr.m12)
        'Next
        'For Each Dr As DS.weather_chaRow In DSET1.weather_cha.Rows
        '    Rcnt += Ta1.Insert(Dr.pcode, Dr.code, Dr., Dr.m01, Dr.m02, Dr.m03, Dr.m04, Dr.m05, Dr.m06, Dr.m07, Dr.m08, Dr.m09, Dr.m10, Dr.m11, Dr.m12)
        'Next
        'For Each Dr As DS.weather_ilsaRow In DSET1.weather_ilsa.Rows
        '    Rcnt += Ta2.Insert(Dr.pcode, Dr.code, Dr., Dr.ִ, Dr.m01, Dr.m02, Dr.m03, Dr.m04, Dr.m05, Dr.m06, Dr.m07, Dr.m08, Dr.m09, Dr.m10, Dr.m11, Dr.m12)
        'Next
        'For Each Dr As DS.weather_supdoRow In DSET1.weather_supdo.Rows
        '    Rcnt += Ta3.Insert(Dr.pcode, Dr.code, Dr., Dr.t01, Dr.t02, Dr.t03, Dr.t04, Dr.t05, Dr.t06, Dr.t07, Dr.t08, Dr.t09, Dr.t10,
        '                       Dr.t11, Dr.t12, Dr.t13, Dr.t14, Dr.t15, Dr.t16, Dr.t17, Dr.t18, Dr.t19, Dr.t20, Dr.t21, Dr.t22, Dr.t23, Dr.t24)
        'Next
        'For Each Dr As DS.weather_tempRow In DSET1.weather_temp.Rows
        '    Rcnt += Ta4.Insert(Dr.pcode, Dr.code, Dr., Dr.t01, Dr.t02, Dr.t03, Dr.t04, Dr.t05, Dr.t06, Dr.t07, Dr.t08, Dr.t09, Dr.t10,
        '                       Dr.t11, Dr.t12, Dr.t13, Dr.t14, Dr.t15, Dr.t16, Dr.t17, Dr.t18, Dr.t19, Dr.t20, Dr.t21, Dr.t22, Dr.t23, Dr.t24)
        'Next
        'MsgBox("ƮϷ", MsgBoxStyle.Information, "Ȯ")
    End Sub
#End Region
#Region "COntextMenu"
    Private Sub ContextMenuStrip1_Opening(sender As System.Object, e As System.ComponentModel.CancelEventArgs) Handles ContextMenuStrip1.Opening
        'If Me.TreeView1.SelectedNode Is Nothing Then Return
        'Dim tagstring As String = Me.TreeView1.SelectedNode.Tag.ToString()
        'If Me.TreeView1.SelectedNode.Level = 0 Then '//ܸ̰
        '    If Me.TreeView1.SelectedNode.Text.Substring(0, 3) = "Է" Then
        '        Me.߰ToolStripMenuItem.Enabled = True
        '        Me.캯ToolStripMenuItem.Enabled = False
        '        Me.캹ToolStripMenuItem.Enabled = False
        '        Me.ToolStripMenuItem.Enabled = False
        '    Else
        '        e.Cancel = True
        '    End If
        'ElseIf Me.TreeView1.SelectedNode.Level = 1 AndAlso tagstring.Length > 3 Then
        '    If tagstring.Substring(0, 3) = "Է" Then
        '        Me.߰ToolStripMenuItem.Enabled = True
        '        Me.캯ToolStripMenuItem.Enabled = True
        '        Me.캹ToolStripMenuItem.Enabled = True
        '        Me.ToolStripMenuItem.Enabled = True
        '    Else
        '        e.Cancel = True
        '    End If
        'End If
    End Sub
    Private Sub ߰ToolStripMenuItem_Click(sender As System.Object, e As EventArgs) Handles ߰ToolStripMenuItem.Click
        'If Me.TreeView1.SelectedNode Is Nothing Then Return
        'Dim newname As String = InputBox("̸", "űԱ̸ Էϼ", "")
        'If newname.Trim = "" Then Return
        'If Me.TreeView1.SelectedNode.Level = 1 Then
        '    If Me.TreeView1.SelectedNode.Parent.Nodes.Find(newname, True).Length = 0 Then
        '        Dim ntv As TreeNode = Me.TreeView1.SelectedNode.Parent.Nodes.Add(newname, newname + "(0)")
        '        ntv.Tag = "Է|" + newname
        '        Me.TreeView1.SelectedNode = ntv
        '        'TreeView1_MouseDoubleClick(Nothing, Nothing)
        '    End If
        'Else
        '    If Me.TreeView1.SelectedNode.Nodes.Find(newname, True).Length = 0 Then
        '        Dim ntv As TreeNode = Me.TreeView1.SelectedNode.Nodes.Add(newname, newname + "(0)")
        '        ntv.Tag = "Է|" + newname
        '        Me.TreeView1.SelectedNode = ntv
        '        'TreeView1_MouseDoubleClick(Nothing, Nothing)
        '    End If
        'End If
    End Sub
    Private Sub ToolStripMenuItem_Click(sender As System.Object, e As EventArgs) Handles ToolStripMenuItem.Click
        ''//õȱ 
        'If Me.TreeView1.SelectedNode Is Nothing Then Return
        'Dim tn As TreeNode = Me.TreeView1.SelectedNode
        'If Me.TreeView1.SelectedNode.Level <> 1 Then Return
        'Dim tag As String = Me.TreeView1.SelectedNode.Tag.ToString()
        'Dim t() As String = tag.Split("|")
        'If MsgBox("õȱ [" + t(1) + "]() Ͻðڽϱ?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ") = MsgBoxResult.Ok Then
        '    For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0' and ='" + t(1) + "'")
        '        DeleteMyunFromZoneCode(dr.code)
        '        dr.Delete()
        '    Next
        '    DSET1.tbl_zone.AcceptChanges()
        '    ' Refresh_MenuItems("")
        'End If
    End Sub
    '''ش   մϴ.
    Private Sub DeleteMyunFromZoneCode(Zonecode As String)
        For Each dr As DS.tbl_myounRow In DSET1.tbl_myoun.Select("code <> '0' and з='" + Zonecode + "'")
            dr.Delete()
        Next
        DSET1.tbl_myoun.AcceptChanges()
    End Sub
    Private Sub 캯ToolStripMenuItem_Click(sender As System.Object, e As EventArgs) Handles 캯ToolStripMenuItem.Click
        ''//õȱ 
        'If Me.TreeView1.SelectedNode Is Nothing Then Return
        'Dim tn As TreeNode = Me.TreeView1.SelectedNode
        'If Me.TreeView1.SelectedNode.Level <> 1 Then Return
        'Dim tag As String = Me.TreeView1.SelectedNode.Tag.ToString()
        'Dim t() As String = tag.Split("|")
        'Dim m As New System.Text.StringBuilder
        'Dim newname As String = InputBox(" ̸ Էϼ", "캯", t(1))
        'If newname.Trim = "" Then Return
        'If newname.Trim = t(1) Then Return
        'If MsgBox("õȱ [" + t(1) + "]() [" + newname + "] Ͻðڽϱ?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ") = MsgBoxResult.Ok Then
        '    For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0' and ='" + t(1) + "'")
        '        dr. = newname
        '    Next
        '    DSET1.tbl_zone.AcceptChanges()
        '    ' Refresh_MenuItems("")
        'End If
    End Sub
    Private Sub 캹ToolStripMenuItem_Click(sender As System.Object, e As EventArgs) Handles 캹ToolStripMenuItem.Click
        ''//õȱ 
        'If Me.TreeView1.SelectedNode Is Nothing Then Return
        'Dim tn As TreeNode = Me.TreeView1.SelectedNode
        'If Me.TreeView1.SelectedNode.Level <> 1 Then Return
        'Dim tag As String = Me.TreeView1.SelectedNode.Tag.ToString()
        'Dim t() As String = tag.Split("|")
        'Dim m As New System.Text.StringBuilder
        'Dim newname As String = InputBox("ο ̸ Էϼ", "캹", t(1))
        'If newname.Trim = "" Then Return
        'If newname.Trim = t(1) Then Return
        'If MsgBox("õȱ [" + t(1) + "]() [" + newname + "] Ͻðڽϱ?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "Ȯ") = MsgBoxResult.Ok Then
        '    For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0' and ='" + t(1) + "'")
        '        Dim newcode As String = GetNewZoneCode()
        '        Dim newdr As DataRow = DSET1.tbl_zone.NewRow
        '        For Each c As DataColumn In DSET1.tbl_zone.Columns
        '            newdr(c.ColumnName) = dr(c.ColumnName)
        '        Next
        '        newdr("code") = newcode
        '        newdr("") = newname
        '        DuplicateZoneRow(dr.code, newcode)   '//ڵ尪 ش.
        '        DSET1.tbl_zone.Rows.Add(newdr)
        '    Next
        '    DSET1.tbl_zone.AcceptChanges()
        '    'Refresh_MenuItems("")
        'End If
    End Sub
    Private Sub DuplicateZoneRow(ZoneCode As String, newzoneCode As String)
        '//Է ϴ Է¸ ؼ ش.
        Dim Է¸() As DS.tbl_myounRow = DSET1.tbl_myoun.Select("з='" + ZoneCode + "'")
        For Each Է¸ As DS.tbl_myounRow In Է¸
            Dim űԷ¸ As DS.tbl_myounRow = DSET1.tbl_myoun.Newtbl_myounRow
            For Each ÷ As DataColumn In DSET1.tbl_myoun.Columns
                If ÷.ColumnName.ToUpper = "CODE" Then
                    űԷ¸.code = GetMyounMaxCode(DSET1.tbl_myoun)
                Else
                    űԷ¸(÷.ColumnName) = Է¸(÷.ColumnName)
                End If
            Next
            űԷ¸.з = newzoneCode
            DSET1.tbl_myoun.Rows.Add(űԷ¸)
            DSET1.tbl_myoun.AcceptChanges()
        Next
    End Sub
    '''ǻοڵ尪ҶѴ.
    Private Function GetMyounMaxCode(ByVal dt As DataTable) As String
        Try
            Dim Dr As DataRow = dt.Select("", "code desc")(0)
            Return Format(CInt(Dr("code")) + 1, "0000")
        Catch ex As Exception
            Return "0001"
        End Try
    End Function
    Private Function GetNewZoneCode() As String
        Try
            Dim Dr As DataRow = DSET1.tbl_zone.Select("", "code desc")(0)
            Dim Dr_myoun As DataRow = DSET1.tbl_myoun.Select("", "з desc")(0)
            If Dr("code") >= Dr_myoun("з") Then
                Return Format(CInt(Dr("code")) + 1, "0000")
            Else
                Return Format(CInt(Dr_myoun("з")) + 1, "0000")
            End If
        Catch ex As Exception
            Return "0001"
        End Try
    End Function
#End Region
    Private Sub BtCalc_Click(sender As Object, e As EventArgs)
    End Sub
    Private Sub RibbonButton9_Click(sender As Object, e As EventArgs) Handles mbt_report_od.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        Frm_v20091231_Report.Show()
    End Sub
    Private Sub RibbonButton10_Click(sender As Object, e As EventArgs) Handles ribbonButton10.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        If Program = EProgram.ģȯ Then
            Report_ģȯ.Show()
        Else
            Report_伭2.Show()
        End If
    End Sub
    Private Sub RibbonButton5_Click(sender As Object, e As EventArgs) Handles ribbonButton5.Click
        Menu_New()
    End Sub
    Private Sub RibbonButton6_Click(sender As Object, e As EventArgs) Handles ribbonButton6.Click
        Menu_Open()
    End Sub
    Sub Menu_Save()
        '/ ư Ŭ Ͼ ̺Ʈ ƽ ^^?
        If Not Prj.Opened Then
            MsgBox(CLang.Ͼ, MsgBoxStyle.Information, "Ȯ")
            Return
        End If
        '//մ  ִٸ ϵѴ.
        For Each ChildForm As CForm In Me.MdiChildren
            If ChildForm.HasChanged Then ChildForm.AcceptChanged()
        Next
        '// Ѵ.
        Func_Save_OD(Prj.FileName)
    End Sub
    Sub Menu_SaveAs()
        If Prj.FileName = "" Then
            MsgBox(CLang.Ͼ, MsgBoxStyle.Information, "Ȯ")
            Return
        End If
        '//մ  ִٸ ϵѴ.
        For Each ChildForm As CForm In Me.MdiChildren
            If ChildForm.HasChanged Then ChildForm.AcceptChanged()
        Next
        Dim SD As New SaveFileDialog With {
            .FileName = Prj.FileName,
            .Filter = "ø(*." + FileExt + ")|*." + FileExt + "|(*.*)|*.*",
            .FilterIndex = 0
        }
        If SD.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
        Prj.FileName = SD.FileName
        Me.Func_Save_OD(Prj.FileName)
    End Sub
    Private Sub BtSaveFile_Click(sender As Object, e As EventArgs) Handles mbt_save.Click
        Menu_Save()
    End Sub
    Private Sub BTSaveNew_Click(sender As Object, e As EventArgs) Handles mbt_save2.Click
        Menu_SaveAs()
    End Sub
    Private Sub RibbonButton13_Click(sender As Object, e As EventArgs) Handles RibbonButton13.Click
        Frm_About.ShowDialog()
    End Sub
    Private Sub RibbonButton9_Click_1(sender As Object, e As EventArgs) Handles RibbonButton9.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        If Frm_FileInfo.ShowDialog = Windows.Forms.DialogResult.OK Then
            Refresh_StatusInfo()
        End If
    End Sub
    Private Sub RibbonButton11_Click(sender As Object, e As EventArgs) Handles btShowWeather.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        'Me.Toggle_Menu_Color(E_MenuIdx.)
        Frm_Weather.ControlBox = True
        Frm_Weather.ShowDialog()
    End Sub
    Private Sub RibbonButton12_Click(sender As Object, e As EventArgs) Handles ribbonButton12.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        Frm_profile.ControlBox = True
        Frm_profile.Show()
    End Sub
    Private Sub RibbonButton14_Click(sender As Object, e As EventArgs)
        Dim but As C1.Win.C1Ribbon.RibbonButton = CType(sender, C1.Win.C1Ribbon.RibbonButton)
        Dim idx As Integer = CInt(but.Tag.ToString)
        Read_PreFile(idx)
    End Sub
    Private Sub RibbonButton14_Click_1(sender As Object, e As EventArgs) Handles RibbonButton14.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        Frm_Common.ControlBox = True
        Frm_Common.Show()
        'Show_menu(New Frm_Common)
    End Sub
    Private Sub RibbonButton15_Click(sender As Object, e As EventArgs) Handles RibbonButton15.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        Frm_RepResult_Admin.ControlBox = True
        Frm_RepResult_Admin.Show()
    End Sub
    Private Sub RibbonButton16_Click(sender As Object, e As EventArgs) Handles RibbonButton16.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        Frm_Zone.ControlBox = True
        Frm_Zone.Show()
    End Sub
    ''' 
    '''   ִ Ȯ
    ''' 
    ''' 
    ''' 
    ''' 
    Function CheckOpenForm(TagStr As String) As CForm
        Dim childf As Form = Nothing
        For Each cf As Form In Me.MdiChildren
            If cf.Tag.ToString = TagStr Then
                childf = cf
                Exit For
            End If
        Next
        Return childf
    End Function
    Sub Show_Menu(fNo As Integer)
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        '//ش ִ ȮѴ.
        Dim ftagStr As String = fNo.ToString()
        Dim ChildForm As CForm = CheckOpenForm(ftagStr)
        If Not ChildForm Is Nothing Then '// ִ ̴.
            If ChildForm.WindowState = FormWindowState.Minimized Then ChildForm.WindowState = FormWindowState.Normal
            ChildForm.Show()
            ChildForm.Activate()
        Else
            If fNo = 1 Then
                ChildForm = New Frm_1_Basic()
            ElseIf fNo = 2 Then
                ChildForm = New Frm_2_Build()
            ElseIf fNo = 3 Then
                ChildForm = New Frm_3_Mach()
            ElseIf fNo = 4 Then
                ChildForm = New Frm_5_New()
            ElseIf fNo = 5 Then
                ChildForm = New Frm_6_Req()
            End If
            ChildForm.MdiParent = Me
            ChildForm.Show()
        End If
    End Sub
    Private Sub BtMenu_Click(sender As Object, e As EventArgs) Handles bt1.Click, bt2.Click, bt3.Click, bt4.Click, bt5.Click
        Dim but As C1.Win.C1Ribbon.RibbonButton = sender
        If but Is bt1 Then
            Show_Menu(1)
        ElseIf but Is bt2 Then
            Show_Menu(2)
        ElseIf but Is bt3 Then
            Show_Menu(3)
        ElseIf but Is bt4 Then
            Show_Menu(4)
        ElseIf but Is bt5 Then
            Show_Menu(5)
        End If
    End Sub
    Private Sub RibbonButton1_Click(sender As System.Object, e As System.EventArgs) Handles RibbonButton1.Click
        Me.LayoutMdi(MdiLayout.TileHorizontal)
    End Sub
    Private Sub RibbonButton2_Click(sender As System.Object, e As System.EventArgs) Handles RibbonButton2.Click
        Me.LayoutMdi(MdiLayout.Cascade)
    End Sub
    Private Sub RibbonButton3_Click(sender As System.Object, e As System.EventArgs) Handles RibbonButton3.Click
        Try
            For Each child As CForm In Me.MdiChildren
                If child.HasChanged Then child.AcceptChanged()
                child.Close()
            Next
        Catch ex As Exception
            MsgBox(ex.Message, MsgBoxStyle.Critical, "Error")
        End Try
        
    End Sub
    Private Sub RibbonButton4_Click(sender As Object, e As EventArgs) Handles RibbonButton4.Click
        If Not Prj.Opened Then
            Work_msg_timer(CLang.Ͼ)
            Return
        End If
        Frm_Yk.ControlBox = True
        Frm_Yk.Show()
    End Sub
    Private Sub RibbonButton7_Click(sender As Object, e As EventArgs) Handles RibbonButton7.Click
        Me.LayoutMdi(MdiLayout.TileVertical)
    End Sub
    Private Sub RibbonButton17_Click(sender As Object, e As EventArgs)
        Me.LayoutMdi(MdiLayout.ArrangeIcons)
    End Sub
    Private Sub RibbonButton8_Click(sender As Object, e As EventArgs) Handles RibbonButton8.Click
        Show_Menu(1)
        Show_Menu(2)
        Show_Menu(3)
        Show_Menu(4)
    End Sub
    Private Sub RibbonButton18_Click(sender As Object, e As EventArgs) Handles RibbonButton18.Click
        Read_FilHistory()
    End Sub
    Private Sub RibbonButton20_Click(sender As Object, e As EventArgs) Handles RibbonButton20.Click
        Frm_ExtReport.Show()
    End Sub
    Private Sub RibbonButton21_Click(sender As System.Object, e As System.EventArgs) Handles RibbonButton21.Click
        Dim sd As New SaveFileDialog
        If sd.ShowDialog() <> Windows.Forms.DialogResult.OK Then Return
        DSETR1.ExtReport.WriteXml(sd.FileName, XmlWriteMode.WriteSchema)
    End Sub
    Private Sub RibbonButton22_Click(sender As System.Object, e As System.EventArgs)
        '// cache  Ѵ.
        Dim savepath As New System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\Cache")
        If Not savepath.Exists Then savepath.Create()
        '//  Ѵ.
        If DSET1.tbl_weather_od.Rows.Count < 2 Then
            MsgBox("尡 Ͱ ϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        Try
            DSET1.tbl_weather_od.WriteXml(savepath.FullName + "\tbl_weather_od.xml")
            DSET1.weather_group.WriteXml(savepath.FullName + "\weather_group.xml")
            DSET1.weather_cha_od.WriteXml(savepath.FullName + "\weather_cha_od.xml")
            DSET1.weather_ilsa_od.WriteXml(savepath.FullName + "\weather_ilsa_od.xml")
            DSET1.weather_supdo_od.WriteXml(savepath.FullName + "\weather_supdo_od.xml")
            DSET1.weather_temp_od.WriteXml(savepath.FullName + "\weather_temp_od.xml")
            MsgBox("Ϸ", MsgBoxStyle.Information, "Ȯ")
            Shell("explorer " + savepath.FullName, AppWinStyle.NormalFocus)
        Catch ex As Exception
            MsgBox("   ߽ϴ" + vbCrLf + ex.Message, MsgBoxStyle.Critical, "Ȯ")
        End Try
    End Sub
    Private Sub RibbonButton23_Click(sender As System.Object, e As System.EventArgs)
        '// cache  Ѵ.
        Dim savepath As New System.IO.DirectoryInfo(AppDomain.CurrentDomain.BaseDirectory + "\Cache")
        If Not savepath.Exists Then savepath.Create()
        '//  Ѵ.
        If DSET1.tbl_common_od.Rows.Count < 2 Then
            MsgBox("尡 뵥Ͱ ϴ", MsgBoxStyle.Critical, "Ȯ")
            Return
        End If
        Try
            DSET1.tbl_common_od.WriteXml(savepath.FullName + "\tbl_common_od.xml")
            MsgBox("Ϸ", MsgBoxStyle.Information, "Ȯ")
            Shell("explorer " + savepath.FullName, AppWinStyle.NormalFocus)
        Catch ex As Exception
            MsgBox("   ߽ϴ" + vbCrLf + ex.Message, MsgBoxStyle.Critical, "Ȯ")
        End Try
    End Sub
    Private Sub btVerCheck_Click(sender As Object, e As EventArgs) Handles btVerCheck.Click
        Work_msg("α Ȯ")
        Dim MyVersion As String = Format(My.Application.Info.Version.Minor, "0000") & Format(My.Application.Info.Version.Build, "0000")
        Dim MyProgVer As String = ""
        If Pub.Program = EProgram.ģȯ Then
            MyVersion = "20171215" '"20170708"
            MyProgVer = "20180118"
        Else
            MyVersion = "20180901"  '//ui version
            MyProgVer = "20180901"  '//interface version
        End If
        'MyProgVer = "20170710"
        '//Ʈũ ̵Ǹ üũѴ.
        If Pub.CheckInternet Then
            lbOnline.Text = String.Format("[{0}]", "Online")
            Dim L As New ArinLogin.ArinLOgin
            Dim VersionInfo As ArinLogin.ArinLOgin.sVersionInfo = Nothing
            '// üũ
            Try
                If Program = EProgram.ѷ Then
                    VersionInfo = L.Get_LastVersion("N")   '//ѷ 
                Else
                    VersionInfo = L.Get_LastVersion("O")   '//ģȯ
                End If
            Catch ex As Exception
                End
            End Try
            If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyVersion)) Then   '//0 ų  ̹Ƿ Ѿ.
                Dim Msg As New System.Text.StringBuilder
                Msg.AppendLine("ο  ȮεǾϴ" & vbCrLf)
                Msg.AppendLine(":" & MyVersion & " űԹ:" & VersionInfo.Ver)
                Msg.AppendLine("----------------------------------")
                Msg.AppendLine(VersionInfo.Desc)
                Msg.AppendLine("----------------------------------")
                If VersionInfo.Link.Trim = "" Then VersionInfo.Link = "http://Ȩּ"
                If MsgBox(Msg.ToString, MsgBoxStyle.Information, "Ȯ") = MsgBoxResult.Ok Then
                End If
                End '2011.03.08 α ֽŹ ƴϸ α Ų.
            Else
                '//α ߰ üũѴ.
                Try
                    If Program = EProgram.ѷ Then
                        VersionInfo = L.Get_LastVersion("Q")   '//ѷ  (α)
                    Else
                        VersionInfo = L.Get_LastVersion("R")   '//ģȯ (α)
                    End If
                Catch ex As Exception
                    End
                End Try
                If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyProgVer)) Then   '//0 ų  ̹Ƿ Ѿ.
                    Dim Msg As New System.Text.StringBuilder
                    Msg.AppendLine("α ̽ Ǿϴ." & vbCrLf)
                    Msg.AppendLine(":" & MyProgVer & " űԹ:" & VersionInfo.Ver)
                    Msg.AppendLine("----------------------------------")
                    Msg.AppendLine(VersionInfo.Desc)
                    Msg.AppendLine("----------------------------------")
                    If VersionInfo.Link.Trim = "" Then VersionInfo.Link = "http://Ȩּ"
                    If MsgBox(Msg.ToString, MsgBoxStyle.Information, "Ȯ") = MsgBoxResult.Ok Then
                    End If
                    End '2011.03.08 α ֽŹ ƴϸ α Ų.
                End If
                MsgBox("ֽ Դϴ.", MsgBoxStyle.Information, "Ȯ")
            End If
        Else
            lbOnline.Text = String.Format("[{0}]", "Offline")
            Dim msg As New System.Text.StringBuilder
            msg.AppendLine(" Դϴ")
            msg.AppendLine("űԹ üũ   ϴ")
            msg.AppendLine("űԹ {0} Ȯ Ͻñ ٶϴ")
            MsgBox(msg.ToString(), MsgBoxStyle.Information, "Ȯ")
        End If
        Work_msg("")
    End Sub
    Private Sub RibbonButton24_Click(sender As Object, e As EventArgs) Handles mbt_calc.Click
        For Each f As CForm In Me.MdiChildren
            '//ο ȭ ȭ ٸ ׳ ִʴ.
            If f.HasChanged Then f.AcceptChanged()
        Next
        'If Me.OpenedForm <> E_MenuIdx.NONE Then
        'End If
        Func_Calc_OD()
    End Sub
    Private Sub RibbonButton24_Click_1(sender As Object, e As EventArgs) Handles RibbonButton24.Click
        '//save file (weather, profile)
        Dim fn0 As String = AppDomain.CurrentDomain.BaseDirectory + "\common.dat"
        Dim fn1 As String = AppDomain.CurrentDomain.BaseDirectory + "\profile.dat"
        Dim fn2 As String = AppDomain.CurrentDomain.BaseDirectory + "\weather{0}.dat"
        'DSET1.tbl_common_od.WriteXml(String.Format(fn0, ""), True)
        'DSET1.tbl_profile_od.WriteXml(String.Format(fn1, ""), True)
        'DSET1.tbl_weather_od.WriteXml(String.Format(fn2, ""), True)
        'DSET1.weather_cha_od.WriteXml(String.Format(fn2, "_ch"), True)
        'DSET1.weather_group.WriteXml(String.Format(fn2, "_gr"), True)
        'DSET1.weather_ilsa_od.WriteXml(String.Format(fn2, "_is"), True)
        'DSET1.weather_supdo_od.WriteXml(String.Format(fn2, "_sd"), True)
        'DSET1.weather_temp_od.WriteXml(String.Format(fn2, "_tp"), True)
        Dim ms0 As New System.IO.MemoryStream()
        Dim ms1 As New System.IO.MemoryStream()
        Dim ms2 As New System.IO.MemoryStream()
        Dim ms21 As New System.IO.MemoryStream()
        Dim ms22 As New System.IO.MemoryStream()
        Dim ms23 As New System.IO.MemoryStream()
        Dim ms24 As New System.IO.MemoryStream()
        Dim ms25 As New System.IO.MemoryStream()
        DSET1.tbl_common_od.WriteXml(ms0)
        Dim buffer0() As Byte = EnctryArea(ms0.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn0, ""), buffer0)
        DSET1.tbl_profile_od.WriteXml(ms1)
        buffer0 = EnctryArea(ms1.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn1, ""), buffer0)
        DSET1.tbl_weather_od.WriteXml(ms2)
        buffer0 = EnctryArea(ms2.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn2, ""), buffer0)
        DSET1.weather_cha_od.WriteXml(ms21)
        buffer0 = EnctryArea(ms21.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn2, "_ch"), buffer0)
        DSET1.weather_group.WriteXml(ms22)
        buffer0 = EnctryArea(ms22.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn2, "_gr"), buffer0)
        DSET1.weather_ilsa_od.WriteXml(ms23)
        buffer0 = EnctryArea(ms23.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn2, "_is"), buffer0)
        DSET1.weather_supdo_od.WriteXml(ms24)
        buffer0 = EnctryArea(ms24.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn2, "_sd"), buffer0)
        DSET1.weather_temp_od.WriteXml(ms25)
        buffer0 = EnctryArea(ms25.GetBuffer())
        System.IO.File.WriteAllBytes(String.Format(fn2, "_tp"), buffer0)
    End Sub
    Private Sub RibbonButton25_Click(sender As Object, e As EventArgs) Handles RibbonButton25.Click
        DSET1.tbl_yk.Clear()
        DSET1.tbl_ykdetail.Clear()
        DSET1.tbl_new.Clear()
        DSET1.tbl_new_energy.Clear()
        DSET1.tbl_new_ground.Clear()
        DSET1.tbl_new_light.Clear()
        DSET1.AcceptChanges()
        DSETR1.ExtReport.Clear()
        DSETR1.AcceptChanges()
    End Sub
    Private Sub RibbonButton26_Click(sender As Object, e As EventArgs) Handles RibbonButton26.Click
        DSET1.tbl_profile_od.Clear()
        DSET1.tbl_weather_od.Clear()
        DSET1.weather_cha_od.Clear()
        DSET1.weather_ilsa_od.Clear()
        DSET1.weather_temp_od.Clear()
        DSET1.weather_supdo_od.Clear()
        DSET1.weather_group.Clear()
        DSET1.AcceptChanges()
    End Sub
    Private Sub RibbonButton11_Click_1(sender As System.Object, e As System.EventArgs) Handles RibbonButton11.Click
        '//tpl test
        Dim od As New OpenFileDialog()
        od.Filter = "tpl|*.tpl"
        If (od.ShowDialog() = Windows.Forms.DialogResult.OK) Then
            Open_TPL(od.FileName)
        End If
    End Sub
    Private Function Open_TPL(ByVal FileName As String) As String
        '//翭ִƮ ݴ´.
        DSET1.Clear()
        DSET2.Clear()
        DSETR1.Clear()
        DSETR2.Clear()
        DSET1.AcceptChanges()
        DSET2.AcceptChanges()
        DSETR1.AcceptChanges()
        DSETR2.AcceptChanges()
        Prj.IsError = False '//160509
        '//  ø̸ ´
        Dim FS As System.IO.Stream
        FS = New IO.FileStream(FileName, IO.FileMode.Open)
        Dim Br As New IO.BinaryReader(FS, System.Text.Encoding.Default)
        Prj.FileName = FileName
        Prj.Opened = False
        '//̺ϱ(2)
        Prj.SFType = STB(Br.ReadBytes(2))
        Dim ext As String = "ECL2"
        Select Case Prj.SFType
            Case "00"   '//⺻
                Prj.UIVersion = STB(Br.ReadBytes(10))
                Prj.LGVersino = STB(Br.ReadBytes(10))
                Select Case Prj.LGVersino
                    Case "2009123100", "2010030700", "2010031400"
                        Prj.LGVersino = StartVersion
                End Select
                Select Case Prj.UIVersion
                    Case "2009123100", "2010030700", "2010031400"
                        Prj.UIVersion = StartVersion
                        Prj.UIVersion = StartVersion
                End Select
                Prj.Name = STB(Br.ReadBytes(100))
                Prj.Desc = STB(Br.ReadBytes(256))
                Prj.MakeTime = STB(Br.ReadBytes(19))
                Prj.EditTime = STB(Br.ReadBytes(19))
                ' MsgBox(Br.BaseStream.Position)
                '//DS1 ʱȭ  
                DSET1.Clear() : DSET1.AcceptChanges()
                Dim DS1Len As Int64 = Br.ReadInt64
                If DS1Len = 0 Then
                    DS1Len = FS.Length - Br.BaseStream.Position - 2
                End If
                'MsgBox("pos=" & Br.BaseStream.Position & vbCrLf & DS1Len, MsgBoxStyle.Information, Hex(DS1Len))
                Dim DS1() As Byte
                Try
                    DS1 = Br.ReadBytes(CInt(DS1Len))
                Catch ex As Exception
                    Prj.IsError = True
                    MsgBox(" ջǾϴ(Read Data Array)." & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "Ds1 byteRead Error")
                End Try
                'MsgBox("pos=" & Br.BaseStream.Position & vbCrLf & DS1.Length, MsgBoxStyle.Information, DS1Len)
                If Not Prj.IsError Then
                    Dim Ms As New IO.MemoryStream(DS1)
                    Try
                        DSET1.ReadXml(Ms)
                        DSET1.AcceptChanges()
                        Ms.Close()
                    Catch ex As Exception
                        Prj.IsError = True
                        MsgBox(" ջǾϴ(Read DataSet)" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "Ds1 Open Error")
                    End Try
                    If Prj.IsError Then
                        If MsgBox("  ȮϽðڽϱ?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "Ȯ") = MsgBoxResult.Yes Then
                            '//۸ utf8 ̿Ͽ ó ؾѴ
                            Dim accCount As UInteger = 0
                            Ms.Position = 0
                            Dim AllDataList As String = System.Text.Encoding.UTF8.GetString(DS1)
                            My.Computer.FileSystem.WriteAllText("c:\temp\1.txt", AllDataList, False)
                            Dim CurrentTable As String = ""
                            Dim dr As DataRow = Nothing
                            For Each line As String In AllDataList.Split(vbCrLf)
                                '//  ó Ѵ
                                line = line.Trim
                                If line.ToLower.StartsWith("") Then
                                    '//ͼ¼̹Ƿ Ѿ
                                ElseIf line.ToLower.StartsWith("") Then
                                    CurrentTable = line.Substring(1, line.Length - 2)
                                    dr = DSET1.Tables(CurrentTable).NewRow
                                ElseIf line.ToLower.StartsWith("") Then
                                    '//̺ 
                                    '//
                                    accCount += 1
                                    DSET1.Tables(CurrentTable).Rows.Add(dr)
                                    CurrentTable = ""
                                ElseIf line.ToLower.StartsWith("") Then
                                    CurrentTable = line.Substring(1, line.Length - 2)
                                    dr = DSET1.Tables(CurrentTable).NewRow
                                ElseIf line.ToLower.StartsWith("") Then
                                    '//̺ 
                                    DSET1.Tables(CurrentTable).Rows.Add(dr)
                                    accCount += 1
                                    CurrentTable = ""
                                Else
                                    '//Ϲݵ
                                    If String.IsNullOrWhiteSpace(CurrentTable) Then Continue For
                                    Dim ݴ±ġ As Integer = line.IndexOf(">")
                                    If ݴ±ġ > -1 Then
                                        Dim ʵ As String = line.Substring(1, ݴ±ġ - 1)
                                        Dim ±ġ As Integer = line.IndexOf("<", ݴ±ġ)
                                        If ±ġ > -1 Then
                                            Dim ΰ As String = line.Substring(ݴ±ġ + 1, ±ġ - ݴ±ġ - 1)
                                            dr(ʵ) = ΰ
                                        End If
                                    End If
                                End If
                            Next
                            '//Է  Է¸ Ͱ ִٸ з ̿ؼ  켱 ش
                            If DSET1.tbl_zone.Rows.Count < 2 AndAlso DSET1.tbl_myoun.Rows.Count > 1 Then
                                For Each drMn As DS.tbl_myounRow In DSET1.tbl_myoun.Rows
                                    Dim з As String = drMn.з.Trim
                                    If String.IsNullOrWhiteSpace(з) Then Continue For
                                    Dim Ͱ As Integer = DSET1.tbl_zone.Select("code='" + з + "'").Length
                                    If Ͱ = 0 Then
                                        Dim  As DS.tbl_zoneRow = DSET1.tbl_zone.Newtbl_zoneRow
                                        .code = з
                                        . = "ڵ(" + з + ")"
                                        DSET1.tbl_zone.Addtbl_zoneRow()
                                        accCount += 1
                                    End If
                                Next
                                DSET1.tbl_zone.AcceptChanges()
                            End If
                            MsgBox(accCount.ToString() + " ڷᰡ Ǿϴ", MsgBoxStyle.Critical, "Ȯ")
                            DSET1.AcceptChanges()
                            DSETR1.Clear() : DSETR1.AcceptChanges()
                            Prj.IsError = False
                        End If
                    Else
                        '//° 
                        '//DS1 ִٸ Լ Ѵ
                        DSETR1.Clear() : DSETR1.AcceptChanges()
                        DS1Len = Br.ReadInt64
                        DS1 = Br.ReadBytes(CInt(DS1Len))
                        Ms = New IO.MemoryStream(DS1)
                        Try
                            DSETR1.ReadXml(Ms)
                            DSETR1.AcceptChanges()
                            Ms.Close()
                        Catch ex As Exception
                            MsgBox("     ϴ." & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "Ds2 Open Error")
                        End Try
                        Prj.IsError = False
                    End If
                End If
            Case "01"   '//⺻(+ȣ
                Prj.UIVersion = STB(Br.ReadBytes(10))
                Prj.LGVersino = STB(Br.ReadBytes(10))
                Select Case Prj.LGVersino
                    Case "2009123100", "2010030700", "2010031400"
                        Prj.LGVersino = StartVersion
                End Select
                Select Case Prj.UIVersion
                    Case "2009123100", "2010030700", "2010031400"
                        Prj.UIVersion = StartVersion
                End Select
                Prj.Name = STB(Br.ReadBytes(100))
                Prj.Desc = STB(Br.ReadBytes(256))
                Prj.MakeTime = STB(Br.ReadBytes(19))
                Prj.EditTime = STB(Br.ReadBytes(19))
                Prj.Password = STB(Br.ReadBytes(8)) '//ȣ 8ƮҴѴ.  8ǹڰ ѱ ҰѴ
                ' MsgBox(Br.BaseStream.Position)
                '//DS1 ʱȭ  
                DSET1.Clear() : DSET1.AcceptChanges()
                Dim DS1Len As Int64 = Br.ReadInt64
                'MsgBox("pos=" & Br.BaseStream.Position & vbCrLf & DS1Len, MsgBoxStyle.Information, Hex(DS1Len))
                Dim DS1() As Byte = Br.ReadBytes(CInt(DS1Len))
                'MsgBox("pos=" & Br.BaseStream.Position & vbCrLf & DS1.Length, MsgBoxStyle.Information, DS1Len)
                Dim Ms As New IO.MemoryStream(DS1)
                Try
                    DSET1.ReadXml(Ms)
                    DSET1.AcceptChanges()
                    Ms.Close()
                Catch ex As Exception
                    MsgBox(" ջǾϴ." & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "Ds1 Open Error")
                End Try
                '//DS1 ִٸ Լ Ѵ
                DSETR1.Clear() : DSETR1.AcceptChanges()
                DS1Len = Br.ReadInt64
                DS1 = Br.ReadBytes(CInt(DS1Len))
                Ms = New IO.MemoryStream(DS1)
                Try
                    DSETR1.ReadXml(Ms)
                    DSETR1.AcceptChanges()
                    Ms.Close()
                Catch ex As Exception
                    MsgBox("     ϴ." & vbCrLf & ex.Message.ToString, MsgBoxStyle.Information, "Ds2 Open Error")
                End Try
                Prj.IsError = False
            Case Else
                MsgBox(" ҷ  ϴ1", MsgBoxStyle.Critical, "ҷ")
                Prj.IsError = True
        End Select
        Br.Close()
        FS.Close()
        If Not Prj.IsError Then
            Prj.Opened = True
            'e.m_initdata.Enabled = True
            'Frm_Work.MdiParent = Me
            Frm_Work.Label1.Text = " Ȯϰ ֽϴ"
            Frm_Work.Show()
            If DSET1.tbl_buha.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_buha.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_bunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_bunbae.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_kongjo.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongjo.Rows.Add(New String() {"0", "()"})
            'If DSET1.tbl_kongkub.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongkub.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_myoun.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_myoun.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_nanbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nanbangkiki.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_nangbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nangbangkiki.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_nbunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nbunbae.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_new.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_new.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_profile_od.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_profile_od.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_weather_od.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_weather_od.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_zone.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_zone.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_yk.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_yk.Rows.Add(New String() {"0", "()"})
            If DSET1.tbl_Desc.Rows.Count < 1 Then
                MsgBox("ǹ䵥Ͱ Ƿ ʱڷḦ մϴ", MsgBoxStyle.Critical, "Ȯ")
                Dim newdescdr As DS.tbl_DescRow = DSET1.tbl_Desc.NewRow
                newdescdr.name = ""
                newdescdr.buildarea = "0001"
                DSET1.tbl_Desc.Addtbl_DescRow(newdescdr)
                DSET1.tbl_Desc.AcceptChanges()
            End If
            '// 
            DSET1.tbl_common_od.Clear()
            DSET1.tbl_profile_od.Clear()
            DSET1.tbl_weather_od.Clear()
            DSET1.weather_cha_od.Clear()
            DSET1.weather_group.Clear()
            DSET1.weather_ilsa_od.Clear()
            DSET1.weather_supdo_od.Clear()
            DSET1.weather_temp_od.Clear()
            Dim fn0 As String = AppDomain.CurrentDomain.BaseDirectory + "\common.dat"
            Dim fn1 As String = AppDomain.CurrentDomain.BaseDirectory + "\profile.dat"
            Dim fn2 As String = AppDomain.CurrentDomain.BaseDirectory + "\weather{0}.dat"
            If System.IO.File.Exists(fn0) Then
                Dim buffer() As Byte = System.IO.File.ReadAllBytes(String.Format(fn0, ""))
                DSET1.tbl_common_od.ReadXml(String.Format(fn0, ""))
            End If
            If System.IO.File.Exists(fn1) Then
                DSET1.tbl_profile_od.ReadXml(String.Format(fn1, ""))
            End If
            If System.IO.File.Exists(String.Format(fn2, "")) Then
                DSET1.tbl_weather_od.ReadXml(String.Format(fn2, ""))
            End If
            If System.IO.File.Exists(String.Format(fn2, "_ch")) Then
                DSET1.weather_cha_od.ReadXml(String.Format(fn2, "_ch"))
            End If
            If System.IO.File.Exists(String.Format(fn2, "_gr")) Then
                DSET1.weather_group.ReadXml(String.Format(fn2, "_gr"))
            End If
            If System.IO.File.Exists(String.Format(fn2, "_is")) Then
                DSET1.weather_ilsa_od.ReadXml(String.Format(fn2, "_is"))
            End If
            If System.IO.File.Exists(String.Format(fn2, "_sd")) Then
                DSET1.weather_supdo_od.ReadXml(String.Format(fn2, "_sd"))
            End If
            If System.IO.File.Exists(String.Format(fn2, "_tp")) Then
                DSET1.weather_temp_od.ReadXml(String.Format(fn2, "_tp"))
            End If
            DSET1.tbl_common_od.AcceptChanges()
            DSET1.tbl_profile_od.AcceptChanges()
            DSET1.tbl_weather_od.AcceptChanges()
            DSET1.weather_cha_od.AcceptChanges()
            DSET1.weather_group.AcceptChanges()
            DSET1.weather_ilsa_od.AcceptChanges()
            DSET1.weather_supdo_od.AcceptChanges()
            DSET1.weather_temp_od.AcceptChanges()
            DSET1.AcceptChanges()
            '//Է  
            Dim  As Decimal = 0
            Dim  As Integer = 0
            Dim  As Decimal = 0
            For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0'")
                Dim  As Integer = 0
                If IsNumeric(dr.ԷǼ) Then
                     = CInt(dr.ԷǼ)
                Else
                     = 1
                End If
                 += 
                If IsNumeric(dr.) Then
                     = dr. * 
                Else
                     = 0
                End If
                 =  + 
            Next
            '//ǹ뵵⺻
            DSET1.tbl_type.Clear()
            Dim 뵵 As String = DSET1.tbl_Desc.Rows(0)("isjugo").ToString
            If 뵵 = "0001" OrElse 뵵 = "0002" OrElse 뵵 = "1" OrElse 뵵 = "2" Then
                '//ģȯ(ecl3)
                '//üǼ
                Dim newdr As DS.tbl_typeRow = DSET1.tbl_type.Newtbl_typeRow
                If  = 0 Then
                    newdr. = 0
                Else
                    newdr. =  / 
                End If
                newdr. = 
                newdr.Ÿ = "1"
                newdr.code = "0001"
                DSET1.tbl_type.Addtbl_typeRow(newdr)
                DSET1.tbl_type.AcceptChanges()
                ext = "ECL3"
            Else
                '//ecl2
                '//߰
                Dim new As DS.tbl_typeRow = DSET1.tbl_type.Newtbl_typeRow
                new.code = "0001"
                new. = 
                new. = "ü"
                new.ü뵵 = "0002"
                DSET1.tbl_type.Addtbl_typeRow(new)
                ext = "ECL2"
            End If
            If IsNumeric(뵵) = False Then
                DSET1.tbl_Desc.Rows(0)("isjugo") = "1"
            End If
            '//̾° ó(130810:arin)
            For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("isnull(,'')=''")
                dr. = "⺻"
            Next
            '//뷮Ϳ(130819:arin)
            If DSET1.tbl_monuse.Rows.Count = 0 Then
                For y As Integer = 1 To 3
                    Dim idx As String = y.ToString("0000")
                    For i As Integer = 1 To 12
                        DSET1.tbl_monuse.Rows.Add(New String() {y.ToString() + "", i.ToString("00"), "0", "0", "0", idx})   '//,,ð,,,ڵ
                    Next
                Next
            End If
            '//140808  ⺻ ó
            '//Է
            If Not DSET1 Is Nothing Then
                For i As Integer = 1 To DSET1.tbl_zone.Rows.Count
                    '//ü   150111
                    'üNTb.Text = TOST(TOSG(NTb.Text) * TOSG(õNTb.Text))
                    Dim  As String = ""
                    Dim õ As String = ""
                    Dim ü As String = ""
                    Try
                         = DSET1.tbl_zone.Rows(i - 1)("").ToString
                    Catch ex As Exception
                         = ""
                    End Try
                    Try
                        õ = DSET1.tbl_zone.Rows(i - 1)("õp").ToString
                    Catch ex As Exception
                        õ = ""
                    End Try
                    Try
                        ü = DSET1.tbl_zone.Rows(i - 1)("ü").ToString
                    Catch ex As Exception
                        ü = ""
                    End Try
                    If IsNumeric() AndAlso IsNumeric(õ) Then
                        If Not IsNumeric(ü) Then
                            ' MsgBox("ü Ƿ  մϴ", MsgBoxStyle.Information, "Ȯ")
                            DSET1.tbl_zone.Rows(i - 1)("ü") = CSng() * CSng(õ)
                        End If
                    End If
                    If DSET1.tbl_zone.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
                        DSET1.tbl_zone.Rows(i - 1).RowState = DataRowState.Detached Then
                        Continue For
                    End If
                    Dim StrCode As String = DSET1.tbl_zone.Rows(i - 1)("code").ToString
                    If StrCode.Length = 4 Then
                        DSET1.tbl_zone.Rows(i - 1)("code") = "0" + StrCode
                    End If
                Next
                DSET1.tbl_zone.AcceptChanges()
            End If
            If Not DSET2 Is Nothing Then
                For i As Integer = 1 To DSET2.tbl_zone.Rows.Count
                    If DSET2.tbl_zone.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
                        DSET2.tbl_zone.Rows(i - 1).RowState = DataRowState.Detached Then
                        Continue For
                    End If
                    Dim StrCode As String = DSET2.tbl_zone.Rows(i - 1)("code").ToString
                    If StrCode.Length = 4 Then
                        DSET2.tbl_zone.Rows(i - 1)("code") = "0" + StrCode
                    End If
                Next
                DSET2.tbl_zone.AcceptChanges()
            End If
            '//Է¸
            If Not DSET1 Is Nothing Then
                For i As Integer = 1 To DSET1.tbl_myoun.Rows.Count
                    If DSET1.tbl_myoun.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
                        DSET1.tbl_myoun.Rows(i - 1).RowState = DataRowState.Detached Then
                        Continue For
                    End If
                    Dim StrCode As String = DSET1.tbl_myoun.Rows(i - 1)("code").ToString
                    If StrCode.Length = 4 Then
                        DSET1.tbl_myoun.Rows(i - 1)("code") = "0" + StrCode
                    End If
                    Dim StrCode2 As String = DSET1.tbl_myoun.Rows(i - 1)("з").ToString
                    If StrCode2.Length = 4 Then
                        StrCode2 = "0" + StrCode2
                        DSET1.tbl_myoun.Rows(i - 1)("з") = StrCode2
                    End If
                    '//Է ã 171219
                    Dim () As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code = '" + StrCode2 + "'")
                    If .Length = 1 Then
                        Dim  As Integer = 0
                        If IsNumeric((0).ԷǼ) Then
                             = CInt((0).ԷǼ)
                        Else
                             = 1
                        End If
                        If  > 1 Then
                            Dim  As Single = TOSG(DSET1.tbl_myoun.Rows(i - 1)(""))
                            DSET1.tbl_myoun.Rows(i - 1)("") =  * 
                        End If
                    End If
                Next
                DSET1.tbl_myoun.AcceptChanges()
            End If
            If Not DSET2 Is Nothing Then
                For i As Integer = 1 To DSET2.tbl_myoun.Rows.Count
                    If DSET2.tbl_myoun.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
                        DSET2.tbl_myoun.Rows(i - 1).RowState = DataRowState.Detached Then
                        Continue For
                    End If
                    Dim StrCode As String = DSET2.tbl_myoun.Rows(i - 1)("code").ToString
                    If StrCode.Length = 4 Then
                        DSET2.tbl_myoun.Rows(i - 1)("code") = "0" + StrCode
                    End If
                    Dim StrCode2 As String = DSET2.tbl_myoun.Rows(i - 1)("з").ToString
                    If StrCode2.Length = 4 Then
                        DSET2.tbl_myoun.Rows(i - 1)("з") = "0" + StrCode2
                    End If
                Next
                DSET2.tbl_myoun.AcceptChanges()
            End If
            RibbonButton17_Click_1(Nothing, Nothing)
            Frm_Work.Close()
            '//,Ȯ  / 13-12-05 / arin
            Dim Drdesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
            If Drdesc.injungdate.Trim = "" Then Drdesc.injungdate = Now.ToString("yyyy-MM-dd")
            If Drdesc.jubsudate.Trim = "" Then Drdesc.jubsudate = Now.ToString("yyyy-MM-dd")
            If Drdesc.뵵Ա = "" Then Drdesc.뵵Ա = Now.ToString("yyyy-MM-dd")
            If Drdesc.reqdate = "" Then Drdesc.reqdate = Now.ToString("yyyy-MM-dd")
            If Drdesc.existdate = "" Then Drdesc.existdate = Now.ToString("yyyy-MM-dd")
            If Drdesc.ΰ = "" Then Drdesc.ΰ = "1" '//1==, 0==Ϲ
            Drdesc.buildarea = "010100"
            DSET1.tbl_Desc.AcceptChanges()
            validation()    '//null
            '//θ ʹȵǴ θ   ϸ ݴϴ.
            Me.lbl_filename.Text = Prj.FileName.Substring(Prj.FileName.LastIndexOf("\") + 1)
        End If
        Return ext
    End Function
    Private Sub Set_Null(ByVal Columns() As String, ByRef dt As DataTable, ByVal val As String)
        For Each Dr As DataRow In dt.Select("code<>'0'", "code")
            For Each Col As String In Columns
                If Dr(Col).ToString.Trim = "" Then '//̾ ⺻(val) 
                    Dr(Col) = val
                End If
            Next
        Next
    End Sub
    Private Function validation() As Boolean
        '// 2̻־Ѵ (ͷؼ ݵ 1 ̴ֱ.)
        '//⺸Ͱճ.;
        Dim NoErr As Boolean = True
        '//ڽ  Ǿմ ȮѴ.  ־Ѵ
        Dim Title As String
        Dim Columns() As String '//()  ʵ 
        Dim ColumnC() As String '//ڵ ʵ
        Dim CGubun() As String '//ڵʵ а 
        Dim Columnst() As String    '//0  ʵ
        '//ZONE
        Title = "Zone"
        Columns = New String() {"ó濭ý", "ɷ", "ġ", _
                                "ָ", "߰", "ܱó", _
                                "ó", "ó", _
                                 "ϻ", "", "ΰ"}
        ColumnC = New String() {"ɷ", "ġ", _
                              "ָ", "߰", "ܱó"} '
        '//ٸ  ߿  ȮϽñ
        CGubun = New String() {"1023", "1022", _
                                "1002", "1002", "1054"}   '//ڵִµ  Ͻñ  ̴ ٷϰ ƾմѴ.
        '//  ڵ а 1009  ̷͵  ־ּ column  8־ cgubun  8 ˴ϴ.
        Columnst = New String() {"", "óóý", "곭", _
                                "", "ù", _
                                 "갡", "óйý", _
                                 "óйý", "ù", ""}
        Set_Null(Columns, DSET1.tbl_zone, "()")   '// ⺻ ִ±̱ µʹ аó
        Set_Null(ColumnC, DSET1.tbl_zone, "()")   '//ڵ尪 ƿ  ⺻ ִ±̱ µʹ аó
        'Set_CheckCommon(ColumnC, DSET.tbl_zone, CGubun)    '//̰Ŵ // ڵ  ˻ϴºκ̿
        Set_Null(Columnst, DSET1.tbl_zone, "0")
        Title = ""
        Columns = New String() {"", "", "¾翭", "", _
                                "ǹ", "¾翭ýǼ", "ũġ", _
                                "¾籤", "¾籤", _
                                "¾籤", "¾籤Ÿ", _
                                "ȯ⼳ġ", "âũġ"}
        Set_Null(Columns, DSET1.tbl_new, "()")
        'Set_Null(Columnst, DSET.tbl_bunbae, "0")
        Title = "йý"
        Columns = New String() {"ⱸ", "ǥġ", "", _
                                "", "ġ", _
                                "ġ", ""}
        Set_Null(Columns, DSET1.tbl_nbunbae, "()")
        'Set_Null(Columnst, DSET.tbl_bunbae, "0")
        Title = ""
        Columns = New String() {"", "뿬", "", "Ϸ", _
                                "", "ܿ", "ũ", _
                                "", "", "", _
                                "йý۹", "ȯ", "", _
                                "Ʈý", "Ῡ"}
        Columnst = New String() {"Ƚý"}
        Set_Null(Columns, DSET1.tbl_nanbangkiki, "()")
        Set_Null(Columnst, DSET1.tbl_nanbangkiki, "0")
        Title = "ù"
        Columns = New String() {"õ", "õ", "õ", _
                                "", "õ⼳ý", _
                                "õ⼳ý", "", _
                                "꿬", "뿬", "߽İǽijð", _
                                "߽ijð", "", "Ῡ"}
        Columnst = New String() {"¼", "Ƚý"}
        Set_Null(Columns, DSET1.tbl_nangbangkiki, "()")
        Set_Null(Columnst, DSET1.tbl_nangbangkiki, "0")
        Title = "Է¸"
        Columns = New String() {"", "ε", _
                                "εġ", "", "ε", _
                                "ε", "ε尢"}
        Columnst = New String() {"з", ""}
        Set_Null(Columns, DSET1.tbl_myoun, "()")
        Set_Null(Columnst, DSET1.tbl_myoun, "0")
        'Title = "ý"
        'Columns = New String() {"ý", "", "ٴڳ濭", _
        '                        "ٴڳ濭", "ٴڳ", "ٴڳ", "Ⳮ"}
        'Columnst = New String() {""}
        'Set_Null(Columns, DSET1.tbl_kongkub, "()")
        'Set_Null(Columnst, DSET1.tbl_kongkub, "0")
        Title = "ó"
        Columns = New String() {"", "ϰȥտ", "", "ܱù", "ȯ"}
        Set_Null(Columns, DSET1.tbl_kongjo, "()")
        'Set_Null(Columnst, DSET.tbl_bunbae, "0")
        Title = "ùйý"
        Columns = New String() {"øŹ", ""}
        Columnst = New String() {"õ"}
        Set_Null(Columns, DSET1.tbl_bunbae, "()")
        Set_Null(Columnst, DSET1.tbl_bunbae, "0")
        '// ȯ
        For Each DR As DS.tbl_kongjoRow In DSET1.tbl_kongjo.Select("code<>'0'")
            DR.ȿ = DR.ȿ.Trim
            'MsgBox(DR. & "==Ȱ : " & DR.ȿ & "  = " & DR.ȿ.Length)
            If DR.ȿ.Trim = "" Then DR.ȿ = "Էġ"
        Next
        'DSET.tbl_kongjo.AcceptChanges()
        DSET1.AcceptChanges()
        '//װ վ?cnrkehlsrp?߰Ȱ?
        For Each Dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0'") '// ˻ (0) 
            'If Dr. = "0" And Dr.ù = "0" Then '//Ѵ 0ϰ
            '//  ⼭ return false ع˴ϴ.'ٸ մٸ.. Ʊó..
            'Return False ó   ó   : :
            'End If
            If Dr.ó = "ó" Then '//
                If Dr. = "0" OrElse Dr.ù = "0" Then
                    MsgBox("Է Ŀ ϴ óⰡ    ֽϴ.")
                    Return False
                End If
            End If
            If Dr.ó = "" OrElse (Dr.ó = "ù" And Dr.ܱó = "") Then '//
                If Dr. = "0" Then
                    MsgBox("Է Ŀ ϴ Ⱑ    ֽϴ.")
                    Return False
                End If
            End If
            If Dr.ó = "ù" OrElse (Dr.ó = "" And Dr.ܱó = "") Then '//
                If Dr.ù = "0" Then
                    MsgBox("Է Ŀ ϴ ùⰡ    ֽϴ.")
                    Return False
                End If
            End If
            If Dr.ó = "ȯ" And Dr.ܱó = "" Then '//
                If Dr. = "0" OrElse Dr.ù = "0" Then
                    MsgBox("Է ܱó  óⰡ    ֽϴ.")
                    Return False
                End If
            End If
        Next
        '// FAlse  ȯع.. Ի ʾƿ Ի Ǵ°̱
        '//Ʊ Ͽ½ÿ ⸦ ȣմϴ.  ٷ κ nul l ⺻ ó.
        Return NoErr
    End Function
    Private Sub RibbonButton17_Click_1(sender As System.Object, e As System.EventArgs) Handles RibbonButton17.Click
     
        '//171001 - ͺ
        For i As Integer = 1 To DSET1.tbl_kongjo.Rows.Count
            Dim  As String = DSET1.tbl_kongjo.Rows(i - 1)("").ToString()
            If  = "" OrElse  = "0" Then
                DSET1.tbl_kongjo.Rows(i - 1)("") = 1
            End If
        Next
        For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Rows
            Dim  As String = dr.Ϸ
            If  = "" OrElse  = "0" Then
                dr.Ϸ = 1
            End If
            '// 濡 Ǹ , ,  +
            Dim 濬 As Boolean = False
            Dim  As Boolean = False
            For Each dr2 As DS.tbl_zoneRow In DSET1.tbl_zone.Rows
                If dr2.곭 <> "0" AndAlso dr2.곭 = dr.code Then
                    濬 = True
                    'Continue For
                End If
                If dr2. <> "0" AndAlso dr2. = dr.code Then
                     = True
                    ' Continue For
                End If
            Next
            If 濬 AndAlso  Then
                dr. = ""
            ElseIf 濬 Then
                dr. = ""
            ElseIf  Then
                dr. = ""
            End If
            If dr. <> "" Then
                dr. = TOSG(dr.) / 1000
            End If
            If dr. = "Ʈ" Then
                dr.Ϸ = dr.Ʈ뷮
                dr.뿬 = dr.Ʈ
                dr.ݺϷCOP = dr.Ʈ7
            ElseIf dr..StartsWith("") Then
                dr.Ϸ = dr.ȯ
                dr.뿬 = ""
            ElseIf dr. = "⺸Ϸ" Then
                dr.뿬 = ""
            End If
        Next
        For Each dr As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code <> '0'")
            Dim  As String = dr.
            If  = "" OrElse  = "0" Then
                dr. = 1
            End If
            dr. = TOSG(dr.)
            If dr.õ = "" Then
                dr.뿬 = ""
            ElseIf dr.õ = "" Then
                If dr.꿬 = "ȭ" Then
                    '//ʿ
                ElseIf dr.꿬 = "ܺο" Then
                    '//ᵷڷãƼ  ´.
                    For Each dr3 As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Rows
                        If dr3.code = dr.¼ Then
                            dr.뿬 = dr3.뿬
                        End If
                    Next
                End If
            ElseIf dr.õ = "(LNG)" Then
                dr.뿬 = "õ"
            ElseIf dr.õ = "ù" Then
                dr.뿬 = "ù"
            End If
            dr.ð = 0
            dr.ü = 0
            '//ü(ùй迡 ã´)
            For Each dr4 As DS.tbl_bunbaeRow In DSET1.tbl_bunbae.Select("code <> '0'")
                If dr.code = dr4.õ Then
                    If dr4..LastIndexOf("ð") > 0 Then
                        dr.ð = TOSG(dr4.) / 1000
                    Else
                        dr.ü = TOSG(dr4.) / 1000
                    End If
                End If
            Next
            If dr.õ = "dzý" Then
                dr.õ = "Ʈ"
            End If
            If dr.ð = "" Then
                dr.ð = "0"
            End If
            If dr.ü = "" Then
                dr.ü = "0"
            End If
            '//ðž
            If dr.߽İǽijð = "߽" Then
                If dr.߽ijð = "" Then
                    dr.߽İǽijð = "߽()"
                ElseIf dr.߽ijð = "" Then
                    dr.߽İǽijð = "߽()"
                End If
            End If
        Next
        For Each dr As DS.tbl_kongjoRow In DSET1.tbl_kongjo.Select("code <> '0'")
            If dr.ȸ <> "" AndAlso dr.ȸ <> "0" Then
                dr.ȸ = TOSG(dr.ȸ) * 100
            End If
            dr.ȸ_ù = TOSG(dr.ȸ_ù) * 100
            If dr.ġ = "20" AndAlso dr.ġù = "26" Then
                dr. = "ȯ"
            End If
        Next
        '//߰
        DSET1.tbl_light.Rows.Clear()
        For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0'")
            Dim newdr As DS.tbl_lightRow = DSET1.tbl_light.Newtbl_lightRow
            newdr.code = (DSET1.tbl_light.Rows.Count + 1).ToString("00000")
            newdr. = dr.
            newdr. = TOSG(dr.ԷǼ)
            newdr. = TOSG(dr.) * TOSG(dr.Էġ)
            newdr. = ""
            DSET1.tbl_light.Addtbl_lightRow(newdr)
        Next
        DSET1.tbl_light.AcceptChanges()
        '//dzܸ߰
        'DSET1.tbl_danmal.Rows.Clear()
        'For Each dr As DS.tbl_kongkubRow In DSET1.tbl_kongkub.Select("code <> '0'")
        '    Dim newdr As DS.tbl_danmalRow = DSET1.tbl_danmal.Newtbl_danmalRow
        '    newdr. = dr.
        '    newdr. = TOSG(dr.Ҽdz)
        '    newdr. = "0"
        '    newdr.뷮 = "0"
        '    newdr.ҵ = TOSG(dr.Ҽdz)
        '    DSET1.tbl_danmal.Addtbl_danmalRow(newdr)
        'Next
        'DSET1.tbl_danmal.AcceptChanges()
        '//߰
        DSET1.tbl_new_energy.Clear()
        DSET1.tbl_new_light.Clear()
        DSET1.tbl_new_ground.Clear()
        DSET1.tbl_new_.Clear()
        '//
        'DSET1.tbl_common_od.Clear()
        'DSET1.tbl_common_od.Merge(DSET1.tbl_common)
        Dim drDesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
        drDesc.buildm21 = "0"
        drDesc. = ""
        drDesc.buildarea = "010000"
        Dim  As Double = 0
        Dim õ As Double = 0
        For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0' and code <>'()'")
             += TOSG(dr.)
            õ += TOSG(dr.õp) * TOSG(dr.)
        Next
        drDesc.õ = (õ / ).ToString("N2")
        '//Է¸
        For Each dr As DS.tbl_myounRow In DSET1.tbl_myoun.Select("code <> '0'")
            If dr.2 <> "" Then
                Dim dryk() As DS.tbl_ykRow = DSET1.tbl_yk.Select("code = '" + dr.2 + "'")
                If dryk.Length = 1 Then
                    dr. = TOSG(dryk(0).)
                End If
            End If
        Next
        For Each dr As DS.tbl_newRow In DSET1.tbl_new.Select("code <> '0'")
            If dr. = "¾籤" Then
                Dim newdr1 As DS.tbl_new_lightRow = DSET1.tbl_new_light.Newtbl_new_lightRow
                newdr1.code = dr.code
                newdr1. = dr.
                newdr1.¾籤 = dr.¾籤
                newdr1.¾籤 = dr.¾籤
                newdr1.¾籤 = dr.¾籤
                newdr1.¾籤Ÿ = dr.¾籤Ÿ
                newdr1.¾籤 = dr.¾籤.Replace(" ", "")
                newdr1.¾籤ȿ = TOSG(dr.¾籤ȿ) * 100
                newdr1.¾籤뷮 = dr.¾籤뷮
                DSET1.tbl_new_light.Addtbl_new_lightRow(newdr1)
            ElseIf dr. = "¾翭" Then
                Dim newdr1 As DS.tbl_new_energyRow = DSET1.tbl_new_energy.Newtbl_new_energyRow
                newdr1.code = dr.code
                newdr1. = dr.
                newdr1.¾翭 = dr.¾翭
                newdr1.¾翭ýǼ = dr.¾翭ýǼ
                newdr1. = dr.
                newdr1.Ǹ = dr.Ǹ
                newdr1.ǹ = dr.ǹ
                newdr1.ȿ = dr.ȿ
                newdr1.ֶ = dr.ֶ
                newdr1.ũü = dr.ũü
                newdr1.ũü = dr.ũü
                newdr1.ũġ = dr.ũġ
                DSET1.tbl_new_energy.Addtbl_new_energyRow(newdr1)
            ElseIf dr. = "" Then
                Dim newdr1 As DS.tbl_new_Row = DSET1.tbl_new_.Newtbl_new_Row
                newdr1.code = dr.code
                newdr1. = dr.
                newdr1.ճó汸 = dr.ճó汸
                newdr1.ɷ = dr.ɷ
                newdr1.ȿ = dr.ȿ
                newdr1.ȿ = dr.ȿ
                newdr1.ս = dr.ս
                '// ü , ù Ǿ üũѴ.
                Dim  As Boolean = False
                Dim ù As Boolean = False
                For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code<>'0'")
                    If dr.Ƚý = dr.code Then
                         = True
                        Exit For
                    End If
                Next
                For Each drù As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code<>'0'")
                    If drù.Ƚý = dr.code Then
                        ù = True
                        Exit For
                    End If
                Next
                If  AndAlso ù Then
                    newdr1.ճó汸 = "ó"
                ElseIf  Then
                    newdr1.ճó汸 = ""
                ElseIf ù Then
                    newdr1.ճó汸 = "ù"
                End If
                DSET1.tbl_new_.Addtbl_new_Row(newdr1)
            ElseIf dr. = "" Then
                Dim newdr1 As DS.tbl_new_groundRow = DSET1.tbl_new_ground.Newtbl_new_groundRow
                newdr1.code = dr.code
                newdr1. = dr.
                newdr1.ó汸 = dr.ó汸
                newdr1.Ʈ뷮 = dr.Ʈ뷮
                newdr1. = dr.
                newdr1.ɺ = dr.ɺ
                newdr1.ɺù = dr.ɺù
                newdr1.뷮1 = dr.뷮1
                '// ü , ù Ǿ üũѴ.
                Dim  As Boolean = False
                Dim ù As Boolean = False
                For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code<>'0'")
                    If dr.Ƚý = dr.code Then
                         = True
                        Exit For
                    End If
                Next
                For Each drù As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code<>'0'")
                    If drù.Ƚý = dr.code Then
                        ù = True
                        Exit For
                    End If
                Next
                If  AndAlso ù Then
                    newdr1.ó汸 = "ó"
                ElseIf  Then
                    newdr1.ó汸 = ""
                ElseIf ù Then
                    newdr1.ó汸 = "ù"
                End If
                DSET1.tbl_new_ground.Addtbl_new_groundRow(newdr1)
            End If
        Next
        '//ٽñ
        DSET1.tbl_new.Clear()
        '//⺻  ϳ ߰ش.
        DSET1.tbl_new.Rows.Add(New String() {"0", "()"})
        DSET1.tbl_new.AcceptChanges()
        '// 
        For Each dr As DS.tbl_new_energyRow In DSET1.tbl_new_energy.Rows
            Dim newdr As DS.tbl_newRow = DSET1.tbl_new.NewRow
            For Each c As DataColumn In DSET1.tbl_new_energy.Columns
                newdr(c.ColumnName) = dr(c.ColumnName)
            Next
            newdr. = "¾翭"
            newdr.ó汸 = newdr.¾翭
            DSET1.tbl_new.Rows.Add(newdr)
        Next
        For Each dr As DS.tbl_new_groundRow In DSET1.tbl_new_ground.Rows
            Dim newdr As DS.tbl_newRow = DSET1.tbl_new.NewRow
            For Each c As DataColumn In DSET1.tbl_new_ground.Columns
                newdr(c.ColumnName) = dr(c.ColumnName)
            Next
            newdr. = ""
            DSET1.tbl_new.Rows.Add(newdr)
        Next
        For Each dr As DS.tbl_new_lightRow In DSET1.tbl_new_light.Rows
            Dim newdr As DS.tbl_newRow = DSET1.tbl_new.NewRow
            For Each c As DataColumn In DSET1.tbl_new_light.Columns
                newdr(c.ColumnName) = dr(c.ColumnName)
            Next
            newdr. = "¾籤"
            DSET1.tbl_new.Rows.Add(newdr)
        Next
        For Each dr As DS.tbl_new_Row In DSET1.tbl_new_.Rows
            Dim newdr As DS.tbl_newRow = DSET1.tbl_new.NewRow
            For Each c As DataColumn In DSET1.tbl_new_.Columns
                newdr(c.ColumnName) = dr(c.ColumnName)
            Next
            newdr. = ""
            DSET1.tbl_new.Rows.Add(newdr)
        Next
        DSET1.tbl_new.AcceptChanges()
    End Sub
    Private Sub RibbonButton22_Click_1(sender As System.Object, e As System.EventArgs) Handles RibbonButton22.Click
        Dim fd As New FolderBrowserDialog
        If fd.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
        Dim filecnt As Integer = 0
        For Each file As String In System.IO.Directory.GetFiles(fd.SelectedPath, "*.tpl")
            Dim ext As String = Open_TPL(file)
            
            Dim fi As New System.IO.FileInfo(file)
            Dim newfil As String = fi.Directory.FullName + "\" + fi.Name.Replace(fi.Extension, "." + ext)
            Me.Func_Save_OD(newfil, False)
            filecnt += 1
        Next
        MsgBox(filecnt.ToString() + " File")
    End Sub
    Private Sub RibbonButton23_Click_1(sender As System.Object, e As System.EventArgs) Handles RibbonButton23.Click
    End Sub
    Private Sub ExportCSV()
        Return
        '//̺Ͽ  
        If Prj.Opened = False Then
            MsgBox("No File")
            Return
        End If
        If MsgBox("Export CSV?", MsgBoxStyle.YesNo, "Save") <> MsgBoxResult.Yes Then Return
        Dim fi As New System.IO.FileInfo(Prj.FileName)
        Dim path As String = fi.Directory.FullName + "\" + fi.Name.Replace(fi.Extension, "")
        If System.IO.Directory.Exists(path) = False Then System.IO.Directory.CreateDirectory(path)
        For i As Integer = 1 To DSET1.Tables.Count
            Dim dt As System.Data.DataTable = DSET1.Tables(i - 1)
            Dim file As String = path + "\" + dt.TableName + ".csv"
            Dim sb As New System.Text.StringBuilder
            For Each col As System.Data.DataColumn In dt.Columns
                sb.Append("," + col.ColumnName)
            Next
            sb.AppendLine()
            For j As Integer = 1 To dt.Rows.Count
                Dim sb2 As New System.Text.StringBuilder
                For k As Integer = 1 To dt.Columns.Count
                    Dim val As String = dt.Rows(j - 1)(k - 1).ToString()
                    If dt.Columns(k - 1).ColumnName.ToLower() = "code" AndAlso val = "0" Then
                        sb2.Clear()
                        Exit For
                    Else
                        sb2.Append("," + val.Replace(",", "_"))
                    End If
                Next
                If sb2.Length > 0 Then sb.AppendLine(sb2.ToString())
            Next
            System.IO.File.WriteAllText(file, sb.ToString(), System.Text.Encoding.UTF8)
        Next
        MsgBox("ok")
        Shell("explorer " + path, AppWinStyle.NormalFocus)
    End Sub
End Class