PDA

View Full Version : جلوگیری از حذف سطرهایی خاص در گرید ویو (سرفصل حسابداری)



sasan_22
چهارشنبه 13 شهریور 1392, 20:52 عصر
سلام تو سیستم من سرفصل های کل رو توی گرید اوردم و چون کد این سرفصل ها از یک شروع شده و تا نه ادامه داره می تونم مانع حذف کاربر برای اون سطر بشم

ولی
1-سرفصل معین:
تو گرید دیگه تو فرم دیگه این کدها پشت سر هم نیستند مثلا (کدهای حسابداری مربوط به سرفصل های معین)
101 و 102 و 104
201 و 202 و 207
401 و 402 و 403
و ...
این سرفصل ها با این کدها جزء رزرو شده ها هستند و نباید کاربر اونا رو پاک کنه . حالا من چطوری جلوی این عمل رو بگیرم


2- از مورد اول بدتر سرفصل های تفصیلیه که کدهاش به این صورته :
1010001
1010002
2010001
9010007
...
دوستان کاربر من باید سطر رو توی دیتاگرید انتخاب کنه و حذف بزنه منتها نباید این سرفصل جزو رزرو شده ها باشه



ممنون

sasan_22
چهارشنبه 13 شهریور 1392, 21:57 عصر
اساتید محترم ...
گاهی نگاهی :لبخند:

FastCode
چهارشنبه 13 شهریور 1392, 22:53 عصر
ببین عزیزم.
شما وقتی داری برنامه رو به کاربر آموزش میدی بیشتر حرف میزنی.
الان یک ایراد داره که خودت هم نمیتونی درستش کنی.
اصولا باید همه ی کد مربط به حذف کردن و همه توضیحات مربوط به ساختار اطلاعات رو کامل کامل بزاری.

Arash_janusV3
چهارشنبه 13 شهریور 1392, 23:27 عصر
در چه فرمی کاربر باید حذف کنه؟
توضیحات کامل تری بدید البته با تصویر بهتر متوجه خواهیم شد

omidamiry
چهارشنبه 13 شهریور 1392, 23:41 عصر
سلام

هیچ وقت نبایستی برنامه رو جوری پیاده سازی کنی که نتونی جمعش کنی


میتونی از کلید خارجی استفاده کنی

www.amiry20.blogsky.com

علی فتحی
پنج شنبه 14 شهریور 1392, 00:06 صبح
یک مسج باکس بگذارید . که امکان حذف این ردیف وجود ندارد و اگر طرف ok زد کد عمل نکند فکر نکنم زیاد سخت باشه

sasan_22
پنج شنبه 14 شهریور 1392, 15:12 عصر
جناب فتحی مشکل من بدست آوردن کد سرفصل ( یا بعبارتی مقدار سلول انتخاب شده) هست البته با این کد میشه کاریش کرد

DGV.currentrow.cells[0].values


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

واقعیتش خودم به این نتیجه رسیدم حالا شما دوستان شاید راه حل بهتری داشته باشید .
ممنون

