フォーラムへの返信
-
投稿者投稿
-
MZPlatformユーザー会キーマスター
ご連絡ありがとうございます。
引数の設定で、「取得方法:メソッド戻り値」を選択したとき、引数に設定できない型の戻り値を持つメソッドは、完全にではないもののメソッド/値欄に表示される候補から除外されるようになっています。
例えば[テーブル]「テーブルデータを設定する(PFObjectTable)」の引数に「取得方法:メソッド戻り値」で[テキストフィールド]から「テキストを取得」して設定しようとしても、「テキストを取得する()」はメソッド/値の候補として現れないかと思います。[テーブル]のメソッド「指定セルの表示文字列を取得する(int,int)」が、メソッド/値欄の候補に現れない理由は、「取得方法:メソッド戻り値」では戻り値が取得できないメソッド(メソッドの実行に引数(指定行と指定列)が必要)だからです。
戻り値があるがメソッドの実行に引数が必要なものは、先に実行して「メソッド処理結果」で取得するとお考えください。
引数が必要のないメソッドの戻り値は「メソッド戻り値」、「メソッド処理結果」どちらも使うことが可能です。以上、ご不明な点がございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
残り4つのうち使用頻度が高い引数の取得方法は「メソッド処理結果」と「イベント内包」です。
1)「メソッド処理結果」は、同じ発生イベントに繋がる、実行済みの処理の戻り値を引数として取得できます。
例えば、『[テーブル]のセルの値を取得して、[テキストフィールド]に表示したい』場合、先にセルの値の取得の処理が必要になります。
「取得方法:メソッド戻り値」では引数を要しないメソッド(例:テキストを取得する getText()など()の中が空欄)の戻り値は取得できますが、メソッド「指定セルの値を取得する getValueAt(int,int)」は引数を必要とするため、先に処理を実行しその戻り値をメソッド処理結果として利用します。
——●——[テーブル 指定セルの値を取得する(int,int)」
——[テキストフィールド テキストを設定する(String) 取得方法:メソッド処理結果]なお、先に処理が完了していても同じイベントの接続先でなければ、戻り値をメソッド処理結果として取得できません。
また、「取得方法:メソッド戻り値」で取得できる値も先に処理を実行し、メソッド処理結果として利用することもできます。(2)「イベント内包」について詳しくは、コンポーネントリファレンスまたはJavadocのページ上部の記載をご覧ください。
[テーブル]コンポーネントを例にご説明します。
[テーブル]コンポーネントから発生するイベントは、データ設定イベント、データ更新イベントなどがあります。コンポーネントリファレンスでは「発生条件」、Javadocでは「トリガ」の項にイベントが発生するきっかけが記載されています。コンポーネントリファレンスの「内包データ」、Javadocでは「トリガ」項の右側にある項にイベント内包データの内容が説明されています。例えば、データ設定イベントは[テーブル]にデータが設定されたときに発生し、接続先コンポーネントの引数設定で「取得方法:イベント内包、メソッド/値:イベント対象データ」とすると「設定されたテーブルデータ」が引数として利用できることを示しています。
データ設定ベントでは、内包データは「イベント対象データ」1つですが、データ更新イベントでは「イベント対象データ(更新後のテーブルデータ)」と「更新データ(更新箇所のデータ)」の2種類です。マウスイベントでは内包データはマウスのX座標、Y座標です。
どんなデータが取得できるかリファレンスを確認していただく手間をお掛けしますが、イベント発生のタイミングで処理が行われ、データが取得できるという利点があります。引数設定時に「イベント内包データ選択」窓で、内包データの簡単な説明を確認することができます。
(3)「取得方法:コンポーネント」はコンポーネントそのものを指定するもので、引数の型に(Component)と示されている場合に使用します。[帳票]プレビューやダイアログ類を表示するときに位置基準となるコンポーネントを指定したり、[フレーム]などにメソッドでコンポーネントを追加するときなどに使います。
(4)「取得方法:イベント」はイベントそのものを指定するもので、引数の型として(PFEvent)と示されています。複合コンポーネント内で発生したイベントを上位階層で利用したいときに複合コンポーネントのメソッド「イベントを伝播させる」を接続先メソッドとしますが、そのとき引数の取得方法としてイベントを指定する使い方が一番多いです。
以上、ご不明な点がございましたら、再度ご連絡いただければ幸いです。
どうぞよろしくお願い申し上げます。MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
(1)特に数値型の値に関しては、できるだけデータ型が違っても処理できるようにMZPlatformのコンポーネントの中で設定をしております。また、メソッド「数値変換・・・」の引数に文字列型で設定された数字は[演算]コンポーネント中で数値に変換されて、演算されています。特に演算に関するコンポーネントは使用頻度が多く、またなるべくプログラミングを意識せず使用できるようにというMZPlatformの基本思想があり、このような仕様になっております。
(2)Javadocのメソッドの詳細欄の「戻り値」の項には戻り値についての説明が記述されています。戻り値のデータ型は、メソッドのサマリー欄で「修飾子とタイプ」項にある型、またはメソッド詳細欄のpublcとメソッド名の間の記述(例:public int getRowCount() =テーブル行数を取得するメソッドの戻り値はint型)で確認することができます。
以上、ご不明な点、ご要望等ございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスター透過画像が黒くなる現象について、再度ご連絡申し上げます。
MZPLatformの修正パッチファイルを作成し、アプリケーション保存後も画像の透過が無くならないように変更いたしました。お手数ですが、以下の手順をお試しください。
1)添付の「pfutil.jar」ファイルをMZPlatformインストールフォルダ\jarsフォルダ(例:C:\MZPlatform\3.6_64\jars)に入れます。2)MZPlatformインストールフォルダ\etcフォルダ内の『PlatformClassPath.ini』をメモ帳等で開き、先頭にjarファイルまでのパスを記述して、上書き保存します。
例えば以下のような内容になります。
————————————
# MZ Platform ClassPath
jars/pfutil.jar
jars/mzextension.jar
jars/mzplatform.jar
————————————
3)再度MZPlatformを立ち上げます。画像ファイル形式の変更でお手数をお掛けしてしまい申し訳ございませんでした。
以上お試しいただいても改善されない場合は、再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。- この返信は2年、 1ヶ月前にMZPlatformユーザー会が編集しました。
添付ファイル:
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
大変申し訳ございませんが、現在のところ透過画像使用した帳票を保存すると、透過部分が黒くなってしまいます。
大変お手数をお掛けいたしますが、都度データを設定していただくか、bmp等の他の透過情報を持たない画像形式で一旦保存したものをお使いいただくかになってしまいます。
例えば、Powerpoint(またはWord)で透過画像を重ね、各画像をctlキーを押しながらクリックして選択状態にし、右クリックメニュー>[グループ化]したものを、右クリック>[図として保存…]でビットマップファイルとして保存するのが、特別な編集ソフトを使わず簡単かと思います。以上、あまり解決にはなりませんが、ご不明な点等ございましたら、再度ご連絡いただければ幸いです。どうぞよろしくお願い申し上げます。
MZPlatformユーザー会キーマスターお問い合わせありがとうございます。
[等価演算(=)]等で判定処理の際、別々のコンポーネントで分けた方が処理を混同せず判りやすい場合もあり、提供しているサンプルファイルでは複数の演算コンポーネントを使用しております。
以下のような方法が考えられます。
[ボタン]—●—[等価演算(=)] 演算を行う
—[イベント生成]アクションイベントの発生
引数:メソッド戻り値 整数格納変数 int値を取得する[等価演算(=)]—処理完了イベント—「整数格納変数] 数値を文字列で設定する
引数:イベント内包 イベント番号
[イベント生成]—アクションイベント—[目的の処理]イベント番号0又は1イベント番号による処理の条件分けには[等価演算(=)]の演算結果をint値で知る必要がありますが、メソッド「演算結果を取得する()」の戻り値はboolean値なので変換処理が必要になります。やはり処理完了イベントから取得するのが一番簡単ですので、一旦変数に格納しています。
[イベント生成]コンポーネントを使うとイベント番号と共に任意のイベントを発生させることができます。例えば上記のようにメソッド「アクションイベントの発生」の引数で指定したイベント番号で、アクションイベントの接続先処理を分けます。ただし、今度は[イベント生成]コンポーネントを複数使用することになります。
以上、ご検討いただき、ご不明な点、ご要望等ございましたらどうぞ再度ご連絡ください。
よろしくお願い申し上げます。MZPlatformユーザー会キーマスター貴重なご意見をありがとうございます。
メソッド処理結果リストに関しましては、『デバッガ操作説明書』P20にある通り、戻り値が無いものは「NULL]と表示されます。基本的に「設定する」メソッドは戻り値が無いものがほとんどです。
(1) メソッドコールスタックパネルではデバッグ中のメソッド名が表示されイベント番号もコンポーネント名と共に表示されています。
一方メソッド処理結果リストパネルでは現在のイベントのメソッド処理の結果が表示され、イベント番号は付いていません。(2)引数と属性パネルの特に引数をクリックすると、例えば「テーブルデータを設定する(PFObjectTable)」にどんなデータが設定されたか確認することができます。また、デバッグ開始前に右端のメソッド展開ボタンを押していただくと、「取得方法:メソッド戻り値」で設定した引数の取得元コンポーネントとメソッドを表示することができます。ただし、他の取得方法の場合は表示されません。
(3)デバッグ中にエラーが発生した場合、エラー発生個所の処理で矢印表示が止まるようになっています。
エラーが発生しないものは、矢印表示がコンポーネント中央にあるときに引数と属性パネルの引数を確認し、矢印表示がコンポーネント下側に移動したら処理が行われたということになります。MZPlatformのデバッガーは処理をブレークポイントで止めて、確認するという目的で作られております。どちらかというと、メソッドコールスタックパネルに注目して処理の流れを追っていただくことになるのかと思います。
他にメソッド処理の確認としましては、接続元コンポーネントを右クリック>[メソッド起動位置検索]で、そのコンポーネントのメソッドが呼び出されている位置を確認することができます。
今後もより判りやすくMZPlatformを使っていただけるよう検討いたします。
ご連絡ありがとうございます。MZPlatformユーザー会キーマスターご連絡ありがとうございます。
大変申し訳ございませんが、現在のところイメージビューワーで画像を回転させるメソッドは用意されていません。
添付のサンプルファイルのように[オブジェクトバッファ]を使って実現できましたが、複雑になり過ぎあまりお勧めは致しません。
次期バージョンアップの際には、メソッドの追加を検討しております。
ご不明な点等ございましたら、再度ご連絡いただければ幸いです。
よろしくお願い申し上げます。添付ファイル:
MZPlatformユーザー会キーマスターご連絡ありがとうございます。
[データベースアクセス]では複数のSQL文が実行できます。メソッド「SQL文を実行する(String)」で検索SQLを実行するかあるいは戻り値のないSQLを実行するかによって、実行完了後に発生するイベントや戻り値には違いがあります。
1)更新SQL(Update, Delete等)を実行した場合:
発生イベント:処理完了イベント
イベント内包データ、または戻り値として更新された行数を取得できる
2)検索SQL(Select)を実行した場合:
発生イベント:データ生成ベント
イベント内包データ、または戻り値として検索結果をテーブル型データで取得できる[1]1)で更新処理が終わった後に、メッセージダイアログで『更新処理が終わりました』『削除処理が終わりました』と出したいというときに、実行する文でイベント番号を分けることが考えられます。
例1)先に「イベント番号を指定してSQL文を実行する」を実行後、
[データベースアクセス]---処理完了イベント---[メッセージダイアログ](イベント番号)[2]2)の結果の返るSelect文の実行のとき、Selectの内容によって行数はもちろん列数の違うテーブルが取得されます。検索結果テーブルからデータを取得して処理を進める際、区別しておかないとエラーの原因となります。また反対にイベント番号があると検索結果を得てからの処理を分岐しやすいということにもなります。
例2)先に「SQL文を実行する(String)」でSelect文を実行後、
[データベースアクセス]---データ生成イベント---[テーブル格納変数] テーブルを設定する 引数:イベント内包、イベント対象データ
複数の検索結果が同じ[テーブル格納変数]に格納されるただし、戻り値をメソッド処理結果で取得する場合は各SQL文の実行を区別できれば、[2]の問題は起きにくいかもしれません。
例3)
[ボタン]---[データベースアクセス]SQL文を実行する
|--[テーブル格納変数]テーブルを設定する 引数:メソッド処理結果[3]複合コンポーネント内のコンポーネントのイベントは、複合コンポーネントのメソッド「(イベント番号を指定して)イベントを伝播させる(PFEvent)」外部に伝播させます。
同一イベント名のイベントを、複数複合コンポーネントから発生させる場合、イベント番号を付けないと区別できません。(例、[ボタン]、[フレーム]のアクションイベントを複合コンポーネント内から伝播し発生させる)
イベント伝播時に番号を付けることもできますが、メソッド「イベント番号を指定してSQL文を実行する(String,int)」で指定したイベント番号は「イベントを伝播させる(PFEvent)」で伝播されます。主に考えられる[1]~[3]を挙げてみましたが、目的や機能によって処理設定の方法は変わってくるかと存じます。ご不明な点、ご要望等ございましたら、どうぞ再度ご連絡ください。
よろしくお願い申し上げます。- この返信は2年、 1ヶ月前にMZPlatformユーザー会が編集しました。
MZPlatformユーザー会キーマスター帳票の[テーブル]要素の列属性の設定は、要素の上で右クリック>[カラム描画設定]>列を選択>[描画属性設定]を選択すると「テーブルカラム描画設定」画面が開きます。
ここで各列の属性を変更することができます。以上お試しただき、ご不明な点、ご要望等ございましたら、どうぞ再度ご連絡ください。
-
投稿者投稿