PDA

View Full Version : تعداد فیلدها نامعلوم است!!!



dkhatibi
سه شنبه 13 آذر 1386, 22:49 عصر
البته صورت سوال به نوعی این گونه است.
من رو برنامه ی مدرسه کار می کنم. مشکل اونجاست که هر دانش اموز ممکنه تعدادی متفاوت نمره در تاریخ های متفاوتی داشته باشه.
برای گزارش گیری چه روشی باید انخاب کنم! ابزار گزارش گیری:FastReport یا QUickReport.

Cave_Man
سه شنبه 13 آذر 1386, 22:56 عصر
FastReport یا QUickReport

من توی سیستم های خودم در این مواقع از Ehlib استفاده میکنم
البته کنارش بخاطر اکمکانات کم نظیر fast از این ابزار هم استفاده میکنم

vcldeveloper
چهارشنبه 14 آذر 1386, 02:48 صبح
تعداد فیلداها نامعلوم است
در طراحی بانک اطلاعاتی مشکل دارید.

dkhatibi
چهارشنبه 14 آذر 1386, 20:49 عصر
خیر در طراحی مشکلی نیست. مشخص است که جد.لی برای نمرات تمام دانش آموزان در نظر گرفته شودو تمام نمرات به صورت رکورد با تاریخ و کد درس و کد دانش آموزی ثبت شوند. تا اینجا مشکلی نیست. اما برای تولید کارنامه کار اندکی دشوار است. راهی به ذهنم نمی آید.

vcldeveloper
پنج شنبه 15 آذر 1386, 02:51 صبح
خیر در طراحی مشکلی نیست. مشخص است که جد.لی برای نمرات تمام دانش آموزان در نظر گرفته شودو تمام نمرات به صورت رکورد با تاریخ و کد درس و کد دانش آموزی ثبت شوند. تا اینجا مشکلی نیست. اما برای تولید کارنامه کار اندکی دشوار است. راهی به ذهنم نمی آید.
وقتی جدولی طراحی میکنید که فیلدهاش نامتنهی هست، یعنی طراحی بانک را اشتباه انجام دادید!!

dkhatibi
پنج شنبه 15 آذر 1386, 06:16 صبح
شاید نامتناهی بودن فیلد یک تعبیر سوری باشد.
روش گفته شده نادرست می باشد؟

تمام نمرات به صورت رکورد با تاریخ و کد درس و کد دانش آموزی ثبت شون
در جدولی به نام نمرات
واقعا راه دیگری هست؟

mzjahromi
پنج شنبه 15 آذر 1386, 06:43 صبح
ابزار فرقی نمیکنه
باید دید
1- تسلط شما رو کدوم بیشتره
2- اون گزارشی رو که میخواهید با کدوم راحتتر در میاد
از نظر من دوتاش میشه

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

Bahmany
پنج شنبه 15 آذر 1386, 07:44 صبح
بنده هم برنامه ای برای مدارس راهنمایی طراحی کرده بودم که الان خیلی ها دارن ازون استفاده می کنند.
برای سیستم نمرات و یا درس جدید به هیچ وجه فیلد جدید اضافه نمی شد بلکه در جدولی که برای دروس در نظر گرفته بودم یک رکورد مثلا نام درس ، تعداد صفحات ، سطح و ... در اون ذخیره می شد.
و در جدولی که master آن جدول دانش آموزان بودند مثلا بنام tbl_Nomarat نمره همراه با درس مربوطه ذخیره می شد.
و هیچ مشکلی هم با صدور کارنامه نبود.
احتمالا باید در ساختار بانک اطلاعاتی تون تجدید نظر کنید.

jahani1148
پنج شنبه 15 آذر 1386, 13:13 عصر
سلام .
بجای اضافه کردن فیلد های متعدد برنامه را طوری تنظیم کنید که از رکوردهای زیادتری استفاده کننده . شما می توانید با استفاده از master/detail و با تعریف کد دانش آموزی منحصر به فرد تعداد بی نهایت درس .نمره و ...معرفی کنید . نیاز به معرفی فیلد های اضافی نیست

