![]() |
|
خطاء في كود للجمع حسب كل مجموعة - نسخة قابلة للطباعة +- delphi4arab منتديات دلفي للعرب (https://delphi4arab.net/forum) +-- قسم : منتديات دلفي للعرب التعليمية (https://delphi4arab.net/forum/forumdisplay.php?fid=3) +--- قسم : سؤال و جواب حول دلفي (https://delphi4arab.net/forum/forumdisplay.php?fid=15) +--- الموضوع : خطاء في كود للجمع حسب كل مجموعة (/showthread.php?tid=8655) |
خطاء في كود للجمع حسب كل مجموعة - medreg - 03-05-2017 السلام عليكم ورحمة الله تعالى وبركاته حاولت عدة مرات بهذا الكود الا ان الجمع المطلوب ليس مضبوط والمجمع المطلوب هو حسب الصورة المرفقة والكود المستعمل هو كود : procedure TFrmCalc.Button1Click(Sender: TObject);
Var xCda,xCdb,xCdd:string;
Blq:Boolean;
tot:Double;
begin
with DM do
begin
Table1.first;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
Table1.next;
Table1.First;
while not (Table1.eof) do
begin
If (Table1Cda.asstring=xCda) and (Table1Cdb.Asstring=xCdb) and (Table1Cdd.Asstring=xCdd) then
begin
tot:=Table1MT.value+tot;
end else begin
Table1.Prior;
Table1.edit;
Table1MTot.VALUE:=tot;
tot:=Table1MT.value;
Table1.Next;
end;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
Table1.Next;
end;
end;
end;
[attachment=3491]عفوا الكود المستعمل هو كود : procedure TFrmCalc.Button1Click(Sender: TObject);
Var xCda,xCdb,xCdd:string;
Blq:Boolean;
tot:Double;
begin
with DM do
begin
Table1.first;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
Table1.next;
Table1.First;
while not (Table1.eof) do
begin
If Table1Active=False then
begin
If (Table1Cda.asstring=xCda) and (Table1Cdb.Asstring=xCdb) and (Table1Cdd.Asstring=xCdd) then
begin
tot:=Table1MT.value+tot;
end else begin
Table1.Prior;
Table1.edit;
Table1MTot.VALUE:=tot;
tot:=Table1MT.value;
Table1.Next;
end;
end;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
Table1.Next;
end;
end;
end;RE: خطاء في كود للجمع حسب كل مجموعة - sabre - 05-05-2017 بعص الملاخظات وليس الحل على الصور الكود كود : procedure TFrmCalc.Button1Click(Sender: TObject);
Var
xCda,xCdb,xCdd:string;
Blq:Boolean;
tot:Double;
begin
with DM do
begin
Table1.first;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
Table1.next; // ÎØÃ
Table1.First;
while not (Table1.eof) do
begin
If Table1.Active=False then
begin
{
هذا الشرط لن يتحقق
واذا تحقق سيحدث خطأ من البداية
أعتقد أن هذا خطأ برمجي وغير جائز بتاتا
هذا حسب علمي
وظهور هذه الرسالة
Table1 : Imossible d' effectuer cette opération sur un ensembe de données fermé.
من المستحل اسناد هذه العملية الأن المعطيات في حالة اغلاق
وهذا اذا كان تابل غير نشط أي مغلق
واذا كان غير مقلغ لن يحدث شيء
وقيلى انت تسيي في
}
If (Table1Cda.asstring=xCda) and (Table1Cdb.Asstring=xCdb) and
(Table1Cdd.Asstring=xCdd) then
begin
tot:=Table1MT.value+tot;
end
else
begin
Table1.Prior;
Table1.edit;
Table1MTot.VALUE:=tot;
tot:=Table1MT.value;
Table1.Next;
end;
end;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
Table1.Next;
end;
end;
end;RE: خطاء في كود للجمع حسب كل مجموعة - sabre - 07-05-2017 يتم أخذ القرار حسب القيم الموجوده في المتغيرات الثلاث xCda,xCdb,xCdd مع سابقهم من القيم الموجودة في الحقول والتي أسندت اليهة فيما سبق بمعنى أننا نقارن القيمة الاولى مع الثانية في نفس الحقل وهكذا مع القيم الباقية وهذا حسب الكود الذي وضعته PHP كود : ===================================================RE: خطاء في كود للجمع حسب كل مجموعة - medreg - 08-05-2017 (03-05-2017, 06:07 PM)medreg كتب : السلام عليكم ورحمة الله تعالى وبركاتهعفوا على الخطأ كود : If Table1Active=False then )
begin )
الصواب
If Table1Active.value=False then
beginRE: خطاء في كود للجمع حسب كل مجموعة - Mr.DOS - 09-05-2017 سلام عليكم ربما لم افهم ما تريد بالضبط ... لكن لكن نصيحتي كاتالي : - عدل على تصميم الجدول بما يتناسب مع طلباتك (يجب ان تكون لديك نضرة مستقبلية لتصميم الجدول) - استعمل جمل الاستعلام (sql query) بدل (table و المتغيرات ...) RE: خطاء في كود للجمع حسب كل مجموعة - sabre - 10-05-2017 أعتقد لأن مطابقت الصورة مع نتيجة تنفيذ الكود قد تمت فعلا ودليل هناك صورة مرفقة تثبت ذلك كود : procedure TFrmCalc.Button1Click(Sender: TObject);
Var
xCda,xCdb,xCdd:string;
Blq:Boolean;
tot:Double;
begin
with DM do
begin
Table1.first;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
while not (Table1.eof) do
begin
If Table1Active.value=False then
begin
If(Table1Cda.asstring=xCda)and(Table1Cdb.Asstring=xCdb) and
(Table1Cdd.Asstring=xCdd)then
begin
tot:=Table1MT.value+tot;
end
else
begin
Table1.edit;
Table1MTot.VALUE:=tot;
Table1.Next;
tot:=Table1MT.value;
end;
xCda:=Table1Cda.asstring;
xCdb:=Table1Cdb.Asstring;
xCdd:=Table1Cdd.Asstring;
end
else tot:=Table1MT.value;
Table1.Next;
end;
end;
end;RE: خطاء في كود للجمع حسب كل مجموعة - medreg - 10-05-2017 (10-05-2017, 09:09 AM)sabre كتب : أعتقد لأن مطابقت الصورة مع نتيجة تنفيذ الكود قد تمت فعلا يجب ان يكون على هذا الشكل [attachment=3501] RE: خطاء في كود للجمع حسب كل مجموعة - medreg - 13-05-2017 (10-05-2017, 01:32 PM)medreg كتب :(10-05-2017, 09:09 AM)sabre كتب : أعتقد لأن مطابقت الصورة مع نتيجة تنفيذ الكود قد تمت فعلا |