المساعدة - البحث - قائمة الأعضاء - التقويم
نسخة كاملة: تعلم الأداة MsFlexGrid
برمجة - شبكات - كمبيوتر - منتديات الفريق العربي للبرمجة > منتديات لغات البرمجة العام > منتدى مبرمجي لغة Microsoft Visual Basic 6 وما قبلها من إصدارات > قسم الدروس والمواضيع الهامة
صفحات: 1, 2
مهند عبادي
بسم الله الرحمن الرحيم

لاحظت في الفترة الأخيرة كثرة الأسئلة عن أداة FlexGrid ..

ولذلك سأبدأ مجموعة دروس بهدف شرح هذه الأداة ولكن لا تستعجلوني في الدروس بسبب انشغالي في الفترة الحالية
مهند عبادي
الدرس الأول :

أولاً = نظرة عامة
أداة MsFlexGrid لمن لا يعرفها : هي أداة تتألف من مجوعة أسطر Rows وأعمدة Columns بحيث يشكل تقاطع كل سطر وعمود خلية Cell بشكل يشابه لما هو موجود فيExcel
وتنقسم الأعمدة والأسطر إلى قسمين : ثابت Fixed كما هو الحال العمود المحتوي على أرقام الأسطر في إكسل والسطر المحتوي على أسماء الأعمدة ، وقسم عام
تعطينا هذه الأداة ميزة التحكم في أي شيء مما يتعلق بها بدءاً من عدد الأعمدة والأسطر مروراً بخصائص كل خلية انتهاءً بالأحداث

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

وسأبدأ بسرد الخصائص مع مثال عن كل منها
ثم في الدروس الأخيرة سأضع بعض الأمثلة بما فيها تعبئة MsFlexGrid بالبيانات من خلال ADO

ثانياً = التحكم بعدد الأعمدة والأسطر :
- لتحديد عدد الأسطر :
كود
MsFlexGrid.Rows= N

جيث N هو عدد الأسطر

- لتحديد عدد الأعمدة :
كود
MsFlexGrid.Cols= N

جيث N هو عدد الأعمدة

- لتحديد عدد الأسطر الثابتة :
كود
MsFlexGrid.FixedRows= N

جيث N هو عدد الأسطر الثابتة

- لتحديد عدد الأعمدة :
كود
MsFlexGrid.FixedCols= N

جيث N هو عدد الأعمدة الثابتة

مثال :
ضع أداة MsFlexGrid في نموذجك ثم اكتب الشفرة التالية في حدث عند التحميل :
كود
Private Sub Form_Load()
   MsFlexGrid1.Rows = 10
   MsFlexGrid1.Cols = 5
   MsFlexGrid1.FixedCols = 1
   MsFlexGrid1.FixedRows = 1
End Sub

يقوم هذا المثال بتحديد عدد الأسطر إلى 10 منها عمود واجد ثابت
وعدد الأعمدة إلى 5 منها سطر واحد ثابت

ثالثاً : ملئ الخلايا بالقيم :
يبدأ ترقيم الأعمدة والأسطر بدءاً من رقم صفر و يشكل تقاطع كل سطر وعمود خلية Cell ، ولكتابة قيمة معينة بإحدى الخلايا نقوم أولاً بتحديد السطر والعمود اللذان يحددان بتقاطعهما الخلية بهذا الأسلوب :


كود
   MsFlexGrid.Col = ColNo  <------------------ رقم العمود
   MsFlexGrid.Row = RowNo <--------------- رقم السطر

ويجب أن لا ننسى أن الترقيم يبدأ من رقم 0
ولوضع قيمة في الخلية نستخدم :
كود
   MsFlexGrid.Text = MyText <------------ القيمة التي نريدها


مثال :
من أجل ترقيم العمود الأول الثابت بترقيم يبدأ من 1 نكتب الكود التالي :
كود
Dim R as integer
For R = 1 to 9
   MsFlexGrid1.Col = 0  
   MsFlexGrid1.Row = R
   MsFlexGrid1.Text = R
Next R

حيث أننا بدءنا بالحلقة من الرقم 1 بسبب عدم رغبتنا في ترقيم أول خلية
مهند عبادي
الدرس الثاني :

الألوان

1- لون خلفية الاداة :
كود
MsFlexGrid.BackColorBkg = Color


2- لون خلفية الخلايا الثابتة :
كود
MsFlexGrid.BackColorFixed = Color


3- لون خلفية الخلايا العادية :
كود
MsFlexGrid.BackColor = Color


4- لون خلفية خلايا التحديد : أي عند التحديد
كود
MsFlexGrid.BackColorSel = Color


