PDA

View Full Version : سوال: محاسبه مالیات در قسمت فرم تنظیمات فروشنده و اعمال آن به فرم های دیگر



manit44
یک شنبه 09 شهریور 1393, 21:55 عصر
سلام بر دوستان گرامی

من یک فرم تنظیمات فروشنده و دو فرم صدور فاکتور دارم. حالا میخوام وقتی در فرم تنظیمات درصد مالیات رو وارد میکنم این مقدار روی فرم های صدور پیش فاکتور اعمال بشه و با هر بار صدور فاکتور جدید به طور خودکار این درصد مالیات یعنی مبلغ مالیات و عوارض و جمع مبلغ کل و مالیات محاسبه، بشه چکار باید بکنم؟

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

veniz2008
دوشنبه 10 شهریور 1393, 00:47 صبح
سلام بر دوستان گرامی

من یک فرم تنظیمات فروشنده و دو فرم صدور فاکتور دارم. حالا میخوام وقتی در فرم تنظیمات درصد مالیات رو وارد میکنم این مقدار روی فرم های صدور پیش فاکتور اعمال بشه و با هر بار صدور فاکتور جدید به طور خودکار این درصد مالیات یعنی مبلغ مالیات و عوارض و جمع مبلغ کل و مالیات محاسبه، بشه چکار باید بکنم؟

پیشاپیش از راهنماییهای تمام دوستان تشکر میکنم.
سلام.
اگر این درصد مالیات برای یک بازه زمانی ثابت هست (مثلا برای 1 ماه یا بیشتر) یه راهش می تونه استفاده از متغیرهای setting باشه (کار کردن باهاشون بسیار ساده هست و توی سایتم دربارش مطلب هست که با جستجو پیدا می کنید). اینطوری مجبور نیستید که هر بار که برنامه رو اجرا می کنید، درصد مالیات رو هم تایپ کنید و راحت می تونید از متغیر Setting اون مقدار رو بخونید (خاصیت متغیرهای setting در ذخیره سازی مقادیری هست که بهشون می دید. شبیه فیلد در Sql با این تفاوت که Setting در سمت سی شارپ تعریف میشه).

manit44
دوشنبه 10 شهریور 1393, 11:57 صبح
سلام من هر چی سرچ زدم چیزی پیدا نکردم اگر لینکی دارید برام قرار بدین لطفا

ممنون.

manit44
دوشنبه 10 شهریور 1393, 18:39 عصر
کسی نمیتونه یه جواب درست و حسابی بده؟

veniz2008
دوشنبه 10 شهریور 1393, 22:07 عصر
برای استفاده از setting ابتدا باید یک متغیر از این نوع رو ایجاد کنید. برای این کار از منوی Project گزینه ProjectName Properties رو انتخاب کنید (منظور از ProjectName نام پروژه شما هست).
در پنجره ای که واستون باز میشه از سمت چپ گزینه Settings رو انتخاب کنید و بعد در پنجره سمت راست متغیرهای مورد نیازتون رو تعریف کنید. مثلا فرض کنید برای درصد مالیات اگر از نوع int باشه یک متغیر با نام دلخواه مثلا TaxPercent و از جنس int و با scope از جنس user تعریف می کنید (تمام این موارد ویزاردی هستند و نیازی به کد نویسی نداره).
بعد از ساخت یک متغیر Setting باید بتونید درونش مقدار ذخیره کنید و همچنین در مواقع مورد نیاز، مقدار ذخیره شده رو بیرون بکشید و ازش استفاده کنید.
ذخیره کردن در متغیرهای setting (مثلا یک فرم میذارید که کاربر درصد مالیات رو از اونجا وارد و ذخیره کنه و هر وقت هم نیاز به تصحیح درصد مالیات داشت دوباره از همون فرم اقدام به تصحیح درصد مالیات کنه) :

Properties.Settings.Default.TaxPercent = Convert.ToInt32(TxtTaxtPercent.Text.Trim());
Properties.Settings.Default.Save();
MessageBox.Show("درصد مالیات با موفقیت ذخیره شد");
خواندن مقدار ذخیره شده در Setting (درون هر فرمی که به درصد مالیات نیاز داشتید با کد زیر این مقدار رو بیرون می کشید و استفاده می کنید) :

