delphi4arab منتديات دلفي للعرب

نسخة كاملة : تصحيح كود StringGrid
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم ورحمة الله ..... اخواني لدي مشكلة في تصدير البيانات من كائن 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; 

السلام عليكم
1- تحقق من قيمة codeprof
2- البيانات تكتبها بجدول له علاقة بجدول أخر، تحقق من العلاقة
3- الكود كما هو فوق خطأ فهو يكتب سجل/سطر/توقيت واحد فقط
اوكي ... شكرا أستاذ عبد العزيز Smile .... سأتحقق واوافيك بالجديد ؟
أستاذ عبد العزيز ,   بقي لدي مشكل في تحديد الايام والساعات في الحلقة الأولى والثانية 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;    //الخروج من الحلقة الأولى 
لا يزال عندك خطأ في 3
بعد الامر post ضف السطر التالي للتحقق

كود :
ShowMessage('Jour='+Jour+' Temp='+Temp);
شكرآ أستاذ Smile

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

[صورة: Capture.jpg]
هل StringGrid يحتوي توقيت واحد فقط ؟ يعني خلية وحدة كما بالصورة ؟
(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]
ان امكنك ارفاق مثال ولو بسيط به قاعدة البيانات ومثال لحصص استاذ حتى يمكن تجربتها فعليا وتصحيح الخطأ
[size=x-large]هذا مثال بقاعدة بيانات Accessاستعملت الجداول المستخدمة فقط ... القاعدة الرسمية في SQL ؟ [/size]
الصفحات : 1 2