5- لون كتابة الخلايا الثابتة :
كود
MsFlexGrid.ForeColorFixed = Color


6- لون كتابة الخلايا العادية :
كود
MsFlexGrid.ForeColor = Color


7- لون كتابة خلايا التحديد : أي عند التحديد
كود
MsFlexGrid.ForeColorSel = Color


8- لون خط حدود الخلايا الثابتة :
كود
MsFlexGrid.GridColorFixed = Color


9- لون خط حدود الخلايا العادية :
كود
MsFlexGrid.GridColor = Color



مثال :
كود
   MsFlexGrid1.BackColorBkg = QbColor(3)
   MsFlexGrid1.BackColorFixed = QbColor(7)
   MsFlexGrid1.BackColor = QbColor(15)
   MsFlexGrid1.BackColorSel = QbColor(1)
   MsFlexGrid1.ForeColorFixed = QbColor(0)
   MsFlexGrid1.ForeColor = QbColor(1)
   MsFlexGrid1.ForeColorSel = QbColor(14)
   MsFlexGrid1.GridColorFixed = QbColor(8)
   MsFlexGrid1.GridColor = QbColor(2)


10 – تلون خلية بحد ذاتها :
بعد تحديد الخلية من خلال تحديد السطر والعمود كما ورد في الدرس الأول نستخدم التعليمات التالية :
- تحديد لون خلفية الخلية :
كود
MsFlexGrid.CellBackColor = Color


- تحديد لون خط الكتابة في الخلية :
كود
MsFlexGrid.CellForeColor = Color



مثال :
من أجل تلوين خلايا العمود الثالث بشكل متباين نكتب الكود التالي :
كود
Dim R as integer
For R = 1 to 9
   MsFlexGrid1.Col = 2  
   MsFlexGrid1.Row = R
   MsFlexGrid1.CellBackColor = QbColor(R)
Next R
joe911
مشكوووووووووووووووووووووووووووووووور
a123
واصل ، جزاك الله خيرا
مهند عبادي
الدرس الثالث :
المظهر ( الحدود والمحاذاة)


1- مظهر الأداة : (مظهر الأداة ككل)
كود
MsFlexGrid.Appearance = flexFlat <------------------- ثلاثي أبعاد
MsFlexGrid.Appearance = flex3D <------------------- مسطح


2- نمط الحدود الخارجية للأداة :
كود
MsFlexGrid.BorderStyle = flexBorderSingle<-------------- خط مفرد
MsFlexGrid.BorderStyle = flexBorderNone <-------------- بدون خط



3- نمط حدود الخلايا : (مظهر الخلايا)
إن نمط الحدود في الخلايا له إحدى هذه القيم

المظهر              القيمة      أو استخدم الثابت
---------------------------------------------------------
بلا                        0             flexGridNone
مسطح                1             flexGridFlat
غاطس                 2             flexGridInset
بارز                       3             flexGridRaised

ونستخدم لتحديد مظهر الخلايا الطرائق التالية :
أ – مظهر الخلايا الثابتة :
كود
MsFlexGrid.GridLinesFixed = نمط الحدود


ب – مظهر الخلايا العادية :
كود
MsFlexGrid.GridLines = نمط الحدود


مثال :
كود
MsFlexGrid1.Appearance = flex3D
MsFlexGrid1.BorderStyle = flexBorderNone
MsFlexGrid1.GridLinesFixed = flexGridInset
MsFlexGrid1.GridLines = 0


4- محاذاة الأداة :
لمحاذاة الأداة على نمط محاذاة الورقة في إكسل نستخدم :
كود
MsFlexGrid.RightToLeft = True <------------------- محاذاة إلى اليمين
MsFlexGrid.RightToLeft = False <------------------- محاذاة إلى اليسار


5- محاذاة محتويات الخلايا :
إن نمط المحاذاة في الخلايا له إحدى هذه القيم

المحاذاة                     القيمة            أو استخدم الثابت
---------------------------------------------------------------------
يمين أعلى                    0             flexAlignRightTop
يمين وسط                    1             flexAlignRightCenter
يمين أسفل                   2             flexAlignRightBottom
وسط أعلى                   3             flexAlignCenterTop
وسط وسط                   4             flexAlignCenterCenter
وسط أسفل                  5             flexAlignCenterBottom
يسار أعلى                   6             flexAlignLeftTop
يسار وسط                   7             flexAlignLeftCenter
يسار أسفل                  8             flexAlignLeftBottom
محاذاة عامة                 9             flexAlignGeneral

