# Native Code > برنامه نویسی در Delphi > بانک های اطلاعاتی در Delphi >  نرم افزارثبت مراجعات ارباب رجوع

## amirkazem

باسلام وآرزوی قبولی طاعات وعبادات وتبریک عیدسعیدفطر!

درنظردارم نرم افزاری باعنوان ثبت مراجعات ارباب رجوعان به یک اداره که تعدادارباب رجوعان هم خیلی کم هستند(تقریباًدرهفته 20مورد)طراحی کنم.(بخشی ازسامانه میزخدمت)

طراحی پیشنهادی خودم این هست که:
1.جدولی بانام ارباب رجوعان که شامل فیلدهای عمومی ازقبیل:نام،نام خانوادگی، کدملی، شماره موبایل و...
2.جدولی بانام مراجعه یاهرنام دیگری که مراجعات ثبت شده:ای دی، کدملی، تاریخ ورود، ساعت ورود، تعداد(نفرات(ممکن است ارباب رجوع همراه داشته باشدکه نیازی به ثبت مشخصات همراهان نیست فقط تعدادهمراهان ثبت شود))،ساعت خروج، رضایتمندی ازمراجعه و... 
3.جدول واحدهای اداری:واحداداری(مرجع)، کارشناس واحد

 ارباب رجوعی که برای باراول مراجعه می کند، مشخصاتش ثبت می شودولحظه وساعت ورودش ثبت می شود.

وامانکته: لطفاً بفرماییدبرای ثبت زمان خروج(ساعت خروج) ارباب رجوع چطوری بایدعمل کنیم؟درصورتی که تازمان برگشت ارباب رجوع ازواحدمرجع، ممکن است چندین مراجعه کننده دیگرنیزواردشوند.(ارباب رجوعان اولیه که به ترتیب واردمی شوند درجایی نگهداری شده ودرزمان خروج بتوانیم ساعت خروجشان راثبت کنیم.)
ونکته دیگراینکه:
ارباب رجوع ممکن است برای چندمین باربه اداره مراجعه کند، دراین صورت نیازی به ثبت مشخصات عمومی(نام ونام خانوادگی و...) نیست.چراکه قبلاً ثبت شده. 
لطفاً دراین مواردراهنمایی بفرمایید!
البته نظرخودم این هست که ابتدادریک فرم مشخصات ارباب رجوعی که برای باراول مراجعه می کند، ثبت شود وسپس درفرم دیگر، مراجعه ی ایشان ثبت شود.(البته زمان معطلی ارباب رجوع رابایددرنظرداشته باشیم که ارباب رجوع زمان زیادی رامعطل نشود)

----------


## hp1361

> باسلام وآرزوی قبولی طاعات وعبادات وتبریک عیدسعیدفطر!
> 
> درنظردارم نرم افزاری باعنوان ثبت مراجعات ارباب رجوعان به یک اداره که تعدادارباب رجوعان هم خیلی کم هستند(تقریباًدرهفته 20مورد)طراحی کنم.(بخشی ازسامانه میزخدمت)
> 
> طراحی پیشنهادی خودم این هست که:
> 1.جدولی بانام ارباب رجوعان که شامل فیلدهای عمومی ازقبیل:نام،نام خانوادگی، کدملی، شماره موبایل و...
> 2.جدولی بانام مراجعه یاهرنام دیگری که مراجعات ثبت شده:ای دی، کدملی، تاریخ ورود، ساعت ورود، تعداد(نفرات(ممکن است ارباب رجوع همراه داشته باشدکه نیازی به ثبت مشخصات همراهان نیست فقط تعدادهمراهان ثبت شود))،ساعت خروج، رضایتمندی ازمراجعه و... 
> 3.جدول واحدهای اداری:واحداداری(مرجع)، کارشناس واحد
> 
> ...


با سلام خدمت هم استانی عزیز

این رویه پینهادی من برای برنامه شماست
- لیستی از مراجعات رو در صفحه اصلی نمایش بدید. اطلاعات این لیست برگرفته از 2 جدول ارباب رجوع و جدول مراجعه خواهد بود.(برای افزایش سرعت برنامه، صرفاً اطلاعات مراجعات روز جاری نمایش داده بشه و امکان تغییر بازه زمانی و نیز جستجو رو هم در همین صفحه در نظر بگیرید).

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

به دو  روش ثبت میشه اجرا بشه. یک ثبت به ازای هر تردد(حالا چه ورود باشه و چه خروج) و یا اینکه یک ثبت برای ورود و خروج بطور مشترک.

