تقييم الموضوع :
  • 0 أصوات - بمعدل 0
  • 1
  • 2
  • 3
  • 4
  • 5
[ تمّ الحل ] : عرض أسماء أعمدة التّفاصيل باللغة العربية
#11
السلام عليكم و رحمة الله و بركاته

كما تفضل أخي أبو ليلى بالشرح الوافي أود أن أساهم بتعقيب صغير

ديف اكسبرس جريد كونترول (GridControl)  هي أداة حاوية للجريد فيو (GridView) والتي تشابه بدورها الداتاجريدفيو القياسية (لاحظ أنهما أداتين منفصلتين)

و من مميزات (الجريد كونترول) انها تمكنك من انشاء أكثر من (جريد فيو) واحدة داخلها بطريقة (MasterDetails) بحيث يمكن إضافة أكثر من (تفاصيل) واحدة

الجريد الأساسية master هنا تعتبر جريد فيو

وجريد التفاصيل details تعتبر جريدفيو منفصلة بكيانها

وإن وجدت أكثر من جريد بالتفاصيل فيكون لها كيان خاص أيضا



مثال / لاحظ في الصورة وجود تفاصيل من جدولي Products  و Category





بالمختصر في حالة وجود تفاصيل فأنت ستتعامل مع أكثر من جريد فيو وليس واحدة وهذا قصد الاستاذ أبو ليلى


(21-04-20, 01:24 AM)ابو ليلى كتب : ارجع الى الصورة الثانية التي ارفقتها لك ولا حظ وجود اثنين (GridView1,GridView2) في المستطيل الاخضر

----


للتعديل على أي جريد فيو داخل الجريد كونترول من المصمم


الرد }}}
#12
السّلام عليكم و رحمة الله و بركاته
تسلم أخي العزيز محمد كريّم و سلم يمينك و دينك
زادك الله من علمه و فضله و نفع بك الاسلام و المسلمين
أشكرك جزيل الشكر على الإضافة المميزة و الشرح الوافي
ما شاء الله
صدقني يا غالي .. كل شيء مع أدوات الديف إكسبرس يسير بصورة جد عادية
إلاّ هذه الجريد كنترول ستقضي على ما تبقى لدي من شعرات سود برأسي
لديّ استفسار أخي الكريم .. لو تكرّمت بعد إذنك
عملت تقريبا كل شيء .. بقيت لي فقط قصّة الفاتورة .. أستعمل بها الجريد فيو العاديّة لأنّي تعبت من البحث حول إعتماد الجريد كنترول مع الفاتورة .. بحثت على اليوتوب .. على المواقع الأجنبية و المنتديات و العربية
و لا حياة لمن تنادي
هل يمكن إستبدال الداتاجريد فيو العادية بالجريد كنترول الخاص بالديف إكسبرس . إذا نعم سأعيد التفكير بالأمر بجديّة .. و إذا غير ممكن سأطوي و أمسح الفكرة من فكري نهائيا
لأنّ هذه القصّة أرهقتني فعلا و بكل صدق
أجدّد شكري و احترامي وامتناني لك أخي محمد كريّم و لكل من شاركني الموضوع

كود :
   

تحياتي
قناتنا على اليوتوب
الرد }}}
#13
أخي عبد العزيز

مالمشكلة التي تواجهها عند استخدام الجريد كونترول في الفاتورة؟

لم أفهم بالضبط

أنا استخدمها في كل برامجي بما فيها شاشات الفواتير وغيرها
وطبعا باستخدام الداتاتيبل كمصدر بيانات يتحدث في كل مرة تضاف فيها صنف او تعدل سعره او كميته

دون مشاكل تذكر

الرد }}}
#14
السّلام عليكم و رحمة الله و بركاته
طمنتني أخي الكريم الغالي " محمد كريّم " و ريّحت عقلي .. إلهي يريح بالك و يرزقك من حيث لا تحتسب إن شاء الله
المشكلة يا طيّب .. هي كالتالي
شاشة الفاتورة طبعا عليها جريد كنترول
تنفتح شاشة للأصناف بفورم ثانية
أقوم باختيار الصنف .. و عند الضغط على ال RepositoryButton
الصنف الذي تمّ إختياره ينتقل للجريد كنترول بشاشة الفاتورة
كيف أنقل الصف الذي تم إختياره و في حالة نفس الصنف تنضاف الكمية إلى سابقتها 
هذه الفكرة التي أريد تطبيقها
تحياتي واحتراماتي
قناتنا على اليوتوب
الرد }}}
#15
أعتذر عن تأخير الرد

