'このVBScriptについて: '【使用方法】 '商品項目に「マクロファイル名」が指定されている時、以下のタイミングで呼び出されます。 '@メイン画面で、バーコードをスキャン、もしくは、ショートカットキーを押して、 '通常の販売時にデータベースから商品情報を読み込んだ後。 'Aメイン画面の販売時に、すべての商品を入力し、確定の為に「Enter」ボタンを押して '全商品の合計額を表示する前。 '例えば、セールなどで、期間中特価を設定したい場合に使用して下さい。 '(動作順序) '「メイン画面販売商品読み込み」→「合計額の計算処理開始」→「データベースの商品情報取得」→「マクロファイル名登録確認」→ '「マクロファイル呼び出し」→「販売価格設定」→「メイン画面商品合計額表示」 'Bメイン画面で、一時保持業務(初期設定名は、「予約、注文」)時のデータベース情報を販売時に読み込む時。 '一時保持業務を受けた時間から精算時までの時間等により販売価格が決定される商品等に活用して下さい。 '例えば、入館時に一時間500円の入館料を受け取り、精算時に入館時の時刻によって、 '一時間200円の延長料金を自動精算したい場合などが、これに当たります。 '(動作順序) '「メイン画面販売」→「顧客カードIDスキャン」→「一時保持業務の確認」→「一時保持業務内容の読み込み」→ '「マクロファイル名登録確認」→「マクロファイル呼び出し」→「販売価格設定」→「メイン画面商品情報表示」 '【注意事項】 'JScriptへの対応は、このファイルを参考に新たに製作して下さい。定数名、及び、関数名は、同じものを使用して下さい。 'ファイルは、必ず、Nyushukkaフォルダ内のMacroフォルダに置いて下さい。 '【定数】 'このスクリプト全体で利用可能な定数 '(Nyushukkaから渡される値。値の代入は不可。) '定数名:lShouhinnID '説明:商品ID '定数名:strShouhinnmei '説明:商品名(商品リスト内登録値) '定数名:strHannbaikakaku '説明:'販売価格(商品リスト内登録値) '定数名:strShiirekakaku '説明:仕入価格(商品リスト内登録値) '定数名:strHannbaisuu '説明:販売数(一時保持業務時) '定数名:strIchijiHojiGyoumuDateTime '説明:一時保持業務時刻(YYYYMMDDHHMMSS形式) '定数名:lKokyakuID '説明:顧客ID '定数名:strKokyakuBunnrui '説明:顧客分類 '【関数】 'Nyushukkaから呼び出される関数 '関数名:OnLoadShouhinnmeiByScan() '戻り値:商品名。 '上記使用方法@の場合に呼び出されます '関数名:OnLoadHannbaikakakuByScan() '戻り値:販売価格。処理をスキップする場合、0(ゼロ)未満を設定して下さい。【倍精度浮動小数点数】 '上記使用方法@の場合に呼び出されます '関数名:OnLoadShouhinnmeiBeforeCheckout() '戻り値:商品名。 '上記使用方法Aの場合に呼び出されます '関数名:OnLoadHannbaikakakuBeforeCheckout() '戻り値:販売価格。処理をスキップする場合、0(ゼロ)未満を設定して下さい。【倍精度浮動小数点数】 '※戻り値にデータベース値を設定すると、メイン画面上で行った価格変更は無視されます。 '上記使用方法Aの場合に呼び出されます。 '関数名:OnLoadShouhinnmeiByIchijihojigyoumu() '戻り値:商品名。 '上記使用方法Bの場合に呼び出されます '関数名:OnLoadHannbaikakakuByIchijihojigyoumu() '戻り値:販売価格。処理をスキップする場合、0(ゼロ)未満を設定して下さい。【倍精度浮動小数点数】 '上記使用方法Bの場合に呼び出されます '関数名:OnShouhinnJyouhouButton() '戻り値:情報変更等、以後の処理を実行する場合、1。実行しない場合、0(ゼロ) '説明:メイン画面の「商品情報」ボタンを押した時に呼び出されます '【スクリプト本体】 Function OnLoadShouhinnmeiByScan() 'TODO: コードをここに記述してください If OnSale() = True Then OnLoadShouhinnmeiByScan = strShouhinnmei + "(セール特価)" '商品名の変更 Else OnLoadShouhinnmeiByScan = strShouhinnmei'データベース登録値を答えとする End If End Function Function OnLoadHannbaikakakuByScan() 'TODO: コードをここに記述してください If OnSale() = True Then Dim bAns bAns = MsgBox("お一人様1ケースのみの商品です。セール価格を適用しますか?",vbOKCancel) If bAns = vbOK Then If Weekday(Now()) = 5 Then '例えば、木曜日のみ、さらに特売価格にする場合 OnLoadHannbaikakakuByScan = SalePrice(True) Else OnLoadHannbaikakakuByScan = SalePrice(False) End If Else Dim Kakaku Kakaku = InputBox("販売価格を入力してください。") If IsNumeric(Kakaku) = False Then OnLoadHannbaikakakuByScan = 0 Else OnLoadHannbaikakakuByScan = CDbl(Kakaku) End If End If OnLoadHannbaikakakuByScan = Fix(OnLoadHannbaikakakuByScan) Else OnLoadHannbaikakakuByScan = strHannbaikakaku'データベース登録値を答えとする End If End Function Function OnLoadShouhinnmeiBeforeCheckout() 'TODO: コードをここに記述してください OnLoadShouhinnmeiBeforeCheckout = strShouhinnmei End Function Function OnLoadHannbaikakakuBeforeCheckout() 'TODO: コードをここに記述してください OnLoadHannbaikakakuBeforeCheckout = -1'処理をスキップ End Function Function OnLoadShouhinnmeiByIchijihojigyoumu() 'TODO: コードをここに記述してください OnLoadShouhinnmeiByIchijihojigyoumu = strShouhinnmei'データベース登録値を答えとする End Function Function OnLoadHannbaikakakuByIchijihojigyoumu() 'TODO: コードをここに記述してください OnLoadHannbaikakakuByIchijihojigyoumu = strHannbaikakaku 'データベース登録値を答えとする End Function Function OnSale() 'セール用サンプル関数 Dim DayOfWeek DayOfWeek = Weekday(Now()) If DayOfWeek = 1 Then '日曜日 OnSale = False ElseIf DayOfWeek = 2 Then '月曜日 OnSale = False ElseIf DayOfWeek = 3 Then '火曜日 OnSale = False ElseIf DayOfWeek = 4 Then '水曜日 OnSale = True 'セール対象日 ElseIf DayOfWeek = 5 Then '木曜日 OnSale = True 'セール対象日 ElseIf DayOfWeek = 6 Then '金曜日 OnSale = True 'セール対象日 Else '土曜日 OnSale = False End If End Function Function SalePrice(ExSale) Dim strUserid Dim strPassword Dim strDsn Dim strConnection Dim Connection Dim rs Dim strSQL Dim Result If lShouhinnID > 0 Then 'データベース接続用ID,パスワードの設定 strUserid = "" strPassword = "" strDsn = "Nyushukka" strConnection = "DSN=" & strDsn & "; UID=" & strUserid & "; PWD=" & strPassword 'データベース接続 Set Connection = CreateObject("ADODB.Connection") Connection.Open strConnection 'SQL文 If ExSale = True Then strSQL = "select memo1 as price from shouhinn where shouhinnid = " & lShouhinnID Else strSQL = "select memo2 as price from shouhinn where shouhinnid = " & lShouhinnID End If Set rs = Connection.Execute(strSQL) If rs.EOF Then 'レコードの有無 strKakaku = "" Else strKakaku = rs("price") End If If strKakaku <> "" Then SalePrice = CDbl(strKakaku) Else SalePrice = 0 End If Connection.Close 'データベース接続を閉じる Else SalePrice = 0 End If End Function