تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[VB.NET] استفسار عن تصدير الرسم البياني الى ملف الوورد
#1
بسم الله الرحمن الرحيم



الاخوة الكرام تقبل الله طاعاتكم

كل عام وانتم بالف خير



اقوم بتصميم برنامج بالفيجوال بيسك



المشكلة التي تواجهني انني اقوم بعمل رسم بياني عن طريق الجرافيك واقوم بوضعه في ال picturebox1

والامور تسير بشكل صحيح لكن عند عملية الحفظ  للمدخلات التي بالشاشة فان الامور تسير بشكل سليم والمشكلة

ان عملية الحفظ للرسم البياني الموجود في ال picturebox1 في قاعدة البيانات لا يتم ورسالة الخطأ تظهر بعدم

وجود صورة في ال picturebox1 



اعتقد ان المشكلة سببها عملية تحويل للرسم البياني الى صورة وقد حاولت بعدة طرق

حل هذه المشكلة لكن للاسف لم افلح بذلك

قمت بارفاق مشروع بسيط مع قاعدة بيانات اكسس معه

راجيا" من لديه الطريقة السليمة افادتنا جميعا"

علما" باني اقوم ايضا" بتصدير البيانات الموجودة بالشاشة الى ملف وورد معد مسبقا"

واريد ايضا ان اقوم بتصدير صورة الرسم البياني ان امكن



بالمرفقات مثال للمشروع



لكم جميعا" مني كل الاحترام والتقدير


الملفات المرفقة
.rar   Example Applcation.rar (الحجم : 539.13 ك ب / التحميلات : 11)
الرد
تم الشكر بواسطة:
#2
لاحظت اخي الكريم انك عرفت متغير ولم تسند له اي قيمة
 Public Img() As Byte = Nothing
اختر اي حدث لتعيين قيمة له اما بعد انشاء الرسم او قبل الحفظ


كود لم اجربه
PHP كود :
       Dim ms As New MemoryStream
        PbChart_pic
.Image.Save(msPbChart_pic.Image.RawFormat)
 
       Img ms.ToArray 

زر الحفظ بعد التعديل
كود :
       Dim ms As New MemoryStream
       PbChart_pic.Image.Save(ms, PbChart_pic.Image.RawFormat)
       Img = ms.ToArray
       InsertNewRowIn_Member_Tbl(TxtMember_ID.Text, TxtMember_name.Text, DtpMember_Date.Text, TxtMember_age.Text, TxtMember_Wieght.Text, TxtMember_hight.Text, TxtBrotin.Text, TxtKrpohidrat.Text, TxtDohon.Text, Img)

وقعت بخطا اخر!!!
ماهو نوع الصورة التي تم انشاءها؟؟؟
الرد
تم الشكر بواسطة: ابراهيم ايبو
#3
حياك الله اخي الكريم سعود
للاسق نفس المشكلة

الرد
تم الشكر بواسطة: ابراهيم ايبو
#4
لقيت الحل
PHP كود :
       Dim Img0 As New Bitmap(PbChart_pic.WidthPbChart_pic.Height)
 
       Dim G As Graphics Graphics.FromImage(Img0)
 
       Dim R As New Rectangle(00PbChart_pic.WidthPbChart_pic.Height)
 
       G.FillRectangle(Brushes.YellowR)
 
       G.DrawRectangle(Pens.BlackR)
 
       Dim ms As New MemoryStream
        Img0
.Save(msImaging.ImageFormat.Png)
 
       Img ms.ToArray
        G
.Dispose() 
هذا يحول الصورة التي تم انشاءها لصورة عادية ثم يتم تحويلها الى بناري ثم تسند للمتغير img

بعد كود انشاء الرسم البياني اكتب هذا
PHP كود :
       Dim Img0 As New Bitmap(PbChart_pic.WidthPbChart_pic.Height)
 
       Dim G As Graphics graphics.FromImage(Img0)
 
       Dim R As New Rectangle(00PbChart_pic.WidthPbChart_pic.Height)
 
       G.FillRectangle(Brushes.YellowR)
 
       G.DrawRectangle(Pens.BlackR)
 
       Dim ms As New MemoryStream
        Img0