سهلة بإذن الله

خذها خطوة بخطوة

سأشرح لك طريقة بسيطة لتفهم الفكرة مبدئيا ثم تطورها بناء على احتياجاتك
المثال بلغة سي شارب


أولا انشئ كلاس جديد لاستخدامه لسطور الفاتورة وليكن اسمه SalesGridLine
أضف للكلاس الخصائص (properties)  التي تريدها مثل رقم الصنف واسم اللصنف وسعر البيع واي شيء آخر تريد ادراجه في اعمدة الفاتورة حتى وان لم يكن موجود في نفس الجدول أو حتى في قاعدة البيانات

 




كود :
//  - كلاس موديل خاص بسطور فاتورة المبيعات
class SalesGridLine
   {

       public int ProductId { get; set; }

       public string ProductName { get; set; }

       public string ProductCode { get; set; }

       public double ProductQty { get; set; }

       public decimal ProductPrice { get; set; }
       
   }




في بداية كلاس الفورم أنشئ قائمة جديدة List من الكلاس السابق

كود :
private List<SalesGridLine> SalesGridDataSource;



هذه القائمة ستكون هي مصدر بيانات الجريد فيو
بناء عليه أضف أعمدة الجريد فيو من المصمم وعدل على خصائص الأعمدة Caption و Field name

في حدث لود الفورم حدد مصدر البيانات
           
كود :
SalesGridDataSource = new List<SalesGridLine>();
           gridview1.DataSource = SalesGridDataSource;



لمسح الصفوف او تجديد مصدر البيانات
           
كود :
gridview1.DataSource = null;
           SalesGridDataSource.Clear();
           gridview1.DataSource = SalesGridDataSource;




نأتي لجزئية إدراج سطر جديد في الفاتورة  - (بالأحرى إضافة كائن SalesGridLine  إلى القائمة SalesGridDataSource)

أولا اجلب بيانات الصنف الجديد من فورم البحث أو غيره

قبل الإدراج ابحث عن الصنف الجديد في الفاتورة في حالة كان مدرج مسبقا قم بما يناسبك (أوقف العملية أو زد الكمية)
البحث يكون بمعلومية حقل ثابت ويفضل رقم الصنف إن لم يكن متكرر


كود :
                   // البحث عن سطر مشابه
                   for (int i = 0; i < gridview1.DataRowCount; i++)
                   {
                       int cellValue = (int)gridview1.GetRowCellValue(i, "ProductId");

                       if (cellValue == selectedprd.product_id) // قيمة البحث المطابقة للعمود المحدد في السطر السابق
                       {
                           // row.Selected = true;
                           gridview1.FocusedRowHandle = i;    // تحديد السطر

                           line_plus(i);   // إضافة كمية

                           return;
                       }
                   }


في حالة لم يكن الصنف مكرر أو كانت الفاتورة خالية من الأسطر

أكمل عملية الإدراج

كود :
SalesGridLine x = new SalesGridLine
                   {
                       ProductId = product_id,
                       ProductName = product_name,
                       ProductCode = product_code,
                       ProductQty = 1,
                       ProductPrice = product_price,
};

                   SalesGridDataSource.Add(x);  //  إضافة السطر إلى مصدر بيانات الجريدفيو وسيتم تحديثها مباشرة

الرد }}}
#16
بارك الله فيك و لك و جزاك خير الجزاء أخي الكريم " محمّد كريّم " و أنعم عليك و على والديك و أهلك و ذويك بما تحب و يحبه الله إن شاء الله
قمت بتحويل كود سيادتك إلى الدوت نت .. لكن ما قدرت أضبّطها
شوف لو تكرمت .. إضغط على زر الأمر بالفورم 1 .. تنفتح الفورم 2 الخاصة بالأصناف و هنا عند الضغط على ال Repository يندرج الصنف الذي تمّ إختياره بالدريد كنترول بالفورم 1
رمضان كريم .. أعادة الله علينا و عليكم بالخير و اليمن و البركة و الصحة و العافية و راحة البال
تحياتي واحتراماتي
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: محمد كريّم , ابو ليلى , asemshahen5
#17
تلك مشكلة أخرى

