テーブル表示(concat)について

MZ Platformとは 掲示板 MZプラットフォームユーザー会掲示板 テーブル表示(concat)について

  • このトピックは、 2 返信、 2 投稿者 です。最終更新日: 8 ヶ月 前 koni
3 件の投稿を閲覧中 - 1 ~ 3 件(全 3 件)
  • 著者
    投稿
  • #7531
    koni
    一般参加者

    いつもお世話になっております。

    テーブルをselect文で設定する際に、concat(–,”\n”, –,”\n”, –) として、3列データを1列にまとめて表示させています。
    まとめて表示させる3列は、1個目は確実に入力するデータですが、2・3個目はデータが入らないこともあります。(「返却部品・付属品1・付属品2」といった感じです。)

    現在では1個目のみにデータが入っている状態でcsv出力させる際、concatで改行をしている関係で2・3行目に空文字が入ってしまうのですが、入力された時のみ改行を入れることは可能でしょうか。

    PDFで帳票出力させるときは、見た目では問題ないのですが、そのテーブルをcsv出力させる際に、空文字の改行となってしまい困っております。

    よろしくお願いいたします。

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

    お問い合わせありがとうございます。

    こちらはSQL文の変更は難しそうですので、MZ上での処理の追加をお勧めいたします。

    データベースからの検索結果を一旦[テーブル格納変数]等に入れた後、該当の列のセルの値を取得して[文字列格納変数]に設定し、メソッド「trim()」または「trimThenReplace()」を実行することが考えられます。このメソッドは設定した文字列の先頭と末尾の空白文字および改行やタブ文字、半角スペースなどを削除するものです。
    「trim()」の方は変数の値は置き換わらず、戻り値が返ります。「・・・ThenReplace()」の方は[文字列格納変数]の値が置換わるので変数から値を取得します。
    ただし、全角の空白文字は削除されないので注意してください。

    例えば以下のようのな処理が考えられます。
    1)検索結果を取得した後[繰り返し制御(FOR)]でテーブルの行数分繰り返し処理を実行します。
    2)[繰り返し制御(FOR)]のアクションイベントの接続先処理に[テーブル格納変数]「セルを位置指定で取得する(int,int)」を設定します。引数0(指定行)は[繰り返し制御(FOR)]の現在値、引数1(指定列)は固定値で指定します。
    3)2番目の接続先処理に[文字列格納変数]「文字列を設定(String)」します。引数にはメソッド処理結果で(2)の返値を設定します。
    4)3番目の接続先処理で「trim()」を実行します。
    5)4番目に[テーブル格納変数]「セルデータを位置指定で設定する(String,int,int)」でメソッド処理結果で(4)の返値を取得して、[テーブル格納変数]の同じ位置のセルに値を設定します。

    以上お試しいただき、ご不明な点がございましたら、再度ご連絡ください。
    どうぞよろしくお願いいたします。

    #7539
    koni
    一般参加者

    ご回答ありがとうございます。
    [文字列格納変数]のメソッド「trim()」により、空文字の時のみ改行を削除することができました。
    今後ともよろしくお願いいたします。

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