Module MainModule

    ' フラグ
    Public errFlag As Boolean = False

    ' フォーム・インスタンス
    Public f0 As New frm5000

    ' プロジェクト・メイン
    Sub Main()
        Dim rtn As Integer
        Dim f5 As frm5005
        Dim f10 As frm5010
        Dim f15 As frm5015

        gintStatus = LOCA_STATUS.TITLE
        gstrctKDHT.initialize()
        gstrctS5000.initialize()
        gstrctKDHT.strPrgID = G_CONST_PGID_5000

        ' コントロール・初期処理
        f0.WarpCtrl1.Init()

        ' バーコード・リーダー等の初期設定を記述します。
        f0.WarpHWBcr1.Setup()

        'INI取得処理
        If Not sGetIni() Then
            sErrLog(gAppName, "Main", "No ini file")
            f0.WarpCtrl1.Term()
            Exit Sub
        End If

        'DBOpenチェック
        If Not sDBInit() Then
            sErrLog(gAppName, "Main", "Cannot get connected to DB")
            f0.WarpCtrl1.Term()
            sFdEnd()
            Exit Sub
        End If
        Try

            Do While (True)

                Select Case gintStatus
                    Case LOCA_STATUS.TITLE
                        f0.Show()

                    Case LOCA_STATUS.NAME
                        ' フォーム作成
                        f5 = New frm5005

                        ' フォーム・ロード
                        f5.Show()
                        f5.Dispose()

                    Case LOCA_STATUS.LOCATION
                        ' フォーム作成
                        f10 = New frm5010

                        ' フォーム・ロード
                        f10.Show()
                        f10.Dispose()

                    Case LOCA_STATUS.SHOW
                        ' フォーム作成
                        f15 = New frm5015

                        ' フォーム・ロード
                        f15.Show()
                        f15.Dispose()

                    Case LOCA_STATUS.QUIT
                        Exit Do

                End Select


            Loop


            ' フレームのクローズ
            f0.WarpFrame1.Close()

            f0.WarpCtrl1.Term()

            ' フォーム・クローズ
            f0.Close()

            f0.Dispose()
        Catch ex As Exception
            sErrLog(gAppName, "Main", ex.ToString)

        End Try





    End Sub

    '/*
    '|| 関数名：sGetIni
    '|| 概要  ：INI取得処理
    '*/
    Private Function sGetIni() As Boolean
        Dim wstrIniName As String

        sGetIni = False

        'PICS.INI, PICSPARAM.INI ﾌｧｲﾙ読み込み
        If fGetIniData(fGetPrgID, wstrIniName) = False Then
            ' 
#If Not Debug Then
            fFnc_WrpMsg("E", G_CONST_MID_E0010, "081")
#End If
            Exit Function
        End If

        sGetIni = True

    End Function

    '/*
    '|| 関数名：sDBInit
    '|| 概要  ：DBオープン処理
    '*/
    Private Function sDBInit() As Boolean

        sDBInit = False
        gAppName = fGetAppName()

        'PICS
        If Not fOpenDB(gstrctPicsIni.strMain_PICS2004) Then Exit Function

        sDBInit = True

    End Function

    '/*
    '|| 関数名：sFdEnd
    '|| 概要  ：終了処理
    '*/
    Private Sub sFdEnd()

        Dim rtn As Integer

        Try

            If Not IsNothing(gclsDB) Then
                gclsDB = Nothing       'Perbasive接続用のインスタンス破棄
            End If

            'gobjMutex.Close()

            Application.Exit()

            Exit Sub

        Catch ex As Exception
            sErrLog(gAppName, "sFdEnd", ex.ToString)
        End Try

    End Sub
End Module
