PDA

View Full Version : نحوه استخراج صورتحساب مشتری از بانک



hasandrw
سه شنبه 25 مرداد 1390, 23:11 عصر
سلام
من یک برنامه نوشتم در زمینه خرید و فروش است.
یعنی یک جدول برای ثبت اطلاعات خرید و یک جدول برای ثبت اطلاعات فروش که در هر دو جدول موقع ثبت فاکتور فیلدی بنام CustomerId در هر دو جدول ذخیره میشه یعنی نام خریدار هم ذخیره میشه.
حالا می خوام صوتحساب اون خریدار که هم در فاکتور خرید و هم در فاکتور فروش ،خرید یا فروش کرده چه به صورت قرضی و چه هم به صورت نقدی مشخص بشه.
در صورتی مشتری بصورت قرضی خرید کرده باشه به حسابش اضافه بشه .
حالا من نمی دونم اطلاعات دو جدول رو چجوری در قالب صوتحساب مشتری استخراج کنم در ضمن وقتی یک مشتری می خواد تسویه حساب کنه هم اطلاعات تسویه حسابش که شامل فیلد CustomerId و غیره است در یک جدول بصورت جداگانه ذخیره میشه.
فقط می خوام بدونم چجوری اطلاعات یک مشتری را از سه جدول یعنی :جدول خرید،فروش و تسویه حساب استخراج کنم که بشه بدهکار یا بستانکار بودن اون مشتری را مشخص کرد.
اگه دوستان کسی در این زمینه اطلاعی داره راهنمایی ام کنه.
متشکرم

hasandrw
پنج شنبه 27 مرداد 1390, 15:16 عصر
کسی در این زمینه اطلاعی نداره منو راهنمایی کنه؟

akar_program
پنج شنبه 27 مرداد 1390, 21:23 عصر
سلام فكر نمیكنم كسی جواب بده‌ اگر كسی جواب بده‌ باید برنامه‌ برات بنویسه‌ تا شوما جوابت بگیرید اول خودت شروع كنید دیتا بیست بنویسید با نویشتن برنامه‌ شروع كنید هر جا مشكیل داشتید بپورسید كمكم جیلو برید موافق باشید

hasandrw
پنج شنبه 27 مرداد 1390, 22:12 عصر
من برنامه رو نوشتم فقط تو این قسمت موندم!که چجوری اطلاعات یک مشتری رو از چند جدول استخراج کنم و در یک گرید نمایش بدم!
اگه کسی میدونه راهنمایی ام کنه.

akar_program
جمعه 28 مرداد 1390, 01:07 صبح
اون اطلا عاتی كه‌ در دو جدول میخواهید بیارید بیرون در گرید نیشون بدید با نظر من بریز توی یك جدۆل دیگه‌ باد در گرید نیشون بدید با كلیك كردن روی نام هر مشتر اطلا عات باك كنید جدیدش جایگزی كنید

البته‌ یك سوال چرا مجبور شودید اطلا عات یك مشتر در چند جدول بریزید چرا همه‌ تو یك جدول ثبت نمیكنید مسلن برای جدا كردنش از key ایستفاده‌ كنید كامپیوتر + كیبورد + ماوس یك كی همسان داشته‌ باشن
و كتاب + سیدی + دیویدی یك كی(key) جدا داشته‌ باشن
البته‌ شاید این كار ملی نباشد تو سایت نمونه‌ش هست

hasandrw
جمعه 28 مرداد 1390, 02:43 صبح
چون باید اطلاعات فاکتور خرید و فروش جداباشه برای کارهایی مثل گزارش گیری ، مشخص کردن سود و زیان براساس شماره فاکتور.
اگه همه قاتی هم باشند که نمیشه گزارش گیری کرد؟
اگه کسی روش بهینه تری سراغ داره از من بی دریغ نکنه.
ممنونم

یوسف زالی
جمعه 28 مرداد 1390, 06:51 صبح
سلام.
با اجازه:
برای ساختن کاردکس یا همون صورت حساب از چند جدول باید اطلاعات رو full join کنید.
select * from (subselect 1) full join (subselect 2) on .. full join ..
به این ترتیب فیلدهایی دارید که اگر برای بعضی ها وجود نداشته باشه صفر می تونه بشینه.

