![]() |
|
[سؤال] طريقة طباعة تقرير ReportViewer مباشرة - نسخة قابلة للطباعة +- منتدى فيجوال بيسك لكل العرب | منتدى المبرمجين العرب (http://vb4arb.com/vb) +-- قسم : قسم قواعد البيانات (http://vb4arb.com/vb/forumdisplay.php?fid=40) +--- قسم : قسم اسئلة التقارير والطباعة تحت بيئة الـ.NET (http://vb4arb.com/vb/forumdisplay.php?fid=71) +--- الموضوع : [سؤال] طريقة طباعة تقرير ReportViewer مباشرة (/showthread.php?tid=13222) |
طريقة طباعة تقرير ReportViewer مباشرة - عبد الله - 13-09-15 السلام عليكم ورحمة الله وبركاته كما هو واضح من العنوان أحضرت البيانات وعرضت التقرير على النموذج ولا يوجد مشكلة في هذا ولكن أردت طباعة التقرير مباشرة دون ظهور النموذج. RE: طريقة طباعة تقرير ReportViewer مباشرة - أبو عمر - 13-09-15 يلزممك تسوي Export للتقرير اولا ثم الطباعة أو تظهر شاشة الطابعات ReportViewer1.PrintDialog() او تطلع على هذا https://msdn.microsoft.com/en-us/library/vstudio/ms252091(v=vs.100).aspx بالتوفيق RE: طريقة طباعة تقرير ReportViewer مباشرة - عبد الله - 14-09-15 طيب أخي ابو عمر ، بخصوص الرابط فصعب علي فهمه لربما لو تبسط لي المسألة بخصوص Export أما عن أمر ReportViewer1.PrintDialog() فجربه ولم يعمل معي، يعني ما عمل اي اكشن في النموذج !!! RE: طريقة طباعة تقرير ReportViewer مباشرة - أبو عمر - 14-09-15 مرحبا عبدالله بالنسبة للرابط يا اخي اجدني عاجز عن تبسيطه لك " سامحني " من المعضلات توضيح الواضحات. لان كل اللي فيه سوي كذا كذا كذا بالنسبة لمشكلتك مع الاداة ما تسوي اي ايفنت اغلب الظن انها اداة اقدم من اصدار الفريم ورك اللي عندك او سوي بروجكت جديد فقط فورم واداة علاض التقارير وارفعه يبدو لي انك شغال على فيجوال احدث من 2010 لان زي هذي المشاكل ما ظهرت الا في 2012 و 2013 -2015
RE: طريقة طباعة تقرير ReportViewer مباشرة - الطالب - 15-09-15 سلام اشكر استاذنا ابو عمر فقد دلني على رابط مفيد من ناحيت الطباعه بدون عرض التقرير، وهذه نتيجه المحاوله في تعديله فقد عدلت فيه ليسهل التعامل معه اول انش كلاس وضع هذا الكود فيه كود : Imports System.IOوهذه طريقت التعامل معه كود : Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Clickتمت التجربه بنجاح موفقين RE: طريقة طباعة تقرير ReportViewer مباشرة - hesham77a - 23-01-17 (15-09-15, 01:56 AM)الطالب كتب : سلام شكرا لك استاذ عمر والطالب لقد نجحت معي الطريقة RE: طريقة طباعة تقرير ReportViewer مباشرة - hesham77a - 23-01-17 هذا كودي بعد التعديل عليه قليلا في الكلاس Imports System.IO Imports System.Text
Imports System.Drawing.Imaging
Imports System.Drawing.Printing
Imports Microsoft.Reporting.WinForms
Public Class MyLocalReport
Implements IDisposable
Private report As New LocalReport()
Private document As New PrintDocument()
Private m_currentPageIndex As Integer
Private m_streams As IList(Of Stream)
Public Sub Print(Optional ByVal printerSetting As PrinterSettings = Nothing)
If printerSetting IsNot Nothing Then
document.PrinterSettings = printerSetting
End If
Export(report)
If m_streams Is Nothing OrElse m_streams.Count = 0 Then
Throw New Exception("Error: no stream to print.")
End If
If Not document.PrinterSettings.IsValid Then
Throw New Exception("Error: cannot find the default printer.")
Else
AddHandler document.PrintPage, AddressOf PrintPage
m_currentPageIndex = 0
document.Print()
End If
End Sub
' Routine to provide to the report renderer, in order to
' save an image for each page of the report.
Private Function CreateStream(ByVal name As String, ByVal fileNameExtension As String, ByVal encoding As Encoding, ByVal mimeType As String, ByVal willSeek As Boolean) As Stream
Dim stream As Stream = New MemoryStream()
m_streams.Add(stream)
Return stream
End Function
' Export the given report as an EMF (Enhanced Metafile) file.
Private Sub Export(ByVal report As LocalReport)
Dim deviceInfo As String =
"<DeviceInfo>" & _
" <OutputFormat>EMF</OutputFormat>" + _
" <PageWidth>8.27in</PageWidth>" + _
" <PageHeight>11.69in</PageHeight>" + _
" <MarginTop>0.3937in</MarginTop>" + _
" <MarginLeft>0.3937in</MarginLeft>" + _
" <MarginRight>0.3937in</MarginRight>" + _
" <MarginBottom>0.7874in</MarginBottom>" + _
"</DeviceInfo>"
Dim warnings As Warning() = Nothing
m_streams = New List(Of Stream)()
report.Render("Image", deviceInfo, AddressOf CreateStream, warnings)
For Each stream As Stream In m_streams
stream.Position = 0
Next
End Sub
' Handler for PrintPageEvents
Private Sub PrintPage(ByVal sender As Object, ByVal ev As PrintPageEventArgs)
Dim pageImage As New Metafile(m_streams(m_currentPageIndex))
' Adjust rectangular area with printer margins.
Dim adjustedRect As New Rectangle(ev.PageBounds.Left - CInt(ev.PageSettings.HardMarginX), _
ev.PageBounds.Top - CInt(ev.PageSettings.HardMarginY), _
ev.PageBounds.Width, _
ev.PageBounds.Height)
' Draw a white background for the report
ev.Graphics.FillRectangle(Brushes.White, adjustedRect)
' Draw the report content
ev.Graphics.DrawImage(pageImage, adjustedRect)
' Prepare for the next page. Make sure we haven't hit the end.
m_currentPageIndex += 1
ev.HasMorePages = (m_currentPageIndex < m_streams.Count)
End Sub
Private _ReportName As String
Public Property ReportName As String
Get
Return _ReportName
End Get
Set(ByVal value As String)
_ReportName = value
report.ReportEmbeddedResource = Me.GetType().Namespace & "." & _ReportName
End Set
End Property
Private _ReportPath As String
Public Property ReportPath As String
Get
Return _ReportPath
End Get
Set(ByVal value As String)
_ReportPath = value
report.ReportPath = _ReportPath
End Set
End Property
Private _DataSources As ReportDataSource
Public Property DataSources As ReportDataSource
Get
Return _DataSources
End Get
Set(ByVal value As ReportDataSource)
_DataSources = value
report.DataSources.Clear()
report.DataSources.Add(value)
End Set
End Property
Public Sub SetParameters(ByVal parameter As ReportParameter)
report.SetParameters(parameter)
End Sub
Public Sub Dispose() Implements IDisposable.Dispose
If m_streams IsNot Nothing Then
For Each stream As Stream In m_streams
stream.Close()
Next
m_streams = Nothing
End If
End Sub
End Class
وعند طلب الكلاس Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click Dim myReport As New MyLocalReport
'' تحديد ملف تقرير خارجي
'myReport.ReportPath = "C:\Report1.rdlc"
' تحديد ملف مدمج في المشروع
myReport.ReportName = "Report1.rdlc"
' تحديد مصدر البيانات اذا كان التقرير مصمم على اساسها
myReport.DataSources = New ReportDataSource("DataSet1", CType(WosysDBDataSet.Main, DataTable))
' الطباعه على الطابعه الافتراضيه
myReport.Print()
End Sub
RE: طريقة طباعة تقرير ReportViewer مباشرة - fefooo - 13-11-17 لدي مشكلة غريبة Microsoft.Reporting.WinForms.LocalProcessingException was unhandled Message="An error occurred during local report processing." Source="Microsoft.ReportViewer.WinForms" StackTrace: at Microsoft.Reporting.WinForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, CreateAndRegisterStream createStreamCallback, Warning[]& warnings) at Microsoft.Reporting.WinForms.LocalReport.Render(String format, String deviceInfo, CreateStreamCallback createStream, Warning[]& warnings) at PPERP.MyLocalReport.Export(LocalReport report) in C:\Users\feras\Documents\Visual Studio 2008\PPERP\PPERP\SALES\Class1.vb:line 94 at PPERP.MyLocalReport.Print(PrinterSettings printerSetting) in C:\Users\feras\Documents\Visual Studio 2008\PPERP\PPERP\SALES\Class1.vb:line 41 at PPERP.INVOICE_PRINT.Button1_Click(Object sender, EventArgs e) in C:\Users\feras\Documents\Visual Studio 2008\PPERP\PPERP\SALES\INVOICE_PRINT.vb:line 54 at System.Windows.Forms.Control.OnClick(EventArgs e) at System.Windows.Forms.Button.OnClick(EventArgs e) at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent) at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks) at System.Windows.Forms.Control.WndProc(Message& m) at System.Windows.Forms.ButtonBase.WndProc(Message& m) at System.Windows.Forms.Button.WndProc(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m) at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m) at System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam) at System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg) at System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(Int32 dwComponentID, Int32 reason, Int32 pvLoopData) at System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context) at System.Windows.Forms.Application.Run(ApplicationContext context) at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel() at Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine) at PPERP.My.MyApplication.Main(String[] Args) in 17d14f5c-a337-4978-8281-53493378c1071.vb:line 81 at System.AppDomain._nExecuteAssembly(Assembly assembly, String[] args) at System.AppDomain.nExecuteAssembly(Assembly assembly, String[] args) at System.Runtime.Hosting.ManifestRunner.Run(Boolean checkAptModel) at System.Runtime.Hosting.ManifestRunner.ExecuteAsAssembly() at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext, String[] activationCustomData) at System.Runtime.Hosting.ApplicationActivator.CreateInstance(ActivationContext activationContext) at System.Activator.CreateInstance(ActivationContext activationContext) at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssemblyDebugInZone() at System.Threading.ThreadHelper.ThreadStart_Context(Object state) at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state) at System.Threading.ThreadHelper.ThreadStart() InnerException: Microsoft.ReportingServices.ReportProcessing.ProcessingAbortedException DefaultNamespacePrefix="msrs" DefaultServerErrorNamespace="http://www.microsoft.com/sql/reportingservices" ErrorNotVisibleOnRemoteBrowsers="For more information about this error navigate to the report server on the local server machine, or enable remote errors" ExceptionLevelHelpLink="http://go.microsoft.com/fwlink/?LinkId=20476&EvtSrc=Microsoft.ReportingServices.Diagnostics.Utilities.ErrorStrings&EvtID=rsProcessingAborted&ProdName=Microsoft%20SQL%20Server%20Reporting%20Services&ProdVer=9.0.30729.4402" Message="An error has occurred during report processing." SkipTopLevelMessage=False Source="Microsoft.ReportViewer.Common" StackTrace: at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ProcessingContext.AbortHelper.ThrowAbortException(Int32 reportUniqueName) at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ProcessingContext.CheckAndThrowIfAborted() at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.Merge.Process(ParameterInfoCollection parameters, Boolean mergeTran) at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ProcessReport(Report report, ProcessingContext pc, ProcessingContext context) at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.ProcessReport(Report report, ProcessingContext pc, Boolean snapshotProcessing, Boolean processWithCachedData, GetReportChunk getChunkCallback, ErrorContext errorContext, DateTime executionTime, CreateReportChunk cacheDataCallback, ProcessingContext& context) at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderReport(IRenderingExtension renderer, DateTime executionTimeStamp, GetReportChunk getCompiledDefinitionCallback, ProcessingContext pc, RenderingContext rc, CreateReportChunk cacheDataCallback, Boolean& dataCached) at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RenderReport(IRenderingExtension renderer, DateTime executionTimeStamp, GetReportChunk getCompiledDefinitionCallback, ProcessingContext pc, RenderingContext rc) at Microsoft.Reporting.LocalService.RenderWithDataCache(PreviewItemContext itemContext, ParameterInfoCollection reportParameters, IEnumerable dataSources, DatasourceCredentialsCollection credentials, IRenderingExtension renderer, ReportProcessing repProc, CreateAndRegisterStream createStreamCallback, ReportRuntimeSetup runtimeSetup) at Microsoft.Reporting.LocalService.Render(PreviewItemContext itemContext, Boolean allowInternalRenderers, ParameterInfoCollection reportParameters, IEnumerable dataSources, DatasourceCredentialsCollection credentials, CreateAndRegisterStream createStreamCallback, ReportRuntimeSetup runtimeSetup, ProcessingMessageList& warnings) at Microsoft.Reporting.WinForms.LocalReport.InternalRender(String format, Boolean allowInternalRenderers, String deviceInfo, CreateAndRegisterStream createStreamCallback, Warning[]& warnings) InnerException: Message="A data source instance has not been supplied for the data source "PPERPDBDataSet_SALE_ACCOUNT"." Source="Microsoft.ReportViewer.Common" StackTrace: at Microsoft.Reporting.DataSetProcessingExtension.GetReader() at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RuntimeControlDataSetNode.RunDataSetQuery() at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RuntimeReportDataSetNode.FirstPassInit() at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RuntimeDataSetNode.FirstPassProcess(Boolean& closeConnWhenFinish) at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RuntimeReportDataSetNode.Process() at Microsoft.ReportingServices.ReportProcessing.ReportProcessing.RuntimeDataSetNode.ProcessConcurrent(Object threadSet) InnerException: RE: طريقة طباعة تقرير ReportViewer مباشرة - altho8 - 05-05-18 لم تعمل معي اخواني الاعزاء يطلع الخطاء في احدى سطور الكلاس RE: طريقة طباعة تقرير ReportViewer مباشرة - Badr omar - 18-05-18 السلام عليكم ابو عمر أرجو المساعدة عند طباعة تقارير في برنامج محاسبي لا يحولني علي الطابعة وإنما يظهر لي مربع حوار كالتالي ( جرت محاولة القراءة من الذاكرة المحمية او الكتابة اليها . ويعد ذلك الي ان الذاكرة الاخرى تألفه ) وعندما أغلق مربع الحوار يتم الطباعة مباشرة ، واعتقد المشكلة في الكريستال ريبورت |