1

私たちのアプリケーションでは、ユーザーが使用しているプリンターに応じて、非常に具体的なマージンを必要とするレポートがいくつかあります。これは、事前にフォーマットされた用紙に空白を埋めるために印刷するために使用され、プリンターによっては、印刷が若干のマージンでずれています。さらに悪いことに、内部アプリケーションではないため、実際に使用するプリンタを制御することはありません。

私が考えることができる唯一の解決策は、ユーザーに何らかの方法でマージンを構成させることです。データソースや実際のレポートの場合と同じように、レポートの余白を動的に変更できると思いました(アプリケーションからのすべてのレポートを表示するために使用されるコントロールが1つあり、正常に機能します)が、その気の利いたプロパティを見つけることができないようです。そうするために。レポートビューアにはmarginプロパティがありますが、これはフォーム表示用であるため、切り取られません。

誰かがその方法を知っていますか。私が考えていたのは、ユーザーがレポートをロードする前にマージンを定義することです。つまり、ユーザーがレポートボタンをクリックすると、レポートをロードし、マージンを設定して(またはその逆が必要です)、表示します。

誰かがそれについて言及する前に、私はユーザーがレポートがロードされたら、彼のニーズに合うようにページ設定を変更できることを知っていますが、これには2つの欠点があります。1つ目は、毎回保存されるわけではなく、ユーザーが「保存可能」である必要があるということです。2つ目は、地域の設定が期待どおりに設定されておらず、1つのアプリケーションに対応するようにユーザーに設定を変更させることができない場合、レポートビューアにいくつかのバグがあるようです。

編集:言及するのを忘れました、それはこれがどんな用途でもあります。私のレポートはすべてローカルレポートです。

4

6 に答える 6

3
    'creates a new page setting
    Dim instance As New PageSettings()
    'create the new margin values (left,right,top,bottom)
    Dim value As New Margins(0, 0, 0, 0)
    'gives your new pagesetting a value
    instance.Margins = value

    'report viewer now sets your margins
    ReportViewer1.SetPageSettings(instance)
于 2013-09-11T20:10:52.950 に答える
2

これを直接行うことはできません。レポートパラメータを使用して、レポートのマージンを制御してみてください。

于 2010-01-18T13:50:15.097 に答える
2

まあ、私はちょうどこの同様の問題を抱えていました。余白が0のレポートが必要でした。そうしないと、ブラストされたものが2ページから6ページになり、データが垂直方向に分割されるため、ページが意味をなさなくなりました。印刷するには、印刷設定で手動で設定する必要がありましたが、このレポートの最終目標は、PDFとして顧客に電子メールで送信することです。マージンを手動で設定してエクスポートした場合でも、6ページに分割されて爆破されたと思います。すべてを危険にさらして、最後の最高の努力をして修正しました。この爆破されたもの-ワードパッドで.rdlcを開き、奇跡の奇跡、1inなどを見つけました。これらのバガーをすべて0inに設定し、保存し、.netコード(2008)を実行し、Print Setupを開き、hallelujah 、私の0in設定がありました。今、最高のテストのために-私はそれをPDFとしてエクスポートし、ファイルに行き、そして銃の息子です!甘い。きれいにレイアウトされた2つの鮮明なページがありました。すべてが宇宙で有益でした、私は落ち着いて、midicloriansが私を通して流れるようにしました、そしてそれがいくつかによってめったに実現されないほどまれな瞬間にただ日光浴をしました-簡単な修正。

于 2011-03-01T21:09:26.360 に答える
1

レポートビューアコントロールの一部であるReportPageSettingsクラスを確認してください。これらの値を設定すると、必要なものが得られるはずです。

于 2010-01-18T13:45:10.153 に答える
0

その他の設定;

        Dim myPageSettings As New PageSettings()
        myPageSettings.Margins = New Margins(0, 0, 0 , 0)
        Dim paperSize As PaperSize = New PaperSize()
        'ToDo: update with the PaperKind 
        'that your printer uses
        paperSize.RawKind = PaperKind.A4
        ' paperSize.RawKind = System.Drawing.Printing.PaperKind.A4
        myPageSettings.PaperSize = paperSize
        'False for "Portrait"
        'True for "Landscape"
        myPageSettings.Landscape = False

        'report viewer now sets your margins
        ReportViewer1.SetPageSettings(myPageSettings)
于 2015-12-25T08:26:52.823 に答える
0

このコードは私と一緒に動作します、mm単位の数字

Dim newPageSettings As New System.Drawing.Printing.PageSettings
newPageSettings.Margins = New System.Drawing.Printing.Margins(50, 100, 45, 45)
ReportViewer1.SetPageSettings(newPageSettings)

私はvb.net2013を使用しています

于 2021-08-11T22:02:25.543 に答える