PDA

View Full Version : ثبت تمام اتفاقات در یک برنامه؟



kuchulu
پنج شنبه 14 مهر 1390, 11:38 صبح
من دارم یک برنامه برای ثبت فعالیت های روزانه کارمندان یک شرکت طراحی میکنم.


حالا میخوام یه جایی تمام تغییراتی که هر نفر در اون برنامه انجام میدن رو ثبت کنم, یه چیزی مثل log.
لطفا کمک بدید

vahid301
پنج شنبه 14 مهر 1390, 11:42 صبح
من فكر ميكنم براي اين كار بايد توي تموم eventهاي برنامت يه جور ثبت اطلاعات مخصوص را كه ميخواي توي پايگاه داده اضافه كني:لبخندساده:

danial82
شنبه 16 مهر 1390, 11:53 صبح
شما باید اول منظورت از اتفاق مشخص کنی بعد درمورد اون تصمیم گیری کنی

A_Mryam99
شنبه 16 مهر 1390, 14:51 عصر
با Trigger در Sql server هم میشه log گرفت که اتفاقات مورد نظر (مثل درج در یک جدول یا تغییر و حذف رکوردهای یک جدول یا ...)رو تو یه Table وارد میکنه. البته من خودم کار نکردم.تو Googleیه سرچ بکن شاید آموزشش باشه.

modern_amin
شنبه 16 مهر 1390, 15:22 عصر
من تو برنامه هام معمولا اینکارو میکنم
وقتی کاربر وارد سیستم میشه کد اونرو نگهداری میکنم (کد کاربری که با نام کاربری و رمز عبور وارد شده)
بعدش موقع هر ثبت ، ویرایش ، حذف و .... تو نرم افزار کد کاربر رو هم ذخیره میکنم
بعد مدیر سیستم میتونه بفهمه که کی چیکار کرد

morteza271
شنبه 16 مهر 1390, 16:02 عصر
سلام.
منم مثل این دوستمون قبلا کار کردم ولی این کار یه مشکلی داره.
مدیر سیستم فقط میتونه بفهمه که کدوم کاربر چه کاری کرده مثلا ویرایش کرده یا اضافه کرده ...
ولی نمیتونه متوجه بشه از چه چیزی به چه چیزی تغییر یافته درسته؟
به نظرتون برای این که بتونیم یه کاری کنیم که مدیر بتونه بفهمه کاربر مثلا یه سطر رو از چی به چی تغییر داده باید چیکار کنیم؟
بهترین روش چیه؟

modern_amin
شنبه 16 مهر 1390, 16:16 عصر
بله حق باشماست

.
نمیدونم شاید تنها راحش ذخیره تو دیتابیس باشه ولی
فکر اطلاعات زیادی که تو دیتابیس ذخیره میشه هم باید باشیم
کسی نظری نداره؟؟؟؟

j_naroogha@yahoo.com
شنبه 16 مهر 1390, 19:48 عصر
دوستان سلام
من قبلا تقریبا همچین کاری کردم
توی جدولم دو فیلد گذاشتم یه فیلد برای اینکه اصلا این فیلد تغییر کرده یا نه؟ وفیلد دومی شماره تغییر (کلید خارجی به یه جدول دیگه برای بیان جزییات تغییر)
البته زیاد جالب به نظرم نرسید.
شاید یه کمکی باشه برای دوستان.

ya30ien2
یک شنبه 17 مهر 1390, 01:15 صبح
برای اینکار فکر میکنم باید یک فیلد دیگه اضافه کنیم و موقع ذخیره تغییرات هر مقداری که تغییر کرد رو درون اون فیلد ذخیره کنیم

m.soleimani
یک شنبه 17 مهر 1390, 01:50 صبح
من دارم یک برنامه برای ثبت فعالیت های روزانه کارمندان یک شرکت طراحی میکنم.



حالا میخوام یه جایی تمام تغییراتی که هر نفر در اون برنامه انجام میدن رو ثبت کنم, یه چیزی مثل log.

لطفا کمک بدید

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

ya30ien2
یک شنبه 17 مهر 1390, 17:46 عصر
خیلی جالب بود
اما یکم عملی کردنش سخت!

سوداگر
دوشنبه 25 مهر 1390, 04:36 صبح
برای هر کدوم از کارمندان یه فایل با پسوند log بساز (Unicode باشه) و تمام تغییرات رو در اون بنویس. به همین راحتی:لبخند:

امَا اگه میخوای برای جناب رئیس، توی یه DataGrid نمایش بدی، من XML رو توصیه میکنم. یعنی به ازای هر تغییر، یک رکورد در فایلت ذخیره بشه. برای ناخوانا کردن کد XML هم فکر کنم از فضای نام System.Comper..tion :اشتباه:باید استفاده کنی.
برای حجم زیاد داده هات هم نگران نباش چون اگه فایلهای متنی ات رو Zip کنی، حجم فایهای ثانویه 1/10 حجم فایلهای اولیه خواهد شد.
:تشویق:

Z_Bagheri
دوشنبه 25 مهر 1390, 10:14 صبح
من دقیقا این کار رو انجام دادم، از Nlog ستفاده کردم ، برای هر عملیاتی که انجام میشه ، از لود اطلاعات از دیتا بیس گرفته تا باتن کلیک ها رو میشه ثبت کرد، در فایل متنی هم ذخیره می کنم ابلبته با یک فرمت خاص که بعدا برای خوندن به راحتی ازش استفاده می کنم، خطاها رو هم با یه کد خاص نگه می دارم، اسم فایل ها رو نام کاربری می ذارم و البته برای دسته بندی هم از فولدرهایی استفاده می کنم که با تاریخ روز ساخته می شند، خود Nlog پوشه ها رو می سازه، با اسامی که ما بهش می گیم، بعد مجوز مشاهده اش رو هم به کاربر می دم، و البته مشاهده فعالیت های خودش، مدیر سیستم هم می تونه فعالیت های همه ی کاربر ها رو ببینه، با دسته بندی تاریخی.
حتی بعضی جاها که لازم بوده مثلا اگر ادیتی انجام شده مقدار قبلی و مقدار جدید رو هم ذخیره کردم.
راجع به Nlog اگر سرچ کنید مطالب خوبی بدست می آرید