'*******************************************************************************
'* 作成者   : 株式会社エコー・システム 
'* 作成日   : 2005/11/30
'* 概要     : PICS2004 パレタイズ処理
'* 更新履歴 : 
'* ﾊﾞｰｼﾞｮﾝ  : 1.0
'*******************************************************************************
Imports System
Imports System.Linq
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports System.Runtime.InteropServices
Imports BTClientLib
Imports System.IO
Imports System.Reflection

Module MainModule
    ' フォーム・インスタンス
    Public f0 As New frm1000
    Public strIP As String
    Public intPort As Integer
    Public strDatabase As String
    Public dbClient As BtrieveDbClient
    Public PIC_DIR As String = "\FlashDisk\BT_FILES\drv1\LAT\pic\"
    Public LOG_DIR As String = "\FlashDisk\BT_FILES\drv1\LAT\log\"

    ' プロジェクト・メイン
    Sub Main()
        Dim WKey As Short
        Dim buf As String
        Dim wstrFile As String
        Dim rtn As Integer
        Dim f5 As frm1005
        Dim f10 As frm1010
        Dim f13 As frm1013
        Dim f15 As frm1015
        Dim f17 As frm1017
        Dim f25 As frm1025
        Dim f30 As frm1030
        Dim fE30 As frm1E30
        Dim f40 As frm1040
        Dim f45 As frm1045
        Dim f50 As frm1050
        Dim f70 As frm1070
        Dim fE35 As frm1E35
        Dim fE50 As frm1E50
        Dim fE70 As frm1E70
        Dim fE80 As frm1E80

        gintStatus = PL_STATUS.TITLE
        gstrctKDHT.initialize()
        gstrctKDHT.strPrgID = G_CONST_PGID_1000

        Dim fileloc As String = "Setting.ini"

        Dim appPath As String = fgetAppPath() ' Assuming fgetAppPath() retrieves the application directory
        Dim filePath As String = Path.Combine(appPath, fileloc)

        Dim i As Integer = 0
        'Dim strIP As String = "192.168.1.1"
        'Dim intPort As Integer = 11433
        'Dim strDatabase As String = "demodata"

        strIP = "192.168.1.1"
        intPort = 11433
        strDatabase = "demodata"

        If File.Exists(filePath) Then

            Dim sr As StreamReader = New StreamReader(filePath)
            Dim s As String = sr.ReadToEnd()
            Dim words As String() = s.Split(New Char() {","c})

            Dim word As String

            For Each word In words

                If i = 0 Then
                    strIP = word
                ElseIf i = 1 Then

                    If IsNumeric(word) Then
                        intPort = Convert.ToInt32(word)
                    End If

                ElseIf i = 2 Then
                    strDatabase = word
                End If

                i = i + 1

            Next

        End If

        dbClient = New BtrieveDbClient(strIP, intPort, strDatabase)

        ' コントロール・初期処理
        '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 PL_STATUS.TITLE
                        ' フォーム・ロード
                        'f0.Show()
                        f0.ShowDialog()

                    Case PL_STATUS.NAME
                        ' フォーム作成
                        f5 = New frm1005

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

                    Case PL_STATUS.SECTION
                        ' フォーム作成
                        f10 = New frm1010

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

                    Case PL_STATUS.IPADDRS
                        ' フォーム作成
                        f13 = New frm1013

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

                    Case PL_STATUS.PALETTESCN
                        ' フォーム作成
                        f15 = New frm1015

                        ' フォーム・ロード
                        'f15.Show()
                        f15.ShowDialog()
                        f15.Dispose()
                    Case PL_STATUS.ENTKEY
                        ' フォーム作成
                        f17 = New frm1017

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

                    Case PL_STATUS.CHKBGN
                        ' フォーム作成
                        f25 = New frm1025

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

                    Case PL_STATUS.PCSCAN
                        ' フォーム作成
                        f30 = New frm1030

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

                    Case PL_STATUS.SUSPEND
                        ' フォーム作成
                        fE30 = New frm1E30

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

                    Case PL_STATUS.SHOWLIST
                        'フォーム作成
                        f40 = New frm1040

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

                    Case PL_STATUS.RDYPRINT
                        'フォーム作成
                        f45 = New frm1045

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

                    Case PL_STATUS.PRINT
                        'フォーム作成
                        f50 = New frm1050

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

                    Case PL_STATUS.FINALCHK
                        'フォーム作成
                        f70 = New frm1070

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

                    Case PL_STATUS.NOTPACK
                        'フォーム作成
                        fE35 = New frm1E35
                        ' フォーム・ロード
                        'fE35.Show()
                        fE35.ShowDialog()
                        fE35.Dispose()

                    Case PL_STATUS.SUSPEND2
                        'フォーム作成
                        fE70 = New frm1E70
                        ' フォーム・ロード
                        'fE70.Show()
                        fE70.ShowDialog()
                        fE70.Dispose()

                    Case PL_STATUS.PRINT2
                        'フォーム作成
                        fE50 = New frm1E50
                        ' フォーム・ロード
                        'fE50.Show()
                        fE50.ShowDialog()
                        fE50.Dispose()

                    Case PL_STATUS.CANCEL
                        'フォーム作成
                        fE80 = New frm1E80
                        ' フォーム・ロード
                        'fE80.Show()
                        fE80.ShowDialog()
                        fE80.Dispose()

                    Case PL_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

        '>>> ADD 2006.03.10 ST >>>
        fGetCreateAPFlag()
        '<<< ADD 2006.03.10 END <<<

        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()

        Try

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


            Application.Exit()

            Exit Sub

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

    End Sub


End Module