ونستخدم لمحاذاة الخلايا الطرائق التالية :
أ – محاذاة عمود بكامله :
كود
MsFlexGrid.ColAlignment(رقم العمود) = N <--------------- نمط المحاذاة


ب- محاذاة الخلايا الثابتة :
كود
MsFlexGrid.FixedAlignment(رقم العمود) = N <--------------- نمط المحاذاة

في هذه الحالة إذا كان رقم العمود هو عمود ثابت يطبق عليه نمط المحاذاة وإلا فإن هذه المحاذاة تطبق فقط على الخلايا الثابتة في هذا العمود

جـ - محاذاة خلية بحد ذاتها :
بعد تحديد الخلية من خلال تحديد السطر والعمود كما ورد في الدرس الأول نستتخدم صيغة التعليمة التالية:
كود
MsFlexGrid.CellAlignment = N <--------------- نمط المحاذاة


مثال :
كود
Dim X as Integer , Y as Integer
MsFlexGrid1.RightToLeft = True
For X = 0 To MsFlexGrid1.cols-1
    MsFlexGrid1.FixedAlignment (X) = 1
    For Y = MsFlexGrid1.FixedRows to MsFlexGrid1.Rows -1
         MsFlexGrid1.Col = X
         MsFlexGrid1.Row = Y
         If MsFlexGrid1.text = "0" then
              MsFlexGrid1.CellAlignment = flexAlignCenterCenter
         End If
    Next Y
Next X
حاطب ليل
السلام عليكم
اسف علي الاستعجال اكيد راح تصلها
بس يا ريت كيف طباعة المحتويات
(اطلعت علي الروابط الموجودة التي تخص هذا الموضوع في هذا المنتدي)
بس يا ريت يكون الشرح بقدر المستطاع باللغة العربية

و لك شكري مقدما


ابراهيم الطيب
الحــــــــــــــــرطــــوم
alnarges
الله يجزاك الخير الحقيقة مشاركاتك تثلج الصدر
صقر الزمان
مشكورررررررررررررررر علي مجهودك الرائع
مهند عبادي
الدرس الرابع :

تحكمات متقدمة :

1- إضافة سطر جديد بواسطة تعليمة AddItem
كود
MsFlexGrid.AddItem Item, Idnex

حيث
Item : النص المراد إدراجه في السطر الجديد
Index الترتيب المراد إدراج السطر به .. وفي حال لم تمرر هذه القيمة يتم إدراج السطر في آخر الجدول ولا يجوز إدراج سطر جديد في ترتيب سطر ثابت
مثال :
كود
MsFlexGrid1.AddItem "Sum :"

ويلاحظ أن الإدراج يتم في أول عمود فقط .. ولكي ندرج مجموعة قيم في أعمدة أخرى نستخدم محرف الـ Tab وهو إما VBTab أو Chr(9) كما يلي :
كود
MsFlexGrid1.AddItem "Sum :" & VBTab & "12000" & chr(9) &  "2455"


2- السماح بتغيير حدود الأعمدة والأسطر :
إن صلاحية تغيير حدود الأعمدة والأسطر يكون له إحدى هذه القيم :

الصلاحية .................... القيمة .. أو استخدم الثابت
------------------------------------------------------------------
حدود ثابتة....................... 0 ..... flexResizeNone
تغيير حدود الأعمدة فقط ....... 1..... flexResizeColumns
تغيير حدود الأسطر فقط ....... 2 ..... flexResizeRows
تغيير حدود الأسطر والأعمدة .. 3 ..... flexResizeBoth

كود
MsFlexGrid.AllowUserResizing = الصلاحية


3- تغيير أسلوب التحديد عند النقر على خلية ثابتة :
كود
MsFlexGrid.AllowBigSelection = False أو True

True : عند الضغط على الخلية الثابتة يتم تحديد كامل السطر او العمود الذي يبدأ بهذه الخلية

4- الإستعلام عن حالة خفاء / ظهور الأعمدة والأسطر :
كود
MsFlexGrid.ColIsVisible(رقم العمود)
MsFlexGrid.RowIsVisible(رقم السطر)

مثال : إذا كان عدد الأسطر 15 ويظهر ضمن عرض أداة MsFlexGrid 7 أعمدة فقط فإن حالة ظهور الأعمدة من 7-15 تكون False
كود
  MsgBox MsFlexGrid1.ColIsVisible(MsFlexGrid1.cols)


