7

1 つのクエリに基づいて、レポートの次のレイアウトを実現しようとしています。

+----+-------+----+-------+
| ID | Name  | ID | Name  |
+----+-------+----+-------+
|  1 | Danny |  2 | Dave  |
|  3 | Sue   |  4 | Jack  |
|  5 | Rita  |  6 | Sarah |
+----+-------+----+-------+

したがって、基本的には、1行を印刷して紙の右側のすべてのスペースを無駄にするのではなく、ページのスペースを節約するためにデータを左から右に印刷する1つのテーブルが必要です。

これは私のデータです: http://sqlfiddle.com/#!3/5c911/1

4列のテーブルを考えていたのかもしれません。列 1 と 2 には奇数の行番号が含まれ、列 3 と 4 には偶数の行番号が含まれます。

どうすればこれを達成できますか? MOD 関数で何かを試してみましたが、正しく動作していないように見えた、または何が起こっているのかを誤解していました.

関連: レポート デザイナーで 2 行分のデータを 1 行に並べて表示するにはどうすればよいですか?

ありがとう、

4

2 に答える 2

8

複数列形式でデータを左から右に印刷するには、複数のテーブルを使用してそれを偽造する必要があります。このハックを実装するには、必要な列と同じ数のテーブルを並べて作成し、すべてがデータ セットを指すようにします。最初のテーブルの詳細行で、Visibility-Hidden プロパティに対して次の式を使用します。

=IIF((RowNumber(Nothing) Mod 4) = 1, False, True)

4、テーブル (列) の数です。

各テーブルに対して同じことを行い、数式が等しいものを増やします (2 列目(RowNumber(Nothing) Mod 4) = 2など)。最後の表 (列) では、式は と等しくなり0ます。

これにより、詳細行が非表示になり、その列番号の適切な行のみが表示されます。

于 2012-12-06T00:32:24.070 に答える
0

クエリを使用してその外観を実現できます。

SELECT std1.id AS Student_Id, 
        std1.NAME AS Student_Name, 
        std2.id AS Student_Id, 
        std2.NAME AS Student_Name
FROM students std1, students std2
WHERE (std2.id - std1.id = 1 
       AND std1.id %2 = 1);
于 2014-04-11T04:36:18.463 に答える