'********************************************************************************
'*      内容        ：      ITFﾊﾞｰｺｰﾄﾞ入力 関数	[50桁]							*
'*      記述        ：      fnbarread$(bar$,moji$)								*
'*      引数        ：      bar$	ﾊﾞｰｺｰﾄﾞの種類								*
'*									EAN-13（JAN-13）, UPC-A			A			*
'*									EAN-8（JAN-8）                  B			*
'*									UPC-E                           C			*
'*									ITF（インタリーブド2 of 5）     I			*
'*									STF（スタンダード2 of 5）       H			*
'*									Codabar（NW-7）                 N			*
'*									Code 39                         M			*
'*									Code 93                         L			*
'*									Code 128                        K			*
'*									EAN-128                         W			*
'*							moji$	ｽｷｬﾝしなかったときなどの前回表示文字列		*
'*      戻り値      ：      入力された文字列                                    *
'*      作成日      ：      2007.02.21                                          *
'********************************************************************************
    def fnbarread$(bar$ , moji$)[50]
        inpflg9 = off9
        tate9 = csrlin : yoko9 = pos(0)                                 '現在位置取得
        locate , , 2 : cursor on                                        'ﾌﾞﾛｯｸｶｰｿﾙにして表示する
        rt$ = ""                                                        '文字列初期化

		open "BAR:" as #bardev9 code bar$		                        'ﾊﾞｰｺｰﾄﾞ読込設定
        wait 0, 3                                                       '入力を待つ
        if wkeyflg$ <> "" then                                          'ｷｰﾄﾗｯﾌﾟされたなら終了
	        close #bardev9 : fnbarread$ = moji$ : exit def
        endif

        kb$ = inkey$                                                    '1文字ｷｰget

        if kb$ <> "" then                                               'ﾎﾞﾀﾝが空でない限りﾙｰﾌﾟ
	        close #bardev9 : fnbarread$ = moji$ : exit def
        endif

		if loc(#bardev9) then                                           'ﾊﾞｰｺｰﾄﾞﾃﾞｰﾀがあるならば
            beep                                                        '読み取り完了ﾌﾞｻﾞｰ
            rt$ = input$(val(mid$(mark$,2,2)), #bardev9)  		        '戻り値に設定
            fnbarread$ = fndelsp$(rt$)                              	'ﾃﾞｰﾀを戻り値に
            close #bardev9                                          	'ﾃﾞﾊﾞｲｽｸﾛｰｽﾞ
            exit def                                                	'関数定義終了
		endif

		'ｴﾗｰ
        fnbarread$ = ""													'ﾃﾞｰﾀを戻り値に
        close #bardev9													'ﾃﾞﾊﾞｲｽｸﾛｰｽﾞ
        exit def														'関数定義終了

    end def

'ILS-ADD Start 北九州共和個別カスタマイズ 導入
'********************************************************************************
'*      内容        ：      ﾊﾞｰｺｰﾄﾞ入力 関数                                    *
'*      記述        ：      fnbarget$(kosu9 , moji$)                            *
'*      引数        ：      kosu9               文字数                          *
'*                  ：      moji$               初期文字列                      *
'*      戻り値      ：      入力された文字列                                    *
'*      作成日      ：      1997.07.25                                          *
'*      修正日      ：      1997.08.07(T.S)                                     *
'********************************************************************************
    def fnbarget$(kosu9 , moji$)[13]
        inpflg9 = off9
        tate9 = csrlin : yoko9 = pos(0)                                         '現在位置取得
        locate ,,2 : cursor on                                                  'ｶｰｿﾙをﾌﾞﾛｯｸ表示
        rt$ = ""                                                                '文字列初期化
        while 1
            open "BAR:" as #bardev9 code bartype$,bartype2$                     'ﾊﾞｰｺｰﾄﾞ読込設定
            wait 0 , 3                                                          '入力を待つ
            if wkeyflg$ <> "" then                                              'ｷｰﾄﾗｯﾌﾟされたなら終了
                close #bardev9 : fnbarget$ = moji$ : exit def
            endif
            if loc(#bardev9) then                                               'ﾊﾞｰｺｰﾄﾞﾃﾞｰﾀがあるならば
                beep                                                            '読み取り完了ﾌﾞｻﾞｰ
                rt$ = input$(val(mid$(mark$,2,2)) , #bardev9)                   'kosu9個読み込む
                if mid$(mark$,1,1) = "I" then
                    rt$ = fndelsp$(mid$(rt$ , 1 , 16))
                    rt$ = mid$(rt$,4,val(mid$(mark$,2,2))-3)
                    rt$ = mid$(rt$,1,len(rt$)-1) + chkdgt$(rt$,"A")
                end if
                fnbarget$ = fndelsp$(rt$)                                       'ﾃﾞｰﾀを戻り値に
                close #bardev9                                                  'ｸﾛｰｽﾞする
                exit def                                                        '関数定義終了
            else
                close #bardev9                                                  'ｸﾛｰｽﾞする
                locate ,,2 : cursor on                                          'ｶｰｿﾙをﾌﾞﾛｯｸ表示
                rt$ = ""                                                        '文字列初期化
                loop9 = on9
                while loop9
                    wait 0 , 3                                                  '入力を待つ
                    if wkeyflg$ <> "" then                                      'ｷｰﾄﾗｯﾌﾟされたなら終了
                        fnbarget$ = moji$ : exit def
                    endif
                    kb$ = inkey$                                                '1文字ｷｰをgetする。
                    while kb$ <> ""                                             'ﾎﾞﾀﾝが空でない限りﾙｰﾌﾟ
                        select kb$
                            case ent$                                           'ENTｷｰの処理
                                if rt$ = "" and inpflg9 = off9 then
                                    print moji$; : fnbarget$ = moji$
                                else
                                    for i = len(rt$) to kosu9 - 1 : print " "; : next
                                    fnbarget$ = rt$
                                endif
                                exit def
                            case chr$(8)                                        'BSｷｰの処理
                                if len(rt$) then
                                    print chr$(8);
                                    rt$ = left$(rt$ , len(rt$) - 1)
                                endif
                                inpflg9 = on9
                            case chr$(24)                                       'Cｷｰの処理
                                locate yoko9 , tate9
                                for i = 1 to kosu9 : print " "; : next
                                rt$ = "" : loop9 = off9
                                locate yoko9 , tate9
                                inpflg9 = on9
                            case else
                                if len(rt$) < kosu9 then
                                    a$ = fnnumeric$(kb$)
                                    if a$ = ok$ then                            'OKの時のみ動作する。
                                        inpflg9 = on9
                                        rt$ = rt$ + kb$
                                        print kb$;
                                    else
                                        beep                                    '入力ｴﾗｰ
                                    endif
                                else
                                    beep                                        '文字数ｵｰﾊﾞｰｴﾗｰ
                                endif
                        end select
                        if rt$ = "" then kb$ = "" else kb$ = inkey$ endif
                    wend
                wend
            endif
        wend
    end def

'********************************************************************************
'*      内容        ：      JANﾁｪｯｸ 関数                                        *
'*      記述        ：      fnjanchk$(jan$ , kubun$)                            *
'*      引数        ：      jan$                ﾁｪｯｸするJANｺｰﾄﾞ                 *
'*      戻り値      ：      FAIL OR SUCCESS                                     *
'*      作成日      ：      1997.12.15                                          *
'*      修正日      ：      1998.05.14                                          *
'********************************************************************************
    def fnjanchk$(jan$)[13]
        open shomst$ as #shomst9 record 20000                                   'ﾚｺｰﾄﾞ数20000
        field #shomst9 , 13 as shojan$
        if lof(#shomst9) = 0 then                                               '商品ﾏｽﾀ無しの時
            beep                                                                'ｴﾗｰ
            cls
            print "商品ﾏｽﾀ 　　　　"
            print "　　存在しません"
            print "商品ﾏｽﾀ 　　　　"
            print "受信して下さい　";
            wait 0 , 3 : a$ = inkey$
            close #shomst9 
            fnjanchk$ = shoerr$
            exit def
        endif
        c9 = search(#shomst9 , shojan$ , jan$)
        if c9 <> 0 then
            get #shomst9 , c9
        endif
        close # shomst9                                                         '商品ﾏｽﾀのｸﾛｰｽﾞ
        if c9 =  0 then fnjanchk$ = fail$ : exit def endif
        if c9 <> 0 then fnjanchk$ = ok$   : exit def endif
    end def

'ILS-ADD End 北九州共和個別カスタマイズ 導入
