السلام عليكم
- 1
- هل من الممكن جعل سطر من اسطر DBGrid غير مفعل اى لايمكن الكتابة فيه .
- 2
- و هل من الممكن ايضا تغير ارتفاع هدا السطر .
و هدا كله بدون التاثير على باقى الاسطر .
و السلام عليكم .
السلام عليكم
و هدا كله بدون التاثير على باقى الاسطر .
و السلام عليكم .
تم تعديل هذه المشاركة بواسطة hanitaieb في 21 أكتوبر 2008 في 22:29
بالنسبة لإرتفاع السطر
procedure TForm1.Button1Click(Sender: TObject); begin كل الأسطر tstringgrid(dbgrid1).defaultrowheight:=25; سطر معين tstringgrid(dbgrid2).rowheights[1] := 25; end;
أما بالنسبة لجعل سطر معين غير قابل للتعديل :hmm:
سبب التعديل إضافة صورة
تم تعديل هذه المشاركة بواسطة rober في 21 أكتوبر 2008 في 23:41
I'm Away For Sometimes
I'll Finish My Works
Come Back Soon
More Study > More Search > More Try > More Learning > Great Success
بالنسبة لارتفاع السطر فقد اجابك الاخ Rober مشكور
بالنسبة عدم تفعيل سطر
اذا كان قصدك تسجيلة معينة فاليك هذا الكود وضعه في خاصية oncellclick للمكون Dbgrid
if Table1.FieldByName('id').Value=1 then
DataSource1.AutoEdit:=false
else
DataSource1.AutoEdit:=True;بالتوفيق
اللهم علمنا ما ينفعنا وانفعنا بما علمتنا وانفع الناس بنا واغفر لنا وارحمنا
أخي الكريم حقيقة أنا لا أعرف شي عن قواعد البيانات أو مكوناتها لكن جرب هذا الحل الذي فكرا فيه
بما أن DBGrid مشتق من TCustomGrid
type TVGrid = class (TCustomGrid) end;
الان في الحدث onClick للمكون DBGrid
if TVGrid(DBGrid1).Row = 2 then TVGrid(DBGrid1).Row := 1
هذا الكود سوف ينقل التركيز عن السطر 2 أي أن السطر 2 غير مفعل
السلام عليكم...
بالنسبة إلى منع تعديل سطر (سجل) معين، فكما قال الأخ "علي .ع" بالتأكيد أنك ستعتمد على شرط معين لتحديد ذلك السجل.
يمكن الاستفادة من الحدث OnAfterScroll للـ DataSet المرتبطة بها الـ DBGrid (أي الجدول أو الاستعلام المرتبطة به) للتأكد من وجود الشرط ثم منع التحرير في الـ DBGrid:
1. بجعل الـ DBGrid ككل للقراءة فقط:
2. أو بمنع عملية التحرير:
نرجو الاستفادة و السلام.
وَ قُلِ اعْمَلُوا فَسَيَرَى اللهُ عَمَلَكُمْ وَ رَسُولُهُ وَ الْمُؤْمِنُونَ
صدق الله العظيم
السلام عليكم
ماشاء الله .. بارك الله فيكم . شكرا جزيلا
.
.
تم تطبيق ماورد اعلاه مع اضافات صغيرة و التى تسببت فى حدوث مشكل لم يكن فى الحسبان و لم افهم فيه شىء.
عدد الاسطر قليل

عند كثرة عدد الاسطر

