الفريق العربي للبرمجةأرشيف المنتديات · 2000 – 2023
نسخة أرشيفية للقراءة فقط — التسجيل والمشاركة مغلقان، والمحتوى محفوظ كما كان.

عندما اضغط على كومبوبوكس تضهر لي رقم الطالب وبجانبه اسمه

بدأه mouha-74 في 8 مايو 2010 · 11 رد · 1,601 مشاهدة · في لغة Delphi
مشاركة: واتساب X فيسبوك تيليجرام
#1 صاحب الموضوع

لديا مجموعة من الطلبة ونقاطهم والفروع التي يدرسون فيها اريد ان اضيف اليه في قائمة ComboBox1 عندما اضغط على كومبوبوكس تضهر لي رقم الطالب وبجانبه اسمه وفي خانة نقاط + فرع اريد حساب مجموع النفاط الموجودة في خانة N1 N2.N3 افقيا عند الضغط على بوتون حساب افقي ووضعها في خاناتها المخصص لها.وكذلك بالنسبة للحساب العمودي غير انه يوضع في خانة واحدة كلما تنقلنا من كود الى اخر واضهار النتاج في قائمة الطباعة.ارجوكم افيدونا وعدلو على البرنامج .الياس البرنامج MED في قرص D

MED.rar

تم تعديل هذه المشاركة بواسطة زكيري عبد العالي في 8 مايو 2010 في 21:59

#2

السلام عليكم

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

2.لحساب مجموع الحقول N1,N2,N3 استعمل الكود التالي

Somme := Table1.FieldByName('N1').AsFloat+Table1.FieldByName('N2').AsFloat+Table1.FieldByName('N3').AsFloat

بافتراض أن tbale1 هي الجدول المعني

3. بالنسبة للحساب العمودي اذا قصدت المجموع الكلي للمجمايع الجزئية استعمل الكود التالي

var Somme :Double;
begin
 Table1.DisableControls;
 Somme :=0;
 Try
 Table1.First;
 While (not Table1.eof) do
 begin
 Somme :=  Somme +
 Table1.FieldByName('N1').AsFloat+Table1.FieldByName('N2').AsFloat+Table1.FieldByName('N3').AsFloat;
 Table1.next;
 end;
 Finally
 Table1.EnableControls;
 End;
End;

4. بالنسبة للطباعة لديك حلين اما ان تضع نصوص في التقرير وتقوم بالحسابات ومن ثم تغيير النصوص "وهذه غير عملية"

أو

تنشئ جدول مؤقت يناسب التقرير الذي تريد الحصول عليه تقوم بملئه بالمغطيات المناسبة و تجهز التقرير على أساس هذا الجدول

السلام عليكم

#3

بارك الله فيك على المساعدة.بالنسبة لبوتون الحساب العمودي وضعت فيها الكود ولم يحسب.اما بالنسبة لبوتون حساب افقي فإني قصدت حساب كل حقل على حدى ويوضع المجموع في اديته بالنسبة لمجموع نقاط N1 ونقاط N2 ونقاط N3 بمجرد الضغط

عل البوتون او التنقل بالمؤشر فيجمع وحده.وحبذا لو تعدل على الملف وترفقه فإني بداي في الدلفي.

#4

السلام عليكم

عند الحدث Onclick للزر قم بلصق الكود التالي وهو مشروح ان شاء الله

var
  somme1, somme2, somme3: Double;
begin
  { الغاء تنشيط الكائنات لتسريع قراءة الجدول }
  Table2.DisableControls;

 { تهيئة المتغيرات  }
  Somme1 := 0;
  Somme2 := 0;
  Somme3 := 0;

  try

    { بداية الجدول}
    Table2.First;
   {ما دام لم نصل الى نهاية الجدول }
    while (not Table2.eof) do
    begin

      Somme1 := Somme1 + Table2.FieldByName('N1').AsFloat;
      Somme2 := Somme2 + Table2.FieldByName('N2').AsFloat;
      Somme3 := Somme3 + Table2.FieldByName('N3').AsFloat;
     {التالي في الجدول}
      Table2.next;
    end;

    Edit1.Text := FloatTostr(Somme1);
    Edit2.Text := FloatTostr(Somme2);
    Edit3.Text := FloatTostr(Somme3);

    Edit4.Text := FloatTostr(Somme1 + Somme2 + Somme3)

  finally
    Table2.EnableControls;
  end;