5- تحديد مجموعة خلايا :
لتحديد مجموعة خلايا نضع نحدد الخلية التي سنبدأ منها التحديد ثم نستعمل خاصيتي RowSel و ColSel كما يلي
كود
  MsFlexGrid.ColSel = N <---------- يتم التحديد حتى هذا العمود
  MsFlexGrid.RowSel = N  <---------- يتم التحديد حتى هذا السطر

مثال :
لتحديد ثالث ورابع وخامس خلية في العمود الثاني نكتب :
كود
  MsFlexGrid1.Col = 1
  MsFlexGrid1.Row = 2    
  MsFlexGrid1.RowSel = 4

في هذا المثال لا يتم تظليل الخلية الأولى لأنها هي الخلية التي عليها المؤشر (التحكم)

و يمكن استعمال خاصيتي RowSel و ColSel لقراءة قيمتهما.
مثال :
لتغيير اللون الخلفي للخلايا المحددة إلى اللون الأصفر نكتب هذا الكود في الحدث الذي نريده وليكن عند الضغط على زر:
كود
Dim X as Integer , Y as Integer
Dim BC as Integer , EC as Integer
Dim BR as Integer , ER as Integer
BC = MsFlexGrid1.Col
EC = MsFlexGrid1.ColSel
BR = MsFlexGrid1.Row
ER = MsFlexGrid1.RowSel
For X = BC To EC Step IIf(BC > EC, -1, 1)
   For Y = BR To ER Step IIf(BR > ER, -1, 1)    
       MsFlexGrid1.Col = X
           MsFlexGrid1.Row = Y
           MsFlexGrid1.CellBackColor = VbYellow
   Next Y
Next X


6- تغيير ترتيب الأسطر :
كود
MsFlexGrid.RowPosition(رقم السطر) = الترتيب الذي نريده


7- تغيير ترتيب الأعمدة :
كود
MsFlexGrid.ColPosition(رقم العمود) = الترتيب الذي نريده


مثال : لترتيب الأعمدة بشكل معكوس :
كود
Dim R as Integer
For R = 2 To MsFlexGrid1.Cols - 1
   MsFlexGrid1.ColPosition(R) = 1
Next


8- معرفة موقع الخلية بالنسبة للأداة MsFlexGid :
نستعمل خاصيتي :
ColPos : لمعرفة بعد الحد الأيسر للعمود عن طرف الأداة من اليسار
RowPos : لمعرفة بعد الحد العلوي للسطر عن طرف الأداة من الأعلى
مثال تطبيقي :
للإظهار مربع نص - وليكن اسمه Text1وهو مخفي حالياً - مكان الخلية عند النقر المزدوج عليها :
كود
With MsFlexGrid1
   Set Text1.Font = .Font
   Text1.RightToLeft = .RightToLeft
   Text1.Alignment = .CellAlignment
   Text1.Left = .Left + .ColPos(.Col) + .BorderStyle * 30
   Text1.Top = .Top + .RowPos(.Row) + .BorderStyle * 30
   Text1.Width = .ColWidth(.Col)
   Text1.Height = .RowHeight(.Row)
   Text1.Appearance = vbFlat
   Text1.Text = .Text
   Text1.Visible = True
   Text1.SetFocus
End With
رزان
بوركت
وجزيت كل الخير
regular_smile.gif
أبو راكان القو
أشكرك جداً على هذا العمل الرائع
a123
واصل ، جزيت خيرا
مهند عبادي
الدرس الخامس :

تحكمات متقدمة (2)

1- أشرطة التمرير :
إن نمط عرض أشرطة الأدوات في MsFlexGrid له إحدى هذه القيم
الشريط القيمة أو استخدم الثابت
بلا 0 flexScrollBarNone
عمودي فقط 1 flexScrollBarHorizontal
أفقي فقط 2 flexScrollBarVertical
عمودي وأفقي 3 flexScrollBarBoth (افتراضي)
كود
MsFlexGrid.ScrollBars = نمط عرض أشرطة الأدوات

2- عرض حدود مربع تحديد الخلايا :
وله إحدى هذه القيم
العرض القيمة أو استخدم الثابت
بلا 0 flexFocusLight
رفيع 1 flexScrollBarHorizontal
ثخين 2 flexFocusHeavy
كود
MsFlexGrid.FocusRect = عرض حدود مربع التحديد


3- تحديد العمود والسطر الذي تتواجد فيهما الفأرة
كود
MsFlexGrid.MouseCol
MsFlexGrid.MouseRow

مثال
كود
Private Sub MsFlexGrid1_DblClick()
 With MsFlexGrid1
   MsgBox "Mouse in Row :" &.MouseRow & vbCr & _
          "Mouse in Col :" &.MouseCol
 End With