hasandrw
جمعه 28 مرداد 1390, 14:10 عصر
متشکرم جنابyousijoon
اگه میشه کمی واضه تر توضیح بدین تا هم با شکل کلی دستور join آشنا بشم و هم با نحوه استخراج اطلاعات از چند جدول.

یوسف زالی
شنبه 29 مرداد 1390, 00:39 صبح
ببینید،
مثلا جداول شما این شکلی اند:
جدول فاکتور فروش (مستر و دیتیل رو کاری نداریم فعلا)
جدول خرید
جدول اعتبار مشتری

حالا برای آوردن اطلاعات از اینها:
select * from (TBL1) A full join (TBL2) B on A.CID = B.CID full join (TBL3) C on A.CID = C.CID

حالا اون TBLها چی اند؟
هر کدوم یک سلکت هستند که مقادیری که شما لازم دارید رو می آرن. مثال:
TBL1 =
select CID, sum(Price) from FactorTBL where Date between D1 and D2 group by CID

و به طریق مشابه..

شما کد بزن، هر جا گیر کردی بگو

hasandrw
شنبه 29 مرداد 1390, 02:03 صبح
A , B ,c بعد از پرانتز یعنی چه؟ A.CID یعنی چی؟
بعد اطلاعاتی که از سه جدول استخراج شد می خوام در یک گرید نمایش بدم،گرید رو باید به DataSourc کدوم جدول متصل کنم؟
در کل درستورJoin برای استخراج اطلاعات استفاده میشن؟و دستور Group By چی ؟
چون من با این دستورات اصلاکار نکردم.

hasandrw
جمعه 11 شهریور 1390, 19:40 عصر
دوست من پس کجایی؟

یوسف زالی
شنبه 12 شهریور 1390, 10:55 صبح
عزیز جان شما اطلاعاتتون کافی نیست.
کمی در مواردی که گفتید در همین سایت سرچ کنید. بعد دوباره صحبت می کنیم.
آخه نمی شه وقتی گروپ نمی دونی چیه در مورد کاردکس حرف زد که.
انگار بگی شتاب رو چجوری حساب می کنن اما ندونی ضرب چیه.
توصیه من اینه که اول به دستورات مسلط شی.
بعد در خدمت هستم.

hasandrw
شنبه 12 شهریور 1390, 15:33 عصر
چشم . دوباره مزاحم میشم در این زمینه البته بعد از مسلط شدن به مسئله.

rezaghahremani
یک شنبه 20 شهریور 1390, 08:55 صبح
من یه برنامه حسابداری شبیه این نوشته ام و بنده فاکتور خرید و فاکتور فروشم جدا است که در هر کدام که جدول دارند نقدی/غیرنقدی را نیز مشخص کرده ام که برای گزارش گیری خیلی ساده شده است و برای ثبت حساب مشتری علاوه بر این که در تک فاکتورها مبلغ فاکتور ذخیره میشود در جدول مشتری نیز یک فیلد برای آخرین حساب مشتری قرار داده ام که در هر بار ثبت فاکتور یا ثبت چک ویرایش شده و مبلغ حساب به روز میشود.
امیدوارم که متوجه شده باشی

hasandrw
یک شنبه 20 شهریور 1390, 22:34 عصر
یه چیزهایی از منظورتون فهمیدم ولی کامل نه!

hasandrw
دوشنبه 21 شهریور 1390, 21:43 عصر
سلام جناب Yousijoon
حالا تا حدی بر دستوراتی که گفتی مسلط هستم حالا اگه میشه در مورد نحوه استخراج اطلاعات از سه جدول بیشتر توضیح بدین .