.Save(msImaging.ImageFormat.Png)
 
       Img ms.ToArray
        G
.Dispose() 
الرد
تم الشكر بواسطة: ابراهيم ايبو
#5
كل الشكر اخ سعود ساقوم بالتجربة واخبارك بالنتيجة
قمت بتجربة عملية الحفظ سريعا" وكانت النتيجة سليمة
ساقوم بتجربة استدعاء الصور من القاعدة لمعرفة اذا ما تمت عملية الحفظ بنجاح
مشكور على تعاونك وجزاك الله كل الخير

حياك الله اخ سعود
عملية الحفظ تتم لصورة صفراء بالكامل لاحظ الصورة
الرد
تم الشكر بواسطة: ابراهيم ايبو
#6
استبدل كود Button1 بـ :

PHP كود :
   Private Sub Button1_Click(sender As System.ObjectAs System.EventArgsHandles Button1.Click
        Dim i1 
As Decimal TxtBrotin.Text
        Dim i2 
As Decimal TxtKrpohidrat.Text
        Dim i3 
As Decimal TxtDohon.Text
        Dim total 
As Decimal i1 i2 i3
        Dim deg1 
As Decimal = (i1 total) * 360
        Dim deg2 
As Decimal = (i2 total) * 360
        Dim deg3 
As Decimal = (i3 total) * 360
        Dim pen 
As New Pen(Color.Black2)

 
       Dim Img0 As New Bitmap(PbChart_pic.WidthPbChart_pic.Height)
 
       Dim graphics As Graphics PbChart_pic.CreateGraphics()

 
       Dim rect As New Rectangle(5025200200)
 
       Dim brush1 As New SolidBrush(Color.Green)
 
       Dim brush2 = New SolidBrush(Color.Yellow)
 
       Dim brush3 = New SolidBrush(Color.Red)
 
       Dim G As Graphics graphics.FromImage(Img0)
 
       G.Clear(PbChart_pic.BackColor)
 
       G.FillPie(brush1rect0deg1)
 
       G.FillPie(brush2rectdeg1deg2)
 
       G.FillPie(brush3rectdeg1 deg2deg3)
 
       Dim ms As New MemoryStream
        Img0
.Save(msImaging.ImageFormat.Png)
 
       Img ms.ToArray
        PbChart_pic
.Image Image.FromStream(ms)
 
       G.Dispose()
 
       mytotal()
 
   End Sub 


الملفات المرفقة صورة/صور
   
الرد
تم الشكر بواسطة:
#7
بارك الله بكم جميعا"
الحمدلله تم حل المشكلة بعد تعديل الكود كالتالي :

كود :
 Dim i1 As Decimal = TxtBrotin.Text
       Dim i2 As Decimal = TxtKrpohidrat.Text
       Dim i3 As Decimal = TxtDohon.Text

       Dim total As Decimal = i1 + i2 + i3

       Dim deg1 As Decimal = (i1 / total) * 360
       Dim deg2 As Decimal = (i2 / total) * 360
       Dim deg3 As Decimal = (i3 / total) * 360


       Dim Img0 As New Bitmap(PbChart_pic.Width, PbChart_pic.Height)
       Dim pen As New Pen(Color.Black, 2)
       Dim graphics As Graphics = graphics.FromImage(Img0)
       Dim rect As New Rectangle(0, 0, PbChart_pic.Width, PbChart_pic.Height)
       Dim brush1 As New SolidBrush(Color.Green)
       Dim brush2 = New SolidBrush(Color.Yellow)
       Dim brush3 = New SolidBrush(Color.Red)
       graphics.Clear(PbChart_pic.BackColor)
       graphics.FillPie(brush1, rect, 0, deg1)
       graphics.FillPie(brush2, rect, deg1, deg2)
       graphics.FillPie(brush3, rect, deg1 + deg2, deg3)

     
       Dim ms As New MemoryStream
       Img0.Save(ms, Imaging.ImageFormat.Png)
       Img = ms.ToArray
       graphics.Dispose()
       PbChart_pic.Image = Img0
الرد
تم الشكر بواسطة: asemshahen5



التنقل السريع :


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم