繰返し制御について

4 件の投稿を閲覧中 - 1 ~ 4 件(全 4 件)
  • 著者
    投稿
  • #5206
    ORIteck CO., LTD
    一般参加者

    あるテーブルの指定列の値と固定リストの値を比較して、同じであれば同じ値のテキストフィールドの背景色を変えたいのですが上手くいきません。サンプルアプリ添付しますので、よろしくお願いします。

    添付ファイル:
    #5208
    MZPlatformユーザー会
    サイト管理者

    この説明だけでは、何をしたくて何ができていないかがわからないので、もう少し詳しく文章で説明していただく必要があります。添付されたアプリケーションをすべて読んで未知の不具合を探すのは、無料サポートの範囲を超えていると思います。

    どの部分が思った通りに動作していないのか、ご自身でもう少し分析をしてみてください。MZにはデバッガ機能というものがありますが、ご存知でしょうか。操作説明書がありますので、読んでお試しください。

    今回の不具合に関しては、NAME比較の処理完了イベントの中で、111比較と222比較と333比較で指定している引数に問題がありそうです。演算結果を指定していますが、演算結果はtrueかfalseですので、テキストと比較しても常にfalseです。

    #5209
    ORIteck CO., LTD
    一般参加者

    理解不足の点が多くお手数をおかけしました。等価演算key***比較の演算は、true or false = ***であり、常にfalseを返す事理解できました、等価演算keyNAME比較の「演算結果(左オペランド=右オペランド)を取得する」でtrueなので***を取得できるものと思い込んでいました。

    デバッガ機能については使用したことがありませんでした、本来使用すべき機能だと思いますが使い始めであり、目先ばかりを優先しておりました。今後はできる限り活用してまいりたいと思います。

    今回の上手く行かなかった点は、等価演算keyNAME比較の処理完了イベントの最初に、リストkeyテーブルの指定列をつなぎ「指定された位置のラベル名を取得する」を実行し、その戻り値とテキストを比較することで実現できそうです。ありがとうございました。

    最後にデバッガについて質問をさせてください。
    等価演算のブレークポイントでは、デバック画面の引数と属性にメソッドの引数が表示されますが、実際の値を表示するときと、値があるのにNULLを表示するときがありますが、この違いがわかりません。引数の取得方法で「メソッド処理結果」や「固定値」はその戻り値や指定値が表示されるが「メソッド戻り値」では、テキストフィールドのテキスト値などでNULLとなる。

    #5210
    MZPlatformユーザー会
    サイト管理者

    ご指摘の通り、デバッガ動作時の起動メソッドの引数表示において、取得方法をメソッド戻り値にしている場合、起動メソッドの実行前には引数が確定されずNULLとなります。これはメソッド実行時に確定される情報となっていて、デバッガのステップ実行でも分離できません。そのため、そこに不具合がある場合に発見することが難しいのが現状です。

    個人的な意見となりますが、引数の取得にメソッド戻り値は使用せず、独立した起動メソッドとして処理を実行して、その結果をメソッド処理結果で次の引数に使用する方法を推奨しています。このメリットは、デバッガのステップ実行で個別に確認可能となることですが、デメリットは、記述する起動メソッドの数が増えることです。考え方次第と思いますが、分けた方がよりアプリケーションの動作を理解しやすくなると思います。

4 件の投稿を閲覧中 - 1 ~ 4 件(全 4 件)
  • このトピックに返信するには、ログインしてください。