PDA

View Full Version : پیشنهاد در مورد صدور و چاپ فاکتور



tazekar
پنج شنبه 24 مهر 1382, 10:28 صبح
درحالت کلی اگه بخوام یه فاکتور تنظیم کنم که اول تمام اطلاعات رو دریافت کنه و در پایان همه رو ذخیره کنه و بهدش هم چاپ کنه ، شما چه پیشنهاد دارید ؟ هم برای ورود اطلاعات و هم برای چاپ آنها.

Gladiator
پنج شنبه 24 مهر 1382, 11:43 صبح
با سلام

دوست عزیز صدور فاکتور باید ارتباط مستقیم با انبار داشته باشه . به این شکل که شما اطلاعات رو از کاربر میگیری . برای انبار 2 تیبل مشابه درست میکنی . اطلاعات انبار رو درون یکی از این 2 تیبل وارد میکنید . ( در بخش انبار ) . برای فاکتور هم 2 تیبل درست میکنی . یکی از این 2 تیبل اطلاعات اصلی فاکتورها رو دریافت میکنه و دیگری رو توضیح خواهم داد . باز هم برای فاکتور ( عناوین فاکتورها اعم از تاریخ صدور - نام خریدار - شماره فاکتور و جمع کل و مانده و پرداختی ) تیبلی درست میکنی .

حالا :
1. موقعی که فرم مخصوص صدور فاکتور باز میشه . اطلاعات انبار از تیبل اصلی انبار به تیبل دوم ارسال میشه . ( با BatchMove یا Query ) این کار به این منظور صورت میگیره که در حین وارد کردن لیست کالاها از این تیبل اطلاعات مربوط به تعداد کالاهای موجود در انبار رو دریافت کنی و بعد از ورود توسط کاربر تعداد درخواستی از همین تیبل کسر بشه . اگر در نهایت شما فاکتور رو صادر کردید تیبل اصلی انبار توسط این تیبل UpDate میشه و اگر شما از صدور فاکتور منصرف شدید هیچ مشکلی برای تیبل اصلی انبار پبش نیومده و اطلاعاتش معتبره .

در حین ورود لیست کالاها به فاکتور شما لیست کالاها رو به تیبل فرعی فاکتور وارد میکنید . باز هم اگر تصمیم به صدور فاکتور گرفتید تیبل اصلی فاکتور توسط این تیبل UpDate خواهد شد و در غیر اینصورت ( یعنی انصراف از صدور فاکتور ) تیبل اصلی فاکتورها مشکلی نخواهد داشت .

آخرین تیبل رو در آخرین مرحله به کار خواهی برد . وقتی صدور فاکتور رو تایید کردی اطلاعات شماره فاکتور - خریدار - تاریخ صدور - جمع کل - مبلغ پرداختی و مانده به این تیبل ارسال میشه .

برای نمایش ایلست فاکتور های صادره میتونی اطلاعات این تیبل رو نمایش بدی و با انتخاب هر کدوم به راحتی با یه فیلتر میتونی شماره فاکتور رو توی تیبل اصلی فاکتورها فیلتر کنی تا اقلام کالاهای همین فاکتور انتخاب شده نمایش داده بشه . :mrgreen:

اگر سوالی هست بفرمایید .
اگر دوستان عزیز روش بهتری پیشنهاد میکنند لطفا مطرح کنند .
متشکرم .

ramin_rp
پنج شنبه 24 مهر 1382, 12:30 عصر
موافقم!

SherlookHolms
پنج شنبه 24 مهر 1382, 19:36 عصر
یه نکته جالب در مورد سیستم فروض. اوراکل همچین سیستمی داره که اونو 500000 دلار داره میده. تو شرکتی که من هستم تازه در حال نصب هستن.

tazekar
پنج شنبه 24 مهر 1382, 21:28 عصر
ممنون از راهنماییت gladiator جان .
کارهایی رو که گفتی کم و بیش انجام داده بودم .ولی مشکل من اینه که تو دلفی این اطلاعات رو چطور نمایش بدم و برای چاپشون بصورت همون فرم چکار کنم ؟
با توجه به این مساله که
تعداد اقلام داخل فاکتور رو نمیدونم .
و در مورد چاپ فقط قسمت نمایش داده شده روی مانیتور چاپ میشه .
البته شاید سوالم خنده دار باشه .
اما من میخوام یه فرم ایجاد کنم که کاربر به هر اندازه که خواست اقلام رو وارد کنه ، بعد هم برای چاپ مشکلی نداشته باشه .
ممنون میشم اگه در این مورد هم کمکم کنید . :wink:

