تصحيح كود StringGrid
#1
Sad 
السلام عليكم ورحمة الله ..... اخواني لدي مشكلة في تصدير البيانات من كائن StringGrid .
انا آخذ قيم من الكائن واقوم بوضعها في قاعدة البيانات عن طريق ADOTable 

Angel

[صورة: Capture.jpg]

PHP كود :
procedure TForm12.Button2Click(Sender: TObject);
 
 var c,r:Integer;
 
 nomjour,tempstart,codeprof,codemat:string;
begin
 
for c := 1 to 5 do
 
  begin
     
for r := 1 to 8 do
 
       begin
          case c of
          1
:nomjour:='الأحد';
 
         2:nomjour:='الاثنين';
 
         3:nomjour:='الثلاثاء';
 
         4:nomjour:='الأربعاء';
 
         5:nomjour:='الخميس';
 
       end;
 
         begin
            case r of
             1
:tempstart:='08:00';
 
            2:tempstart:='09:00';
 
            3:tempstart:='10:00';
 
            4:tempstart:='11:00';
 
            5:tempstart:='12:00';
 
            6:tempstart:='14:00';
 
            7:tempstart:='15:00';
 
            8:tempstart:='16:00';
 
           end;
 
        end;
 
         codeprof:=StringGrid1.Cells[c,r];
 
         codemat:=copy (codeprof,1,3);

 
         ADOTable1.Edit;

 
         ADOTable1.FieldByName('codeprof').Value:=codeprof;
 
         ADOTable1.FieldByName('codemat').Value:=codemat;
 
         ADOTable1.FieldByName('nomjour').Value:=nomjour;
 
         ADOTable1.FieldByName('tempstart').Value:=tempstart;
 
         ADOTable1.FieldByName('codeclasse').Value:= DBLookupComboBox1.Text;
 
         ADOTable1.FieldByName('nomlocale').Value:= DBLookupComboBox3.Text;
 
         ADOTable1.FieldByName('annee').Value:= DBEdit1.Text;

 
         ADOTable1.Post;
 
        end;


 
  end;

end; 


الملفات المرفقة
.jpg   Capture.JPG (الحجم : 66.46 ك ب / التحميلات : 7)
الرد
#2

السلام عليكم
1- تحقق من قيمة codeprof
2- البيانات تكتبها بجدول له علاقة بجدول أخر، تحقق من العلاقة
3- الكود كما هو فوق خطأ فهو يكتب سجل/سطر/توقيت واحد فقط
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#3
اوكي ... شكرا أستاذ عبد العزيز Smile .... سأتحقق واوافيك بالجديد ؟
الرد
#4
Sad 
أستاذ عبد العزيز ,   بقي لدي مشكل في تحديد الايام والساعات في الحلقة الأولى والثانية Case  ؟

فهو يقوم بأخذ آخر قيم .... يأخذ مثلا الأحد أو الخميس او الوقت 8:00 او 16:00 في تحديد الخلية ؟

Angel

PHP كود :
procedure TForm12.Button2Click(Sender: TObject);
var
 
    c,r:integer;
 
   jour,temp,codeprof,codemat:string;
begin //الحلقة الاولى
 
for c := 1 to 5 do
 
  begin //الحلقة الثانية
 
    for r := 1 to 7 do
 
       begin //بداية حلقة الأيام
 
         case c of
          1
:jour:='الأحد';
 
         2:jour:='الاثنين';
 
         3:jour:='الثلاثاء';
 
         4:jour:='الأربعاء';
 
         5:jour:='الخميس';
 
         end;      //نهاية حلقة الأيام
 
          begin  //بداية حلقة الوقت المتداخلة
 
           case r of
             1
:temp:='08:00';
 
            2:temp:='09:00';
 
            3:temp:='10:00';
 
            4:temp:='11:00';
 
            5:temp:='14:00';
 
            6:temp:='15:00';
 
            7:temp:='16:00';
 
          end; //نهاية حلقة الأيام
 
        end; //الخروج من حلقة الوقت

 
     end;  //الخروج من حلقة الأيام
 
        codeprof:=DBLookupComboBox6.Text;
 
    //     codeprof:=StringGrid1.Cells[c,r];
 
         codemat:=copy (codeprof,1,3);
 
        //  codemat:=Copy
 
         ADOTable1.Edit;
 
        // ADOTable1.FieldByName('codeprof').Value:=codeprof;
 
        ADOTable1codeprof.Value:=DBLookupComboBox6.Text;
 
         ADOTable1.FieldByName('codemat').Value:=codemat;
 
         ADOTable1.FieldByName('nomjour').Value:=jour;
 
         ADOTable1.FieldByName('tempstart').Value:=temp;
 
         ADOTable1.FieldByName('codeclasse').Value:= DBLookupComboBox1.Text;
 
         ADOTable1.FieldByName('nomlocale').Value:= DBLookupComboBox3.Text;
 
         ADOTable1.FieldByName('annee').Value:= DBEdit1.Text;
 
         ADOTable1.Post;


 
  end;   //الخروج من الحلقة الثانية
end;    //الخروج من الحلقة الأولى 
الرد
#5
لا يزال عندك خطأ في 3
بعد الامر post ضف السطر التالي للتحقق

كود :
ShowMessage('Jour='+Jour+' Temp='+Temp);
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#6
شكرآ أستاذ Smile

أستاذ عبد العزيز أضن أن المشكل بقي نفسه  Angel
لا يتم اختيار اليوم المحدد في الخلية الخاصة بـ StringGrid مازال يختار اليوم الاول او اليوم الاخير والوقت كذلك 

[صورة: Capture.jpg]
الرد
#7
هل StringGrid يحتوي توقيت واحد فقط ؟ يعني خلية وحدة كما بالصورة ؟
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#8
(26-01-2016, 01:00 PM)B.M.AbdelAziZ كتب : هل StringGrid يحتوي توقيت واحد فقط ؟ يعني خلية وحدة كما بالصورة ؟

[size=large]لا ... هو يحتوي على توقيت أسبوع كامل ... لكن عند الضغط على الخلية ,  اقوم بإضافة الاستاذ عن طريق الزر حجز الذي يحتوي على هذه التعليمة : [/size]


PHP كود :
procedure TForm12.Button1Click(Sender: TObject);
var 
c,r:integer;
begin
    c
:=StringGrid1.Col;
 
   r:=StringGrid1.Row;
 
    StringGrid1.Cells[c,r]:=DBLookupComboBox6.Text;

end; 
[size=large]فيقوم بحجز ترميز الاستاذ كما هو المثال في الصورة عربية1 (ARB1)  وهكذا نقوم بالعمل على بقية الحصص ؟[/size]
الرد
#9
ان امكنك ارفاق مثال ولو بسيط به قاعدة البيانات ومثال لحصص استاذ حتى يمكن تجربتها فعليا وتصحيح الخطأ
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
الرد
#10
Sad 
[size=x-large]هذا مثال بقاعدة بيانات Accessاستعملت الجداول المستخدمة فقط ... القاعدة الرسمية في SQL ؟ [/size]


الملفات المرفقة
.rar   Emploi.rar (الحجم : 137.99 ك ب / التحميلات : 50)
الرد


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


يقوم بقرائة الموضوع: بالاضافة الى ( 1 ) ضيف كريم