الكود مشوش لم أعرف أي كود استخدمت وأغلب الأكواد مظللة (ملغية)
بالإضافة إلى أنني لا أستخدم ميكروسوفت أكسس في جهازي فلم يتم الاتصال بقاعدة البيانات للتجربة

أعذر كسلي ولكن صدقني لا أملك الوقت لتصميم قاعدة بيانات للتجربة عليها ولكن سأحاول الليلة تعديل المثال باستخدام بيانات جاهزة (بدون قاعدة بيانات)

عموما الفكرة كالتالي:
عند الضغط على الزر في الجريدفيو في الفورم الثاني يفترض انشاء كائن جديد من الكلاس SalesGridLine وتملئ حقوله بالبيانات من السطر المحدد
ثم تعيد الكائن إلى الفورم الأول وتدرجه في القائمة SalesGridDataSource
العملية الأخيرة تكون في الفورم الأول

لاحظ أنني أتحدث عن List كما في ردي السابق وليس DataTable كما في الملف المرفق

الرد }}}
#18
تسلم يا طيّب ..
شوف أخي محمد .. لو تكرمت و بعد إذنك لو سمحت
الأكواد المظلّلة قم بمسحها تماما .. لأني كنت أجرّب فقط و كل محاولاتي باءت بالفشل
إذا قدّرك الله أخي الغالي ..
الرجاء ترك الهيكل العام بدون تغيير مؤثر
لأنّي فاتورة مشتريات سأستغل نفس فكرتها في المبيعات و المرتجعات بأنواعها
بارك الله فيك و لك مقدما و أحسن إليك مثلما أحسنت لي بحسن و جميل تعاونك
تحياتي واحتراماتي
قناتنا على اليوتوب
الرد }}}
تم الشكر بواسطة: ابو ليلى , محمد كريّم , asemshahen5
#19
تكرم يا طيب

الحقيقة أنا لست خبير في فيجول بيسك ولا أكاد أفهم صيغة كتابتها ووصفها
بالإضافة لمشكلة قاعدة بيانات الأكسس التي لم تشتغل معي فاضطررت إلى بناء مصدر بيانات محاكي للجدول بالكود
لذا عليك التغيير في الكود والغاء تظليل كود التصال بقاعدة البيانات والاستعلام وتظليل كود الداتا تايبل الخاص بالمثال

كذلك يجب تعديل خانة field name  في جريدفيو الفورم 1

أضفت عمود ProductId وغيرت خاصية الظهور إلى مخفي visible في جريدفيو فورم1




فورم1 :

كود :
Public Class XtraForm1

   Dim SalesGridDataSource As New List(Of SalesGridLine) 'كود جديد

   Private Sub XtraForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
       GridControl1.DataSource = SalesGridDataSource 'كود جديد
   End Sub

   Sub New()
       InitializeComponent()
       DevExpress.Skins.SkinManager.EnableFormSkins()
       DevExpress.UserSkins.BonusSkins.Register()
       DevExpress.LookAndFeel.UserLookAndFeel.Default.SkinName = "Caramel"
   End Sub

   Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
       'كود جديد
       Dim frm As New XtraForm2
       If (frm.ShowDialog() = DialogResult.OK) Then
           SalesGridDataSource.Add(frm.TheSelectedRow)
           GridControl1.RefreshDataSource()
           ' GridView1.MoveLast()

       End If

   End Sub

End Class





فورم2 :