End Sub

وكتطبيق عملي يمكن عمل تأثير .. هو تلوين الخلية حيث تكون الفأرة موجودة ويتم تغييره مع تحرّك الفأرة

4- حذف سطر بواسطة تعليمة RemoveItem
كود
MsFlexGrid.RemoveItem (Idnex)

حيث
Index ترتيب السطر المراد حذفه ..

مثال : لحذف السطر الذي فيه التحديد
كود
MsFlexGrid1.RemoveItem (MsFlexGrid1.Row)

5- خاصية الصورة ضمن الخلية :
نقوم بتحديد الخلية المراد وضع الصورة بها ثم نستخدم الصيغة
كود
MsFlexGrid.CellPicture

مثال إذا أردنا وضع صورة في الخلية التي في الزاوية (0،0) نكتب
كود
MsFlexGrid1.Row = 0
MsFlexGrid1.Col = 0
Set MsFlexGrid1.CellPicture = LoadPicture(".\hand.ico")

نلاحظ استخدام Set في هذه الحالة

6- تحديد موقع الصورة ضمن الخلية
كود
MsFlexGrid.CellPictureAlignment = N <--------------- نمط المحاذاة

نستخدم في نمط المحاذاة نفس محاذاة محتويات الخلايا

مثال : لوضع صورة في منتصف الخلية التي في الزاوية (0،0) نكتب
كود
MsFlexGrid1.Row = 0
MsFlexGrid1.Col = 0
Set MsFlexGrid1.CellPicture = LoadPicture(".\hand.ico")
MsFlexGrid1.CellPictureAlignment = flexAlignCenterCenter
eias
السلام عليكم أيها المشرف الكريم شكرا لك ولكن أريد أن ألفت نظرك إلى بعض الأمور مثل ربط الflix ب ado وأكثر من قاعدة بيانات إذا ممكن من بعد فضلك و الطباعة...
إياس
مهند عبادي
أخي إياس ..
شكراً على المداخلة
وما تكلّمت عنه هي في الخطة ضمن الدروس القادمة إن شاء الله
eias
شكرا لك ..قدها وقدود
foxy_fox
[CODE][SIZE=7]
إقتباس(joe911 @ May 11 2004, 09:05 PM)
مشكوووووووووووووووووووووووووووووووور


active skin
مهند عبادي
الدرس السادس

تعبئة جدول ADO في أداة MsFlexGrid

قبل أن أبدأ في هذا الدرس أود التذكير أنه يوجد أدوات Grid خاصة جاهزة للتعامل مع البيانات مثل DbGrid و MSHFlexGrid

هذا مثال على تعبئة جدول ضمن MsFlexGrid

1- في قسم التصريحات العامة للفورم (General) نضع هذان التعريفان
كود
 Dim MyDb As New ADODB.Connection
 Dim rs As New ADODB.Recordset


2- في حدث عند التحميل للفورم نكتب الكود التالي :
كود
Private Sub Form_Load()
   MyDb.Provider = "Microsoft.JET.OLEDB.4.0;"
   MyDb.Open App.Path & "\Db1.mdb "
   rs.Open "table1", MyDb, adOpenStatic, adLockPessimistic
   DrawFlex
End Sub

في هذا الكود يتم تحديد نوع قاعدة البيانات وهي Access
ثم نربط المتحول MyDB بالقاعدة وهي موجودة في نفس مسار البرنامج باسم db1.mdb
ثم نستخدم المتحول RS لفتح الجدول Table1 من قاعدة البيانات
ثم نستدعي إجراء اسمه DrawFlex

3- هذا الإجراء سوف نعمله من أجل أن يملأ أداة MsFlexGrid بالبيانات الموجودة ضمن RS ويتم استدعاؤه كلما تغيرت مجموعة البيانات

وهذه هي شيفرة هذا الإجراء:
كود
Private Sub DrawFlex()
Dim R As Integer
   With MsFlexGrid1
       .Clear
       .AllowUserResizing = flexResizeColumns
       .FixedCols = 0
       .FixedRows = 1

       ' تحديد عدد الأعمدة يساوي عدد الحقول
       .Cols = rs.Fields.Count

       '  تحديد عدد الأسطر يساوي عدد السجلات زائد واحد لأن أول سطر سيستخدم لكتابة عناوين الأعمدة
       .Rows = rs.RecordCount + 1

       ' لكتابة عناوين الأعمدة
       .Row = 0
       For R = 0 To .Cols - 1
           .Col = R
           .Text = rs.Fields(R).Name
       Next R

       ' ملئ الأسطر بالمعلومات
       rs.MoveFirst
       .Row = 0
       Do Until rs.EOF
           .Row = .Row + 1
           For R = 0 To .Cols - 1
               .Col = R
               A = rs.Fields(R).Value
               A = IIf(IsNull(A), "", A)
               .Text = A
           Next R
          rs.MoveNext
       Loop
   End With