Gladiator
پنج شنبه 24 مهر 1382, 22:30 عصر
با سلام

دوست عزیز من برای 5 تا برنامه از همین روش استفاده کردم . هر وقت بشه برات یه نمونه میفرستم . شما برای گرفتن اقلام کالا ( تعداد ) هیچ مشکلی ندارید . شما نباید توی تیبل های فاکتور تعداد اقلام رو در نظر بگیری .

لیست فیلدهای تیبل فاکتور به این شرح میتونه باشه :

1. شماره فاکتور 2. تاریخ صدور 3. شرح 4. تعداد 5. واحد 6. فی 7. جمع ( الان دقیق توی ذهنم نیست )

لازم نیست مثلا 14 تا فیلد شرح داشته باشی 14 تا تعداد و .... از هر کدوم فقط یکی کافیه .
یه نمونه برات درست میکنم و میفرستم .

برای چاپ هم میتونی از هر ابزاری استفاده کنی . ( Rave و FastReport خیلی مناسب هستند )
موفق باشی .

tazekar
جمعه 25 مهر 1382, 05:18 صبح
ممنون از کمک دوست عزیز .
راستش مشکل من بیشتر در مورد وارد کردن اطلاعات و پرینت فاکتور هست که از چی استفاده کنم . Datagrid یا dbeditbox و ...
اگه مثالهایی رو که گفتی فرستادی ممنون میشم :wink:

Gladiator
جمعه 25 مهر 1382, 10:50 صبح
با سلام

این تصویر رو داشته باش تا توضیحاتش رو هم بنویسم

Gladiator
جمعه 25 مهر 1382, 11:59 صبح
با سلام مجدد

توی این مرحله همه تنظیمات فرم انجام شده و باید شروع کنی به برنامه نویسی . ( طبق همون مراحلی که گفتم ) .

در ابتدا چند متغیر سراسری تعریف میکنیم .


....
private
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;
Date : string;
Faktor_SH , Name , Code_moshtari : string;

implementation

uses Unit2;

{$R *.dfm}
....

وقتی تاریخ رو وارد کردی مقدار تاریخ رو بصورت یک رشته استرینگ میدی به یک متغیر سراسری و همچنین شماره فاکتور و نام و نام خانوادگی خریدار ( بسته به نوع برنامه ای که مینویسی میتونی به جای نام و نام خانوادگی خریدار از کد مشتری هم استفاده کنی ) .

موقعی که یکی از اقلام کالاها رو توی Edit باکسها وارد میکنی موقع خروج از مثلا ادیت باس تعداد مقادیر ادیت باکسها و اون متغیرهای سراسری رو با استفاده از این روش :


[b]Data.ADOTable1.Edit;
Data.ADOTable1.FieldValues['date']:=strtodate(Date );
Data.ADOTable1.FieldValues['faktor_no']:=Faktor_SH ;
Data.ADOTable1.FieldValues['name']:=Name;
Data.ADOTable1.FieldValues['sharh']:=edit4.Text;
....
Data.ADOTable1.Post;[/b]

به تیبل دوم فاکتورها ارسال میکنی .

روی این فرم شما یک DBGRID داری که به تیبل دوم ( غیر اصلی ) فاکتور متصل شده . اول همه رکوردها توی این تیبل ثبت میشن و بعد با صدور فاکتور به تیبل اصلی فاکتورها فرستاده خواهند شد .

اگر دکمه انصراف فشرده بشه همه رکوردهای توی تیبل دوم فاکتورها حذف میشن .

برای گزارش گیری و چاپ هم میتونی به سادگی از FastReport استفاده کنی . اگر Fast Report نداری میتونی با DelphiAssistant تماس بگیری و ازش با قیمت مناسب خریداری کنی .

امتحان کن اگر باز هم مشکلی بود بپرس .
موفق باشی .

tazekar
جمعه 25 مهر 1382, 17:07 عصر
بابا ایول :wink:
دستت طلا :wink: