14-04-2019, 09:51 AM (آخر تعديل لهذه المشاركة: 14-04-2019, 12:48 PM بواسطة Admin.)
أخي ليس عندي فكرة عن عملية الترقيم التلقائي بقاعدة البيانات
أبحث عن الطريقة لتعلم ذلك
لا اقصد التصحيح
اعني يأخذ الترتيب التلقائي بعد الحذف
قمت بتجريب هذه الدالة في زر الاظافة لكن مازال عندي مشكل
كود :
function code_suiv(x:string):string;
var y,c:string; t,i:integer;
begin
y:=inttostr(strtoint(x)+1);
t:=length(y);
c:='';
for i:= 1 to length(x)-t do
c:=c+'0';
code_suiv:=c+y;
end;
procedure TForm4.BitBtn1Click(Sender: TObject);
var x:string;
begin
ABSTable1.Last;
x:= ABSTable1.FieldValues['N'];
ABSTable1.Insert;
ABSTable1.FieldValues['N']:=code_suiv(x);
end;
السلام عليكم و رحمة الله تعالى و بركاته
أخي اذا اردت الترقيم التلقائي موجود نوع من البيانات -type of data- وهو AutoInc يقوم بالترقيم التلقائي
أما إذا أردت اضافة شيء للترقيم مثلا السنة 19/0001 فهنا عليك بإضافة دالة تقوم بذلك
بالتوفيق
كل من 1 user says قال شكرا ل makhlouf على المشاركة المفيدة1 user says Thank You to makhlouf for this post • فارس المطر
أنا أستعمل هذا الكود
حاول التغيير فيه حسب ماتراه مناسبا لك
كود :
procedure TForm1.Button1Click(Sender: TObject);
var i:integer;
begin
i:=0;
with adoTable1 do
begin
First;
While Not EOF do
begin
edit;
Inc(i);
adotable1id.Value:=i;
Next;
end;
end;
end;
صدقة العلم تعليمه
كل من 1 user says قال شكرا ل Mustapha29 على المشاركة المفيدة1 user says Thank You to Mustapha29 for this post • فارس المطر
15-04-2019, 06:45 PM (آخر تعديل لهذه المشاركة: 15-04-2019, 07:10 PM بواسطة onexite.)
وعليكم السلام هذه دالة استخدمتها لترقيم الفواتير حسب السنة
وكملاحظة فقط عند حذف سجل يجب ان يكون السجل الاخير فقط لتعمل الدالة بفعالية لتفادي التكرار
PHP كود :
function Get_Bill_In_NUM(myDate: TDateTime): ShortString; var sltb: TSQLIteTable; Year: Word; begin Year := YearOf(myDate); // رقم السلع الداخلة sltb := SQLiteDatabase.GetTable('select count(*) as _count from bills_in where date like "%' + inttostr(Year) + '"'); try if sltb.Count > 0 then Result := IntToStr(Year) + '/' + (inttostr(sltb.FieldAsInteger(sltb.FieldIndex['_count']) + 1)) else Result := IntToStr(Year) + '/' + ('1');
finally sltb.Free;
end; end;
الصورة المرفقة توضح طريقة عمل الدالة حبث عند تغيير التاريخ يتغير الترقيم
كل من 1 user says قال شكرا ل onexite على المشاركة المفيدة1 user says Thank You to onexite for this post • فارس المطر
(15-04-2019, 06:26 PM)فارس المطر كتب : شكرا أخي على تنويه
وهل ينطبق ذلك على قاعدة بيانات من نوع Absolute
لقد غيرته في قاعدة بيانات الى AutoInc
لكن لم ينجح الأمر ...
مثال مرفق على ذلك
1- لا يمكن تغيير الحقل AutoInc
2- أضف حقل ترقيم من إنشائك الذي سوف يقع عليه التغيير ( حذف تغيير تبديل .. ) الذي سميته أنا [size=small]id[/size] [size=small]3- غير adotable بـ Absolute[/size]
صدقة العلم تعليمه
كل من 1 user says قال شكرا ل Mustapha29 على المشاركة المفيدة1 user says Thank You to Mustapha29 for this post • فارس المطر