End Sub    
hishamnasr
السلام عليكم
اشكرك اخ مهند على الدروس القيمة
و لدي استفسار
لي صديق يبرمج بالدوت نت و في components لم يجد الاداة flexgrid
اظن انها موجوده باسم اخر او طريقة اخرى
ارجو المساعدة و للاهمية ارجو السرعة في الاجابة
مهند عبادي
والله أخي هشام أنا لا أعرف لغة VB.Net

أرجو ممن يعرف الإجابة المساعدة وشكراً
eias
أخhishamnasr هناك اداة Data Grid في .netمشابهة لها.مع الأدوات القياسية
hishamnasr
مشكورين شباب
و لكن كنت اظن ان اداة ال flex grid موجودة في الدوت نت و لكني وجدت نفس اجابتكم في منتدى الدوت نت
eias
أهلا الحقيقة أنا لست من هناك أنا مبتدىء نت
dhhomy
الأخ العزيز مهند عبادي المحترم

السلام عليكم ورحمة الله وبركاته

في الحقيقة عندي سؤال أرجو الرد عليه سريعاً

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

مثل الراتب كيف ابحث عن اللي راتبه مثلا (3000)

ولكم جزيل الشكر وأسأل من الله أن يجعلنا محترفين علي يدكم
سليم علي
شكرا للأخ العزيز على هذه الدروس و نرجو منه أن يوضح لنا كيفية تحرير الأداة flex grid
و شكرا على الجهود و جزاك الله كل خير
simkg
جازاك الله الف خير يا أخي الكريم على هذا الجهد العظيم وأتمنى أن تستمر في هذه العزيمة وتشرح لنا ما هي الطرق للبحث في هذه الأداة وكيف السبيل لبرمجتها وإذا أمكن كيفية طباعة الحقول التي أردنا البحث عنها
prince of egypt
الاستاذ مهند
جزاك الله كل خير
درس ممتاز اكيد من قبل ما اقراه
وفقك الله وسدد خطاك
abulames
السلام عليكم
ممكن من الاخوة نحصل على الاداه مع الكراك
انا عندي vb6
والاداه غير موجوده وشكرا
بو يوسف الراشد
المشرف الغالي/مهند عبادي
نشكرك على هذه الجهود المبذولة وكثر الله من أمثالك وبارك الله في وقتك

عندي سؤال:
انا عندي اكسس 2003 وعندي أداة MsFlexGrid

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

فما الحل.......
خالد محمد صبرى
جزاك الله خيرا لا ادرى هل انتهيت هكذا ام مازال عند بقيه ونريد ان نعرف كيف يتم
استخدامها فى عمليات البحث عن اسم الصنف فى فاتورة مبيعات مثلا
adensoul
السلام عليكم
اخ محمد اشكرك على هذا على هذا الدرس المفيد
انا قمت بتجربه الكود لكن وهو شغال
انا عندي زر ومربع نص واريد ان اضيف محتوياتهما الى قاعدة البيانات في نفس الوقت اريد عندما اضغط الزر تكون البيانات قد اضيفت في ال Msfelxgrid والسؤال الاخر هو انه اريد انا اقوم بحذف بيانات من Msfelxgrid عندما اقوم بعمليه doubleclick يكون السطر المحفز قد احذف من الاداه وايضا من الجدول
هذا وشكرا اخي العزيز
سلام
أبو رحمة
اخوي مهندي
السلام عليكم


حبيبي طب بسيط ان أمكن كيف أربط اداة flexgrid قاعدة بيانات اكسس 2003

بعدين كيف اخصص عمود لفهرس معين

اعني
لو عندي دليل الهاتف وفيه الحقول التالية :

الاسم - رقم الهاتف - العنوان

ابغى اخصص لكل عمود حقل بحيث لو اني اضفت في السجل الواحد معلومة تقوم تظهر في اداةflexgrid تلقائيا ؟


