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

نسخة كاملة : كيف يمكنني ان احفظ معطيات جدول في جدول أخر باستعمال absolute
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
المقصود بهذا السؤال هو :
لدي برنامج يحتوي على قاعدة بيانات من نوع absolute
واستعمله شهريًا
قاعدة البيانات تحتوي على ستة حقول وهي كالتالي :
NUM من نوع smallint
GRP من نوع String
SRP من نوع String
MT_ANT من نوع Float وهو مخصص للمبلغ السابق أي MT_TOT السابق
MT_MS من نوع Float وهو مخصص للمبلغ الحالي
MT_TOT من نوع Float وهو يساوي MT_ANT + MT_MS

ولنفترض ان لدي جدولين الأول يسمى ABSTABLE1
والثاني يسمى ABSTABLE_ARCHIVE

كل ما ابحث عنه هو :
1- ماهي الطريقة التي يجب علي استعمالها لحفظ المعطيات الأخيرة للجدول ABSTABLE1 في جدولABSTABLE_ARCHIVE كلما تم التغيير في المعطيات الحالية بالجدول ABSTABLE1 .
2- ماهي الطريقة التي يجب استعمالها لإستدعاء الحقل MT_TOT الموجود بالجدول ABSTABLE_ARCHIVEالذي تم به حفظ المعطيات الأخيرة ووضع محتوياته بالحقل MT_ANT الموجود بالجدول ABSTABLE1 الحالي
ملاحظة
بطبيعة الحال في بداية إستعمال البرنامج تكون قاعدة البيانات فارغة وعند الشروع في إدخال المعطيات يكون الحقل MT_ANT فارغ وهذا يعود لعدم وجود معطيات في الجدول ABSTABLE_ARCHIVE
اما في استعمال البرنامج مرة ثانية يجب ان يتم جلب المعطيات الموجودة بالحقل MT_TOT من الجدول ABSTABLE_ARCHIVE الى الحقل MT_ANT الموجود بالجدول ABSTABLE1 وهذا طبعا بعد حفظ معطيات السابقة
اسأل الله التوفيق
السلام عليكم ورحمة الله

بالنسبة لنسخ الجدول باخر يمكن ان تستخدم BatchMove او استعلام SQL او حلقة...
اما الحقل فيمكن ان تاخذ قيمته من جدول لجدول

اين المشكل بالضبط ؟
لقد حاولت استعمال مكون BatchMove مع ABSTable
لكن لم أجد في خصائصه مكان
Sible و Source
أما عن استعمال SQL فكيف ذلك
وكيف استعمل الحلقة
السلام عليكم

تعرف ماذا ساقولك لك:
ارفق محاولتك
b.m.abdelaziz كتب :ارفق محاولتك

سأفعل بعد 10 دقائق سأرفعها إن شاء الله
مثال مرفق:
المركبة batchmove
medreg كتب :سأفعل بعد 10 دقائق سأرفعها إن شاء الله

اليك المرفق

بالنسبة للزر المكتوب عليه Transferer to TB_1
يعني يبحث في الجدول TB_ARCHIVE على MT_TOT المقابل للـ GRP و SRP
ويضعه في TB_1 في MT_ANT المقابل للـ GRP و SRP
kachwahed كتب :مثال مرفق:
المركبة batchmove

مشكور أخي لكن كيف اتعامل معها وانا اتعامل مع قاعدة البيانات absolute

القيت نظرة على المرفق ان كان العدد صغيرا بدلا من BatchMove يمكنك فعل ذلك برمجيا
تقريبا نفس ما كان مكتوب بالمرفق بتصرف
للحفظ
كود :
TB_1.First; while not TB_1.Eof do begin if TB_Archive.Locate('GRP;SRP',VarArrayof([TB_1GRP.AsString,TB_1SRP.AsString]),[loCaseInsensitive]) then TB_Archive.Edit else TB_Archive.Append; TB_ArchiveGRP.AsString:= TB_1GRP.AsString; TB_ArchiveSRP.AsString:= TB_1SRP.AsString; TB_ArchiveMT_TOT.AsFloat:=TB_1MT_TOT.AsFloat; TB_Archive.Post; TB_1.Next; end;
للاسترجاع

كود :
TB_ARCHIVE.First; while not TB_ARCHIVE.Eof do begin if TB_1.Locate('GRP;SRP',VarArrayof([TB_ARCHIVEGRP.AsString,TB_ARCHIVESRP.AsString]),[loCaseInsensitive]) then TB_1.Edit else TB_1.Append; TB_1GRP.AsString:= TB_ARCHIVEGRP.AsString; TB_1SRP.AsString:= TB_ARCHIVESRP.AsString; TB_1MT_TOT.AsFloat:= TB_ARCHIVEMT_TOT.AsFloat; TB_1.Post; TB_ARCHIVE.Next; end;
يبقى عليك اضافة حقل او شيئ ما تحدد به الشهر
ملاحظتين:
لم تذكراي شيئ عن قيمة الحقل NUM بالجدول الاول الذي يبقى دون قيمة عند الاسترجاع
بالنسبة للمكون ABSDatabase1 من الاحسن ان تكون DataBaseName دون مسار test_A.ABS
السلام عليكم:
عفواً اخي لم يشتغل البرنامج هل يمكن ارفاق المكون ..
الصفحات : 1 2