الاضافة المتسببة فى هدا المشكل هى
procedure TForm1.DBGrid1DrawColumnCell if table1['N1']=0 then tstringgrid(dbgrid1).RowHeights[datasource1.DataSet.RecNo-1]:=7;
بحيث يحدث هدا المشكل عندما يكثر عدد الاسطر اى عندما يفوق مجموع ارتفاع الاسطر ارتفاع DBGrid و الله اعلم .
فى غير دالك اى عندما يكون عدد الاسطر قليل يكون كل شىء تمام.
اخى الكريم للتاكد قم بحدف كا الاسطر ثم قم بتسجيل سطر او سطرين ثم اضف الفاصل بين العمليات فلا ينتج اى مشكل ?
ثم عند كثرة عدد الاسطر مثلا 15..20 ينتج المشكل الوارد فى الصورة .
و السلام عليكم
شكرا مرة اخرى . :happy:
تم تعديل هذه المشاركة بواسطة hanitaieb في 23 أكتوبر 2008 في 01:47
أخي الكريم يا ريت تحط المرفق في المندى أو على موقع غير الرابيد شير لأنه لا يعمل عندي :blush:
و يعون الله يكون للمشكلة حل
I'm Away For Sometimes
I'll Finish My Works
Come Back Soon
More Study > More Search > More Try > More Learning > Great Success
أخي هاني
جربت المرفق و لم تظهر الرسالة التي ذكرتها
بكل الأحوال إن كان هناك مشكلة في dbgrid أنصحك بالتعامل مع stringgrid
مما فهمته في الإطار المرفق أنك تقوم بعمل ما يسمى ( كشف حساب ) العميل و تريد إخفاء السجلات التي قيمتها صفر
في حال رغبت في عمل ذلك بإستخدام dbgrid قم بعمل query على الجدول تستخرج منه العمليات التي تمت على العميل التي رصيدها لا يساوي 0
query.Active := false;
query.SQL.Clear;
query.SQL.Add('select * from order where name = ''hani'' and balance <> ''0''');
query.Active := true;و قم بربط dbgrid بـ datasource المربوط بالـ query
الأمر مجرد إقتراح و إن كنت أخطأت الفهم أرجو منك توضيح ما هو مطلوب من الأطار بالتحديد
و إن كان الإقتراح قد أعجبك ممكن نتوسع في الشرح أكثر
أرجو الأستفادة
تم تعديل هذه المشاركة بواسطة rober في 23 أكتوبر 2008 في 04:16
I'm Away For Sometimes
I'll Finish My Works
Come Back Soon
More Study > More Search > More Try > More Learning > Great Success
السلام عليكم
اخى Rober
بالنسبة للاطار و مايحتويه :
و ضيفته الوحيدة هى للفصل بين العمليات فقط لاغير .
اما بالنسبة للصفر هو عبارة عن شرط للوصول الى دالك السطر
ل( تلوينه و تخفيض ارتفاعه و جعله غير مفعل ) لياخد صفة اطار.
و بالتالى ليس له اى علاقة بالعمليات المحاسبية الاخرى
------
فيما يخص رسالة الخطاء :
اخى Rober ادا كان لديك الوقت قم بمايلى :
تسجيل 3 اسطر عن طريق CheckBox .. اضافة سطرجديد (Append)
املىء تلك السطور باى شىء .
ثم ..
اضف سطرواحد عن طريق CheckBox .. الفصل بين العمليات
كرر هده العملية ليصل عدد الاسطر 20 او اكثر .. و ستضهر الرسالة
بارك الله فيك . :happy:
و السلام عليكم
تم تعديل هذه المشاركة بواسطة hanitaieb في 23 أكتوبر 2008 في 07:52
أخ هاني
أتصور المشكلة في datasource1.DataSet.RecNo-1 في السطر
tstringgrid(dbgrid1).RowHeights[datasource1.DataSet.RecNo-1]:=7;
قد يقيدك أحد الأخوة الأكثر خبرة في حل المشكلة أو إضافة طريقة أخرى
I'm Away For Sometimes
I'll Finish My Works
Come Back Soon
More Study > More Search > More Try > More Learning > Great Success
السلام عليكم
وين وصلت اخي ؟؟ هل وجدت الحل ؟؟
إذا وصلت للحل أخبرنا رجاءا ...
بالتوفيق
بسم الله الرحمن الرحيم " وقل رب زدني علما"
السلام عليكم.
إليك المثال التالي :
نضع مركبة Table1ولتكن الداتا باز هي DBDemos والجدول هو Animals. ونضع مركبة DataSource1 و الـ DBGrid1.
ونربطهم عادي.
لنفترض أننا نريد إظهار الصفوف بإرتفاع ولون معين عند شرط معين وهو أن يكون الحقل Size يساوي 10.
فنكتب في الحدث OnDrawColumnCell في Table1 الكود التالي:
*********************************************************************
هذا ربما سيعطيك فكرة عما تريد بالنسبة لإمكانية الكتابة أو عدمها في بعض الأسطر.
تم تعديل هذه المشاركة بواسطة Swift في 28 أكتوبر 2008 في 21:15 — السبب: وضع التاج الخاص بالأكواد