موفق باشیم

----------


## amirkazem

سلام آقای پاکدل! ممنون ازلطف شما! خیلی لطف کردید! آرزوی توفیق!

----------


## mafazel

سلام دوست عزیز
 بنظر می رسد در دنیای برنامه نویسی تازه وارد هستید. نظرهای عمومی و خصوصی من اینه:
 1-      به دنیای برنامه نویسی خوش آمدید.
 2-      بر خلاف یک کارخانه دار که سرمایه اش زمین و موافقت اصولی و مجوز ها و ماشین آلات و مواد اولیه است (ولی برای کلاسش میگن سرمایه ما نیروی انسانی ماست!)، سرمایه یک برنامه نویس همت بلند و ذهن کامل (پویا، خلاق، جستجو گر، محاسبه گر، مقایسه گر، نو گرا) است. شما هم برای موفقیت به سرمایه اولیه و توسعه سرمایه نیاز دارید.
 3-      به روز باشید. از Delphi 10.2 و FastReport استفاده کنید. برای این پروژه از بانک Access و کامپوننت های ADO استفاده کنید.
 4-      سعی کنید نرم افزارتون اگر هم کوچیکه کامل باشه. کار کامل کوچک بهتر از بزرگ ناقص است. کامل بودن  برنامه به معنای گرفتن 60 تا فیلد از مراجعه کننده نیست، یعنی کاربری راحت، جستجوی کامل، گزارش گیری، چاپ، تنظیمات، آمار و نمودار، خروجی اکسل و ... . خیلی از مراجعین مایل به دادن تلفن و موبایل و آدرس و ایمیل و شماره شناسنامه پدربزرگ خود نیستند اونها رو اذیت نکنید. 
 5-      اگر از این نرم افزار درآمد دارید حسابی روش وقت بذارید. اگر برای یادگیری می نویسید بسته به علاقه و وقتتون روش کار کنید. 6-      برای ثبت ورود و خروج در یک رکورد 2 تا فیلد ورود و خروج بزارید، معمولا یک رکورد برای ورود و یک رکورد برای خروج نمی گذارند. 7-      طبعا فهرست واحد های اداره (مراجعه شونده ها) رو توی مثلا بخش تنظیمات باید بدید و در ثبت مراجعه از اون جدول استفاده کنید.
 8-      جاهایی که می تونید Type Assist پیاده سازی کنید (غیر ضروری در مراحل اولیه). یعنی با زدن چند حرف فهرست فیلتر شده ای از موارد رو به کاربر نشون بدید تا از فهرست انتخاب کنه. با Enter به فیلد بعدی و Shift+Enter به فیلد قبلی برید!.
 9-      از آیکن های زیبا و شاید اختصاصی برای برنامه تون استفاده کنید (غیر ضروری در مراحل اولیه). 10-  20 رکورد در هفته برنامه کوچکیه، به نظر من یک جدول برای مشخصات مراجعه کننده و یک جدول برای جزئیات مراجعه (پیاده سازی جداول Master-Detail) نیاز نیست. مگر اینکه چند مراجعه کننده محدود با دفعات مراجعه زیاد داشته باشید. در عوض روی بخش جستجو (فیلتر) و چاپ بیشتر کار کنید. در حالت تک جدولی هم میتونید با زدن کد ملی یا فامیل یه جستجو انجام بدید و در صورت وجود داشتن اطلاعات در رکورد های قبلی مشخصات مراجعه کننده رو پر کنید.
 11-  بند بالا برای حالتیه که در آینده نزدیک توسعه ای برای نرم افزار و مجموعه نمی بینید. وگر نه بله از جداول Master-Detail استفاده کنید. بجای Table بیشتر از Query استفاده کنید، به تحت شبکه بودن فکر کنید، بجای Access از SQL Server استفاده کنید و ... .
 12-  عزت زیاد.

----------


## amirkazem