MessageBox.Show(Properties.Settings.Default.TaxPer cent.Tostring());
موفق باشید.

manit44
سه شنبه 11 شهریور 1393, 11:07 صبح
سلام veniz2008

ممنون از راهنماییتون فقط یه مشکل دارم اگه بخوام درصد مالیات رو حساب کنم (یعنی مالیات و عوارض و جمع مبلغ کل و مالیات) بوسیله متغیر setting چطور میتونم این کار رو انجام بدم و فرمولش چیه؟

باز هم ممنون میشم کمکم کنید.

veniz2008
سه شنبه 11 شهریور 1393, 11:18 صبح
سلام veniz2008

ممنون از راهنماییتون فقط یه مشکل دارم اگه بخوام درصد مالیات رو حساب کنم (یعنی مالیات و عوارض و جمع مبلغ کل و مالیات) بوسیله متغیر setting چطور میتونم این کار رو انجام بدم و فرمولش چیه؟

باز هم ممنون میشم کمکم کنید.
واقعیتش اینه که من حسابدار نیستم که بتونم تخصصی در مورد این مسائل صحبت کنم.
شما بهتره که از نت جستجو کنید تا فرمول ها و روش صحیح برای محاسبه این موارد رو در اختیار داشته باشید.
موفق باشید.

manit44
سه شنبه 11 شهریور 1393, 11:53 صبح
سلام veniz2008

در ستون value بعد از ستون scope باید محاسباتم رو انجام بدم؟ و همچنین باید داخل ستون value متغیرهای مربوط به محاسبه مالیات رو تعریف کنم؟

ممنون.

veniz2008
سه شنبه 11 شهریور 1393, 12:30 عصر
در ستون value بعد از ستون scope باید محاسباتم رو انجام بدم؟ و همچنین باید داخل ستون value متغیرهای مربوط به محاسبه مالیات رو تعریف کنم؟

خیر.
متغیرهای setting مثل سایر متغیرها در سی شارپ هستند با این تفاوت که مقدارهای وارد شده درون اونها ماندگار هستند و بعد از بستن برنامه از بین نمیرن.
اون متغیر setting ای که فرضا از نوع int تعریف کردید فقط درصد مالیات رو نگهداری میکنه. مثلا عدد 10 رو درون ستون value وارد می کنید به معنی 10 درصد.
فرمول ها تون رو باید درون برنامه وارد کنید و فقط میزان درصد مالیات رو از Setting بخونید.
موفق باشید.

manit44
سه شنبه 11 شهریور 1393, 13:38 عصر
سلام veniz2008

من فرمولش رو پیدا کردم و انجام دادم

فقط یه سوال اگه بخوام این محاسباتی که نوشتم رو از یکی از سلولهای گرید ویو بخونه و محاسبات رو درون اون قرار بده چکار باید بکنم؟

اینم کدی هست که نوشتم:

Properties.Settings.Default.tax_percent = Convert.ToDecimal(dataGridView2.CurrentRow.Cells[8].Value.ToString());

باز هم ممنون.

veniz2008
سه شنبه 11 شهریور 1393, 18:34 عصر
والا من که نمی دونم منطق برنامه شما چی هستش، اینکه مقدار درون سلول این گرید رو میخوای چکار کنی بر من پوشیده هست.
نتیجه این محاسبات رو اولا نمی دونم چطور رفته تو گرید، بعدش چرا می خواید بریزیدش توی یک متغیر setting و چرا توی متغیر setting که ظاهرا از جنس int هست چرا یک سلول گرید رو که به رشته تبدیل کردید، می خواید داخلش بریزید.
اگر به هر دلیلی که خودتون می دونید می خواید سلول گرید رو بریزید توی متغیر Setting ، باید هم جنس باشند.
از متغیرهای setting معمولا برای نگهداری مقادیر ساده و تک مقداری استفاده میشه و نباید اینطور فرض کنید که جای جدول در sql رو می تونه بگیره. این Setting رو فقط یک متغیر که مقدارش از بین نمیره فرض کنید.
موفق و سربلند باشید.