delphi4arab منتديات دلفي للعرب
تصحيح كود StringGrid - نسخة قابلة للطباعة

+- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum)
+-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3)
+--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15)
+--- الموضوع : تصحيح كود StringGrid (/showthread.php?tid=7431)

الصفحات: 1 2


تصحيح كود StringGrid - gheislam - 25-01-2016

السلام عليكم ورحمة الله ..... اخواني لدي مشكلة في تصدير البيانات من كائن 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; 



RE: تصحيح كود StringGrid - محمد عبد العزيز - 25-01-2016


السلام عليكم
1- تحقق من قيمة codeprof
2- البيانات تكتبها بجدول له علاقة بجدول أخر، تحقق من العلاقة
3- الكود كما هو فوق خطأ فهو يكتب سجل/سطر/توقيت واحد فقط



RE: تصحيح كود StringGrid - gheislam - 25-01-2016

اوكي ... شكرا أستاذ عبد العزيز Smile .... سأتحقق واوافيك بالجديد ؟


RE: تصحيح كود StringGrid - gheislam - 25-01-2016

أستاذ عبد العزيز ,   بقي لدي مشكل في تحديد الايام والساعات في الحلقة الأولى والثانية 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;    //الخروج من الحلقة الأولى 



RE: تصحيح كود StringGrid - محمد عبد العزيز - 26-01-2016

لا يزال عندك خطأ في 3
بعد الامر post ضف السطر التالي للتحقق

كود :
ShowMessage('Jour='+Jour+' Temp='+Temp);



RE: تصحيح كود StringGrid - gheislam - 26-01-2016

شكرآ أستاذ Smile

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

[صورة: Capture.jpg]



RE: تصحيح كود StringGrid - محمد عبد العزيز - 26-01-2016

هل StringGrid يحتوي توقيت واحد فقط ؟ يعني خلية وحدة كما بالصورة ؟


RE: تصحيح كود StringGrid - gheislam - 26-01-2016

(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]



RE: تصحيح كود StringGrid - محمد عبد العزيز - 26-01-2016

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


RE: تصحيح كود StringGrid - gheislam - 26-01-2016

[size=x-large]هذا مثال بقاعدة بيانات Accessاستعملت الجداول المستخدمة فقط ... القاعدة الرسمية في SQL ؟ [/size]