dkhatibi
جمعه 16 آذر 1386, 21:00 عصر
دقیقا این کار رو انجام داده ام.
اما در صدور کارنامه مشکلی هست. من از QuickRep ذارم استفاده می کنم. کارنامه کلاسی و نه ترم را به این شکل چاپ می کنم که هر درس به شکل یک عنوان ظاهر می شه و در یر اون نمره با تاریخ.
برای گذاشتن درسها برای عنوان از GroupHeader و شرط مورد نظر استفاده شده. این خوبه برای کارنامه ی تکی مشکلی نیست. اما اگر بخواهیم کارنامه ی کلی برای تمام دانش آموزان صادر کنیم می بایست برای هر دانش آموز نیز گروه بنذی کنیم. به هیچ شکل گذاشتن یک HeadrGroup جدید جواب نمی دهد.
منتظر علت و یا راه حل جدید هستم.
آیا می شه با کوئری و اظافه کردن شماره دانش اموزی ها چاپ گرفت(منطقی هست؟)

vcldeveloper
شنبه 17 آذر 1386, 03:15 صبح
بهترین کمکی که می تونید به خودتون بکنید اینه که طرح ساختار بانک اطلاعاتی برنامه را در اینجا قرار بدید و یک توضیح هم بدید که دقیقا چه اطلاعاتی از این ساختار باید در گزارش نمایش داده بشه.

mzjahromi
شنبه 17 آذر 1386, 06:48 صبح
QrSubDetail های MasterDetail مشکلتون رو حل نمی کنن؟
نباید مشکلی داشته باشید.

dkhatibi
شنبه 17 آذر 1386, 15:13 عصر
rSubDetail های MasterDetail مشکلتون رو حل نمی کنن؟
صبح تا شب ور رفتم نشد که نشد.


بهترین کمکی که می تونید به خودتون بکنید اینه که طرح ساختار بانک اطلاعاتی برنامه را در اینجا قرار بدید و یک توضیح هم بدید که دقیقا چه اطلاعاتی از این ساختار باید در گزارش نمایش داده بشه.
جداولی مربوط به نام درس و نام کلاسها و کلاس بندی دانش آموزان که در کلاس بندی کد دانش اموزی و کد کلاس ثبت می شه.
جدول اصلی ما جدول نمراته. در اون جدول کد هر دانش آموز کد درس و نمره و تاریخ اخذ نمره ثبت می شه.

اما باید بتونیم ماه تا ماه از تمام نمرات ثبت شده توسط دانش آموز گذازش گیری کنیم. به نحوی که در ردیف اولین ردیف مشخصات دانش آموز و در ردیف زیر اون نام درسها و در زیر اون نمرات در جدول مناسبی نمایش داده شن. زیر هر درس معدل اون درس و در زیر کل جدول معدل کل به نمایش در بیاید.. طبیعی است که تعداد نمرات هر ستون یکسان نباشه.
با تشکر

vcldeveloper
شنبه 17 آذر 1386, 20:30 عصر
جداولی مربوط به نام درس و نام کلاسها و کلاس بندی دانش آموزان که در کلاس بندی کد دانش اموزی و کد کلاس ثبت می شه.
هر دانش آموز فقط می تونه در یک کلاس باشه. چرا یک جدول کلاس ها شامل کد و نام کلاس درست نکردید و یک فیلد در جدول دانش آموزان برای کد کلاس اختصاص ندادید؟


به نحوی که در ردیف اولین ردیف مشخصات دانش آموز و در ردیف زیر اون نام درسها
شما کد درس را بصورت فیلدی از یک رکورد نگه داری می کنید. اگر در جدول نمرات کوئریی بنویسید که بر اساس کد دانش آموز و تاریخ رکوردها را فیلتر کند، برای هر دانش آموز رکوردهای مربوطه به دست می آید. با یک فیلد Lookup می تونید کد درس ها را بصورت نام آنها نمایش بدید. به این ترتیب نام هر درس و نمره آن در یک سطر نوشته می شود. میانگین اعداد یک ستون میشه معدل آن دانش آموز (برای کل درس ها). اگر یک درس در طول آن فاصله زمانی چند بار تکرار شده باشد، میشه با Group کردن از تکرار نام آن در لیست جلوگیری کرد، و میانگین هر گروه را هم به دست آورد.
کل این کارها بیشتر از همه بر می گرده به Query ایی که میسازید، و بعد از اون به امکانات ابزار گزارش سازی ای که استفاده می کنید، در زمینه گروه بندی اطلاعات.
برای نمایش اطلاعات دانش آموز در سطر اول هم که میشه یک رابطه Master-Details برقرار کرد.

