複数列をソート

  • 作成者:ayuan0625
  • 編集回数:6次
  • 最終更新:FRInternational 于 2021-11-27
  • 一.概要

    1.問題の概要

    データセットでは、SQLの order by A, B でまず結果をAで並べ替えてから、Bで並べ替えることができます。本マニュアルでは、デザイナーの展開後ソートで複数列の並べ替えを実現する方法について説明します。

    例:展開後、結果は販売員で並べ替えられ、同じ販売員売上で並べ替えられます(下図参照)。

     

    2.実現方法

    1.文字データはINARRAY(文字, SORTARRAY(UNIQUEARRAY(拡張された全ての文字)))で並べ替えることができます。

    2.数値データはそれ自体のサイズで直接並べることができます。

    1.と2.の結果は、新しい値を取得するために計算処理され、最後に新しい値に従って並べ替えられます。

    二.例示

    1.データ準備

    一般の帳票を作成し、データベースクエリds1を作成します。SQLステートメントはSELECT* FROM 売上where 地域='中国北部'

    2.帳票設計

    1.データセットのフィールドをセルA2~E2に順次にドラッグします(下図参照)。

     

    2.セルA2をデータ列と設定します。下図の通りです。

     

    3.展開後ソート

    セルA2を選択し、展開後に並べ替え昇順に設定し、数式を入力します:INARRAY(B2,SORTARRAY(UNIQUEARRAY(B2[!0])))*POWER(10, LEN(MAX(E2[!0])))+E2

    この数式には、セルB2とE2を組み合わせて計算しています。この組み合わせ計算によって、まずB2による並べ替え、次にE2による並べ替え効果が得られます。式の分解説明を次に示します:

    一部

    説明

    SORTARRAY(UNIQUEARRAY(B2[!0]))

    セルB2はテキストなので、SORTARRAY関数で並べ替える

    INARRAY(B2,SORTARRAY(UNIQUEARRAY(B2[!0])))

    SORTARRAY関数でB2を既に並べ替えており、データを配列として保存されている

    次に、INARRAY関数で配列内の各テキストデータの位置をエクスポートする

    並べ替えられたテキストを数値に変換することである。これは、E2との組み合わせ計算に便利であり、次にE2を並べ替える

    *POWER(10, LEN(MAX(E2[!0])))

    固有の累乗である。前の式にこの数値を掛けるのは、テキストの位置を表す数値を大きくするためである

    ここでは、B2に非常に大きい数を掛けることで、E2よりB2が優先でソートする。

    +E2

    B2セルが同じ場合、グループにセルE2の値が加算され、得られる合計値が並べ替えられる。

    つまり、B2を並べ替えてから、E2を並べ替える。

    手順は下図の通りです:

     

    4.プレビュー

    1.PC端末

    レポートを保存し、改ページプレビューをクリックすると、効果は1.1の説明に示します。

    2.モバイル端末

    APPとHTML5端末でプレビューでき、効果は下図のようになります。

     

    Attachment List


    Theme: 帳票機能応用
    • いいね
    • 良くない
    • 閲覧しただけ