یوسف زالی
سه شنبه 22 شهریور 1390, 00:34 صبح
سلام دوباره.
ببینید وقتی چند جدول جدا از هم داریم که می خواهیم اطلاعات اونا با هم ادغام بشن - مثلا جدول مانده اعتبار - جدول بد بس - جدول ... اونوقت باید به نحوی اونها رو در هم ترکیب کنیم.
حالا نکتش اینه که ممکنه یکی یا چند تا از جداول داده ای به ازای کس خاصی نداشته باشن. اونوقت از full join استفاده می کنیم و به جای داده های نال مثلا صفر می گذاریم و جمع می کنیم.
مثلا جدول اعتبارات رو با خرید مشتری ترکیب می کنیم و به ازای هر مشتری داده ها رو استخراج می کنیم.
حالا شما باید با دونستن اینکه چه داده هایی رو از چه جداولی می خواهی ، جداول رو با هم ترکیب کن.
شروع کن؛ سوالی داشتی هستم..

hasandrw
جمعه 25 شهریور 1390, 11:13 صبح
ممنونم از همکاریتون :
در اینجا من می خوام عملیات را بر روی سه جدول انجام بدم (یعنی جدول Kharid و Foroosh و Customer). به این صورت که در فاکتور خرید هر خریدی که به صورت اعتباری(قرضی)باشه کد همون فروشنده(CustomerID) در جدول خرید در فیلدی به نام (KharidCustomerID) ذخیره میشه . برای فاکتور فروش هم همین طور یعنی هر فروشی که به صورت اعتباری باشه کد خریدار(CustomerID) در فیلدی در فاکتور فروش بنام (ForooshCustomerID) ذخیره میشه .
حالا می خوام صورتحساب مشتری را با آوردن کد مشتری برام نشون بده . یعنی هم از جدول خرید و هم از جدول فروش برام استخراج کنه .


حالا من تو این موندم که Grid را باید به کدوم جدول متصل کنم .
بعدش اگه میشه خودتون یک نمونه کد برای این جداول بنویسید؟

ممنونم .

سعید صابری
جمعه 25 شهریور 1390, 12:03 عصر
از query استفاده کن و جدولهاتو join کن

hasandrw
جمعه 25 شهریور 1390, 17:28 عصر
جناب Yousijoon من منتظر جوابتون هستم .

hasti-jan
جمعه 25 شهریور 1390, 20:20 عصر
سلام
پیشنهاد میکنم برای اسناد خرید و فروش در یک جدول ذخیره کنید

hasandrw
چهارشنبه 30 شهریور 1390, 12:17 عصر
Yousijoon من منتظر راهنمایی شما هستم

یوسف زالی
پنج شنبه 31 شهریور 1390, 21:43 عصر
سلام دوباره.
من برای شما یک مثال می زنم و قدم به قدم می رم جلو.
راههای بهتری همیشه ممکنه پیدا شه. هدف من اینه که دستتون بیاد چه کار کنید. حالا روش اسکریپت نوشتن برای یادگیری اصل مطلب چندان توفیری نمی کنه.

اول جداول خودم رو درست می کنم، اصلاعات تستی درش وارد می کنم و آخر سر سلکت.
ساختار جداول:
75621

و داده های نمونه:
75622
75623

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

در اینجا جداول می تونه نمونه ای از جداول شما باشه.
سلکتی مشابه اونچه دیدیم در قالب یک Stored Procedure ذخیره کنید و با شی خودتون در زبان برنامه نویسی به اون متصل بشید نه به یک جدول خاص.
امیدوارم متوجه روند کلی کار شده باشید.
موفق باشید.

hasandrw
پنج شنبه 31 شهریور 1390, 23:15 عصر
یعنی با Ado Query نمیشه این کار را انجام داد؟

یوسف زالی
جمعه 01 مهر 1390, 02:12 صبح
با اون هم میشه اما خیلی سخت ..
بهترین راه ADOStoredProcedure هست.
هندلینگ قوی تر - منعطف تر - امن تر ...

hasandrw
جمعه 01 مهر 1390, 09:25 صبح
چون من الان دارم با اکسس کار می کنم که نمیشه از SP استفاده کرد.پس باید کم کم کار با بانک SQL را شروع کنم.
در ضمن جناب Yousijoon از همکاریتون ممنونم.
احتمالا در این پست دوباره مزاحمتون بشم.