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

نسخة كاملة : كيف تحويل الرمز من 000001/2014 الى bl0001/2014
أنت حالياً تتصفح نسخة خفيفة من المنتدى . مشاهدة نسخة كاملة مع جميع الأشكال الجمالية .
الصفحات : 1 2
السلام عليكم

الكود التالي ينشئ هذا الرمز : 000001/2014

المطلوب : تحويل الى : BL0001/2014

PHP كود :
procedure TDM.L_ventesBeforeInsert(DataSet: TDataSet);
var 
i: Integer ;
NewNi :string [6];
NewNvente :string[11];
year,month1,day : word ;
begin
L_ventes
.Last;
if 
L_ventes.isempty = False then
begin
 str
((strtoint(copy(L_ventesID_SRT.value,1,6))+1):6,NewNi) ;
for 
i := 1 to Length (NewNi)do
begin
if NewNi[i] = ' ' then NewNi [i] := '0' ;
end;
NewNvente := NewNi+copy(L_ventesID_SRT.value,7,5);
DecodeDate(Date,year,Month1,Day);
if 
Copy (NewNvente,8,4)<> intTostr (year) then NewNvente := '000001/'+intTostr(year);
end
else
begin
DecodeDate
(Date,year,Month1,Day);
NewNvente := '000001/'+intTostr(year);

end;
end; 
مع العلم ان نوع الحقل نصي String : ID_SRT
غير 000001 بـ bl0001
السلام عليكم

عذرا اخي فعلت هذا مسبقا لكن لم تعمل معي لم افهم لماذا

PHP كود :
NewNvente := 'BL0001/'+intTostr(year); 
يقبل السجل الاول فقط عند محاولت اضافة سجل ثاني لا يقبل


واضع الكود الثاني في الحدث

PHP كود :
procedure TDM.L_ventesAfterInsert(DataSet: TDataSet);
begin
L_ventes
.edit;
L_ventesID_SRT.value := NewNvente;

end; 
جرب اكتب شيء آخر
مثلا
كود :
[COLOR=#000000]NewNvente := '[COLOR=Red]Abcde[/COLOR]/'+intTostr(year);[/COLOR]
و أنظر ما سيحدث
أو جرب
كود :
[COLOR=#000000]NewNvente := '[COLOR=Red]0BL0001[/COLOR]/'+intTostr(year[COLOR=#007700]);[/COLOR][/COLOR]

كود :
[COLOR=#000000]if Copy (NewNvente,8,4)<> intTostr (year) then NewNvente := '[/COLOR][COLOR=#000000][COLOR=#000000][COLOR=#0000BB][COLOR=#000000][COLOR=Red]0BL0001[/COLOR][/COLOR][/COLOR][/COLOR]/'+intTostr(year);[/COLOR]
السلام عليكم

"BL0001/2014"
n'est pas une valeur entière valide
و عليكم السلام و رحمة الله و بركاته
هل جربت هذا
مبرمج مبتدأ كتب :
أو جرب
كود :
[color=#000000]newnvente := '[color=red]0bl0001[/color]/'+inttostr(year[color=#007700]);[/color][/color]

كود :
[color=#000000]if copy (newnvente,8,4)<> inttostr (year) then newnvente := '[/color][color=#000000][color=#000000][color=#0000bb][color=#000000][color=red]0bl0001[/color][/color][/color][/color]/'+inttostr(year);[/color]
السلام عليكم
شكرا على المحاولة اخي

لكن هدفي ان احصل على الطريقة هذه

bl0001/2014
bl0002/2014
bl0003/2014

بارك الله فيك
السلام عليكم
الحل سهل جدا
اجعل الحقل من نوع رقمي ودع تسلسل الارقام عادي 1 – 2- 3..... الخ
ثم اجعل خاصيةDisplayFormat للحقل على هذا الشكل : لBL0000
DisplayFormat-BL0000
حينها ستحصل على ماتريد
شرح موضح في صورة مرفقة
وشكرا
السلام عليكم
شكرا على اقتراحك اخي بارك الله فيك
ليس مبتغاي
الصفحات : 1 2