PDA

View Full Version : سوال: جستجوي كامل بر روي جداول در sql ?



oghab
پنج شنبه 02 آبان 1387, 18:41 عصر
سلام
من يه برنامه دلفي براي ذخيره اطلاعات بيماران دارم. كه database ش . sql server 2000 هست و دقيقا 111 تا جدول داره. قسمت ورود اطلاعاتش هم كامله
شركت سفارش دهنده ميخواد برنامه به شدت reseachable باشه.
مثلا همزمان سن و نتيجه آندوسكوپي و آزمايش ها و داروها! روي تمامي اينها همزمان شرط بزاره و بعد جستجو كنه و پرونده هايي كه اون شرطها را دارند پيدا كنه!
مي خواستم ببينم توصيه شما چيه؟ بهتره چطور اين فرم جستجو را درست كنم؟
آيا راه حل مناسبي براي اينجور جستجوها وجود داره.
يا بايد براي تك تك اين فيلدهاي اين 111 تا جدول كد بنويسم؟
يعني يه select باشه و براي شرطش براي تمام حالتهاي ممكن كدنويسي كنم. يا راه حل عاقلانه تري وجود داره؟
ممنون ميشم راهنمايي كنيد

combat1964
جمعه 03 آبان 1387, 13:15 عصر
سلام
اول اینکه 111 جدول!!!! واسه اتوماسیون یه آزمایشگاه؟؟؟ اگر جسارتی نیست به نظر نمیاد تحلیل DB درست باشه. در هر حال شما الزاماَ بایستی جایی واسه select کردن فیلد ها قرار بدید که کاربر با تیک زدن اونارو انتخاب کنه . توی کد دکمه search هم به ازای هر check Box که true باشه به SQL Text هم اضافه بشه.

SYNDROME
جمعه 03 آبان 1387, 14:51 عصر
بهترین راه استفاده از Grid هایی است که بر روی هر ستون امکان جستجو را دارند.
شما اینطوری می توانید بر روی همه ستونها جستجوی ترکیبی داشته باشید.
موفق باشید

ghabil
جمعه 03 آبان 1387, 15:45 عصر
راه حل منطقی کارت نوشتن یک Report Builder هست یعنی نرم افزاری که با ایجاد یک اینترفیس کاربری راحت به کاربر این امکان رو میده که جداولی که باید در گزارش دخیل باشند، Layout نهایی و فیلدهایی که میخواد در نتیجه باشند، فیلدهایی که میخواد بر روی اونها شرط بزاره، گروه بندیها و اگریگیتهای مورد نظرش و نحوه مرتب سازی اطلاعا رو انتخاب کنه و بعد برنامه شما کدهای SQL مربوطه رو ایجاد کنه و همینطور ظاهر Report مورد نظر رو و بعد گزارش رو بسازه و در صورت لازم نمودار هم رسم کنه.
من 3-4 سال پیش همچین برنامه ای رو برای یکی از وزارتخونه ها نوشتم، البته روی دیتابیس Oracle کار میکنه ولی قابل تبدیل به SQL Server هم هست، ببین اگر پروژت واقعا پروژه بزرگیه و ارزشش رو داره میتونی این رو هم تست کنی. ضمنا کل پروژه تحت وب هست.

oghab
جمعه 03 آبان 1387, 18:09 عصر
سلام
اول اینکه 111 جدول!!!! واسه اتوماسیون یه آزمایشگاه؟؟؟ اگر جسارتی نیست به نظر نمیاد تحلیل DB درست باشه. در هر حال شما الزاماَ بایستی جایی واسه select کردن فیلد ها قرار بدید که کاربر با تیک زدن اونارو انتخاب کنه . توی کد دکمه search هم به ازای هر check Box که true باشه به SQL Text هم اضافه بشه.
آزمايشگاه نيست كلينيكه! كه تمامي اطلاعات بيماران اعم از اطلاعات شخصي. ويزيت هاي هر دوره. دوارهاي تجويز شده. آنواع آزمايشها! سي تي اسكن. سونوگرافي. تشخيص ها و prbplem هاو symptom ها و ... را ذخيره ميكنه. مثلا خود سي تي اسكن ميتونه 10 نوع داشته باشه كه اطلاعات هر كدوم متفاوته و ميتونه به تعداد نامشخص result داشته باشه كه راي جلوگيري از افزونگي. براي result هاش يك جدول جداگانه در نظر گرفتم. نتيجتا سي تي اسكن خودش شامل 11 تا جدول ميشه. خب در نظر بگيريد كه سونوگرافي و چند مورد ديگه هم همينطوره. نتيجتا تعداد جدولها ميره بالا!
خب هنوز اينكه كاربر بتونه فيلدهايي كه تو نتيجه ميخواد ببينه را انتخاب كنه. چندا سخت نيست. يا مثلا ميتونه چد تا فيلد اصلي مثل شماره پرونده و نام و نام خانوادگي را در گريد نتيجه نشون بده. منتها اين مشخصات مربوط به فيلدهايي باشه كه مشخصات و شروط را داشتند. و بعد با زدنم يك دكمه ورد فرم مشاهدم پرونده بشه. و پرونده موردهايي كه وارد شده را در اونجا ببينه. فكر ميكنم بهتر بشه. مشكل اصلي شرطهايي كه روي بايد بتونه بزاره كه ite, هش زياد ميشه. و من نميدونم غير از اينكه من واسه هر فيلد كد بنويسم كه شرط را به where اضافه كنه. يا مثلا فيلتر كنه. راه حل بهتري هست يا نه! چون كلي if ميخواد كه فقط چك كنه شرطي واسه اين item گذاشته شده يا نه!