sasan_22
پنج شنبه 14 شهریور 1392, 15:43 عصر
Arash_janusV3 (http://barnamenevis.org/member.php?118123-Arash_janusV3) عزیز
در فرم تعریف سرفصل (مثلا معین یا فرم تعریف تفصیلی برای معین انتخاب شده
110202
تو این عکس که مال نرم افزار هلو هستش سر فصل های خودشو نمیذاره (باتن غیر فعاله) حذف کنه ولی تو عکس پایین


110203
یه معین تعریف کردم به اسم "معین خودم" حالا که روش می رم باتن فعال می شه و میذاره سرفصلی که کاربر تو هر سطحی تعریف کرده رو حذف کنه


omidamiry (http://barnamenevis.org/member.php?171240-omidamiry) عزیز
مشکل منم همینه دیگه نمیدونم چیکار باید کنم؟؟؟؟:ناراحت:

sasan_22
پنج شنبه 14 شهریور 1392, 15:46 عصر
جناب FastCode (http://barnamenevis.org/member.php?109710-FastCode)
این کدا از قبل مشخص شده هستند مثل 101 که سرفصل کل هستش و نباید پاک شه ولی اگه کاربر سرفصل کل دیگه ای تعریف کنه با کد 908 ؛ چون ماله کاربره و مال سیستم نیس ب صورت پیش فرض میذاره پاک شه
در ضمن ریلیشن هم دارند تو بانک

Arash_janusV3
جمعه 15 شهریور 1392, 01:06 صبح
البته این روش اصولی نیست
ولی برای نرم افزارهایی که نیاز به دانش حسابداری نداره و کاربرهای معمولی سر و کار دارند روش خوبی ست
راهکار: در جدولتون یک فیلد در نظر بگیرید به نام Fix از نوع bool
حالا حسابهایی از قبیل صندوق بانک و ... که در جدول ثابت هستند رو تعریف کنید و مقدار Fix رو True بگذارید
و حسابهایی که کاربر تعریف میکنه رو false
حالا کاربر حسابهایی رو می تواند حذف کند که مقدار Fix اون False باشد
البته مقدار Fix رو از طریق کد نویسی پر کنید کاربر در مقدار این فیلد نقشی ندارد

sasan_22
جمعه 15 شهریور 1392, 18:01 عصر
درسته افرین

من دوست داشتم از این روش استفاده کنم

private List<int> mkkk = new List<int> {1, 2, 101, 201, 908};
for (int i = 0; i < mkkk.Count; i++)
{
if (Equals(mkkk[i], Convert.ToInt32(textBox1.Text)))
{
MessageBox.Show(@"find");
return;
}
}
MessageBox.Show(@"Not find");




ممنون میشم نظرتو بگی:چشمک:

Arash_janusV3
سه شنبه 26 شهریور 1392, 16:23 عصر
درسته افرین

من دوست داشتم از این روش استفاده کنم

private List<int> mkkk = new List<int> {1, 2, 101, 201, 908};
for (int i = 0; i < mkkk.Count; i++)
{
if (Equals(mkkk[i], Convert.ToInt32(textBox1.Text)))
{
MessageBox.Show(@&quot;find&quot;);
return;
}
}
MessageBox.Show(@&quot;Not find&quot;);




ممنون میشم نظرتو بگی:چشمک:

پیشنهاد می کنم از این روش استفاده نکنید چون موارد پیش بینی نشده ممکنه دچار اشکالاتی بشه مثلا بعدها یک حساب اضافه شده و شما فراموش می کنید این دستور رو اصلاح کنید و کاربر اطلاعاتی را وارد می کنه و امکان داره این حساب را حذف کنه و مشکلات پیچیده ای به وجود بیاد بهتر از همان جدول این کار رو انجام بدید

sasan_22
سه شنبه 26 شهریور 1392, 20:20 عصر
ممنون از پاسخگوییتون
ولی سرفصلی که کاربر خودش تعریف میکنه باید (بتونه) پاکش کنه
اما سرفصل هایی که من دارم تعیین میکنم(حسابدار گفته بهم) نباید کاربر بتونه پاکش کنه چون جزء سرفصل های حیاتی سیستمه نباشه برنامه رو هواس حالا ماله کاربر میخواد باشه میخواد نباشه

حالا چون اون سرفصل ها کدش رو دارم تو یه لیست میذارمش و با کد بالا اون کدی که کاربر قصد پاک کردنش رو دارد(منظورم سرفصله) رو بررسی میکنم (پست 11)

Arash_janusV3
چهارشنبه 27 شهریور 1392, 01:10 صبح
البته این روش اصولی نیست
ولی برای نرم افزارهایی که نیاز به دانش حسابداری نداره و کاربرهای معمولی سر و کار دارند روش خوبی ست
راهکار: در جدولتون یک فیلد در نظر بگیرید به نام Fix از نوع bool
حالا حسابهایی از قبیل صندوق بانک و ... که در جدول ثابت هستند رو تعریف کنید و مقدار Fix رو True بگذارید
و حسابهایی که کاربر تعریف میکنه رو false
حالا کاربر حسابهایی رو می تواند حذف کند که مقدار Fix اون False باشد
البته مقدار Fix رو از طریق کد نویسی پر کنید کاربر در مقدار این فیلد نقشی ندارد

حدس می زنم شما متوجه این راه حل نشدید