フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
数値入力フィールドの数値の桁区切り表示は,作成中のアプリケーションをアプリケーションビルダーから「実行(設定可)」で実行していただき,画面上の[数値入力フィールド]上で
マウス右クリック>[表示形式(実数)]>[グループ]>[あり]
と選択することにより設定可能です.また,小数点以下の桁数は,同様に,
マウス右クリック>[表示形式(実数)]>[小数部分の最大桁数…]
から, 設定可能です.同様の情報がFAQにも記載されておりますのでご参照ください.
https://ssl.monozukuri.org/mzplatform/faq_top/technical/components/gui_components/text/numberfield/
No.15:Select文で取得して数値入力フィールド…
No.108:日付/時刻型データと数字の表記についてMZPlatformユーザー会キーマスターテーブルで複数の行が選択されている場合,メソッドgetSelectedRows()を用いることにより,選択されている行のインデックスのリストを取得することが可能です.
このリストを,一旦,リスト格納変数等に設定します.繰り返し制御コンポーネントを用いてリストから順にインデックスを取得し,そのインデックスを用いて元のテーブルから該当する行データを取得します.
添付ファイル:
MZPlatformユーザー会キーマスターテーブルサブセットフィルタで,メソッドでは用意されていない特殊な検索を行う際にはメソッド「列データの正規表現で行を選択する(int,String)」を用います.そのメソッド実行後に,メソッド「選択データを取得する」を実行しますと,結果のテーブルデータを取得できます.
上述のメソッドの第一引数には検索対象の列インデックス,第2引数には,選択したい文字列を表現する正規表現を設定します.正規表現につきましては,詳細に説明する外部サイトがございますので,そちらをご参照下さい.
例えば,「指定した文字列を含む」を意味する正規表現は「.*XXXXX.*」,「指定した文字列を含まない」を意味する正規表現は「^(?!.*XXXXX).*$」です.ここで,XXXXXは指定文字列を意味しております.ご参考のため,サンプルアプリケーションを添付いたしますのでご参照ください.
添付ファイル:
MZPlatformユーザー会キーマスターWebアプリケーション用の設定をしていただくと、所定の位置にapplicationsフォルダが作成されます。その中にあるWindowSample.mzaxが画面を切り替える機能のサンプルとなっております。
Webアプリケーション用の設定方法は、配布用のZIPファイルを展開したMZ Platform Servletフォルダ内のReadMe.txtに書かれています。設定が問題なく完了しましたら、Webブラウザで下記のアドレスを指定するとサンプルの動作を確認できます。
http://<サーバのアドレス>:8080/mz/WindowSample.doサンプルがあるapplicationsフォルダの位置は、準備したサーバにTomcatをインストールした場合は、下記になります。
(Tomcatのフォルダ)\webapps\mz\WEB-INF\applicationsMZPlatformユーザー会キーマスター以前メールでご相談いただいた内容に対して、テーブルサブセットフィルターを用いてテーブル内の文字列を検索して行選択する処理をご紹介しました。
残念ながら、現在のテーブルサブセットフィルターの機能としては、文字列が完全に一致しない場合に柔軟に判定する機能が用意されておりません。
そのような処理を実現する場合には、アプリケーション側でテーブルに含まれている全ての文字列をあらかじめ半角英数小文字や全角平仮名に変換しておき、検索用の文字列を半角英数小文字や全角平仮名に変換してから、テーブルサブセットフィルターにテーブルを設定して文字列検索による行選択を実行するように処理を構築することで対応可能です。
この文字列変換機能は、文字列格納変数のメソッドとして提供されています。
ただし、メソッドで対応可能な変換は、全角の英数字を半角小文字に変換することと、全角半角の片仮名を全角の平仮名に変換することに限定されます。
変換処理のサンプルアプリケーションを添付しますので、必要に応じてご利用ください。なお、掲示板へのアプリケーション添付については、右側の注意事項にありますように、ZIPファイル等に圧縮してから添付するようにお願いします。
添付ファイル:
MZPlatformユーザー会キーマスターご不便をおかけして申し訳ありません。
現在の環境では質問者へのメール通知が利用できず、ご不便をおかけしていることは認識しております。引き続き、良い解決方法がないか検討いたします。MZPlatformユーザー会キーマスターご要望をお知らせいただき、ありがとうございます。
そのような機能追加は可能と思いますので、検討してみます。MZPlatformユーザー会キーマスターHTML表示パネルは、Webブラウザの動作を再現するためのコンポーネントではないため、意図する動作を実現することは難しいと思います。
代わりに、外部プログラム通信を用いた方法で動作が実現できたのでお知らせします。外部プログラム通信のメソッド「標準のブラウザでWEBページを開く(String)」の引数に、「mailto:」の文字列を指定すると標準のメールソフトが起動します。参考までに、作成したアプリケーションを添付します。引数の文字列は文字列格納変数を用いて動的に作成することが可能です。
注意点としては、こちらの環境ではccやsubjectなどのオプションをつなぐときに&ではなく&を指定しないと正常に表示されませんでした。また、こちらはメールソフトによるみたいですが、bccは表示されませんでした。ご利用の環境での挙動をご確認いただいて記述を調整してみていただければと思います。
- この返信は10年、 4ヶ月前にMZPlatformユーザー会が編集しました。
- この返信は10年、 4ヶ月前にMZPlatformユーザー会が編集しました。
添付ファイル:
MZPlatformユーザー会キーマスターテーブルサブセットフィルタで検索後の結果(選択データ)を
再度テーブルサブセットフィルタの全体データに設定し,
その後にテーブルサブセットフィルタから選択データを取得しテーブルに
設定しておりますが,
最初の選択データをどこかに確保しておき,テーブルに設定する
ようにしますと,お望みの処理になると存じます.MZPlatformユーザー会キーマスターテキストフィールドに一文字入力するごとに,
データ更新イベントが発生し,毎回データベースの検索が実行され,
反応が悪くなってしまうということと理解致しました.幾つか改善策が考えられますが,例えば,
一文字ではなく複数文字入力された際に検索を実行するように
処理を修正されてはいかがでしょうか.文字列格納変数にテキストフィールドの文字列を設定し,
メソッド「文字列の長さを取得する()」を実行することにより,
文字数を取得することができます.
その文字数を比較演算コンポーネントを用いて,指定の文字数以上
であることを判定し,処理を実行します.また,他の方法としましては,ある程度文字列が入力され,
「Enter」キーが押された場合のみ検索するという方法も考えられます.テキストフィールドのデータ更新イベントではなく,
アクションイベントを使用し,イベント番号0を指定することにより,
「Enter」キーが押された場合のみ,処理を実行することが可能です.以上,ご検討をよろしくお願い申し上げます.
-
投稿者投稿