PDA

View Full Version : مشکل با جمع و تفریق در دیتاتیبل به شرط خاص



programerinfonet
پنج شنبه 28 فروردین 1393, 21:20 عصر
سلام دوستان من این سوالو قبلأ هم مطرح کرده بودم اما به جواب نرسیدم خواهش می کنم کمک کنید
ابتدا این سورس رو دانلود کنید و اجرا کنید
118102
ما تو این برنامه 3 تا DataTable داریم که هر سه تا به DataGrid متصل هستند .
اولی نمایشگر اطلاعات سهامدار می باشد
دومی نمایشگر اطلاعات سهامدار بعد از تغییرات می باشد
سومی نیز نمایشگر تغییرات سهامداران می باشد . به طور مثال به تصاویر زیر نگاه کنید :
اطلاعات سهامداران در ابتدای دوره :
118103

اطلاعات سهامداران در پایان دوره :
118104

حالا من میخوام در گرید سوم تغییرات انجام شده در طی دوره نمایش داده شود مثلأ :
1- سرمایه علی از 1000 به 1500 افزایش پیدا کرده
2- سرمایه حسن از 1000 به 500 کاهش پیدا کرده
3- محمد در ابتدای ددوره نیست ولی در انتهای دوره هست یعنی به عنوان شخص جدید وارد شرکت شده
4- رضا در ابتدای دوره هست ولی در انتهای دوره نیست یعنی طی دوره سهام خود را دریافت کرده و از شرکت خارج شده است
1 من میخوام این تغییرات را در گرید سوم نمایش بدم
2 فیلد Change در گرید سوم با توجه به تغییرات انجام شده با یکی از کلمات "ورود" "خروج" "کاهس" "افزایش" پر شود
2 جمع سهام افراد زمانی که محمد وارد شده ولی هنوز حسن خارج نشده

(اطلاعات وارد شده نمونه می باشد و این اطلاعات را کاربر وارد می کند و تعدادشان بیشتر است)

خدایی کمک کنید خیلی گیرم

behnam-soft
جمعه 29 فروردین 1393, 00:28 صبح
سلام دوست من، برنامه ت رو دانلود نکردم اما شما برای انجام این کار،مثلا میزان تغییرات، بیا یه جدول جدا درست کن- که البته فکر کنم این کار رو کردی- میزان اصلی سهم رو هم که داری، خب حالا برای نمایش دادن اون در دیتاگرید، شرط بذار که داده ها رو از هر دوجدول، خونه به خونه چک کنه.مثلا سهم اولیه علی در جدول 1 هزار تا سهم بوده خب؟ حالا اومده یک ماه بعد میزان سهم رو کرده 2000،یعنی 1000 تا افزایش،خب، بیا این هزارتایی که اضافه شده رو، در جدولی که مربوط به تغییرات هست ذخیره کن.زمانی که می خوای نمایش بدی، بیا این 2 تا خونه رو از این دو جدول با هم مقایسه کن، اگه افزایشی صورت گرفته، خونه یا بهتر بگم سلول متناظر اون دیتا تیبل رو در دیتا گرید مثلا سبز کن و اگر کاهشی هم بوده، قرمزش کن. این روش رو می تونی در هر بار که فرمت به نمایش درمیاد استفاده کنی. اما یادت باشه که این کار صرفا مربوط به 2 عمل آخر سهام دار میشه و مورد های قبلی رو نشون نمیده، یعنی اگر علی بعد 5 باردیگه سهمش شد 15000 فقط میاد میگه آقا سهم علی 12000 بوده آخرین بار 3000 تا اضافه شده.

اگر کارت تا همینجا راه می افته که هیچی، در غیر اینصورت - داشتن آمار دقیق میزان سهم از ابتدا تا انتهای دوره- بگو تا توضیح بیشتری بدم، البته اگر تا اینجا هم مفید بوده برات.

behzadkhan
جمعه 29 فروردین 1393, 01:26 صبح
با سلام

اگر اشتباه نکرده باشم:
===========================

با توجه به تاپیک های مشابه این موردتان

تمام تغییراتی که خواسته اید اعمال شده و شما تایید کرده اید.

فقط این مورد اضافه شده است:
2 جمع سهام افراد زمانی که محمد وارد شده ولی هنوز حسن خارج نشده

لطفا بررسی مجدد کنید

با تشکر

aslan
جمعه 29 فروردین 1393, 01:40 صبح
سلام
یکسری تغییرات تو برنامه تون دادم . امیدوارم چیزی باشه که مدنظر شماست ....
کدهایی که نوشتم را به سلیقه خودتون بهینه کنید ( فقط بعنوان یک راهکار بهشون نگاه کنید )..........
بنظرم برنامه تون را ساده تر از اینهم میشد نوشت ............
موفق باشید

programerinfonet
جمعه 29 فروردین 1393, 08:08 صبح
مرسی عزیز لطف کردی
منظورم یه چیزی شبیه این بود
همون دیشب خودم حلش کردم
مچکر از زحمتت دمت گرم