نمایش نتایج 1 تا 23 از 23

نام تاپیک: مشكل با پرينت گرفتن

  1. #1

    مشكل با پرينت گرفتن

    سلام دوستان خوبم
    من در فرمم يك ديتا گريد دارم كه با اسكرول بار اطلاعاتش رو كاربر مي تونه كامل ببينه و در پايين ديتا گريد با دستورات گرافيكي نمودار كشيده ام ولي براي پرينت گرفتن از اين صفحه مشكل دارم .
    البته كد پرينت از ديتا گريد رو دارم ولي مشكل اينجاست كه از نمودار پرينت نميگيره و اگر بخوام از خود فرم پرينت بگيرم چون ديتا گريدم اسكرول بار داره تمام اطلاعات رو پرينت نمي گيره
    چه جوري مي تونم جوري پرينت بگيرم كه هم ديتا گريدم با تمام اطلاعاتش و هم نمودارم به طور كامل پرينت گرفته بشن؟

  2. #2

    نقل قول: مشكل با پرينت گرفتن

    من الان پرينت گرفتن با دستورات PrintDocument1 رو امتحان كردم و ديدم كه تمام فرمم رو پرينت مي گيره ولي نموداري كه با دستورات گرافيكي درستش كردم رو در printpreviwe نشون نمي ده
    آيا طرز پرينت گرفتن از اشكالي كه با دستورات گرافيكي درست مي شن فرق داره ؟؟؟

  3. #3
    کاربر دائمی آواتار ALI TT
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    C:\WINDOWS\system32
    پست
    351

    نقل قول: مشكل با پرينت گرفتن

    سلام دوست عزیز ، برای این کار می تونی اون کدی که باهاش نمودار رو توی دیتا گرید نمایش می دی در رویداد پرینت بنویسی :

        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

    e.Graphics و ...

    End Sub


    منظورم از سه نقطه همون توابعی هستش که باهاشون میشه یه نمودار رسم کرد

  4. #4

    نقل قول: مشكل با پرينت گرفتن

    ممنونم از لطفت دوست عزيز ولي ميشه يك مثال بزني؟
    اين يك ذره از كد دستورات گرافيكي هست كه من استفاده كردم ....حالا اين كد رو كجا بايد بگذارم؟


    Dim graph1 As Graphics
    graph1 = Me.CreateGraphics()
    Dim brush1 As Brush
    brush1 = System.Drawing.Brushes.Black
    Dim rec As New Rectangle
    rec.X = 45
    rec.Y = 250
    rec.Width = 330
    rec.Height = 130
    Dim pen1 As Pen
    pen1 = New Pen(Color.Black, 1)
    graph1.DrawRectangle(pen1, rec)
    For i As Integer = 75 To 360 Step 30
    graph1.DrawLine(pen1, i, 250, i, 380)
    Next
    For i As Integer = 276 To 370 Step 26
    pen1.DashStyle = Drawing2D.DashStyle.Dash
    graph1.DrawLine(pen1, 45, i, 375, i)
    Next
    Dim f As Font
    f = New System.Drawing.Font("arial", 10, FontStyle.Regular)
    Dim d As Brush
    d = System.Drawing.Brushes.Black
    graph1.DrawString("81", f, d, 337, 389.5)
    graph1.DrawString("82", f, d, 307, 389.5)
    graph1.DrawString("83", f, d, 277, 389.5)
    graph1.DrawString("84", f, d, 247, 389.5)
    graph1.DrawString("85", f, d, 217, 389.5)
    graph1.DrawString("86", f, d, 187, 389.5)
    graph1.DrawString("87", f, d, 157, 389.5)
    graph1.DrawString("88", f, d, 127, 389.5)
    graph1.DrawString("89", f, d, 97, 389.5)
    graph1.DrawString("90", f, d, 67, 389.5)

  5. #5
    کاربر دائمی آواتار ALI TT
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    C:\WINDOWS\system32
    پست
    351

    نقل قول: مشكل با پرينت گرفتن

        Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage

    Dim graph1 As Graphics
    graph1 = Me.CreateGraphics()
    Dim brush1 As Brush
    brush1 = System.Drawing.Brushes.Black
    Dim rec As New Rectangle
    rec.X = 45
    rec.Y = 250
    rec.Width = 330
    rec.Height = 130
    Dim pen1 As Pen
    pen1 = New Pen(Color.Black, 1)
    graph1.DrawRectangle(pen1, rec)
    For i As Integer = 75 To 360 Step 30
    graph1.DrawLine(pen1, i, 250, i, 380)
    Next
    For i As Integer = 276 To 370 Step 26
    pen1.DashStyle = Drawing2D.DashStyle.Dash
    graph1.DrawLine(pen1, 45, i, 375, i)
    Next
    Dim f As Font
    f = New System.Drawing.Font("arial", 10, FontStyle.Regular)
    Dim d As Brush
    d = System.Drawing.Brushes.Black
    graph1.DrawString("81", f, d, 337, 389.5)
    graph1.DrawString("82", f, d, 307, 389.5)
    graph1.DrawString("83", f, d, 277, 389.5)
    graph1.DrawString("84", f, d, 247, 389.5)
    graph1.DrawString("85", f, d, 217, 389.5)
    graph1.DrawString("86", f, d, 187, 389.5)
    graph1.DrawString("87", f, d, 157, 389.5)
    graph1.DrawString("88", f, d, 127, 389.5)
    graph1.DrawString("89", f, d, 97, 389.5)
    graph1.DrawString("90", f, d, 67, 389.5)

    End Sub


    توی رویدا پرینت ، پرینت داکیومنت .

    بعد باید یه جوری تنظیم کنی که اول تمام اطلاعات توی دیتا گرید رو پرینت بگیره و بعد بیاد سراغ دستورات گرافیکی .
    موفق باشی

  6. #6
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1387
    پست
    47

    نقل قول: مشكل با پرينت گرفتن

    سلام
    من می خوام از دیتا گریدم پرینت بگیرم چون شما این کارو کردین میشه منو راهنمائی کنید که باید چی کار کنم.
    ممنون

  7. #7
    کاربر دائمی آواتار Zaparo
    تاریخ عضویت
    خرداد 1387
    محل زندگی
    this->this
    پست
    116

    نقل قول: مشكل با پرينت گرفتن


  8. #8

    نقل قول: مشكل با پرينت گرفتن

    ممنونم از راهنماييت ali tt جان
    من اين راه رو هم امتحان مي كنم اگر جواب نگرفتم باز مي آم و مزاحمتون مي شم

    Meysamkh جان اگر با راهنمايي Zaparo جواب نگرفتي بگو تا كدش رو برات قرار بدم ..... البته من خودم هم كدش رو از جايي برداشتم و خودم ننوشتمش

  9. #9

    نقل قول: مشكل با پرينت گرفتن

    من اون كاري كه شما گفتيد رو انجام دادم ولي باز هم جواب نداد و توي print previwe فقط يك صفحه خالي نشون مي ده

    كد مربوط به دكمه پرينت

    Private Sub Button16_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button16.Click
    Dim PrintPreviewDialog1 As New PrintPreviewDialog
    PrintPreviewDialog1.Document = PrintDocument1
    PrintPreviewDialog1.Show()
    End Sub


    اين هم كد مربوط به PrintDocument1 هست

    Dim graph1 As Graphics
    graph1 = Me.CreateGraphics()
    Dim brush1 As Brush
    brush1 = System.Drawing.Brushes.Black
    Dim rec As New Rectangle
    rec.X = 45
    rec.Y = 250
    rec.Width = 330
    rec.Height = 130
    Dim pen1 As Pen
    pen1 = New Pen(Color.Black, 1)
    graph1.DrawRectangle(pen1, rec)
    For i As Integer = 75 To 360 Step 30
    graph1.DrawLine(pen1, i, 250, i, 380)
    Next
    For i As Integer = 276 To 370 Step 26
    pen1.DashStyle = Drawing2D.DashStyle.Dash
    graph1.DrawLine(pen1, 45, i, 375, i)
    Next
    Dim f As Font
    f = New System.Drawing.Font("arial", 10, FontStyle.Regular)
    Dim d As Brush
    d = System.Drawing.Brushes.Black
    graph1.DrawString("81", f, d, 337, 389.5)
    graph1.DrawString("82", f, d, 307, 389.5)
    graph1.DrawString("83", f, d, 277, 389.5)
    graph1.DrawString("84", f, d, 247, 389.5)
    graph1.DrawString("85", f, d, 217, 389.5)
    graph1.DrawString("86", f, d, 187, 389.5)
    graph1.DrawString("87", f, d, 157, 389.5)
    graph1.DrawString("88", f, d, 127, 389.5)
    graph1.DrawString("89", f, d, 97, 389.5)
    graph1.DrawString("90", f, d, 67, 389.5)
    End Sub


    به جاي اينكه نمودار رو در print previwe نشون بده اين نمودار رو در روي صفحه فرمم نشون ميده

  10. #10

    نقل قول: مشكل با پرينت گرفتن

    يعني هيشكي نمي تونه كمكم كنه؟ هيشكي نميدونه چه جوري مي تونم از دستورات گرافيكي اي كه در برنامم به كار بردم پرينت بگيرم؟؟؟

  11. #11

    نقل قول: مشكل با پرينت گرفتن

    من هنوز مشکلم حل نشده

  12. #12

    نقل قول: مشكل با پرينت گرفتن

    یعنی واقعا هیچکی نمی دونه چه جوری این مشکل حل می شه؟
    من نمی تونم از دستورات گرافیکی که استفاده کردم پرینت بگیرم چه کار باید بکنم؟

  13. #13

    نقل قول: مشكل با پرينت گرفتن

    يك راه حل بهم پيشنهاد شده كه مي تونم دستورات گرافيكي خودم رو به صورت bitmap در بيارم و bitmap رو به پرينتر بفرستم
    حالا كسي مي دونه من اون دستورات را چه جوري مي تونم تبديل به bitmap كنم؟

  14. #14

    نقل قول: مشكل با پرينت گرفتن

    لطفا يكي به من بگه چه جوري مي تونم اين دستورات رو به پرينتر بفرستم

    Public Sub nemoodar()
    clear()
    Dim graph1 As Graphics
    graph1 = Me.CreateGraphics()
    Dim brush1 As Brush
    brush1 = System.Drawing.Brushes.Black
    Dim rec As New Rectangle
    rec.X = 45
    rec.Y = 250
    rec.Width = 330
    rec.Height = 130
    Dim pen1 As Pen
    pen1 = New Pen(Color.Black, 1)
    graph1.DrawRectangle(pen1, rec)
    For i As Integer = 75 To 360 Step 30
    graph1.DrawLine(pen1, i, 250, i, 380)
    Next
    For i As Integer = 276 To 370 Step 26
    pen1.DashStyle = Drawing2D.DashStyle.Dash
    graph1.DrawLine(pen1, 45, i, 375, i)
    Next
    Dim f As Font
    f = New System.Drawing.Font("arial", 10, FontStyle.Regular)
    Dim b As Brush
    b = System.Drawing.Brushes.Black
    graph1.DrawString("81", f, b, 337, 389.5)
    graph1.DrawString("82", f, b, 307, 389.5)
    graph1.DrawString("83", f, b, 277, 389.5)
    graph1.DrawString("84", f, b, 247, 389.5)
    graph1.DrawString("85", f, b, 217, 389.5)
    graph1.DrawString("86", f, b, 187, 389.5)
    graph1.DrawString("87", f, b, 157, 389.5)
    graph1.DrawString("88", f, b, 127, 389.5)
    graph1.DrawString("89", f, b, 97, 389.5)
    graph1.DrawString("90", f, b, 67, 389.5)
    Dim max As Double = 0
    Dim min As Double = 10000
    For i As Integer = 2 To 11
    If DataGridView1.Rows(2).Cells(i).Value > max Then
    max = DataGridView1.Rows(2).Cells(i).Value
    End If
    If DataGridView1.Rows(2).Cells(i).Value < min Then
    min = DataGridView1.Rows(2).Cells(i).Value
    End If
    Next
    If min = max Then
    Exit Sub
    End If
    Dim fasele As Double = max - min
    Dim fnoghte As Integer = Math.Round(120 / fasele, 0)
    Dim y81 As Integer = 375 - (DataGridView1.Rows(2).Cells(2).Value - min) * fnoghte
    Dim y82 As Integer = 375 - (DataGridView1.Rows(2).Cells(3).Value - min) * fnoghte
    Dim y83 As Integer = 375 - (DataGridView1.Rows(2).Cells(4).Value - min) * fnoghte
    Dim y84 As Integer = 375 - (DataGridView1.Rows(2).Cells(5).Value - min) * fnoghte
    Dim y85 As Integer = 375 - (DataGridView1.Rows(2).Cells(6).Value - min) * fnoghte
    Dim y86 As Integer = 375 - (DataGridView1.Rows(2).Cells(7).Value - min) * fnoghte
    Dim y87 As Integer = 375 - (DataGridView1.Rows(2).Cells(8).Value - min) * fnoghte
    Dim y88 As Integer = 375 - (DataGridView1.Rows(2).Cells(9).Value - min) * fnoghte
    Dim y89 As Integer = 375 - (DataGridView1.Rows(2).Cells(10).Value - min) * fnoghte
    Dim y90 As Integer = 375 - (DataGridView1.Rows(2).Cells(11).Value - min) * fnoghte
    Dim pen2 As Pen
    pen2 = New Pen(Color.Black, 2)
    If y81 <> 375 Then
    graph1.FillEllipse(brush1, 343, y81 - 2, 5, 5)
    End If
    If y82 <> 375 Then
    graph1.FillEllipse(brush1, 313, y82 - 2, 5, 5)
    End If
    If y83 <> 375 Then
    graph1.FillEllipse(brush1, 283, y83 - 2, 5, 5)
    End If
    If y84 <> 375 Then
    graph1.FillEllipse(brush1, 253, y84 - 2, 5, 5)
    End If
    If y85 <> 375 Then
    graph1.FillEllipse(brush1, 223, y85 - 2, 5, 5)
    End If
    If y86 <> 375 Then
    graph1.FillEllipse(brush1, 193, y86 - 2, 5, 5)
    End If
    If y87 <> 375 Then
    graph1.FillEllipse(brush1, 163, y87 - 2, 5, 5)
    End If
    If y88 <> 375 Then
    graph1.FillEllipse(brush1, 133, y87 - 2, 5, 5)
    End If
    If y89 <> 375 Then
    graph1.FillEllipse(brush1, 103, y89 - 2, 5, 5)
    End If
    If y90 <> 375 Then
    graph1.FillEllipse(brush1, 73, y90 - 2, 5, 5)
    End If
    If y81 <> 375 And y82 <> 375 Then
    graph1.DrawLine(pen2, 345, y81, 315, y82)
    End If
    If y82 <> 375 And y83 <> 375 Then
    graph1.DrawLine(pen2, 315, y82, 285, y83)
    End If
    If y83 <> 375 And y84 <> 375 Then
    graph1.DrawLine(pen2, 285, y83, 255, y84)
    End If
    If y84 <> 375 And y85 <> 375 Then
    graph1.DrawLine(pen2, 255, y84, 225, y85)
    End If
    If y85 <> 375 And y86 <> 375 Then
    graph1.DrawLine(pen2, 225, y85, 195, y86)
    End If
    If y86 <> 375 And y87 <> 375 Then
    graph1.DrawLine(pen2, 195, y86, 165, y87)
    End If
    If y87 <> 375 And y88 <> 375 Then
    graph1.DrawLine(pen2, 165, y87, 135, y88)
    End If
    If y88 <> 375 And y89 <> 375 Then
    graph1.DrawLine(pen2, 135, y88, 105, y89)
    End If
    If y89 <> 375 And y90 <> 375 Then
    graph1.DrawLine(pen2, 105, y89, 75, y90)
    End If
    End Sub


  15. #15
    کاربر دائمی آواتار parsavb
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    جلوي کامپيوتر
    پست
    210

    نقل قول: مشكل با پرينت گرفتن

    دوست عزیز شما می تونی ابتدا اطلاعات خودت رو به کریستال ریپورت ارسال کنی و بعد تو اونجا پرینت خودت رو بگیری چون امکانات کریستال ریپورت برای پرینت خیلی بیشتر و قابل انعطاف تر هستش

  16. #16

    نقل قول: مشكل با پرينت گرفتن

    ممنون از راهنماییت دوست عزیز این راه رو خیلی قبل پیش ها امتحان کردم و چون کریستال ریپورت به بانک وصل می شه و مجبور بودم برای اطلاعاتی که می خواستم یک تیبل جدا درست کنم و وصلش کنم به تیبل های دیگم که اطلاعات رو به طور همزمان در 2 تیبل بریزه و خلاصه کلی مشکلات داشتم به این صورت نمودار کشیدم که اطلاعاتم رو از دیتا گرید بخونه و فقط همونایی که لازم دارم رو نشون بده و دیدم این کار راحت تر از کریستال ریپورت هست از این راه رفتم و حالا مشکلم اینه که چه جوری می تونم از این نموداری که با این دستورات نوشتم پرینت بگیرم

  17. #17
    کاربر دائمی آواتار parsavb
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    جلوي کامپيوتر
    پست
    210

    نقل قول: مشكل با پرينت گرفتن

    اگه مشکلت فقط تبدیل اینها به bitmap هستش این تاپیک رو نگاه کن .این برنامه که گذاشتم با همین راه کار می کنه ، یعنی اول فرم رو به pic تبدیل می کنه و بعد پرینت می گیره

  18. #18
    کاربر دائمی آواتار parsavb
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    جلوي کامپيوتر
    پست
    210

    نقل قول: مشكل با پرينت گرفتن

    این برنامه دیتا گرید رو به bitmap تبدیل می کنه و فکر کنم به درد خور باشه
    تبدیل دیتاگرید به bitmap

  19. #19

    نقل قول: مشكل با پرينت گرفتن

    ممنونم از لطفت دوست عزيز
    من كد پرينت از ديتاگريد رو دارم و درست هم اجرا مي شه ولي مشكلم اينجاست كه اين نموداري كه كشيدم در پايين ديتا گريد هست ولي با اينكه از ديتا گريد پرينت مي گيره ولي از نموداري كه با دستورات گرافيكي نوشتم پرينت نمي گيره كه گفتم شايد اگر اون نمودار رو تبديل به bitmap كنم و دستور پرينتش رو قاطي دستورات پرينت ديتا گريدم كنه مشكلم حل بشه

  20. #20
    کاربر دائمی آواتار parsavb
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    جلوي کامپيوتر
    پست
    210

    نقل قول: مشكل با پرينت گرفتن

    خوب کد قبلی که گذاشته بودم خود فرم شما رو به عکس تبدیل می کرد

  21. #21

    نقل قول: مشكل با پرينت گرفتن

    اتفاقا همين الان داشتم اون كد رو امتحان مي كردم روي پروژه خودم كه ديدم ديتا گريد رو كامل پرينت نيم گيره و فقط از فرم پرينت مي گيره آخه ديتا گريد من اسكرول بار داره و بايد تمام اطلاعاشت ديده بشه رد پرينت ولي اون كد فقط همون قسمتي كه در صفحه ناميش مي ده رو پرينت مي گيره
    البته من كدي دارم كه اين مشكل رو حل كرده ولي مشكل من اين هست كه قاطي اون كد چه كدي بنويسم كه دستورات گرافيكي كه استفاده كردم رو هم همراه با ديتا گريد پرينت بگيره

  22. #22

    نقل قول: مشكل با پرينت گرفتن

    ممنونم از لطفت parsavb عزیز که به من کمک کردید
    مشکلم حل شد

  23. #23
    کاربر تازه وارد
    تاریخ عضویت
    اردیبهشت 1387
    پست
    47

    نقل قول: مشكل با پرينت گرفتن

    سلام به bahar2008 عزیز
    من باز مزاحمت شدم که ازت بخوام لطف کنی و به من کمک کنی تا بتونم از دیتا گریدم print بگیرم.
    اگه میشه و حوصله داری step by step برام توضیح بده و اینکه چیو کجا استفاده کنم و ...

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •