PDA

View Full Version : سوال: شماره فاکتور



pelina
پنج شنبه 05 شهریور 1388, 18:22 عصر
سلام
من میخوام وقتی که فرم مربوط به مشتریم باز میشه به صورت خودکار یک شماره فاکتور به آن اختصاص داده شود.
من چطوری میتونم این کارو بکنم؟

pelina
پنج شنبه 05 شهریور 1388, 18:23 عصر
البته نمیخوام که این شماره تکراری باشه

pelina
پنج شنبه 05 شهریور 1388, 18:25 عصر
البته من نمیخوام که این شماره تکراری باشه البته این شماره فاکتورم کلید هستش و میدونم که کلید تکراری نمیشه

behzad_dr
پنج شنبه 05 شهریور 1388, 20:11 عصر
شما می تونی از یه فیلد auto increment (+) استفاده کنی ..

zidane
پنج شنبه 05 شهریور 1388, 23:30 عصر
با
select max(id) as maxid from table
بیشترین رو بگیر
بعد به مقدار بدست آمده یکی اضافه کن
البته اگه نمی خوای auto increment باشه

mehdimdp
شنبه 07 شهریور 1388, 00:04 صبح
ميتوني هميشه قبل از اضافه كردن ركورد جديد، آخرين شماره فاكتور رو بخوني و به اون يكي اضافه كني

سعید حمیدیانفر
شنبه 07 شهریور 1388, 07:07 صبح
البته اگه برنامه تحت شبكه است و چندين كاربر همزمان فاكتور ميزنن
بهتره اين كار رو در هنگام ثبت ركورد انجام بدين تا مشكل همزماني و شماره فاكتورهاي يكسان پيش مياد.

merced
یک شنبه 08 شهریور 1388, 21:55 عصر
البته اگه برنامه تحت شبكه است و چندين كاربر همزمان فاكتور ميزنن
بهتره اين كار رو در هنگام ثبت ركورد انجام بدين تا مشكل همزماني و شماره فاكتورهاي يكسان پيش مياد.

خيلي جاها دلشون مي خواد قبل از ثبت ركورد شماره فاكتور رو ببينند.
مي توني يه جدول در نظر بگيري كه تا تقاضاي يك فاكتور جديد شد به يه فيلد خاص از اون جدول يك واحد اضافه كنه و مقدار به دست اومده رو تو همون جدول ثبت كنه. اون به كاربر به عنوان شماره فاكتور جديد برگردونه.
البته با اين كار شما در صورت انصراف از نوشتن فاكتور يه شماره فاكتور هرز رفته دارين كه مهم نيست. اصلاً لازم نيست كه شماره فاكتور ها پشت سر هم باشه !!!

pelina
دوشنبه 09 شهریور 1388, 07:21 صبح
ممنون از راهنمایی همه دوستان

ar_mokhtari
دوشنبه 09 شهریور 1388, 08:55 صبح
دوستان همگي راههاي مختلف رو فرمودند. بنده هم براي اين كار يك Function نوشتم كه اسم Table و Field رو ميگيره و به مقدار برگردونده شده يك واحد اضافه ميكنه. حسن اين كار اين هست كه در تمامي وضعيت‌هايي كه احتياج به يك شماره «سريال غير تكراري» دارم كافيست Function رو صدا بزنم. در موقعيت‌هاي ورود اطلاعات بصورت همزمان در شبكه از يك Table اضافه استفاده ميكنم كه وظيفه دارد هر شماره‌اي كه توسط اين Fuction برميگرده رو «رزرو» كنه. موفق باشي.

ghasemshami
چهارشنبه 01 مهر 1388, 08:29 صبح
اینطوری کد بنویس


if DataModule2.DaneshAmoz.FieldByName('kod').AsString ='' then
begin
Form14.suiNumberEdit1.Text:='000001';
end else begin
DataModule2.DaneshAmoz.Last;
Form14.suiNumberEdit1.Text:=IntToStr(StrToInt(Data Module2.DaneshAmoz.FieldByName('kod').AsString)+1) ;