Ich habe eine Reportviewer und Drucktaste aktiviert haben, aber nicht aktiviert toolbar.Wenn Benutzer drücken Sie die Eingabetaste reportviewer sollte beginnen zu drucken.Es sollte auch nicht druckendialog.Was Code sollte ich in KeyPres schreiben Veranstaltung ?ReportViewer Drucken Wenn gedrückt "Enter" in C#
Antwort
This ist, was für mich funktionierte, wenn ich programmatisch von ReportViewer drucken wollte.
Sie sollten den PrintController auf StandardPrintController setzen, um den Druckdialog zu unterdrücken, z.
printDoc.PrintController = new System.Drawing.Printing.StandardPrintController();
Hier ist mein Code für das manuelle Drucken in Report Viewer. Es ist jedoch in VB.NET. Es verarbeitet das Druckereignis Ihres PrintDocument-Objekts.
Dim m_pageSettings As PageSettings 'Stores page settings for printout
Dim m_currentPage As Integer 'Used for index of pages
Private m_pages As New List(Of Stream)() 'Stores a stream for each pages
'Event fires when printDocument starts printing - reset page index to zero
Private Sub PrintDocument1_BeginPrint(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintEventArgs) Handles PrintDocument1.BeginPrint
m_currentPage = 0
End Sub
'Function that prints all the pages included in the report
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
Dim pageToPrint As Stream = m_pages(m_currentPage)
pageToPrint.Position = 0
Dim pageMetaFile As Metafile = New Metafile(pageToPrint) 'create an image(metafile) of the report page
Using (pageMetaFile)
'Create a rectangle the size of our report - include margins
' Dim adjustedRect As Rectangle = New Rectangle(_
' e.PageBounds.Left - CType(e.PageSettings.HardMarginX, Integer), _
' e.PageBounds.Top - CType(e.PageSettings.HardMarginY, Integer), _
' e.PageBounds.Width, _
' e.PageBounds.Height)
Dim adjustedRect As Rectangle = New Rectangle(_
e.PageBounds.Left, _
e.PageBounds.Top, _
e.PageBounds.Width, _
e.PageBounds.Height)
e.Graphics.FillRectangle(Brushes.White, adjustedRect) 'Fill rectangle with WHITE background
e.Graphics.DrawImage(pageMetaFile, adjustedRect) 'Draw report in rectangle - this will be printed
m_currentPage = m_currentPage + 1
e.HasMorePages = m_currentPage < m_pages.Count 'If more pages are left - keep processing
End Using
End Sub
'Event fires when PrintDocument queries for PageSettings. Return a copy of m_pagesettings.
Private Sub PrintDocument1_QueryPageSettings(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.QueryPageSettingsEventArgs) Handles PrintDocument1.QueryPageSettings
e.PageSettings = CType(m_pageSettings.Clone, PageSettings)
End Sub
'Render the report in a EMF - This function creates metafiles(images) of each page in the report
Private Sub RenderAllLocalReportPages(ByVal localReport As LocalReport)
Dim deviceInfo As String = CreateEMFDeviceInfo() 'Enhanced MetaFile
Dim warnings As Warning() = Nothing
localReport.Render("IMAGE", deviceInfo, AddressOf LocalReportCreateStreamCallback, warnings)
End Sub
'Callback function used with RenderAllLocalReportPages
Private Function LocalReportCreateStreamCallback(ByVal name As String, ByVal extension As String, ByVal encoding As Encoding, ByVal mimeType As String, ByVal willSeek As Boolean) As Stream
Dim stream As New MemoryStream()
m_pages.Add(stream)
Return stream
End Function
Private Function CreateEMFDeviceInfo() As String
Dim paperSize As PaperSize = m_pageSettings.PaperSize
Dim margins As Margins = m_pageSettings.Margins
'The device info string defines the page range to print as well as the size of the page.
'A start and end page of 0 means generate all pages.
Return String.Format(CultureInfo.InvariantCulture, "<DeviceInfo><OutputFormat>emf</OutputFormat><StartPage>0</StartPage><EndPage>0</EndPage><MarginTop>{0}</MarginTop><MarginLeft>{1}</MarginLeft><MarginRight>{2}</MarginRight><MarginBottom>{3}</MarginBottom><PageHeight>{4}</PageHeight><PageWidth>{5}</PageWidth></DeviceInfo>", ToInches(margins.Top), ToInches(margins.Left), ToInches(margins.Right), ToInches(margins.Bottom), ToInches(paperSize.Height), ToInches(paperSize.Width))
End Function
'Convert report printing size to inches
Private Shared Function ToInches(ByVal hundrethsOfInch As Integer) As String
Dim inches As Double = hundrethsOfInch/100.0R
Return inches.ToString(CultureInfo.InvariantCulture) & "in"
End Function
Ich benutze benutzerdefinierte Berichterstattung für mein Projekt. Benutzerdefiniert bezeichnet den Bericht, der mit dem e.Graphics.DrawString-Typcode erstellt wurde. So
ich machte den Bericht (Codierung) im Standarddruckvorgang von PrintDocument
Hier ist die das Printdocument-Tool ist. Ziehen Sie es auf den Bildschirm und legen Sie es dort ab. Doppelklicken Sie dann darauf, um den Ereignishandler zu erstellen.
Der Code hinter Ereignishandler von PrintDocoument
ist:
private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
Image image = Properties.Resources.New_Header;
Font font = new Font("Arial", 7, FontStyle.Bold);
Font font2 = new Font("Arial", 7, FontStyle.Regular);
float fontHeight = font2.GetHeight();
e.Graphics.DrawImage(image, 20, 5, 260, 130);
e.Graphics.DrawString("Date:" + DateTime.Now.ToShortDateString(), new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(20, 160));
e.Graphics.DrawString("Invoice#: "+InvoiceNoTextBox.Text, new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(160, 160));
e.Graphics.DrawString("Client Name: " + ClientNameTextBox.Text.Trim(), new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(20, 180));
e.Graphics.DrawString("______________________________",
new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(20, 190));
e.Graphics.DrawString("Product", new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(23, 220));
e.Graphics.DrawString("U/Price", new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(170, 220));
e.Graphics.DrawString("Qty", new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(210, 220));
e.Graphics.DrawString("Total", new Font("Arial", 7, FontStyle.Bold), Brushes.Black, new Point(240, 220));
e.Graphics.DrawString("______________________________",
new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(20, 220));
int CurrentX = 25;
int CurrentY = 230;
int offset = 20;
foreach (var i in shoppingCart)
{
e.Graphics.DrawString(i.ItemName, new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(CurrentX, CurrentY+offset));
e.Graphics.DrawString(i.UnitPrice.ToString(), new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(180, CurrentY + offset));
e.Graphics.DrawString(i.Quantity.ToString(), new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(215, CurrentY + offset));
e.Graphics.DrawString(i.TotalPrice.ToString(), new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(240, CurrentY + offset));
offset = offset + (int)fontHeight + 5;
}
CurrentY = CurrentY+offset;
e.Graphics.DrawString("______________________________",
new Font("Arial", 12, FontStyle.Regular), Brushes.Black, new Point(20, CurrentY-5));
e.Graphics.DrawString("Total Amt: Rs." + TotalAmountTextBox.Text, new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(180, CurrentY + 35));
e.Graphics.DrawString("Discount%: " + DiscountTextBox.Text.Trim()+"%", new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(180, CurrentY + 50));
e.Graphics.DrawString("Discount: Rs." + JustDiscountTextBox.Text.Trim(), new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(180, CurrentY + 65));
e.Graphics.DrawString("Grand Total: Rs." + TotalToPayTextBox.Text, new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(180, CurrentY + 80));
e.Graphics.DrawString("Advance: Rs." + AdvancePaymentTextBox.Text.Trim(), new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(20, CurrentY + 95));
e.Graphics.DrawString("Cash: Rs." + givenCash.Text.Trim(), new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(180, CurrentY + 95));
e.Graphics.DrawString("Pending: Rs." + PendingPaymentTextBox.Text, new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(20, CurrentY + 110));
e.Graphics.DrawString("Return: Rs." + ReturnTextBox.Text, new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(180, CurrentY + 110));
e.Graphics.DrawString("Software Provided By Muhammad Abbas", new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(20, CurrentY + 125));
e.Graphics.DrawString("Mob:0304-9550308", new Font("Arial", 7, FontStyle.Regular), Brushes.Black, new Point(20, CurrentY + 140));
}
private void PrintPreviewButton_Click(object sender, EventArgs e)
{
try
{
printPreviewDialog1.Document = printDocument1;
printPreviewDialog1.ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
und schließlich die Antwort von Ihnen Frage. Verwenden Sie dies in Ihrem Formular KeyDown
Ereignis.
private void Form_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
printDocument1.Print();
}
}
Es wird direkt drucken Ihre Quittung von Ihrem Drucker.
- 1. eine Schleife brechen, wenn Enter gedrückt wird
- 2. Drucken eines ReportViewer ohne Vorschau
- 3. Jsf Enter-Taste gedrückt Problem
- 4. C: Lesen von stdin, bis Enter zweimal gedrückt wird
- 5. Javascript: Wie man macht: wenn Benutzer Enter-Taste, Shift + Enter gedrückt für contenteditable
- 6. Programmgesteuertes Exportieren von C# reportviewer
- 7. Open Bootstrap Dropdown, wenn die ENTER-Taste in Eingabe gedrückt wird
- 8. Wie simuliere Tab und Enter-Taste, wenn Eingabe gedrückt wird, vorzugsweise in JavaScript
- 9. Mit While-Schleife für Benutzereingabe, bis Enter gedrückt wird
- 10. Reportviewer Report Filter - Check Date Wenn Null
- 11. Wie senden Sie die ENTER-Taste gedrückt, um ansible erwartet?
- 12. Strg + Enter jQuery in TEXTAREA-
- 13. Get Text, wenn Enter in einem Textfeld in WxPython
- 14. Laden DataTable in ReportViewer
- 15. UIButton flackert wenn gedrückt
- 16. So verschieben Sie den Fokus auf das nächste Feld, wenn Enter gedrückt wird
- 17. UITableView Wenn Taste gedrückt
- 18. Wie neue Zeile verhindern, wenn enter in reagieren-native
- 19. Taste Ton wenn gedrückt
- 20. Tastatureingabe zögert, wenn gedrückt?
- 21. ENTER in fpdf wenn $ _POST Funktion .. ln()?
- 22. Gruppenausdrücke in Reportviewer
- 23. Drucken in C# Konsolenfenster
- 24. C# console: Wie ReadLine ohne die Notwendigkeit, [Enter] drücken
- 25. bearbeiten Kontrolleinfangstelle Enter-Taste
- 26. den Wert des eingegebenen Textes erhalten, wenn Enter-Taste
- 27. Formularzuführung in C# Drucken
- 28. Tab schließen/Weiterleiten, wenn Abbrechen gedrückt wird?
- 29. Drucken eines 2D-Arrays in C
- 30. ReportViewer Scroll-Probleme in IE
oki ... ich werde überprüfen ... Danke –
haben Sie Beispielcode dafür –