كود :
Imports System.Data
Imports System.Reflection
Imports DevExpress.Skins
Imports DevExpress.LookAndFeel
Imports DevExpress.UserSkins
Imports DevExpress.XtraEditors
Imports DevExpress.XtraGrid.Views.BandedGrid
Imports DevExpress.XtraGrid.Views.Base
Imports DevExpress.XtraGrid.Views.Grid
Imports DevExpress.XtraEditors.DXErrorProvider
Imports DevExpress.XtraEditors.Repository
Imports DevExpress.XtraReports.UI
Imports DevExpress.XtraGrid
Imports DevExpress.XtraGrid.Columns
Public Class XtraForm2
   Dim ds, dt As DataSet
   Public rowSelect As DataRow = Nothing

   Public TheSelectedRow As New SalesGridLine

   Private Sub XtraForm2_Load(sender As Object, e As EventArgs) Handles MyBase.Load

       Me.MaximumSize = Me.Size
       Me.MinimumSize = Me.Size



       'ألغ تظليل أسطر قاعدة البيانات
       '        Call Sondoss_Connection()
       '  Global_Fill_GridControl(GridControl1, "SELECT ITEMS_Code,ITEMS_Name,ITEMS_Unite,ITEMS_Date_Expire,ITEMS_Prix_Vente,ITEMS_Stock From TBL_ITEMS Order By ITEMS_Code")
       '   Call Flex_DataGridView_Header_Text(GridView1)


       'ظلل كود داتاتيبل التجربة
       Dim dt As DataTable = New DataTable()
       'dt.Columns.AddRange(New DataColumn(5) {New DataColumn("كود الصنف"), New DataColumn("اسم الصنف"), New DataColumn("الوحدة"), New DataColumn("السعر الإفرادي"), New DataColumn("الكمية"), New DataColumn("السعر الإجمالي")})
       dt.Columns.Add(New DataColumn("ITEMS_Code"))
       dt.Columns.Add(New DataColumn("ITEMS_Name"))
       dt.Columns.Add(New DataColumn("ITEMS_Unite"))
       dt.Columns.Add(New DataColumn("ITEMS_Date_Expire"))
       dt.Columns.Add(New DataColumn("ITEMS_Prix_Vente"))
       dt.Columns.Add(New DataColumn("ITEMS_Stock"))
       dt.Columns.Add(New DataColumn("ITEMS_Total"))

       Dim Dr As DataRow = dt.NewRow()
       Dr("ITEMS_Code") = 1
       Dr("ITEMS_Name") = "صنف1"
       Dr("ITEMS_Unite") = "وحدة1"
       Dr("ITEMS_Date_Expire") = DateTime.Today.AddDays(30)
       Dr("ITEMS_Prix_Vente") = 12
       Dr("ITEMS_Stock") = 45
       Dr("ITEMS_Total") = 12

       dt.Rows.Add(Dr)

       Dim Dr2 As DataRow = dt.NewRow()

       Dr2("ITEMS_Code") = 2
       Dr2("ITEMS_Name") = "صنف2"
       Dr2("ITEMS_Unite") = "وحدة2"
       Dr2("ITEMS_Date_Expire") = DateTime.Today.AddDays(10)
       Dr2("ITEMS_Prix_Vente") = 22
       Dr2("ITEMS_Stock") = 33
       Dr2("ITEMS_Total") = 22

       dt.Rows.Add(Dr2)

       GridControl1.DataSource = dt
       'ظلل حتى هنا

   End Sub

   Public Sub Flex_DataGridView_Header_Text(ByVal DGV As DevExpress.XtraGrid.Views.Grid.GridView)
       If DGV.RowCount > 0 Then
           With DGV
               .Columns(0).Width = 90
               .Columns(1).Width = 90
               .Columns(2).Width = 90
               .Columns(3).Width = 90
               .Columns(4).Width = 90
               .Columns(5).Width = 90
           End With
       End If
   End Sub

   Private Sub RepositoryItemButtonEdit3_Click(sender As Object, e As EventArgs) Handles RepositoryItemButtonEdit3.Click
       TheSelectedRow.ProductName = GridView1.GetRowCellValue(GridView1.FocusedRowHandle, "ITEMS_Name")
       'TheSelectedRow.ProductBarcode = GridView1.GetRowCellValue(GridView1.FocusedRowHandle, "ITEMS_Code")
       TheSelectedRow.ProductCode = GridView1.GetRowCellValue(GridView1.FocusedRowHandle, "ITEMS_Code")
       TheSelectedRow.ProductPriceVente = GridView1.GetRowCellValue(GridView1.FocusedRowHandle, "ITEMS_Prix_Vente")
       TheSelectedRow.ProductQty = 1
       TheSelectedRow.ProductStock = GridView1.GetRowCellValue(GridView1.FocusedRowHandle, "ITEMS_Stock")
       TheSelectedRow.ProductUnite = GridView1.GetRowCellValue(GridView1.FocusedRowHandle, "ITEMS_Unite")

       Me.DialogResult = DialogResult.OK
       'Me.Dispose()
   End Sub

   Private Sub GridView1_InitNewRow(ByVal sender As Object, ByVal e As DevExpress.XtraGrid.Views.Grid.InitNewRowEventArgs)
       Dim view As GridView = TryCast(sender, GridView)
       view.SetRowCellValue(e.RowHandle, view.Columns(0), 1)
       view.SetRowCellValue(e.RowHandle, view.Columns(1), 2)
       view.SetRowCellValue(e.RowHandle, view.Columns(2), 3)
   End Sub

