桐の釣魚大全のトップ > 仕様メモ集 > Spec_Memo_WIDGET_電卓・カレンダの仕様メモ
トップページに戻る


鋭意校正中です。
念のためにブラウザでF5キーを押してリロードしてからお読みください。


 Spec_Memo_WIDGET_電卓・カレンダの仕様メモ.txt By ONnoji
                              Rev.0 2019.10.29 WIDGET_電卓・カレンダの仕様メモ.txt
                              Rev.1 2020.09.09 Spec_Memo_WIDGET_電卓・カレンダの仕様メモ.txt

 この仕様メモは[INF_Framework Rev.238]で追加された、[WIDGET_電卓・カレンダ]機能について書きとめたものです。

 [入力支援ボタン]で[INF_電卓 / INF_DatePicker]を利用する場合には、後述の【転載】ヘルプ―INF_電卓・INF_DatePicker・INF_都道府県picker.txt を参照してください。

 機能を体験するには、フォーム:V10s_モダン_現金出納帳.wfx を操作してください。


 ■概要

 [INF_Framework Rev.238]では、[入力支援ボタン]使わずに[INF_電卓]と[INF_DatePicker]をシームレスにポップアップする機能が追加されました。

 この機能を[WIDGET_電卓・カレンダ]機能と呼ぶことにします。

 ― [INF_電卓]のポップアップ

 値がある数値・通貨・長整数・整数のテキストボックスで、四則演算キー[+][-][*][/]を押すと[INF_電卓]がポップアップします。
 ただし、表示モードを除きます。

 ― [INF_DatePicker]のポップアップ

 日時型のテキストボックスで任意のキーを押すと[INF_DatePicker]がポップアップします。ただし、表示モードを除きます。

 ※文字列型のテキストボックスで利用する場合には、後述のAPPENDIXを参照してください。

 キーはデフォルトで[End]キーが割り当てられています。

 【キーに指定できる文字】

 キーに指定できる文字は、以下の文字でこれは基本的にキートップの文字と同じです。(例)"End" "Shft + End" "Ctrl + End"

  BackSpace,Tab,Clear,Enter,Shift,Ctrl,Alt,Pause,CapsLock,英数,漢字,Esc,変換,無変換,スペース,PageUp,PageDown,End,Home,←,↑,→,↓,PrintScreen,Insert,Delete,Help
  F1,F2,F3,F4,F5,F6,F7,F8,F9,F10,F11,F12
  Windows左,Windows右,Application
  0,1,2,3,4,5,6,7,8,9,*,+,Separator,-,.,/
  NumLock,ScrollLock
  :,;,comma,-,.,/,@
  [,\,],^,-,backslash
  漢字番号,カタカナ,ひらがな,半角/全角,ローマ字

 ※これらは VK_Frammework の定数として定義されています。キーボードの種類よっては存在しないキーがあります。


 ■初期化

 Widget_電卓 の変数宣言は、[名札 メイン]で行う。

 配置位置は[標準 INF Framework 第3.2版 名札 メイン]の前後のどこでもよい。

 ―[名札 メイン]の例

 名札 メイン

  :
  :

  *---------- begin Widget_電卓・カレンダ 名札 メイン ---------------*
  ** Widget:ウィジェット パソコンのデスクトップやWebページなどで動作する小さなアプリケーションのこと
  変数宣言 局所,整数 { &WIDGETmLive = 1 }
  if ( #変数( "WIDGETmLive" ) )
   変数宣言 局所,整数 { &WIDGETmKeyDownContinue = 0, &WIDGETmSystemKeyDownContinue = 0 } /* 継続フラグ */
   変数宣言 局所,整数 { &WIDGETmControlEventType } /* WIDGETprcFieldPopupEval の参照引数 キーダウン:1 システムキーダウン:2 */
   変数宣言 局所,文字列{ &WIDGETm電卓項目FieldList }
   変数宣言 局所,数値 { &WIDGETm電卓計算結果 }/* 変数受け渡しパラメータ */
   変数宣言 局所,数値 { &WIDGETmSendVal }  /* 変数受け渡しパラメータ */
   変数宣言 局所,文字列{ &WIDGETmSendOperator }/* 変数受け渡しパラメータ */

   変数宣言 局所,文字列{ &WIDGETmカレンダFieldList, &WIDGETmTriggerKey }
   変数宣言 局所,文字列{ &WIDGETmカレンダ結果 }/* 変数受け渡しパラメータ */
   変数宣言 局所,日時 { &WIDGETmSendDate } /* 変数受け渡しパラメータ */
   &WIDGETmTriggerKey = "End" /* 指定例 "Shift + End" "Ctrl + End" など。カレンダをポップアップするキー操作(トリガー)※注意:表示モードでは動作しません */
  end
  *---------- end Widget_電卓・カレンダ 名札 メイン ---------------*

  :
  :

 *


 ■スタートアップ

 Widget_電卓 のスタートアップは、WIDGETprc電卓Startup( ) で行う。

 WIDGETprc電卓Startup( )は、編集対象表の項目を調査するので、[フォーム開始]イベントハンドラ以降であればどのタイミングでもよい。
 ※つまり、編集対象表が開いていない[名札 メイン]では実行できない。

 以下は、[開始時実行コマンド]に指定したコマンドオブジェクト:cmdStartup から実行した例である。

 ―[開始時実行コマンド]の例

 手続き定義開始 cmdStartupClick( )

  :
  :

  *---------- begin Widget_電卓・カレンダ -----------------*
  条件 ( #変数( "WIDGETmLive" ) ) 手続き実行 WIDGETprc電卓カレンダStartup( )
  *---------- end Widget_電卓・カレンダ -----------------*

  :
  :

 手続き定義終了


 ― APPENDIX


 ■文字列型のフィールドでカレンダーのポップアップを設定する

 [Widget_電卓・カレンダ]は、次のようにスタートアップします。

 手続き定義開始 cmdStartupClick( )
  変数宣言 自動,文字列{ &icon, &title = "cmdStartupClick( )", &msg }

  *---------- begin Widget_電卓・カレンダ  -----------------*
  条件 ( #変数( "WIDGETmLive" ) ) 手続き実行 WIDGETprc電卓カレンダStartup( )
  *---------- end  Widget_電卓・カレンダ  -----------------*

  *----- begin 幅を狭くしてフォームスクロールバーが現れ難くする -----*
  :
  :
  *----- end  幅を狭くしてフォームスクロールバーが現れ難くする -----*

 手続き定義終了

 WIDGETprc電卓カレンダStartup によって、電卓とカレンダーがポップアップする対象のオブジェクトが自動的に探索されて、

 (例)&WIDGETm電卓項目FieldList … "txtField_4,txtField_5" ※ソースが基本項目の数値系テキストオブジェクト
 (例)&WIDGETmカレンダFieldList … "txtField_1"       ※ソースが基本項目の日時型テキストオブジェクト

 ↑の例のように、半角コンマで区切ったフィールドのリストが生成されます。

 ◇ ◇ ◇ ◇ ◇ ◇

 しかし、文字列型のデータで日付を管理している場合もあります。

 その場合には、次のようにして &WIDGETmカレンダFieldList にオブジェクト名を追加して、WIDGETprcFieldPopupEval を実行します。

 ―オブジェクト名:txtField_8 を追加する例

 &WIDGETmカレンダFieldList = &WIDGETmカレンダFieldList + ",txtField_8" /* 半角コンマ + オブジェクト名 */

 手続き実行 WIDGETprcFieldPopupEval( &EZWmFocusField, &WIDGETmControlEventType )

 ※WIDGETprcFieldPopupEval を実行するのは、キーダウンイベントを再セットするためです。

 ―設定例

 手続き定義開始 cmdStartupClick( )
  変数宣言 自動,文字列{ &icon, &title = "cmdStartupClick( )", &msg }

  *---------- begin Widget_電卓・カレンダ  -----------------*
  条件 ( #変数( "WIDGETmLive" ) ) 手続き実行 WIDGETprc電卓カレンダStartup( )
  *---------- end  Widget_電卓・カレンダ  -----------------*


  ** ↓の例は txtField_8 をカレンダーがポップアップする対象に追加する

  *---------- begin &WIDGETmカレンダFieldList にオブジェクト名を追加  -----------------*
  &WIDGETmカレンダFieldList = &WIDGETmカレンダFieldList + ",txtField_8" /* 半角コンマ + オブジェクト名 */

  手続き実行 WIDGETprcFieldPopupEval( &EZWmFocusField, &WIDGETmControlEventType ) /* キーダウンイベントを再セット */
  *---------- end  &WIDGETmカレンダFieldList にオブジェクト名を追加  -----------------*


  *----- begin 幅を狭くしてフォームスクロールバーが現れ難くする -----*
  :
  :
  *----- end  幅を狭くしてフォームスクロールバーが現れ難くする -----*

 手続き定義終了


 ■[キーダウン]イベントの継続

 [キーダウン]イベントをオフにしたくない場合には、継続フラグをオンにします。

  *---------- begin Widget_電卓・カレンダ 名札 メイン ---------------*
  ** Widget:ウィジェット パソコンのデスクトップやWebページなどで動作する小さなアプリケーションのこと
  変数宣言 局所,整数 { &WIDGETmLive = 1 }
  if ( #変数( "WIDGETmLive" ) )
   :
   :
   :
  end
  *---------- end  Widget_電卓・カレンダ 名札 メイン ---------------*

  &WIDGETmKeyDownContinue    = 1 /* [キーダウン]イベントを継続     */
  &WIDGETmSystemKeyDownContinue = 1 /* [システムキーダウン]イベントを継続 */


 ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆ ◆


 【転載】ヘルプ―INF_電卓・INF_DatePicker・INF_都道府県picker.txt By ONnoji Copyright (C) 2019

 ピッカーアプリ3種類の簡単な説明書

 ■フォーム:INF_電卓

 ・電卓で計算できます。

 【出力】

 ・計算結果 ― (なし), &最大値, &最小値, &平均値, &合計値, &標準偏差

 (注)変数名はドロップダウンリストから選べます。不要の場合には"(なし)"を選択してください。

 【入力支援ボタン】

  ―電卓入力.wfm の設定例

  オブジェクト名    :txt単価入力支援ボタン
  入力支援ツールの種別:モーダルフォーム
  選択値リスト    :&合計値, "INF_電卓.wfm"

  オブジェクト名    :txt数量入力支援ボタン
  入力支援ツールの種別:モーダルフォーム
  選択値リスト    :&合計値, "INF_電卓.wfm"

 【フォームの大きさ】

 フォームは大き目に作ってありますので、必要に応じて[虫眼鏡(-)]ボタン または Alt + O で縮小してお使いください。
 ※フォームの大きさは記憶されます。


 ■フォーム:INF_DatePicker

 ・カレンダーから日付が入力出来ます。
 ・フォームの[テキストボックス]の[入力支援ボタン]で利用出来ます。
 ・クリップボードへ "令和" の日付がコピー出来ます。
 ・新元号に対応の桐では、組み込み変数:&STRに "令和" で日付が代入できます。
 ・新元号に非対応の桐でも、組み込み変数:&年月日に "令和" で日付が代入できます。

 ※変数名は初期値です。変数名はドロップダウンリストから選べます。不要の場合には"(なし)"を選択してください。

 【詳細設定】

 [ホーム(家)]アイコンボタンをクリックすると、[詳細設定]ウィンドウがポップアップします。

 ※旧版の場合には、[>>]ボタンをクリックすると、[詳細設定]領域が表示されます。

 【日時文字列】

 日時文字列の形式 ― [日時文字列の形式]ボタンをクリックしてメニューから選びます

 【出力】

 ・クリップボードへコピー ― オンでクリップボードへ日付をコピーします(新元号非対応の桐でも令和で出力します)
 ・文字列・日時型     ― &STR (注)に日付をコピーします  ※文字列・日時型兼用(新元号非対応の桐では常に平成になります)
 ・文字列型専用      ― &年月日(注)に日付をコピーします ※文字列専用(新元号非対応の桐でも令和で出力します)

 (注)変数名は初期値です。変数名はドロップダウンリストから選べます。(なし), &年月日, &時刻, &STR, &比較式, &置換式, &選択ファイル名
   不要の場合には"(なし)"を選択してください。

 【新元号に非対応の桐】

 新元号に非対応の桐でも、次の場合には "令和" が出力できます。

 ・クリップボードへコピー ― オン
 ・文字列専用       ― 変数名を指定する ※初期値は &年月日

 【入力支援ボタン】

  ―カレンダー入力.wfm の設定例

  オブジェクト名    :txt文字列型入力支援ボタン
  入力支援ツールの種別:モーダルフォーム
  選択値リスト    :&年月日, "INF_DatePicker.wfm"

  オブジェクト名    :txt日時型入力支援ボタン
  入力支援ツールの種別:モーダルフォーム
  選択値リスト    :&STR, "INF_DatePicker.wfm"

 【フォームの大きさ】

 必要に応じて[虫眼鏡(-)]ボタン または Alt + O で縮小、または[虫眼鏡(+)]ボタン または Alt + I で拡大してお使いください。
 ※フォームの大きさは記憶されます。


 ■フォーム:INF_都道府県picker

 ・都道府県名と都道府県コード( JIS X 0401 )と地方名が入力できます。
 ・フォームの[テキストボックス]の[入力支援ボタン]で利用出来ます。

 【出力】

 ・都道府県名   ― (なし), &年月日, &時刻, &STR, &比較式, &置換式, &選択ファイル名
 ・都道府県コード ― (なし), &年月日, &時刻, &STR, &比較式, &置換式, &選択ファイル名  
 ・地方名     ― (なし), &年月日, &時刻, &STR, &比較式, &置換式, &選択ファイル名

 (注)変数名はドロップダウンリストから選べます。不要の場合には"(なし)"を選択してください。

 【入力支援ボタン】

  ―都道府県入力.wfm の設定例

  オブジェクト名    :txt都道府県名入力支援ボタン
  入力支援ツールの種別:モーダルフォーム
  選択値リスト    :&STR, "INF_都道府県picker.wfm"

  オブジェクト名    :txt都道府県CODE入力支援ボタン
  入力支援ツールの種別:モーダルフォーム
  選択値リスト    :&比較式, "INF_都道府県picker.wfm"

  オブジェクト名    :txt地方名入力支援ボタン
  入力支援ツールの種別:モーダルフォーム
  選択値リスト    :&置換式, "INF_都道府県picker.wfm"

 【フォームの大きさ】

 必要に応じて[虫眼鏡(-)]ボタン または Alt + O で縮小、または[虫眼鏡(+)]ボタン または Alt + I で拡大してお使いください。
 ※フォームの大きさは記憶されます。

 【転載おわり】


 以上


トップページに戻る
桐の釣魚大全のトップ > 仕様メモ集 > Spec_Memo_WIDGET_電卓・カレンダの仕様メモ