السلام عليكم و رحمة الله و بركاته
كيف يمكنني جعل المفتاح الرئيسي مثلا رقم البضاعة يبدو من الشكل التالي :
Ar 0001
و كلما اضفت بضاعة جديدة تاخد الرقم ar 0002
...الخ
شكرا
المشاركات : 429
المواضيع 28
:
: 0
الإنتساب : May 2008
السلام عليكم و رحمة الله و بركاته :
أهلا و سهلا بك بمنتدانا الحبيب .
العبار النصية Ar001 يعني 'Ar001' تكافئ : 'Ar'+'001' و بالتالي يمكن الإحتفاظ بالشطر الأول ، و الثاني يتزايد حسب طبيعة برنامجك ، يعني إما يقوم المستخدم بإدخاله و بالتالي تحجز له مثلا Edit أو غير ذلك ، فالأمر يعود إليك . و الأمر واسع و هذه فكرة بسيطة جدا .
و شكرا.
المشاركات : 378
المواضيع 44
:
: 6
الإنتساب : Feb 2008
ربما ينجح هدا
كود :
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin
Table1['Code_Matier']:='ar000'+inttostr(Dataset.RecNo);
end;
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
hanipino
حلك ينجح فقط مع التسع الاوائل
المشاركات : 378
المواضيع 44
:
: 6
الإنتساب : Feb 2008
إقتباس :حلك ينجح فقط مع التسع الاوائل .
لم انتبه
PHP كود :
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
var
i:Integer;
begin
i:=(DataSet.RecNo);
if i <=10 then
Table1['Code_Matier']:='Ar000'+inttostr(Dataset.RecNo);
if i >=10 then
Table1['Code_Matier']:='Ar00'+inttostr(Dataset.RecNo);
if i >=100 then
Table1['Code_Matier']:='Ar0'+inttostr(Dataset.RecNo);
if i >=1000 then
Table1['Code_Matier']:='Ar'+inttostr(Dataset.RecNo);
end;
ربما تفى بالغرض .
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
hanipino
هذا احسن من السابق لكن لايزال بحاجة لترتيب
انظر مثل الو كان i يساوي 101 سيدخل في i >=10
المشاركات : 378
المواضيع 44
:
: 6
الإنتساب : Feb 2008
هكذا ربما زاد تحسنا .
PHP كود :
procedure TForm1.table1CalcFields(DataSet: TDataSet);
var
i:Integer;
begin
i:=(DataSet.RecNo);
if (i <10) then
Table1['Code_Matier']:='Ar000'+inttostr(Dataset.RecNo);
if (i >=10) and (i<100) then
Table1['Code_Matier']:='Ar00'+inttostr(Dataset.RecNo);
if (i >=100) and (i<1000) then
Table1['Code_Matier']:='Ar0'+inttostr(Dataset.RecNo);
if (i >=1000) then
Table1['Code_Matier']:='Ar'+inttostr(Dataset.RecNo);
end;
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
hanipino
أحسن لكن لاحظ جيدا هناك اوامر مكررة يمكن اختصارها ليصبح الكود اصغر
المشاركات : 378
المواضيع 44
:
: 6
الإنتساب : Feb 2008
اضن انه يوجد الان نوعا ما .
اختصار .
PHP كود :
procedure TForm1.table1CalcFields(DataSet: TDataSet);
var
i:Integer;
begin
i:=(DataSet.RecNo);
case i of
0..9:Table1['Code_Matier']:='Ar000'+inttostr(i);
10..99:Table1['Code_Matier']:='Ar00'+inttostr(i);
100..199:Table1['Code_Matier']:='Ar0'+inttostr(i);
end;
if i>=1000 then Table1['Code_Matier']:='Ar'+inttostr(i);
end;
المشاركات : 3,703
المواضيع 101
:
: 579
الإنتساب : Feb 2008
جيد، لكن يزال هناك امكانية اختصار