كيف يمكنني تحويل قيمة من سجل الى اخر
#1
السلام عليكم ورحمة الله تعالى وبركاته
لدي جدول به 3 حقول
والمطلوب هو كيف يمكنني تحويل قيمة الحقل 
Nbre_Tot الموجودة بالسجل رقم 1
الى الحقل Nbre_Ant الموجودة بالسجل الثاني وهكذا بباقي السجلات 
حسب ما هو موضح بالصورة المرفقة
[attachment=3660]
الرد
#2
وعليكم السلام
فقط اعمل هدا في حلقة تكرارية
table1.fieldbyname('Nbre_Ant').value := table1.fieldbyname('Nbre_Tot').value
:: من يملك المعلومة يملك الميدان :: 
[-] كل من 1 user says قال شكرا ل AX302 على المشاركة المفيدة
  • medreg
الرد
#3
(02-01-2018, 12:15 AM)AX302 كتب : وعليكم السلام
فقط اعمل هدا في حلقة تكرارية
table1.fieldbyname('Nbre_Ant').value := table1.fieldbyname('Nbre_Tot').value
السلام عليكم بارك الله فيك على المرور
لاكن بعد ما عملت الحلقة التكرارية
تعمل فقط على نفس السحل ولا تحول القيمة من السجل الاول الى السجل الثاني
ربما هناك خطأ في الكود من طرفي
اليك الكود المستعمل
كود :
procedure TFrm1.Button1Click(Sender: TObject); Var i,n:integer; begin  with DM do  begin  n:=Table1.RecordCount;    for i := 1 to n do    begin      if Table1.FieldValues['Cde']=i then      begin      Table1.Edit;      Table1.fieldbyname('Nbre_Ant').value := Table1.fieldbyname('Nbre_Tot').value;      Table1.Post;      end;    end;  end; end; علما ان الحقل Cde  هو مفتاح الجدول
الرد
#4
السلام عليكم 
جرب هكدا 
 Table1.Edit;
 while not table1.Eof do
  begin
   Table1.fieldbyname('Nbre_Ant').value := Table1.fieldbyname('Nbre_Tot').value;
  end;
 table1.post;
:: من يملك المعلومة يملك الميدان :: 
[-] كل من 1 user says قال شكرا ل AX302 على المشاركة المفيدة
  • medreg
الرد
#5
(03-01-2018, 12:39 AM)AX302 كتب : السلام عليكم 
جرب هكدا 
 Table1.Edit;
 while not table1.Eof do
  begin
   Table1.fieldbyname('Nbre_Ant').value := Table1.fieldbyname('Nbre_Tot').value;
  end;
 table1.post;

الكود يخمد لا يستجيب
الرد
#6
جرب هكدا
كود :
while not Table1.EOF do begin  Table1.Edit;  Table1.fieldbyname('Name').value := Table1.fieldbyname('Name').value;  Table1.Post;  Table1.Next; end;
:: من يملك المعلومة يملك الميدان :: 
[-] كل من 1 user says قال شكرا ل AX302 على المشاركة المفيدة
  • medreg
الرد
#7
(03-01-2018, 01:11 AM)AX302 كتب : جرب هكدا
كود :
while not Table1.EOF do begin  Table1.Edit;  Table1.fieldbyname('Name').value := Table1.fieldbyname('Name').value;  Table1.Post;  Table1.Next; end;

شكرا على المحاولات 
لكن ربما المقصود فير مفهوم
كل ما في الامر هو جلب المجموع اي Nbre_Totمن السجل رقم 1
ووضعه في العدد السابق Nbre_Ant بالسجل رقم 2
وكل ما اضيف سجل جديد يأتي بالمجموع من السجل الذي يسبقه ويضعه في العدد السابق للسجل الحالي
وهذا مرقث كمثال
[attachment=3663]
الرد
#8
السلام عليكم، جرب هذا
كود :
Var St: String; begin Table1.First; while not Table1.EOF do begin if Table1.RecNo=1 then St:='0'; Table1.Edit; Table1.fieldbyname('Nbre_Ant').value :=St; Table1.Post; St:=Table1.fieldbyname('Nbre_Tot').AsString; Table1.Next; end; end;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
[-] كل من 1 user says قال شكرا ل محمد عبد العزيز على المشاركة المفيدة
  • medreg
الرد
#9
(03-01-2018, 01:30 PM)B.M.AbdelAziZ كتب : السلام عليكم، جرب هذا
كود :
Var St: String; begin Table1.First; while not Table1.EOF do begin if Table1.RecNo=1 then St:='0'; Table1.Edit; Table1.fieldbyname('Nbre_Ant').value :=St; Table1.Post; St:=Table1.fieldbyname('Nbre_Tot').AsString; Table1.Next; end; end; بارك الله فيك اخي عبدالعزيز  الا انه هناك ملاحظة بالنسبة للسجل الأول يجب ان تبقى القيمة المتعلقة بـ Nbre_Ant كما هي لا تتغير على سبيل المثال إذا كانت القيمة 0 تبقى كما هي بدون تغيير واذا كانت القيمة اكبر من 0 اي 10 او 1 الخ تبقى بدون تغيير وما يجري الان انها تأخذ القيمة 0 حتى ولو كانت تحتوي على اكبر من 0 والمفروض تبقى كما كانت وجزاكم الله عنا كل خير
الرد
#10
جرب هكدا 
كود :
Var St: String; FirstRecord : integer; begin Table1.First; FirstRecord :=  Table1.FieldByName('Nbre_Tot').AsInteger;   while not Table1.EOF do     begin       if (Table1.RecNo=1) and (FirstRecord = 0) then St:='0';         Table1.Edit;         Table1.fieldbyname('Nbre_Ant').value :=St;         Table1.Post;         St:=Table1.fieldbyname('Nbre_Tot').AsString;         Table1.Next;     end;   end; end;
:: من يملك المعلومة يملك الميدان :: 
الرد


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


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