بهترین راه استفاده از Grid هایی است که بر روی هر ستون امکان جستجو را دارند.
شما اینطوری می توانید بر روی همه ستونها جستجوی ترکیبی داشته باشید.
موفق باشید
به نظر راه حل خيلي خوبي مياد. ميشه بيشتر توضيح بدين. اين grid هايي كه ميگيد چي هستند. از كجا بايد پيداشون كنم؟ يا grid هاي معمولي هستند كه با نوشتن كدهايي چنين قابلتي بايد بهشون بدم. اگه اينطوره خيلي منون ميشم لطف كنيد بگيد چطور بايد عمل كنم.


راه حل منطقی کارت نوشتن یک Report Builder هست یعنی نرم افزاری که با ایجاد یک اینترفیس کاربری راحت به کاربر این امکان رو میده که جداولی که باید در گزارش دخیل باشند، Layout نهایی و فیلدهایی که میخواد در نتیجه باشند، فیلدهایی که میخواد بر روی اونها شرط بزاره، گروه بندیها و اگریگیتهای مورد نظرش و نحوه مرتب سازی اطلاعا رو انتخاب کنه و بعد برنامه شما کدهای SQL مربوطه رو ایجاد کنه و همینطور ظاهر Report مورد نظر رو و بعد گزارش رو بسازه و در صورت لازم نمودار هم رسم کنه.
من 3-4 سال پیش همچین برنامه ای رو برای یکی از وزارتخونه ها نوشتم، البته روی دیتابیس Oracle کار میکنه ولی قابل تبدیل به SQL Server هم هست، ببین اگر پروژت واقعا پروژه بزرگیه و ارزشش رو داره میتونی این رو هم تست کنی. ضمنا کل پروژه تحت وب هست.
راستش در كمال خجالت من اصلا تا حالا با report builder و ابزارهاي گزارش سازي كار نكردم. يعني واسه برنامه لازم هم دارم. ولي هنوز بلد نيستم باهاشون كار كنم.
پيشنهادتون به نظر خيلي عالي مياد. ولي من اصلا نميدونم چطوري:خجالت:

همچنان نيازمند راهنمايي هستم. خيلي ممنون ميشم

ghabil
شنبه 04 آبان 1387, 12:14 عصر
سوتفاهم پیش اومد، منظورم نرم افزار گزارش گیری Report Builder نبود ، چون این فقط یک اسم هست، منظورم نوشتن یک برنامه بود که میتونه Report بسازه ، البته خود Report Builder هم امکانات جالبه توجهی برای اینکار داره ولی خب کمبودهایی هم داره...