جناب آقای mafazel سلام، وقت بخیر!
ازراهنمایی شماسپاسگزارم! منون ازاینکه توجه کردید!
خدمتتون عرض کنم که بنده آماتورهستم وحرفه ای هم برنامه نمی نویسم ولی چندین برنامه نوشته ام که درحوزه ومحل کاراداری خودم کاربرددارند. وخداروشکرتاکنون بدون مشکل استفاده می کنیم.
درخصوص نرم افزارمیزخدمت هم خدمتتون عرض کنم که تمامی آیتم هایی که مدنظرشماست، دربرنامه بنده لحاظ شده است.
بند2: بنده هم ازبانک اطلاعاتی اکسس وبرای ارتباط بابانک ازAdoconnection و Adoqueryها استفاده می کنم.
بند3: ازدلفی XE3دارم استفاده می کنم وازهمان ابتدای شروع برنامه نویسی بادلفی، ازگزارش سازFastReport استفاده کرده ام.
4:بسیاری ازفیلدهایی که درجدول مراجعه کنندگان لحاظ شده، غیرضروری هست والزامی به درج آن نیست.فقط نام ونام خانوادگی ضروری هست که ازارباب رجوع گرفته می شودوصحت وسقم اطلاعات باخودش می باشد.
5:بحث درآمدزایی ازبرنامه نیست، بخشی ازوظایف اداری بنده هست(البته نه دراین حدکه نرم افزاربنویسم) ولی باتوجه به علاقه ی وافربه برنامه نویسی انجام داده ام.
6:دقیقاً درجدول مراجعه، برای یک رکورد، یک فیلدورودداریم ویک فیلدخروج. وقتی خروج غردثبت می شود، همان رکوردآپدیت می شودکه خروجش ثبت شود.
7:فهرست واحدهای اداری دربانک اکسس دریک جدول جداگانه ایجادشده ودربرنامه ازهمان استفاده می شودونیازی به تایپ توسط کاربرنیست.مگراینکه تعدادکارمندان واحداداری خاص بیش ازیک نفرهست که فقط نام کارمندواحداداری موردنظرتوسط کاربرثبت می شود.(البته این توان رادارم که همین موردراهم انتخابی انجام بدم)
8:ممکن است یک ارباب رجوع برای دفعات مکرربه اداره مراجعه نماید.به همین منظور، مشخصاتش ثبت می شود ودرمراجعات بعدی فقط باتایپ یک یاچندحرف ازحروف نام یانام خانوادگی فرئموردنظر، مشخصاتش واکشی می شود.ومراحل بعدی مراجعه انجام می شود.
9:قطعاً نرم افزارهاباید طراحی ظاهری زیبایی هم داشته باشند. وبنده به این موردخیلی دقت دارم تاجایی که حتی روی bitbtnها هم آیکن بافرمتbmp درنظرمی گیرم.
10:بهتراست برنامه هرچندکوچک هم باشد، اصولی کارشود. تعدادمراجعه کنندگان ما متوسط هستند ودربرخی مواردبه بالای 20مورددرروزهم می رسد.
11:فرمایش شماکاملاً صحیح است وتحت شبکه بودن بسیارخوب است.ولی متأسفانه هنوزموفق به طراحی برنامه ای بابانک SQlserverنشده ام.(البته نوع وورژن sqlserverراپیدانکرده ام.اگرراهنمایی بفرمایید، ممنون میشم!)
12:ازحسن نظرشمابی نهایت سپاسگزارم. برای شماهم آرزوی توفیق دارم!

----------


## یوسف زالی

سلام.
نوع اس کیو ال چندان مهم نیست، همین که 2000 نباشه کافیه! ولی بهتره روی آخرین نسخه تمرکز کنید.

----------


## amirkazem

> سلام.
> نوع اس کیو ال چندان مهم نیست، همین که 2000 نباشه کافیه! ولی بهتره روی آخرین نسخه تمرکز کنید.


سلام، ممنون ازلطف وراهنماییتون! اگه ممکنه، لینک دانلودنسخه ی موردنظرتون رابذارید!

----------


## یوسف زالی

فعالیت وارز محسوب می شه و مجاز نیست، می تونید در این سایت پیداش کنید:
https://downloadly.ir/

----------


## amirkazem

ممنون! لطف کردید! ببخشید!قبلاً دکمه تشکروجودداشت ولی الان نیستش. :متفکر:

----------


## amirkazem

باسلام خدمت همه دوستان، دررابطه باطراحی وتنظیم نرم افزارثبت مراجعات، به شرح ذیل مراحل انجام شد.
1.به محض ورودارباب رجوع برای اولین بار، مشخصات ایشان درفرم ثبت مشخصات ارباب رجوع برای یکبارثبت می شود.
2.درهمان لحظه دریک فرم دیگر(باعنوان ثبت مراجعه) مراجعه ی فردموردنظرباآیتمهای: تاریخ، تعدادنفر، ساعت ورود، واحداداری مرجع، کارشناس یامسئول واحدمرجع ثبت می شود.
3.فردموردنظربه لیست افرادمراجعه کننده درهمان روزکه هنوزخارج نشده اند، اضافه می شود.
4.درصورت انجام اموراداری ولزوم خروج ارباب رجوع، باانتخاب رکوردموردنظرکه قبلاً ورودش ثبت شده بود، خروجش ثبت می شود.وازلیست مراجعه کنندگانی که هنوزازسازمان خارج نشده اند، خارج می شود.
5.برای ورودبه نرم افزار، نگهبابان(مآمورین حفاظت فیزیکی سازمان) به عنوان کاربران سیستم تعریف شده اند.
6.هرکاربربانام کاربری ورمزعبوراختصاصی ازنرم افزاراستفاده می کند.
7.تمام لاگین های کاربران به تاریخ وساعت ذخیره می شود.
8.درصورتی که کاربربخواهدبرنامه رابه طورکلی ببندد، اگر ارباب رجوعانی که هنوزخروجشان ثبت نشده درلیست مراجعه کنندگان همان روزوجودداشته باشند، سیستم پیغامی مبنی برعدم ثبت خروج تعداد...نفر مراجعه کننده پیغام می دهدکه ازکاربرسوال می شودکه خروج افرادراثبت می کندیاخیر؟. درصورت جواب مثبت، کاربربه صفحه ی لیست مراجعه کنندگان همانروزارجاع داده می شود وخروج افرادباقی مانده راثبت می کند. ولی درصورت عدم ثبت به صورت دستی، برنامه بطوراتومات خروج کاربرانی که ثبت نشده اندرا ثبت می کند.(البته مبنای ساعت خروج برای ایشان، ساعت همان لحظه ی سیستم کامپیوتر می باشد.)
9.درصورت عدم ثبت رضایتمندی ارباب رجوع ازواحداداری مرجع، نیزسیستم به صورت خودکار، رضایتمندی راباعنوان ثبت نشده، درنظرمی گیرد.
10.درهررکوردی که ثبت می شود، IDکاربرسیستم نیزثبت می شود.
11.درگزارشاتی که طراحی شده است، لیست کلی مراجعه کنندگان بین 2تاریخ طراحی شده است. که کلیه ی فیلدهای: نام ونام خانوادگی ارباب رجوع، تعداد، تاریخ ورود، ساعت ورود، واحداداری مرجع، کارشناس واحدمرجع، ساعت خروج ، رضایتمندی وکاربرثبت کننده راشامل می شود ودرحالت برگه افقی قابل پرینت هست.
12.گزارش بعدی، لیست مراجعه کنندگان به واحداداری خاص می باشد که باانتخاب واحداداری ازیک ِDBLookupcombobox می توان به اطلاعاتی که دربالاذکرشد، دست یافت وپرینت گرفت.
13.گزارش بعدی، لیست مراجعات یک ارباب رجوع به اداره یاسازمان است که بافیلدهای موردنظرقابل دستیابی است.
14.گزارش بعدی، تعدادمراجعات ثبت شده توسط هریک ازکاربران است که باانتخاب کاربرموردنظروباانتخاب محدوده ی تاریخی( ازتاریخ لغایت تاریخ ) اطلاعات مربوطه نمایش داده خواهدشدوقابل پرینت هست.
15.درمنوی مدیریت کاربران، هریک ازکاربران می تواندرمزعبورخودراتغییرداد  ه ورمزعبورجدیدی برای خودش تعیین نماید.
16.موردبعدی درمدیریت کاربران، ویرایش کاربران ازجمله:افزودن کاربرجدید، تغییرنام کاربری کاربر خاص و...می باشد.
17.درمنوی مدیریت کاربران، لیست فعالیت های کاربران سیستم(لاگین) بافیلدهای تاریخ وساعت قابل دسترسی وپرینت هست.
18.به کاربران عادی اجازه ی دسترسی به مدیریت کاربران داده نشده است وفقط مدیرسیستم دسترسی به موارد17و18رادارد.
19.برنامه دارای منوی پشتیبان گیری یاهمان بکاپ نیزمی باشد که البته فقط ار بانک اطلاعاتی سیستم وباقیدتاریخ شمسی درکنارنام بانک، بکاپ می گیرد.
20.برنامه دارای صفحه ی لود یاهمان(Splash screen)  نیزمی باشد.
هرچندمی توان قابلیت های دیگری به برنامه اضافه کرد که این موردسلیقه ای می باشد.
مورادبه اطلاع دوستان رسانده شد تاتجربیات به اشتراک گذاشته شده وبتوانیم ازتجربیات یکدیگراستفاده کنیم.
ازهمه ی دوستانی که لطف کرده وبنده راراهنمایی کردند، کمال تشکررادارم.

----------