end;

والمثال في المرفقات . تفضل أرجوا ان يكون هذا ماتريده

test.rar

#5

ربي يخليك ياخويا ويعطيك مم تتمنا .في ميزان حساناتك.

اريد التعرف اليك اذا امكن.

#6

السلام عليكم

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

والذين يبذلون مجهودات مهمة لتطوير مستوى البرمجة والمبرمجين العرب ,,

نسأل الله العظيم التوفيق لهم ولنا

مرحبا بك أخي يمكنك التواصل معي عبر الخاص

#7

لم أفهم كلمة عبر الخاص.وكيف عمل معك الملف المرفق teste بدون قواعد البيانات.

#8

السلام عليكم

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

بقد حملت المرفقات وقاعدة المعطيات

#9
KhelifaAdm كتب:

السلام عليكم

عند الحدث Onclick للزر قم بلصق الكود التالي وهو مشروح ان شاء الله

var
  somme1, somme2, somme3: Double;
begin
  { الغاء تنشيط الكائنات لتسريع قراءة الجدول }
  Table2.DisableControls;

 { تهيئة المتغيرات  }
  Somme1 := 0;
  Somme2 := 0;
  Somme3 := 0;

  try

    { بداية الجدول}
    Table2.First;
   {ما دام لم نصل الى نهاية الجدول }
    while (not Table2.eof) do
    begin

      Somme1 := Somme1 + Table2.FieldByName('N1').AsFloat;
      Somme2 := Somme2 + Table2.FieldByName('N2').AsFloat;
      Somme3 := Somme3 + Table2.FieldByName('N3').AsFloat;
     {التالي في الجدول}
      Table2.next;
    end;

    Edit1.Text := FloatTostr(Somme1);
    Edit2.Text := FloatTostr(Somme2);
    Edit3.Text := FloatTostr(Somme3);

    Edit4.Text := FloatTostr(Somme1 + Somme2 + Somme3)

  finally
    Table2.EnableControls;
  end;


end;

والمثال في المرفقات . تفضل أرجوا ان يكون هذا ماتريده

اخي خليفه آدم وموها

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

هناك طريقه ابسط من تلك التي شاهدتها وهو استخدام الكوري وبلحظه والملف مغلق يعطيك النتيجه وساعمل مثال اذا رغبتم

ولكم تحياتي

تم تعديل هذه المشاركة بواسطة shalwan في 14 يونيو 2010 في 20:29

نسأل الله الجنه لنا ولوالدينا ولمن لهم حق علينا

#10

السلام عليكم

شكرا لك أخ شلوان على الاشارة المهمة

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

الحل المفضل والأسرع كما أشار أخونا شلوان هو استعمال Sql

مثلا الأمر التالي

Select sum(N1)
from table1
where xxx

يقوم بحساب مجموع الحقل N1

في الحدول table1

حسب الشرط xxx

ةالممتع في الأمر السرعة الكبيرة في التنفيذ

هناك دوال أخرى قياسية

avg لحساب معدل حقل معين أس المجموع تقسيم التعداد

sum مجموع حقل معين

count تعداد حقل معين أي عدد السجلات الموجودة بالجدول

#11
KhelifaAdm كتب:

السلام عليكم

شكرا لك أخ شلوان على الاشارة المهمة

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

الحل المفضل والأسرع كما أشار أخونا شلوان هو استعمال Sql

مثلا الأمر التالي

Select sum(N1)
from table1
where xxx

يقوم بحساب مجموع الحقل N1

في الحدول table1

حسب الشرط xxx

ةالممتع في الأمر السرعة الكبيرة في التنفيذ

هناك دوال أخرى قياسية

avg لحساب معدل حقل معين أس المجموع تقسيم التعداد

sum مجموع حقل معين

count تعداد حقل معين أي عدد السجلات الموجودة بالجدول

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

نسأل الله الجنه لنا ولوالدينا ولمن لهم حق علينا

#12

شكرا على الإعانة

مواضيع مشابهة

عدد الزوار حالياً

المتواجدون خلال آخر دقيقتين · يتحدّث كل ٣٠ ثانية

—الإجمالي—أعضاء مسجّلون—زوار بدون تسجيل

جارٍ التحقق من المتواجدين…