و جزاك الله خير
waheepalherwy
بصراحة انا منتظرين للمزيد عن هذه الاداة وارجو ان لا تكون النهاية هنا...
waheepalherwy
اولاً:السلام عليكم ورحمة الله
ثانيأً: اشكر الأخ/ الكريم مهند على المشاركة الآكثر من رائعة .. حقيقة كثير من المبرمجين يتساءلون عن سمات وخصائص الاداة ولا يعرفون المميزات والاستخدمات الكاملة لها حتى اني سألت اكثر من مبرمج عن هذه الاداة ووجدت انهم لا يعرفون عنها إلا الشئ اليسير ولم استطع ان اشبع رغبتي في معرفة المعلومات عنها.
ولو تكرمت يا أخ مهند الرد عن تساؤل الاخ/adensoul سيستفيد من ذلك الكثير من الاشخاص الذي يبحثون عن اجابة لمثل هذا السؤال؟ ولوفرت عني عناء البحث عن الاجابة في مكان اخر وقد لا استطيع الوصول إليه نهائياً!
اما عن سؤالي فهو هل يمكن رابط الاداة هذه بجدول في نفس قاعدة البيانات التي اتعامل بها ام ان عملها مقصور على استيراد المعلومات من خارج قاعدة البيانات فقط.
ولك جزيل الشكر مني ومن جميع الاخوة الذين تابعوا واستفادوا من هذا الموضوع
waheepalherwy
السلام عليكم
لا اعرف لماذا انقطعت المشاركات حول هذا الموضوع..؟
لكني وجدت الاجابة عن جزء من سؤالي السابق الذي هو (هل يمكن رابط الاداة هذه بجدول في نفس قاعدة البيانات) بالصدفة اثناء محاولاتي لربط احد الجداول بالشبكة والطريقة هي:
في قسم الاعلانات العامة نضع الكود التالي:
Dim mydb As ADODB.Connection
Dim rs As New ADODB.Recordset
حيث ان الجزء الاول يعلن عن قاعدة البيانات ، والثاني عن السجلات
وفي حدث عند التحميل: نضع الكود
Set mydb = CurrentProject.Connection
rs.Open "table Or quary Name", mydb, adOpenStatic, adLockPessimistic
drawflex
ما بين علامة التنصيص نكتب اسم الجدول او الاستعلام المراد اظهاره على اداة الشبكة
اما بالنسبة لـ drawflex فهو اسم الاجراء كما هو مذكور سابقا في مشاركة الاخ مهند
هذا ما استطعت ان اقدمه لكم
أأمل ان اكون قد وفقت بالتوضيح وأن نجد بقية الاجابات عن استفساراتنا حول الاضافة والحذف بواسطة اداة الشبكة!
والسلام عليكم
مهند عبادي
الأخوة الكرام .. آسف على عدم متابعتي للموضوع في الفترة السابقة بسبب الضغط الشديد وعد التفرغ (بصراحة نسيت الموضوع كله)
وإن شاء الله أجاوب على قدر الوقت الفارغ لدي

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

والبقية إن شاء الله قادمة
abulyaman
السلام عليكم ورحمة الله وبركاته

أخوتى فى الله

لقد دلنى على منتداكم الرائع أحد الإخوه - جزاه الله عنى كل خير- وتابعت موضوع الفليكس جريد الذى أبدع فيه الأخ مهند بارك الله فيه ورزقه من علمه الواسع ورضى عنه فى الدارين

أنا أخوكم أيمن محمد همام وكنيتى فى المنتدى أبو اليمان

مرفق لكم ملف مضغوط يجيب على بعض أسئلة الإخوة عن الطباعة للفليكس جريد

حقيقة أنا فى هذا المثال أستخدم MSHFlexGrid وليس MsFlexGrid

وأن كنت لا أرى فرق جوهرى بينهما ولكن MsHFlexGrid الـهيراركيال أنسب للأداة ADO

فهى تتعامل مع الريكورد سيت مباشرة أما MsFlexGrid فتحتاج للأداة Data لترتبط بالبيانات

عموما المثال يحتوى على

مديول مستقل لطباعة الأداة كما هى بنفس عرض الأعمدة وارتفاع الصفوف وتنسيق غامق للصفوف الثابتة وعادى لباقى الصفوف

يطبعها عربى أو إنجليزى حسب اتجاه الأداة

وبه بعض الإضافات التى لا غنى عنها
مثل:
مجموع وعدد الصفوف أو الأعمدة المظللة
إمكانية سحب وإفلات الأعمدة لتغيير مكانها

ترتيب الصفوف تصاعدى وإعداد رقم مسلسل للصفوف

مع إضافة بسيطة وهى إضفاء سمات ويندوز إكس بى على الأزرار

أرجو أن يكون مفيد فى هذا الموضوع

أرجو أن لا تنسونا من دعائكم ساعة الإفطار
abuyazan
رمضان كريم