End Class

الرد }}}
#20
السلام عليكم و رحمة الله و بركاته
جرب المرفق و اذا لم يفتح معك خذ الاكواد من داخله
جرى تعديل على اسماء الاعمدة في القريد
- ضبط اسماء الحقول لسهولة الوصول اليها 
- جرى تخصيص حقل الكمية و سعر المادة و الاجمالي كمربعات نصوص للتعامل معها.
التعديلات في الفورم الاول فقط.



الملفات المرفقة
.rar   WindowsApplication1.rar (الحجم : 183.71 ك ب / التحميلات : 44)
اللهم لك الحمد كما ينبغي لجلال وجهك و عظيم سلطانك
في حل و ترحال
الرد }}}


المواضيع المحتمل أن تكون متشابهة .
الموضوع : الكاتب الردود : المشاهدات : آخر رد
  EG تخطي ارتباطات التنقل بحث إنشاء 4 الأفاتار تعريب الارقام وتفقيطها باللغة ا wafy_mohamed 0 1,189 03-05-25, 10:09 PM
آخر رد: wafy_mohamed
  EG تخطي ارتباطات التنقل بحث إنشاء 4 الأفاتار تعريب الارقام وتفقيطها باللغة ا wafy_mohamed 0 300 03-05-25, 10:08 PM
آخر رد: wafy_mohamed
  كيف يمكن عرض الارقام العربية فى xtrareport mohamedel20 1 1,418 14-04-22, 07:27 AM
آخر رد: Fantastico
  [ تمّ الحل ] : حفظ الألوان المستعملة بعد إغلاق المشروع عبد العزيز البسكري 3 1,978 01-10-20, 02:40 PM
آخر رد: عبد العزيز البسكري
Video [C#.NET] تغير السكين واللغة الافتراضية (العربية) والتنقل بين السطور في القريد كونترول (gridcon A-math 0 1,882 09-05-20, 05:46 PM
آخر رد: A-math
  [ تمّ الحل ] : تعريب صفحة تقرير الطباعة عبد العزيز البسكري 1 2,528 09-05-20, 05:59 AM
آخر رد: عبد العزيز البسكري
  [ تمّ الحل ] : إظهار العمود الأوّل على أداة الجريد كنترول عبد العزيز البسكري 3 2,336 17-03-20, 09:56 PM
آخر رد: محمد كريّم
  [ تمّ الحل ] : تصدير بيانات الجريد كنترول إلى الإكسل عبد العزيز البسكري 5 3,220 04-03-20, 07:29 PM
آخر رد: khodor1985
  [ تمّ الحل ] : الرّجاء المساعدة في بعض الأكواد عبد العزيز البسكري 2 2,070 26-01-20, 12:07 AM
آخر رد: عبد العزيز البسكري
  [ تمّ الحل ] : رجاء المساعدة بتحويل الكود الى الفيجوال نت عبد العزيز البسكري 2 1,839 06-01-20, 01:51 PM
آخر رد: عبد العزيز البسكري

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


يقوم بقرائة الموضوع: