9

サブレポートは多くのレポートで使用されるため、ヘッダーで使用したいと思います。ただし、サブレポートはヘッダーに入力されず、フィールド値も入力されません。ただし、パラメータは問題なく動作します。

これを回避する方法についての提案や参照はありますか?

4

6 に答える 6

4

私はこれを別の方法で承認しました。

ヘッダーとフッターだけを含むレポートを作成しました。

次に、必要なすべてのレポートについて、サブレポートを作成しました。

私はそれが完璧に近いところはどこにもないことを知っています。しかし、それは私たちのレポートには有効でした。

もう1つのオプションは、ヘッダーのフィールドにデータを送り込むアセンブリを作成することです。ヘッダーにグラフィカルすぎるものがない場合は正常に機能します...

于 2009-10-19T15:32:12.970 に答える
3

私はまったく同じ問題に直面してきました。数時間後、私は解決策を見つけました(サブレポートなし)。

SSRS 2012には、「長方形」が存在します。グラフィック用だと思っていたので、実際に調べたことはありませんでした。実際、その中に複数の要素をグループ化することができます。Reportpartとして公開できる長方形全体。このレポートパーツは、ヘッダーやフッターでも他のレポートで使用できます。

于 2012-07-02T09:28:39.010 に答える
1

Globals!PageNameヘッダーまたはフッターのマスターページレベルでビルトインフィールドを使用してからPageName、各サブレポートで値を定義します。PageNameこれにより、変数 で定義された文字列値でヘッダーまたはフッターを変更できます。

例:フッターテキストボックスを次のように設定します: [&PageName]または=Globals!PageName

マスターページによって呼び出される各サブレポートで、次のPageName値を 定義します。

<PageName>This is the Dynamic Page Footer String.  You can include subreport names, or any dynamic subreport text here </PageName>

PageNameサブレポートのコードビューのセクションのすぐ下にあるtablix定義で値 を設定します。

<DataSetName>YourDataSetName</DataSetName> 

使用できるグローバル変数の詳細については、
https ://msdn.microsoft.com/en-us/library/dd255216.aspxを参照してください。

于 2016-06-28T17:22:15.007 に答える
0

限られたケースのサブセットで役立つ可能性のある1つの提案:データセットからのデフォルト値をパラメーターに入力し、そのパラメーターをヘッダーで使用できます。もちろん、これは一度に1つのフィールド/値しか取得しませんが、データベースからヘッダーに1つまたは2つのアイテムしか必要ない場合は、これは適切な回避策になる可能性があります。

于 2012-08-30T05:30:19.077 に答える
0

SSRSは、ヘッダーへのサブレポートを許可しません。私はこの問題を抱えており、解決策があると思います。サブレポートを追加のデータセットとして追加し、応答をテキストボックスに入力します。わたしにはできる...?

于 2017-01-11T14:28:30.393 に答える
0

この回答からアイデアを得ました: https ://stackoverflow.com/a/57991114/11829240

トピックはクライアント側のみであるrdlcに関するものであるため、実際にそこに投稿することはできません。しかし、私はそれがここに収まると思います。

次のURLを使用して、画像を作成し、それに比例して収まるようにサイズを設定します。

http://*reportserverUser*:*reportserverPassword*@*ssrsHost*/ReportServer?%2f*reportName*&rs:Command=Render&rs:Format=IMAGE&rc:OutputFormat=BMP&rc:dpix=1000&rc:dpiy=1000

&rs:Format=IMAGE画像をください。

&rc:OutputFormat=BMPレポートはTIFFを処理できないため、BMPとして。

&rc:dpix=1000&rc:dpiy=1000私にもっと高い解像度を与えてください、それでそれは醜く見えません

編集:VisualStudioでローカルに動作しているようですが、ReportServerでは動作していません。認証用のカスタムDLLを作成する必要がある場合があります。

EDIT2:

[System.Security.SecuritySafeCritical]
[WebPermission(System.Security.Permissions.SecurityAction.Assert, Unrestricted = true)]
public static string GetReport(string reportname)
{

    // request file permission for config-file
    FileIOPermission f = new FileIOPermission(FileIOPermissionAccess.Read, @"c:\ssrs\ssrsutils_auth.txt");
    f.Assert();

    // BASE-URL\tusername\tpassword
    var config = File.ReadAllText(@"c:\ssrs\ssrsutils_auth.txt");

    // Get BASE-URL and insert reportname into {0} placeholder
    var str = string.Format(config.Split('\t')[0], reportname);
    var requestUri = new Uri(str);

    // Set Credentials according to configuration
    NetworkCredential nc = new NetworkCredential(config.Split('\t')[1], config.Split('\t')[2]);

    HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(requestUri);

    request.Credentials = nc;

    // Give me an Image object
    var img = Image.FromStream(request.GetResponse().GetResponseStream());

    // and return as Base64
    return GetBase64(img);
}

private static string GetBase64(Image image)
{
    using (MemoryStream m = new MemoryStream())
    {
        image.Save(m, ImageFormat.Png);
        byte[] imageBytes = m.ToArray();
        return Convert.ToBase64String(imageBytes);
    }
}

次に、画像ソースをデータベースに設定し、次の式を使用します。

=*Project*.*Class*.GetReport("*ReportName*")

MimeTypetoimage/bmpとあなたは行ってもいいです

例-構成c:\ssrs\ssrsutils_auth.txt([TAB]を実際の\ t-ASCII 09に置き換えます):

http://*ssrsHost*/ReportServer?%2f{0}&rs:Command=Render&rs:Format=IMAGE&rc:OutputFormat=BMP&rc:dpix=1000&rc:dpiy=1000[TAB]username[TAB]password

ちなみに、SSRSはCASを処理しますので注意してください。 https://stackoverflow.com/a/61816621/11829240

于 2021-08-04T13:35:01.897 に答える