اود اعرف كيفية جعل dbgrid ملونة دائما صف بعد صف ؟؟
وعدم تكرار حقل المفتاحي في dbgrid مثلا لرقم الصنف في الفاتورة
وشكرا لكم
اود اعرف كيفية جعل dbgrid ملونة دائما صف بعد صف ؟؟
وعدم تكرار حقل المفتاحي في dbgrid مثلا لرقم الصنف في الفاتورة
وشكرا لكم
وضحي الجزء الثاني من السؤال
أضاعوني وأي فتى أضاعـوا * * * ليـوم كــريهـة وســـداد ثغــــر
وخـــــلونـي ومعتـرك المنايـا * * * وقد شـــرعوا أسنــتهم لنحـري
كأني لم أكــــــن فيهـم وسيطـا * * * ولم تك نســبتي في آل عمــرو
أجرر في الجـــوامع كـل يـوم * * * ألا لله مظــــلمتـي وهـصـــري
عسى الملك المجيب لمن دعاه * * * سينجيني فيعلم كيــف شكـري
فأجـــزي بالكرامـة أهـل ودي * * * وأجزي بالضـغينة أهل ضري
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
procedure TAgreement.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if odd((Table2.FieldByName('SrCode').AsInteger)) then
begin
DBGrid1.Canvas.Brush.Color:=clInactiveCaptionText;
DBGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
if not (odd((Table2.FieldByName('SrCode').AsInteger))) then
begin
DBGrid1.Canvas.Brush.Color:=$0085DDFA;
DBGrid1.DefaultDrawColumnCell (Rect, DataCol, Column, State);
end;
end;
حيث ان Table2.FieldByName('SrCode').هو اسم فيلد من ضمن الجدول المعروض ضمن القريد
تم تعديل هذه المشاركة بواسطة romanof في 31 أغسطس 2005 في 19:29
هذا الكود أفضل وحر ولا يعتمد علي اشياء قيم معينة للبيانات
في الحدث
DBGrid1DrawColumnCell
ضع الكود
var RowHeight,Row:INteger; begin RowHeight := Rect.Bottom - Rect.Top+1; Row := (Rect.Top div RowHeight); if row mod 2= 0 then dbgrid1.Canvas.Brush.Color:=clInactiveCaptionText else dbgrid1.Canvas.Brush.Color:=$0085DDFA; dbgrid1.DefaultDrawColumnCell(rect,datacol,column,state); end;
يمكنك التغيير الي الألوان المفضلة والمناسبة للون الخط
تم تعديل هذه المشاركة بواسطة romanof في 31 أغسطس 2005 في 19:31
بالنسبة للجزء الثاني من السؤال هو عند اضافة سجل اخر في dbgrid ويكون موجود او تم اضافته من قبل وهو حقل مفتاحي يعرض رسالة key vialotion لذالك اريد عدم تكرار هذا الحقل
مثلا اريد صرف فاتورة لاكثرمن صنف
وكان رقم الصنف الاول 1 اسم الصنف ثلاجة ومثلا السجل الثاني قمت بوضع نفس رقم الصنف يعرض رسالة انه موجود سابقا حتى لايكون للفاتورة سجلين بنفس الصنف
وارجوان اكون قد اوضحت السؤال اكثر
وشكرا على اجابتكم السريعة بالفعل جزاكم الله خيرا
هل الرقم الذي تضعه هو Auto Number ام لا
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
اقتباسوعدم تكرار حقل المفتاحي في dbgrid
عدم تكرار الحقل يتم ضبتة من الجدول نفسة (من قاعدة البيانات) وليس من DbGried
لا الحقل ليس auto number هو رقم الصنف
اخي الكريم
لكي تضمن عدم تكرار اي حقل يجب عليك ان تضبط ذلك من قاعدة البيانات التي تستخدمها
و عند اذخال اي قيمة متكررة في الحقل خطأ من المستخدم سيتمم ظهور Exception
تدل على انه قمت بادخال قيمة متكررة في الحقل و لا يسمح بالحفظ حتى يتم تغيير القيمة
و انت كمبرمج تقوم بالتقاط هذا الخطأ و تظهر الرسالة التي ترغب بها لتحذر المستخدم
على كل
ما هي اسم قاعدة البيانات التي تستخدمها لكي اساعدك في فعل ذلك
Access,SQL server,Oracl..
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
قاعدة البيانات هي paradox7
اخي الكريم اليك الحل
قم بفتح DataBase Desktop ثم قم بفتح الجدول المطلوب
بعد فتح الجدول من Toolbar قم باختيار الامر Restructure
عندها يتم فتح نافذة فيها اسماء الحقول
العملية التي سنقوم بها هي وضع فهرس وحيد على الحقل الذي لا نريده ان يتكرر
1- من Table Properties قم باختيار Secondery Indexes
2- ثم اختار الزر Define
3- في الواجهة المفتوحة اممامك قم باختيار الحقل الذي تريده ان لا يتكرر من القائمة Fields
4- ثم قم باضافته الى القائمة Indexed Field
5- ثم قم بوضع اشارة صح على Unique
6- ثم اختر OK لتظهر نافذة اخرى تطالبك باسم لل Index قم بوضع اسم الحقل و قبله الحرفين XD مثلا
7- ثم قم باختيار OK ثم Save
الان اصبح هذا الحقل لا يمكن ان يتكرر ابدا
اذا ادخل المستخدم اي قيمة موجودة مسبقا لن يتم اضافتها
جرب ثم رد خبر
رب اجعلني مقيم الصلاة ومن ذريتي ربنا وتقبل دعاء.
لا تنسى: "العقل مثل العضلة كلما استخدمته أكثر كلما ازدادت قوته"
هذا الموضوع مغلق.