A.Nemati
یک شنبه 18 آذر 1386, 15:26 عصر
به نظر من دوستمون حق داره.
نمونه این مشکل رو در برنامه یکی از دوستان دیدم.
مشکل مال چند سال پیش بود و جزئیاتش خیلی دقیق یادم نیست ولی می‌دونم که اون هم برنامه یک آموزشگاه بود.
بهترین راه حلی که پیدا کردم و جواب هم داد، استفاده از گزارش Cross بود. ولی مشکل اینجا بود که گزارش ساز مناسبی برای این منظور پیدا نکردم. همه رو امتحان کردم و هرکدوم یه مشکلی داشتن. ولی بهتر از همه Crystal Report بود که البته اونم راست به چپ نمی‌شد ولی کارمون رو راه انداخت
اگه از جوابهای دوستان به نتیجه نرسیدید، Cross رو حتما امتحان کنید.

dkhatibi
یک شنبه 18 آذر 1386, 18:16 عصر
Cross رو حتما امتحان کنید.
منظورتون از Cross متوجه نمی شم. من با کریستال اصلا کار نکردم.
Cross در FastReport هم وجود دارد . یا منظورتون چیز دیگه ایه؟

A.Nemati
یک شنبه 18 آذر 1386, 18:49 عصر
Cross-Tab به جداولی گفته می‌شه که شما می‌تونید در اون به جای سطر از یک فیلد (ستون) استفاده کنید.
به این مثال دقت کنید:
فرض کنید که شما یک Query نوشتید که حاصل خروجیش یک جدوله که سه ستون داره: نام دانش‌آموز، نام درس و نمره درس. شما در گزارشتون می‌خواهید نام دانش‌آموزان در سطرها، نام درس‌ها در Header ستون‌ها، و نمرات در زیر نام درس‌ها نمایش داده بشن مثل این:

-------------ریاضی----علوم----دینی
علی----------18-------19------17
حسن--------15-------17-------18
رضا---------- 17-------15-------16

خوب در حالت عادی هر کدام از اینها یک ستون هستند. در اینجاست که گزارشات Cross-Tab به کمک شما میان و خروجی لازم رو به شما می‌دن.


Cross در FastReport هم وجود دارد.
بله در FastReport هم وجود داره اما اون موقع که من باهاش کار کردم خیلی کامل نبود، نسخه‌های جدیدش رو نمی‌دونم.

dkhatibi
یک شنبه 18 آذر 1386, 20:35 عصر
نام ونام خانوادگی
-------------ریاضی----علوم----دینی
نمره1----------18-------19------17
نمره2--------15-------17-------18
نمره3--------- 17-------15-------16

این هم امکان داره؟

A.Nemati
دوشنبه 19 آذر 1386, 09:16 صبح
در Crystal Report حتی در نسخه 9 کاملا امکان داره.
باز هم می‌گم، من با FastReport کار نمی‌کنم. فقط چند بار سراغش رفتم، از ریزه‌کاریهاش خبر ندارم ولی مطمئنا اون هم می‌تونه چنین جدولی رو ساپورت کنه.

dkhatibi
سه شنبه 20 آذر 1386, 09:43 صبح
من با Master Detail چیزی شبیه زیر را در اوردم ولی اصلا جالب نیست.
می خوام درسها در یک ستون نمایش داده شن.

A.Nemati
سه شنبه 20 آذر 1386, 10:17 صبح
چرا سراغ Cross-Tab نمی‌رید؟؟؟ من که گفتم دقیقا چیزی رو که شما می‌خواهید بهتون می‌ده.

dkhatibi
سه شنبه 20 آذر 1386, 10:55 صبح
تو این تاپیک (http://barnamenevis.org/forum/showthread.php?t=87369)مشکلشو گفتم. نمی شه.
نمی دونم چی کار باید بکنم. به هر دری بود زدم.

A.Nemati
سه شنبه 20 آذر 1386, 12:25 عصر
تاپیک رو دیدم.
عکس خروجی گزارش رو اینجا آپلود کن.

dkhatibi
سه شنبه 20 آذر 1386, 12:52 عصر
عکس خروجی گزارش رو اینجا آپلود کن.
چشم !

A.Nemati
سه شنبه 20 آذر 1386, 13:09 عصر
نه! اونی رو که با Cross-Tab ساختی می‌خوام.
اگه بتونی فایل رو هم بذاری خوبه (فقط گزارش رو).

dkhatibi
سه شنبه 20 آذر 1386, 13:39 عصر
با DB Cross چیز عجیبی نیست. فقط یک دونه کروس گذاشتم.
کدش هست اما جدول همراش نیست. نمی دونم به درد بخوره یا نه!