tefos666
شنبه 04 آبان 1387, 12:49 عصر
دوست عزیز من تو چندتا پروژه دیدم سایرین میان از کامپوننت Fast Report استفاده میکنند که تازه فارسی هم شده و کلی کار میشه باهاش کرد و حتی About اون رو هم میتونی نام نرم افزارت رو بزاری (کسانی که اطلاعی در این زمینه ندارند گمان میکنند خودتون گزارش ساز رو نوشتید :متفکر:) و کلی ذوق میکنید - فکر کنم اساتید بتونن راهنمایی کنند اگر حدس من درست بوده لطفا بگید من آخرین ورژن کرک شده و فارسی شده اونو دانلود کردم و نصب کردم خیلی جالبه - قبلا با Rave Report و Crystal Report کار میکردم ولی از وقتی این ّReport ساز رو دیدم دیگه بی خیال همه گزارش ساز ها شدم حتی اگه امکاناتش نسبت به اون یکی ها کمتر هم باشه خوبیش اینه که 1- فارسی 2- خود کاربری که با برنامتون کار میکنه میتونه خودش گزارش رو به دلخواه مثل Developer طراحی کنه و تازه از همه مهمتر علاوه بر اینکه کلاس کاری برنامتون بالا میره چون کاربر که فرمول نویسی سر در نمیاره واسه پشتیبانی نرم افزارتون میتونید یک قرار داد توپ ببندید و گاهی وقتها با صرف یک ساعت وقت فلان تومان دریافت کنید و نیاز به مراجعه هم ندارید تو شرکت یا منزل طراحی کنید با خروجی همون Fast report که اگه اشتباه نکنم frf بود ذخیره کنید و فایل رو بدید بهش در این زمینه یکی از شرکتهایی که خیلی خوب کار کرده شرکت سحر رایانه هستش با نرم افزار مالی اداری سیاق انصافا واسه بحث گزارش سازی کار کرده سایتش رو ببینید ضرر نمیکنید (برای اینکه برنامه نویس خوبی شوید و ایده تو سرتون باشه باید نمونه کار زیاد ببینید) www.sahar.ir (http://www.sahar.ir)

جالبتر اینه که خودش اومده یکسری توابع مثل تاریخ شمسی و .... رو به فرمول های برنامه گزارش ساز اضافه کرده و همه اینها نشون از قدرت این fast Report داره فایل آموزشش رو هم براتون پیدا کردم

http://www.rightclick.ir/downloads/fast_report_learning_(farsi)_zip


[/quote]


http://www.sahar.ir/Images%5CPage%5CSR.gif
گزارش ساز سیاق نسخه 6
نرم افزار هنر ورودی گرفتن پردازش کردن و ذخیره سازی و ارایه خروجی از اطلاعات است. نتیجه نهایی کار و باز خوردی که کاربر می بیند بیشتر گزارشات است و خروجی یا گزارشات یک نرم افزار از اهمیت ویژه ای برخوردار است. این مهم در نرم افزارهای سیاق بر عهده زیر سیستم گزارش گیری و گزارش ساز سیاق است که در کلیه فرمهای برنامه باز زدن دکمه گزارش ظاهر شده و گزارشات لازم را میدهد.
معمولا رسم است که یک نرم افزار گزارشات آماده ای را دارد و کاربر هر گزارشی را بخواهد میتواند تهیه کند. ولی در یک نرم افزار و یک نیاز گسترده تر تعداد و مدل های گزارشات خصوصا در دید آینده نگرانه نمیتواند مشخص باشد و علاوه بر گزارشات استاندارد و اولیه نرم افزار لازم میشود گزارشات دیگری به شکلهای دیگر در نرم افزار گنجانده شود. در این حالت چنانچه ما ابزار گزارش سازی مناسب نداشته باشیم مجبور خواهیم بود به شرکت تولید کننده نرم افزار برای اضافه کردن گزارش مورد نظر ما مراجعه نماییم ولی با بودن گزارش ساز بدون وابستگی میتوانیم خودمان راسا گزارش مورد نظر خود را بسازیم.
یک نکته مهم در گزارش سازها قابلیت تعامل آنها با نرم افزار است گزارش ساز به عنوان یک نرم افزار خارجی میتواند مطرح باشد به طور مثال نرم افزار CRESTALL REPORT ماکروسافت ابزار گزارش سازی کامل است که به دیتابیس هر نرم افزاری (و نه خود هر نرم افزاری) میتواند متصل و از روی اطلاعات دیتابیس گزارش سازی نماید. بدیهی است این ابزار ربطی به خود نرم افزار ندارد و قابلیت استفاده از آن مزیتی به حساب نمی آید. گزارش ساز سیاق در دل فایل اجرایی سیاق و مخصوص سیاق است و با فرمهای برنامه تعامل مستقیم دارد و به طور مثال شما لیستی را مرتب یا فیلتر میکنید و از همین لیست مرتب شده گزارشات استاندارد و اضافه شده خود را میگیرید در صورتی که در حال اول چنین قابلیتی وجود ندارد.


http://barnamenevis.org/forum/attachment.php?attachmentid=24848&stc=1&d=1224928074

فرم گزارش ساز سیاق گزارش ساز سیاق هنگام نصب اولیه تمام گزارشات استاندارد را دارد و علاوه بر آنها قابلیتهای ذیل را به کاربر میدهد.


امکان تهیه کپی از تمام گزارشات قبلی و اعمال تغییرات جزیی روی آن
تمام امکانات مورد انتظار از یک گزارش ساز حرفه ای – باندهای متنوع – توابع کامل – گزارشات ماتریسی – چارتها – بارکد – خط کشی ها – تنظیمات پرینتر و کاغذ – فونتها و رنگها و شکلها و .... با قابلیت دسترسی به تمام فیلدهای دیتابیس و ....
قابلیت گزارش دهی از هر آنچه در تمام فرم های سیاق میبینید با فیلتر و سورت و محدوده و شکل و ترتیب فیلدها و ...
قابلیت طراحی Dialog (فرمهای پرس و جو از کاربر) در کنار گزارشات و استفاده از آنها در گزارشها
امکان اجرای مستقیم دستورات Sql روی هر دیتابیس دیگری
قابلیت چاپ بارکد از هر آیتم اطلاعاتی – به طور مثال بار کد کالا یا کد کارمند و ...
امکان رمز گذاری روی گزارش برای جلوگیری از تغییر توسط دیگران
امکان ذخیره در فایل و خواندن از فایل یک گزارش
ارایه گزارشات جدید از طریق سایت سحر برای مشتریان سیاق
قابلیت ارسال خروجی تمام گزارشات به سایر نرم افزار ها مانند Exell ,Word , تصویر و HTML و ...


http://barnamenevis.org/forum/attachment.php?attachmentid=24849&stc=1&d=1224928074






success is doing , not wishing

tefos666
شنبه 04 آبان 1387, 12:59 عصر
بهترین راه استفاده از Grid هایی است که بر روی هر ستون امکان جستجو را دارند.
شما اینطوری می توانید بر روی همه ستونها جستجوی ترکیبی داشته باشید.
موفق باشید

دوست عزیز میشه اسم این کامپوننت رو بگی من خیلی وقته دنبالشم تو چندتا پروژه بزرگ دیدم استفاده شده ولی اسمش رو نمیدونم .:قلب:


success is doing , not wishing :متفکر:

SYNDROME
شنبه 04 آبان 1387, 16:22 عصر
دوست عزیز میشه اسم این کامپوننت رو بگی من خیلی وقته دنبالشم تو چندتا پروژه بزرگ دیدم استفاده شده ولی اسمش رو نمیدونم .:قلب:


success is doing , not wishing :متفکر:
یک نمونه Ehlib ، Next Grid است.
البته شرکتهای دیگر هم چنین کامپونتی دارند که می توانید تهیه کنید.
موفق باشید

tefos666
شنبه 04 آبان 1387, 19:26 عصر
:قلب: دوست خوبم oghaB تقاضا کرده بود من fAST REPORT رو که فارسی داره بزارم منم 2 تا ورژن رو دارم آپلود میکنم خودم از 4 استفاده میکنم امکاناتش بیشتره :شیطان:


فایل اول فارسی ساز اون هستش

فایل دوم و سوم هم خود FAST REPORT چون اینجا محدودیت فضا داره تو سرور خودم آپلود میکنم

farsi saz :اشتباه:
http://www.2shared.com/file/4159364/f262d5ad/Farsi.html

version 4.5 :خجالت:
http://www.2shared.com/file/4159307/3d312391/FastReport45.html

version 3.10 :کف:
http://www.2shared.com/file/4159339/f1a45d55/FastReport_Professional_310.html


http://barnamenevis.org/forum/attachment.php?attachmentid=24860&stc=1&d=1224951943

oghab
شنبه 04 آبان 1387, 19:31 عصر
خيلي خيلي ممنون
فايل دوم و سوم را از كجا بايد دانلود كنم؟
هميشه موفق باشيد

tefos666
شنبه 04 آبان 1387, 19:52 عصر
خيلي خيلي ممنون
فايل دوم و سوم را از كجا بايد دانلود كنم؟
هميشه موفق باشيد

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

http://www.2shared.com/file/4159307/3d312391/FastReport45.html

http://www.2shared.com/file/4159339/f1a45d55/FastReport_Professional_310.html

http://www.2shared.com/file/4159364/f262d5ad/Farsi.html

oghab
دوشنبه 13 آبان 1387, 12:36 عصر
سلام
و با تشكر فراوان
من اين كماپوننت را همونطور كه توي فايل راهنما توضيح داده شده بود نصب كردم و نصب شد. ولي با اينكه زبان را فارسي انتخاب كردم. زبانش انگليسيه!