Module Module1

    ' フラグ
    Public errFlag As Boolean = False

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

    ' プロジェクト・メイン
    Sub Main()

        Dim WKey As Short
        Dim buf As String
        Dim wstrFile As String
        Dim rtn As Integer
        ' Dim f0 As New frm7000
        Dim f5 As frm7005
        Dim f13 As frm7013
        Dim f14 As frm7014
        Dim f15 As frm7015
        Dim f25 As frm7025
        Dim f27 As frm7027
        Dim f50 As frm7050
        Dim fE45 As frm7E45
        Dim fE50 As frm7E50
        Dim fE55 As frm7E55
        Dim fE65 As frm7E65
        Dim fE75 As frm7E75
        Dim fE80 As frm7E80

        gintStatus = OTR_STATUS.TITLE

        gstrctKDHT.initialize()
        gstrctKDHT.strPrgID = G_CONST_PGID_7000

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

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

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

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

        Try

            ' メインループ
            Do While (True)

                Select Case gintStatus

                    'Case ALL_STATUS.TITLE
                Case OTR_STATUS.TITLE
                        ' フォーム・ロード
                        f0.Show()


                        'Case ALL_STATUS.NAME
                    Case OTR_STATUS.NAME

                        ' フォーム作成
                        f5 = New frm7005

                        ' フォーム・ロード
                        f5.Show()
                        f5.Dispose()
                    Case OTR_STATUS.CLSCAN
                        ' フォーム作成
                        f13 = New frm7013

                        ' フォーム作成
                        f13.Show()
                        f13.Dispose()

                        'Case ALL_STATUS.SECTION
                    Case OTR_STATUS.CLABEL
                        ' フォーム作成
                        f14 = New frm7014

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

                        'Case ALL_STATUS.PART

                    Case OTR_STATUS.HEADER
                        'Case ALL_STATUS.DONE
                        ' フォーム作成
                        f15 = New frm7015

                        ' フォーム・ロード
                        f15.Show()
                        f15.Dispose()
                    Case OTR_STATUS.PART
                        ' フォーム作成
                        f25 = New frm7025

                        ' フォーム・ロード
                        f25.Show()
                        f25.Dispose()
                    Case OTR_STATUS.GHSCAN
                        ' フォーム作成
                        f27 = New frm7027

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

                    Case OTR_STATUS.PRINT
                        ' フォーム作成
                        f50 = New frm7050

                        ' フォーム・ロード
                        f50.Show()
                        f50.Dispose()
                    Case OTR_STATUS.ALLCANCEL
                        ' フォーム作成
                        fE55 = New frm7E55

                        ' フォーム・ロード
                        fE55.Show()
                        fE55.Dispose()
                    Case OTR_STATUS.ZEROOK
                        ' フォーム作成
                        fE65 = New frm7E65

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

                    Case OTR_STATUS.SEARCH
                        ' フォーム作成
                        fE45 = New frm7E45

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

                    Case OTR_STATUS.NOTPACK
                        ' フォーム作成
                        fE50 = New frm7E50

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

                    Case OTR_STATUS.NOTFOUND
                        ' フォーム作成
                        fE75 = New frm7E75

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

                    Case OTR_STATUS.PRINT2
                        ' フォーム作成
                        fE80 = New frm7E80

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

                    Case OTR_STATUS.QUIT
                        Exit Do

                End Select

            Loop

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

            f0.WarpCtrl1.Term()

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

            f0.Dispose()

            ' アプリケーションの終了
            sFdEnd()

            Exit Sub

        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
