'この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: コードをここに記述してください OnLoadShouhinnmeiByScan = strShouhinnmei'データベース登録値を答えとする End Function Function OnLoadHannbaikakakuByScan() '下記例は、顧客分類のランクによりサンプル商品「商品B」の販売価格を決定しています。 '上から顧客分類「A」の場合、販売価格(200円)に0.6を掛けた答えを販売価格 '顧客分類「B」の場合、販売価格(200円)に0.45を掛けた答えを販売価格 '顧客分類「C」の場合、販売価格(200円)に0.43を掛けた答えを販売価格 '顧客分類「D」場合、販売価格(200円)に0.5を掛けた答えを販売価格 'ランク未設定の場合、販売価格(200円)に0.7を掛けた答えを販売価格 ' '元の販売価格は、商品リスト内の商品「商品B」の販売価格に設定されている値です。 If strKokyakuBunnrui = "A" Then OnLoadHannbaikakakuByScan = CDbl(strHannbaikakaku) * 0.6 ElseIf strKokyakuBunnrui = "B" Then OnLoadHannbaikakakuByScan = CDbl(strHannbaikakaku) * 0.45 ElseIf strKokyakuBunnrui = "C" Then OnLoadHannbaikakakuByScan = CDbl(strHannbaikakaku) * 0.43 ElseIf strKokyakuBunnrui = "D" Then OnLoadHannbaikakakuByScan = CDbl(strHannbaikakaku) * 0.5 Else OnLoadHannbaikakakuByScan = CDbl(strHannbaikakaku) * 0.7 End If '切り捨て Fix関数 OnLoadHannbaikakakuByScan = Fix(OnLoadHannbaikakakuByScan) '四捨五入 Round関数 'OnLoadHannbaikakakuByScan = Round(OnLoadHannbaikakakuByScan,0) '切り上げ RoundUp関数 'OnLoadHannbaikakakuByScan = RoundUp(OnLoadHannbaikakakuByScan,0) 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 Round(X,s) Dim value value = 10 ^ Abs(s) If s>0 Then Round = Int(X * value + 0.5) / value Else Round = Int(X / value + 0.5) * value End If End Function Function RoundUp(X,s) Dim value value = 10 ^ Abs(s) If s>0 Then RoundUp = Int(X * value + 0.9) / value Else RoundUp = Int(X / value + 0.9) * value End If End Function