ورود

View Full Version : فرمول خاص برای محاسبه میانگین نمرات



afshin62
سه شنبه 21 مهر 1388, 18:18 عصر
با سلام
من میخوامبر اساس یه فرمول خاص میانگین نمرات کلاس رو حساب کنم. لطفاً‌راهنماییم کنید:

من میخوام اول مشخص کنم که اگه یک فرد برای یک درس خاص 2 یا حتی 3 نمره داشت نمره حداکثر رو از این نمرات بگیره و فقط اون نمره رو توی برای پرینت نشون بده. یه چیزی شبیه این کد:


If {course.courseName}(i)={course.courseName}(i+1) then
GradeMax=max{grades.grade

و همچنین مثلاً‌ از لیست دروس نمره درس انضباط رو جدا کنم و با یه ضریب خاص برای میانگین ازش استفده کنم.


If {course.CourseName}="انضباط" then
enzebat={grades.grade}*0.5

و نهایتاً‌ و محاسبه میانگین این نمرات: بر اساس سایر نمرات دروس فرد


Average=grademax+math2+otherGrades In recordes/recordsNum


من اینطور کاری رو میتونم انجام بدم
لطفاً‌ کمکم کنید جداً‌ نیاز دارم
همه برنامه رو نوشتم فقط گزارش کارنامه مونده که نمیدونم چی کار کنم. خیلی حیفه برنامه خوبی شده فقط گنگه و نمیتونه حرف بزنه.

با تشکر

sara.f
چهارشنبه 22 مهر 1388, 14:42 عصر
با سلام
من میخوامبر اساس یه فرمول خاص میانگین نمرات کلاس رو حساب کنم. لطفاً‌راهنماییم کنید:

من میخوام اول مشخص کنم که اگه یک فرد برای یک درس خاص 2 یا حتی 3 نمره داشت نمره حداکثر رو از این نمرات بگیره و فقط اون نمره رو توی برای پرینت نشون بده. یه چیزی شبیه این کد:


If {course.courseName}(i)={course.courseName}(i+1) then
GradeMax=max{grades.grade

و همچنین مثلاً‌ از لیست دروس نمره درس انضباط رو جدا کنم و با یه ضریب خاص برای میانگین ازش استفده کنم.


If {course.CourseName}="انضباط" then
enzebat={grades.grade}*0.5

و نهایتاً‌ و محاسبه میانگین این نمرات: بر اساس سایر نمرات دروس فرد


Average=grademax+math2+otherGrades In recordes/recordsNum


من اینطور کاری رو میتونم انجام بدم
لطفاً‌ کمکم کنید جداً‌ نیاز دارم
همه برنامه رو نوشتم فقط گزارش کارنامه مونده که نمیدونم چی کار کنم. خیلی حیفه برنامه خوبی شده فقط گنگه و نمیتونه حرف بزنه.

با تشکر
سلام دوست عزیز
شما که خودت همه کدها را نوشتی! پس مشکلت چیه؟!

afshin62
چهارشنبه 22 مهر 1388, 18:59 عصر
نه این کاریه که من میخوام بکنم ولی این فرمولها در کریستال کاربردی نداره.
من فقط میدونم دقیقاً‌ مشکلم اینه ولی نحوه کد کردنشو توی کریستال نمیدونم

لطفاً‌ هر گونه نظری دارید بگید شاید کمکی باشه
با تشکر

mn_zandy63
پنج شنبه 23 مهر 1388, 20:26 عصر
سلام دوست عزیز

یک مقدار سوالتون مبهم بود، نمیتونم بهتون بگم دقیقا فلان کار رو انجام بدید. فقط چند تا نکته رو یادآوری میکنم شاید بتونه راهگشا باشه.
در کریستال ریپورت شما به رکوردهاتون داخل یک حلقه دسترسی ندارید. بنابراین نمیتونید یک حلقه بذارید و بگید فلان فیلد اندیس i.
باید به طریق دیگه ای مشکلتون رو حل کنید، ممکنه Running Total ها مقداری از مشکلاتتون رو حل کنند، به جز اون باید از فرمول ها استفاده کنید و ممکنه لازم باشه از Subreport ها هم استفاده کنید.

و یک سوال، خب چرا اصلا این معدل که گفتید رو داخل کدتون حساب نمیکنید بفرستید برای گزارش.

موفق باشید.

afshin62
جمعه 24 مهر 1388, 08:47 صبح
دوست عزیز متشکرم
ولی من نمیدونم چه جوری محاسبات برنامه رو بر اساس گروه بندی مورد نظر به کریستال بفرستم. مثلاً‌ وقتی یک کاربر میخواد کارنامه کل یک کلاس رو پرینت بگیره من باید کل معدل نفرات رو بر اساس کلاس محاسبه کنم و به گزارش بفرستم.
توی همین گیرم من میتونم مثلاً یک مقدار رو به گزارش بفرستم اونم توسط فیلد فرمول اما نمیدونم چه جوری کل نمرات یک گروه رو بفرستم.
اونی که من بلدم کدش در زیر نوشته شده:

CrRep.FormulaFields.GetItemByName("NameGD").Text = "'" & CmbNames.Text & "'"

mn_zandy63
یک شنبه 26 مهر 1388, 00:52 صبح
اگه درست متوجه شده باشم، شما قراره همه اطلاعات نمرات دانش آموزای یک کلاس رو بفرستی برای گزارش و در نهایت هم یک عدد که معدل این کلاس هست رو چاپ کنی درسته؟
اگه اینطوره، خب همه اطلاعات رو به صورت عادی بفرست، فقط این یک فیلد رو به هر روشی، مثل همون که خودت گفتی بفرست برای گزارش.

اگه درست متوجه نشدم بیشتر توضیح بده.