لي استفسار لو سمحتم :

بعد إدراج الأداة على النموذج وتعبئتها ببيانات من جدول أخر ، كيف لي أن أجعل البيانات التي تظهر هي فقط التي تخص الشخص صاحب السجل المعروض في الفورم
مثلا : يتكون الفورم من سجلات لبيانات أساسية وأريد أن أعرض في جدول الفليكس قريد بيانات جدول أخر تخص صاحب السجل المعروض في النموذج ( تزامن ) .

ولكم التحية
abulyaman
السلام عليكم ورحمة الله وبركاته

أخى abuyazan

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

Select Field1,Field2,Field3 From MyTable Where MyCondition='This' Order By Field1 Asc,Field2 Desc

فهى تعبأ من ريكورد سيت وليس الجدول مباشرة

أرجو أن تكون باقى الأكواد المرتبطة بتعبأتها معروفة
abuyazan
أشكرك أخي على الرد على الاستفسار وسوف أحاول وأبلغك بالرد ، وكل عام وانتم بخير
abuyazan
أخي أبو abulyaman
كيف يتم تعبئة القريد بعد تحديد جملة الاستعلام السابقة فأنا قمت بتعبئتها كما أشار الأخ المشرف في درسه .
abulyaman
بخصوص تعبأة الجريد

إذا كانت MsHFlexGrid
يمكنك إرسال الريكورد سيت لها مباشرة كالتالى

Set MSHFlexGrid1.RecordSet=MyRecordSet

أما إذا كانت MsFlexGrid فإجعل الداتاسورس لها فى الخصائص مرتبطة بأداة Data1
ثم ارسل الريكورد سيت للأداة داتا كالتالى

Set Data1.RecordSet = MyRecordSet

وبذلك كلما أعدت تنشيط الأداة Data1 تحدثت بياناتها كأن تقول

Data1.Refresh
VIPER_HEAD
أشكرك علي هذا الدرس الرائع ولكن
هل يمكنك شرح درس مثله يخصص
ل dbgrid

كما أرجو أيضا أن تشترك في حل مشكلتي الموجودة علي المنتدي بأسم

مشكلة مع DAO
شكرا مرة أخري علي الدرس المتميز


عليك أن تسعي وليس عليك أدراك النجاح
عبود المنطاد
كيف يمكن جعل الفلكس جرايد شفافة

الرجاء المساعدة

أخوكم عبد الرحمن
Sunny
الاخ ابو اليمان
جربت طريقتك الاخيرة لتحديث البيانات في MSHFlexGrid1 عبر ربطه بـ adodc ومن ثم عمل تحديث
adodc.Refresh
لكن ذلك لم يظهر السجلات المضافة حديثا ولا يتم عرضها الا بعد الخروج من البرنامج ثم الدخول مرة اخرى هل من طريقة للتحديث مباشرة
abulyaman
السلام عليكم ورحمة الله وبركاته
[quote]
الاخ ابو اليمان
جربت طريقتك الاخيرة لتحديث البيانات في MSHFlexGrid1 عبر ربطه بـ adodc ومن ثم عمل تحديث
adodc.Refresh
لكن ذلك لم يظهر السجلات المضافة حديثا ولا يتم عرضها الا بعد الخروج من البرنامج ثم الدخول مرة اخرى هل من طريقة للتحديث مباشرة
[]/quote]
أخى العزيز
من حسن حظك أنك تستخدم MSHFlexGrid1 وهى لا تحتاج لربط بأداة أخرى
فقط أضف الريكورد سيت لها فى خاصية MSHFlexGrid1.RecordSet

وبإذن الله سيعمل معك ولن تحتاج للـ adodc
Sunny
طيب
سأجرب واخبرك ان شاء الله بالنتيجة
Sunny
لم تفلح محاولاتي حيث ان الجدول يظهر السجلات القديمة ولا يظهر السجل الجديد
طبعا اضفت set قبل MSHFlexGrid1.RecordSet

ساوضح المشكلة اكثر
لتسهيل الادخال للمستخدم وضعت العملاء في جدول MSHFlexGrid1 وبمجرد ان يضغط على احدهم يتم ادخاله في الحقل في شاشة المبيعات لكن عند اضافة جديد فانه لايظهر مباشرة في الجدول الا بعد الخروج من البرنامج ثم تشغيله مرة اخرى
Sunny
up
هذه "نسخة - خفيفة" من محتويات الرئيسية للإستعراض الكامل مع المزيد من الصور والخيارات الرجاء إضغط هنا.
Invision Power Board © 2001-2009 Invision Power Services, Inc.