المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
السلام عليكم ورحمة الله تعالى وبركاته
لدي جدول به 3 حقول
والمطلوب هو كيف يمكنني تحويل قيمة الحقل
Nbre_Tot الموجودة بالسجل رقم 1
الى الحقل Nbre_Ant الموجودة بالسجل الثاني وهكذا بباقي السجلات
حسب ما هو موضح بالصورة المرفقة
[attachment=3660]
المشاركات : 216
المواضيع 30
:
: 26
الإنتساب : Aug 2017
وعليكم السلام
فقط اعمل هدا في حلقة تكرارية
table1.fieldbyname('Nbre_Ant').value := table1.fieldbyname('Nbre_Tot').value
:: من يملك المعلومة يملك الميدان ::
كل من 1 user says قال شكرا ل AX302 على المشاركة المفيدة1 user says Thank You to AX302 for this post
• medreg
المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
(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 هو مفتاح الجدول
المشاركات : 216
المواضيع 30
:
: 26
الإنتساب : Aug 2017
السلام عليكم
جرب هكدا
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 على المشاركة المفيدة1 user says Thank You to AX302 for this post
• medreg
المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
(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;
الكود يخمد لا يستجيب
المشاركات : 216
المواضيع 30
:
: 26
الإنتساب : Aug 2017
جرب هكدا
كود :
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 على المشاركة المفيدة1 user says Thank You to AX302 for this post
• medreg
المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
(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]
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
السلام عليكم، جرب هذا
كود :
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;
رَبَّنَا اغْفِرْ لِي وَلِوَالِدَيَّ وَلِلْمُؤْمِنِينَ يَوْمَ يَقُومُ الْحِسَابُ
المشاركات : 501
المواضيع 136
:
: 11
الإنتساب : Feb 2008
(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
والمفروض تبقى كما كانت
وجزاكم الله عنا كل خير
المشاركات : 216
المواضيع 30
:
: 26
الإنتساب : Aug 2017
جرب هكدا
كود :
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;
:: من يملك المعلومة يملك الميدان ::