با سلام خدمت دوستان
بنده جدولی دارم که بر اساس فیلدهای سال ، ماه ، اسم مزرعه ، اسم عملیات بره داخل دیتابیس تو اون بازه و فیلدهای درخواستی فیلد امروز آبیاری رو تجمیع کنه و به من بده که عدد بدست آمده میشه تا امروز فیلدهای بدست آمده بنده چیزهایی نوشتم ولی عدد تا امروز که حاصل تجمیع امروز هست رو نمیده البته کویری جواب میده و باید حتما با جی کویری و اسکریپت باشه چرا که فیلدهای تعریف شده بالا با اسکریپت نوشته شده ولی نمیتونم تمام شرطها رو داخل اسکرپت بزارم
گرفتن مزرعه با آیدی مربوطه
[HttpPost]
public IActionResult getMazaree(int id)
{
var operationList = _db.Tbl_MazareeBankDashtAndAyesh.Where(c => c.IDMazraee == id)
.Select(c => new { id = c.IDMazareeKshtShodeh, cname = c.HektarKeshtShodeh,
cname1 = c.Variteh_FK.NoeeVarite, cname2 = c.Sen_FK.NameSen,
cname3 = c.NameBloke, cname4 = c.MazraeeAsli_FK.Office_FK.OfficeChartName }).ToList();
return Json(new { status = "success", operationList });
}
گرفتن نام عملیات با آیدی مربوطه
[HttpPost]
public IActionResult getOperation(int id)
{
var operationLiist = _db.Tbl_Opertion.Where(c => c.OpertionChartLevel == id)
.Select(c => new { id = c.OpertionChartID, cname = c.OpertionChartName }).ToList();
return Json(new { status = "success", operationLiist });
}
اسکریپت مربوط به مزرعه
<script>
$("#sltMazraee").on('change', function (e) {
if ($("#sltMazraee").prop('selectedIndex') == 0) {
$('#divZirOpration').addClass('hidden');
}
else {
//اگر یک مزرعه انتخاب شده
var getid = $('#sltMazraee').val();
$.ajax({
type: 'post',
url: '@Url.Action("getMazaree", "AbyariSabt")',
data: { id: getid },
success: function (result) {
if (result.status == "success") {
$('#opidHektar').empty();
$('#opidVariteh').empty();
$('#opidSen').empty();
$('#opidNameBlook').empty();
$('#opidNameOffice').empty();
$.each(result.operationList, function (i) {
$('#opidHektar').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname));
$('#opidVariteh').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname1));
$('#opidSen').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname2));
$('#opidNameBlook').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname3));
$('#opidNameOffice').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname4));
});
}
}
});
$('#divZirOpration').removeClass('hidden');
}
});
</script>
اسکریپت مربوط به عملیات
<script>
$("#sltOpration1").on('change', function (e) {
if ($("#sltOpration1").prop('selectedIndex') == 0) {
$('#divZirOpration1').addClass('hidden');
}
else {
//اگر یک عملیات انتخاب شده
var getid = $('#sltOpration1').val();
$.ajax({
type: 'post',
url: '@Url.Action("getOperation", "AbyariSabt")',
data: { id: getid },
success: function (result) {
if (result.status == "success") {
$('#oprationid').empty();
$.each(result.operationLiist, function (i) {
$('#oprationid').append($("<option></option>")
.val(result.operationLiist[i].id).html(result.operationLiist[i].cname));
});
}
}
});
$('#divZirOpration1').removeClass('hidden');
}
});
</script>
تا اینجا همه چی گل و بلبل هست و اوکی هست.
حال میخوام با توجه به آیدی های گرفته شده از بالا ماه و سال رو اضافه کنم و بگم برو تو دیتابیس فیلد EmrozAbyari رو تجمیع کن بهم بده کد زیر هم نوشتم
[HttpGet]
public IActionResult Mohasbeh(int ido, string TaEmrozAbyari, int sltMazraee, int oprationid, string Month, string Year)
{
double TaEmroozAb = 0;
var opertion = _db.Tbl_Abyari.Where(p => p.IDMazraee == sltMazraee && p.Month == Month
&& p.Year == Year && p.IDOpration == ido);
foreach (var item in opertion)
{
TaEmroozAb += Convert.ToDouble(item.EmrozAbyari);
}
ViewBag.TaEmrozAbyari = TaEmroozAb;
return View();
}
این هم دیزاین جایی که میخوام نشون بده داخل کادر قرمز باشه البته با انتخاب لیست ویو مزارع مرتب عوض بشه یعنی بره مجدد دیتابیس رو چک کنه
بنده تحت ویندوز این موارد کفته شده رو نوشتم چون در تحت ویندوز به راختی با استفاده از Event های موجود کد نویسی کرد و دستمون خیلی بازتره ولی در asp.core نمیتونم اسکریپت بنویسم
سلام
برای اینکه سوال مطرح شده رو شبیه سازی کنم نیاز هست اینطور عنوان کنم
به شما بگن کارکرد روزانه تا به امروز (یا ماهیانه)رو چطوری محاسبه کنی نیاز هست بر اساس یه فیلدهای اصلی و شرطی محاسبه کنی درسته؟
تو سئوالم این رو مطرح کردم اینکه فیلدی دارم به نام مزرعه حال میگن کارکرد عملیات آبی که تا به امروز بهش داده شده چقدر هست؟
پس نیاز هست شرطمون خود مزرعه باشه ، خود عملیات باشه،ماه،سال و فیلد آب داده شده روزانه(حاصل جمع فیلد آب داده شده با المانهای شرطی میشه تا به امروز)
بنده کوئری رو نوشتم و تست کردم و اوکی هست ولی نمیتونم اسکریپت بنویسم(تازه اومدم تو عرصه تحت وب)
نتیجه: یعنی با انتخاب هر کدام از فیلدهای مزرعه ، عملیات، سال ، ماه بره تو جدول مربوطه فیلد آبیاری امروز رو تجمیع کنه و خورجی آن میشه تا به امروز میشه کد زیر
public IActionResult Mohasbeh(int ido, string TaEmrozAbyari, int sltMazraee, int oprationid, string Month, string Year)
{
double TaEmroozAb = 0;
var opertion = _db.Tbl_Abyari.Where(p => p.IDMazraee == sltMazraee && p.Month == Month
&& p.Year == Year && p.IDOpration == ido);
foreach (var item in opertion)
{
TaEmroozAb += Convert.ToDouble(item.EmrozAbyari);
}
ViewBag.TaEmrozAbyari = TaEmroozAb;
return View();
}
حا کد ذکر شده زمانی اجرا میشه و فراخوانی خواهد شد که اطلاعات ماه و سال و مزرعه و عملیات از لیست ویو های مربوطه لود بشن که بنده انجام دادم ولی چیزی که نیاز دارم باید بره تو اسکریپت و جی سان شرط های گفته شده رو از لیست ویو بگیره و پاس به متد بالا
مثلا من اسکریپت عملیات رو نوشتم کد زیر هست
<script>
$("#sltOpration1").on('change', function (e) {
if ($("#sltOpration1").prop('selectedIndex') == 0) {
$('#divZirOpration1').addClass('hidden');
}
else {
//اگر يک عمليات انتخاب شده
var getid = $('#sltOpration1').val();
$.ajax({
type: 'post',
url: '@Url.Action("getOperation", "AbyariSabt")',
data: { id: getid },
success: function (result) {
if (result.status == "success") {
$('#oprationid').empty();
$.each(result.operationLiist, function (i) {
$('#oprationid').append($("<option></option>")
.val(result.operationLiist[i].id).html(result.operationLiist[i].cname));
});
}
}
});
$('#divZirOpration1').removeClass('hidden');
}
});
</script>
اسکریپت گرفتن مزرعه و آیدی مربوطه هم نوشتم
<script>
$("#sltMazraee").on('change', function (e) {
if ($("#sltMazraee").prop('selectedIndex') == 0) {
$('#divZirOpration').addClass('hidden');
}
else {
//اگر يک مزرعه انتخاب شده
var getid = $('#sltMazraee').val();
$.ajax({
type: 'post',
url: '@Url.Action("getMazaree", "AbyariSabt")',
data: { id: getid },
success: function (result) {
if (result.status == "success") {
$('#opidHektar').empty();
$('#opidVariteh').empty();
$('#opidSen').empty();
$('#opidNameBlook').empty();
$('#opidNameOffice').empty();
$.each(result.operationList, function (i) {
$('#opidHektar').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname));
$('#opidVariteh').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname1));
$('#opidSen').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname2));
$('#opidNameBlook').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname3));
$('#opidNameOffice').append($("<option></option>")
.val(result.operationList[i].id).html(result.operationList[i].cname4));
});
}
}
});
$('#divZirOpration').removeClass('hidden');
}
});
</script>
ماه و سال هم همینطور
حال چیزی که میخوام چهار فیلد شرط فوق رو داخل یه اسکریپت بزارم و پاس بده به متد
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
370
- پاسخ :
1
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
909
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1281
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4746
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
126
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
72
- پاسخ :
0
|
تاریخ :
1403/05/16
- ساعت :
09:57:00 AM
- بازدید :
363
- پاسخ :
2
|
تاریخ :
1403/06/25
- ساعت :
11:39:00 PM
- بازدید :
469
- پاسخ :
1
|
تاریخ :
1403/06/17
- ساعت :
04:22:00 PM
- بازدید :
401
- پاسخ :
1
|
تاریخ :
1403/06/14
- ساعت :
06:44:00 PM
- بازدید :
498
- پاسخ :
0
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
370
- پاسخ :
1
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
909
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
891
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1281
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4746
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1113
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
564
- پاسخ :
1
|
تاریخ :
1403/07/27
- ساعت :
03:21:00 PM
- بازدید :
126
- پاسخ :
1
|
تاریخ :
1403/07/26
- ساعت :
09:00:00 PM
- بازدید :
72
- پاسخ :
0
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
300
- پاسخ :
1
|