ترقيم تلقائي للحقل ID2 مع توفر شرط ID1
#1
السلام عليكم و رحمة الله و بركاته

اريد الحصول على ترقيم تلقائي للحقل ID2 و دالك بتوفر الشرط ID كما هو مبين في الشكل أدناه


[صورة: 166413555770391.png]

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

مع العلم ان ID2 من نوع string
 
PHP كود :
function Tform1.Autoid_id: String;

var
  n_annee: string;
  a_Num, Err: integer;
  a_Key: variant;

begin
  with Qry1 
do
  begin
    Active 
:= False;
    SQL.Clear;
    SQL.Add('SELECT Max(ID2 ) as ID2  ');
    SQL.Add('FROM teste a             ');
    SQL.Add('WHERE ID1 > ID2          ');
    Active := True;
  end;

  n_annee := formatdatetime('YY', Now);
  a_Key := QryID2.Value;

  if (a_Key = NULL) or (copy(a_Key, length(a_Key) - 1, 2) <> n_annee) then
    a_Num 
:= 0
  
else
  begin   
  
    val
(copy(a_Key, 1, 1), a_Num, Err);
    if Err <> 0 then
      a_Num 
:= 0;
  end;
  result := format('%1.1d/', [a_Num + 1]) + n_annee;
  Qry1.FieldByName('ID2').Text :=  copy(result,length(result) - 5, 3) + '-' + n_annee;
end; 
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك

الرد
#2
وعليكم السلام و رحمة الله و بركاته

كود :
SQL.Add('SELECT Max(ID2 ) as ID2  ');     SQL.Add('FROM teste a            ');     SQL.Add('WHERE ID1 = 1          ');

بمعلومية الترقيم الاول يمكنك عمل ترقيم ثاني متسلسل للرقم الاول
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#3
(01-10-2022, 09:42 AM)Delphi4Us كتب : وعليكم السلام و رحمة الله و بركاته

كود :
SQL.Add('SELECT Max(ID2 ) as ID2  ');     SQL.Add('FROM teste a             ');     SQL.Add('WHERE ID1 = 1           ');

بمعلومية الترقيم الاول يمكنك عمل ترقيم ثاني متسلسل للرقم الاول
السلام عليكم

الكود أخي لا يعمل هل من طريقة اخرى
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك

الرد
#4
الكود يعمل وانا استخدمه في برنامج لي بنفس الفكرة تقريبا

كود :
SELECT Max(ID2 ) + 1
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#5
(01-10-2022, 03:35 PM)Delphi4Us كتب : الكود يعمل وانا استخدمه في برنامج لي بنفس الفكرة تقريبا

كود :
SELECT Max(ID2 ) + 1
السلام عليكم

للاسف الكود لا يعمل و لا يلبي الطلب
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك

الرد
#6
هذا جدولك بالضبط

[صورة: attachment.php?aid=4685]

سوف اجري استعلام للحصول على الترقيم التالي للحقل ID2 في المجال رقم (1) للحقل ID1

كود :
select     max(test.id2) +1 from test where test.id1=1

النتيجة تكون الرقم 4 مع وضع بالاعتبار ان تقوم بعملية تحويل للحقل ID2 الى رقم بحال كان نص او تغييره الى النوع Integer


الملفات المرفقة
.jpg   d1.jpg (الحجم : 6.03 ك ب / التحميلات : 45)
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد
#7
(03-10-2022, 11:09 AM)Delphi4Us كتب : هذا جدولك بالضبط

[صورة: attachment.php?aid=4685]

سوف اجري استعلام للحصول على الترقيم التالي للحقل ID2 في المجال رقم (1) للحقل ID1

كود :
select     max(test.id2) +1 from test where test.id1=1

النتيجة تكون الرقم 4 مع وضع بالاعتبار ان تقوم بعملية تحويل للحقل ID2 الى رقم بحال كان نص او تغييره الى النوع Integer

السلام عليكم
لكن مع  [b]ID2  - ID1 من نوع string  لا يعمل[/b]
بكاء العين يفضح وبكاء القلب يذبح والبكاء من خشيه الله يربح اللهم اجعلنا ممن يبكى من خشيتك

الرد
#8
اولا لماذا لاتحوله الى النوع رقمي ...؟

ثانيا يمكنك التحويل باستخدام احدى الدوال
كود :
SELECT CAST(ID2 AS int) + 1
قل: اللهم فاطِرَ السماوات والأرض عالم الغيبِ والشهادة، ربَّ كُلِّ شَيءٍ ومَلِيكَه، أَشْهد أن لا إله إلا أنت، أعوذ بك من شرِّ نفسي وشرِّ الشيطان وشِرْكِهِ وأن أقترف على نفسي سوءًا أو أجرُّه إلى مسلم
الرد


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


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