PDA

View Full Version : مبتدی: تکمیل بخش صدور فاکتور



Mr_Mahmoud
دوشنبه 20 دی 1389, 18:09 عصر
با سلام
من در حال نوشتن یه حسابداری ساده هستم.در بخش صدور فاکتور و در بخش بدست آوردن شماره آخرین فاکتور و اینکه چطور شماره یکتایی برای تمام اقلام یه فاکتور پیدا کنم به مشکل خوردم.
من با اس کیو ال کار میکنم و داده ها را از طریق data table , data adapter از بانک میخونم

meysamrt
دوشنبه 20 دی 1389, 18:35 عصر
دستور SQL بدست آوردن شماره فاكتور بعدي:

select isnull(max(factorNumber),0)+1 from factor

ali.rezaei7
دوشنبه 20 دی 1389, 18:36 عصر
درود. شماره آخرین فاکتور بر چه اساسی بدست می یاد؟بگید تا کمکتون کنم.
برای شماره یکتا هم کافیه یه فیلد بسازی از نوع int، و در Column Properties از قسمت Identity Specification خاصیت (Is Identity) رو Yes کن. در این صورت خاصیت Autonumber می گیره و قتی که رکورد جدیدی ساخته می شه، این فیلد بصورت خودکار مقداردهی میشه.

Mr_Mahmoud
دوشنبه 20 دی 1389, 19:07 عصر
ممنون,,بانکم رو ساختم ولی موقع صدور فاکتور تو فرم فاکتور,وقتی یه قلم جدید اضافه میکنم به فاکتورشماره فاکتوری که این کالا مربوط به اونه باید ثبت بشه دیگه..این سماره رو از کجا بیارم؟

ali.rezaei7
دوشنبه 20 دی 1389, 19:23 عصر
خب مگه فیلد شماره فاکتور رو داخل data table ی که گفتید نگه داری نمی کنید؟ زمانی که می خوای کالا رو ثبت کنی به دیتا تیبل مراجعه کن و شماره فاکتور رو بدست بیار، نحوه انجام این کار به ساختار برنامت بستگی داره، در مورد برنامت بیشتر توضیح بده، تا بتونیم بهتر کمکت کنیم.

Mr_Mahmoud
دوشنبه 20 دی 1389, 19:40 عصر
ببین من داخل یه تیبل مشخصات کالا ها و تو یه تیبل دیگه فاکتورامو ثبت میکنم..موقع ثبت فاکتور هر قلم رو که اضافه میکنم باید شماره فاکتور رو هم بدم بهش دیگه که موقعی که میخوام فاکتور رو نمایش بدم بر اساس همین شماره فیلتر کنم...اگه فیلد این شماره رو خود افزایشی بدم واسه هر قلم فاکتور یه شماره اختصاصی میده در حالی که باید همشون یه شماره داشته باشن....همین که آخرین شماره فاکتور ثبت شده رو چطور بدست بیارم و اونو به فرم صدور فاکتور بفرستم رو موندم...
کاری که الان میکنم اینه :

cm.CommandText = "select MAX('id') from fact";
cm.Connection = cn;
da.SelectCommand = cm;
String s= cm.ExecuteScalar().ToString() ;
textBox1.Text = s;
با این کار میخوام شماره آخرین فاکتور رو بدم به تکست باکس بعد موقع اینسرت ازش استفاده کنم
ولی جواب نمیده

ali.rezaei7
دوشنبه 20 دی 1389, 20:07 عصر
تا اونجایی که متوجه شدم تنها مشکلت، بدست آوردن آخرین شماره فاکتور از دیتا بیس هست. برای اینکار همون کد کی دوستمون meysamrt رو بجای کدی که تو CommandText گذاشتی، قراربده.شماره آخرین فاکتور+1 رو برات بر می گردونه.