サブレポートは多くのレポートで使用されるため、ヘッダーで使用したいと思います。ただし、サブレポートはヘッダーに入力されず、フィールド値も入力されません。ただし、パラメータは問題なく動作します。
これを回避する方法についての提案や参照はありますか?
サブレポートは多くのレポートで使用されるため、ヘッダーで使用したいと思います。ただし、サブレポートはヘッダーに入力されず、フィールド値も入力されません。ただし、パラメータは問題なく動作します。
これを回避する方法についての提案や参照はありますか?
私はこれを別の方法で承認しました。
ヘッダーとフッターだけを含むレポートを作成しました。
次に、必要なすべてのレポートについて、サブレポートを作成しました。
私はそれが完璧に近いところはどこにもないことを知っています。しかし、それは私たちのレポートには有効でした。
もう1つのオプションは、ヘッダーのフィールドにデータを送り込むアセンブリを作成することです。ヘッダーにグラフィカルすぎるものがない場合は正常に機能します...
私はまったく同じ問題に直面してきました。数時間後、私は解決策を見つけました(サブレポートなし)。
SSRS 2012には、「長方形」が存在します。グラフィック用だと思っていたので、実際に調べたことはありませんでした。実際、その中に複数の要素をグループ化することができます。Reportpartとして公開できる長方形全体。このレポートパーツは、ヘッダーやフッターでも他のレポートで使用できます。
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を参照してください。
限られたケースのサブセットで役立つ可能性のある1つの提案:データセットからのデフォルト値をパラメーターに入力し、そのパラメーターをヘッダーで使用できます。もちろん、これは一度に1つのフィールド/値しか取得しませんが、データベースからヘッダーに1つまたは2つのアイテムしか必要ない場合は、これは適切な回避策になる可能性があります。
SSRSは、ヘッダーへのサブレポートを許可しません。私はこの問題を抱えており、解決策があると思います。サブレポートを追加のデータセットとして追加し、応答をテキストボックスに入力します。わたしにはできる...?
この回答からアイデアを得ました: 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