PDA

View Full Version : مبتدی: ایجاد for تو در تو



phpphp7
چهارشنبه 09 اسفند 1396, 00:22 صبح
باسلام و عرض خسته نباشید

http://up.vbiran.ir/uploads/19257151976652810017_photo_2018-02-17_22-15-42%20-%20Co.jpg



میخوام چنین شماره هایی رو با for یا هرچیز دیگه ای در C# ایجاد کنم و تبدیلش کنم به جدول در asp.net MVC

میشه راهنماییم کنید ؟ متشکرم

danialafshari
چهارشنبه 09 اسفند 1396, 01:14 صبح
با سلام
خب مشکلتون توی کدوم قسمتشه
کدی که خودتون نوشتید به چه شکل هست

phpphp7
چهارشنبه 09 اسفند 1396, 09:32 صبح
با سلام
خب مشکلتون توی کدوم قسمتشه
کدی که خودتون نوشتید به چه شکل هست

سلام

مشتری یک برگه A4 داره دقیقا مثل عکس زیر :

http://up.vbiran.ir/uploads/19257151976652810017_photo_2018-02-17_22-15-42%20-%20Co.jpg



من اصلا نمیدونم این بخش رو چطوری به این شکل داینامیک کنم

میخواد این رو داینامیک کنه . هر فرد میتونه چند تا از این برگه داشته باشه

البته من از Foreach استفاده کردم برای داینامیک کردن



@{
foreach (var item in Model)
{

<tr>
<td class="tg-baqh">1-1-1</td>
<td class="tg-baqh">@item.Name</td>
<td class="tg-baqh"></td>

</tr>
}
}




ولی مشکل اینجاست که این عدده رو نمیتونم تولید کنم و یا ایده ای برای کد نویسی ندارم

شماره ها ثابت هست و دقیقا به همین شکل 1-1-1 ، 1-1-2 و ... هست

فقط عنوان ها هست که تغییر خواهد کرد

من الان نمیدونم چطوری این رو داینامیک کنم

جدول های من :

http://s8.picofile.com/file/8320556718/photo_2018_02_28_00_11_25.jpg

phpphp7
چهارشنبه 09 اسفند 1396, 17:24 عصر
سلام
از دوستان کسی نظری نداره ؟

phpphp7
پنج شنبه 10 اسفند 1396, 13:09 عصر
از دوستان ، کسی نظری نداره ؟

mr.sirwan
پنج شنبه 10 اسفند 1396, 15:57 عصر
دوست عزیز این یه حلقه for ساده س، از مفاهیم ابتداییه برنامه نویسیه، هر برنامه نویسی باید بتونه کدی بنویسه که چنین چیزی رو تولید کنه، دقیقا مشکل شما چیه؟؟
برای رهنماییت بگم این چیزی که شما میخوای با 3 تا حلقه for تو در توی ساده قابل انجامه، حالا بقیه ش باخودت

phpphp7
پنج شنبه 10 اسفند 1396, 16:06 عصر
دوست عزیز این یه حلقه for ساده س، از مفاهیم ابتداییه برنامه نویسیه، هر برنامه نویسی باید بتونه کدی بنویسه که چنین چیزی رو تولید کنه، دقیقا مشکل شما چیه؟؟
برای رهنماییت بگم این چیزی که شما میخوای با 3 تا حلقه for تو در توی ساده قابل انجامه، حالا بقیه ش باخودت

سلام
من این رو با for درست کردم خودم


for(int num2 = 1; num2 <= 4; num2++)
{
for(int num1 = 1; num1 <= 3; num1++)

for(int num3 = 1; num3 <= 6; num3++)

{
if(num3%6==1)
Console.WriteLine("\n");

Console.WriteLine(num2 + " " + num1 + " " + num3 );
}
}


من الان نمیتونم توی هر شماره (مثلا 1-1-1) ، داده ها رو نشون بده

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


@{

foreach (var item in Model)
{


<tr>
<td class="tg-baqh">
@item.Number
</td>
<td class="tg-baqh">@item.Name</td>
<td class="tg-baqh"></td>

</tr>

}
}
}

mr.sirwan
جمعه 11 اسفند 1396, 19:34 عصر
این کد رو نوشتم ولی حال ندارم کد رو کامل توضیح بدم، استفاده کن، اینو بگم که چون هر جدول 6 تا سطر داره، تعداد داده های جدول رو نسبت به این عدد 6 واسه جدولا تنظیم میکنی:
@{
int divide = Model.Count / 6;
int mod = Model.Count % 6 == 0 ? 0 : 1;
int tablesCount = divide + mod;

for (int i = 0; i < tablesCount; i++)
{
<table>
int rows = (Model.Count / ((i + 1) * 6)) >= 1 ? 6 : Model.Count % 6;
for (int j = 0; j < rows; j++)
{
<tr>
for (int k = 0; k < 3; k++)
{
<td class="tg-baqh">Model[i * 6 + j].Number</td>
<td class="tg-baqh">Model[i * 6 + j].Name</td>
<td class="tg-baqh"></td>
}
</tr>
}
</table>
}
}

phpphp7
شنبه 12 اسفند 1396, 14:45 عصر
این کد رو نوشتم ولی حال ندارم کد رو کامل توضیح بدم، استفاده کن، اینو بگم که چون هر جدول 6 تا سطر داره، تعداد داده های جدول رو نسبت به این عدد 6 واسه جدولا تنظیم میکنی:
@{
int divide = Model.Count / 6;
int mod = Model.Count % 6 == 0 ? 0 : 1;
int tablesCount = divide + mod;

for (int i = 0; i < tablesCount; i++)
{
<table>
int rows = (Model.Count / ((i + 1) * 6)) >= 1 ? 6 : Model.Count % 6;
for (int j = 0; j < rows; j++)
{
<tr>
for (int k = 0; k < 3; k++)
{
<td class="tg-baqh">Models[i * 6 + j].Number</td>
<td class="tg-baqh">Models[i * 6 + j].Name</td>
<td class="tg-baqh"></td>
}
</tr>
}
</table>
}
}




سلام خیلی متشکرم
کد های شما رو از لحاظ syntax تغییر دادم به کد زیر :


@{
var tblTestList = Model.ToList();
int divide = Model.Count() / 6;
int mod = Model.Count() % 6 == 0 ? 0 : 1;
int tablesCount = divide + mod;

for (int i = 0; i < tablesCount; i++)
{

<table>
@{
int rows = (Model.Count() / ((i + 1) * 6)) >= 1 ? 6 : Model.Count() % 6;
for (int j = 0; j < rows; j++)
{
<tr>
@{
for (int k = 0; k < 3; k++)
{
<td class="tg-baqh">@tblTestList[i * 6 + j].Number</td>
<td class="tg-baqh">@tblTestList[i * 6 + j].Name</td>
<td class="tg-baqh"></td>
}
}
</tr>
}
}


</table>
}
}


فقط مشکل اینجاست که داده ها رو داره تکراری درج میکنه :

http://s8.picofile.com/file/8320810826/aaaa.png

راستی اول یدونه var tblTestList = Model.ToList(); درست کردم و بعدش @tblTestList[i * 6 + j].Number کار کرد . چون در کد شما کار نمی کرد

mr.sirwan
شنبه 12 اسفند 1396, 15:53 عصر
جدولی که شما عکسش رو تو پست اول ضمیمه کرده بودی 9 تا ستون داشت(با احتسابت داده هایی که میخواین توشون درچ کنین)، کد من فقط سه تا ستون رو تولید میکنه، یعنی یه جدول 6 در 3 رو تولید میکنه، میتونی حلقه سوم که سه بار تکرار میشه رو حذف کنی، تا داده تکراری تولید نکنه، ولی اگر میخواین همون 9 تا ستون تولید بشن باید فرمول هارو تغییر بدین

نیازی هم به tblTestList نبود، من توی کدم یه s اضافه نوشتم، شما میتونین به جای این tblTestList از همون Model استفاده کنین بدون s

phpphp7
شنبه 12 اسفند 1396, 17:22 عصر
جدولی که شما عکسش رو تو پست اول ضمیمه کرده بودی 9 تا ستون داشت(با احتسابت داده هایی که میخواین توشون درچ کنین)، کد من فقط سه تا ستون رو تولید میکنه، یعنی یه جدول 6 در 3 رو تولید میکنه، میتونی حلقه سوم که سه بار تکرار میشه رو حذف کنی، تا داده تکراری تولید نکنه، ولی اگر میخواین همون 9 تا ستون تولید بشن باید فرمول هارو تغییر بدین

نیازی هم به tblTestList نبود، من توی کدم یه s اضافه نوشتم، شما میتونین به جای این tblTestList از همون Model استفاده کنین بدون s


سلام
دقیقا منظورتون از 9 ستون چیه ؟ من هرچی به تصویر نگاه کردم 9 تا ستون با داده نشد

من حلقه آخری رو حذف کردم و نتیجه شد :

http://s9.picofile.com/file/8320820168/aaaa.png

یعنی الان داره به صورت سطری نمایش میده

mr.sirwan
شنبه 12 اسفند 1396, 17:46 عصر
سلام
دقیقا منظورتون از 9 ستون چیه ؟ من هرچی به تصویر نگاه کردم 9 تا ستون با داده نشد


مگه شما همچین چیزی مد نظرت نیس؟
147747

الان این جدول چندتا ستون داره؟
و بله کد من این جدول 9 ستونه رو تولید نمیکنه، یه جدول سه ستونه تولید میکنه، برای اینکه جدول 9 ستون داشته باشه باید یه تغییراتی تو فرمول بدی

ویرایش1:

شما درمورد اصل موضوع یکم توضیح بده ببینیم اصلا این قضیه چیه، این اعداد چین؟ باید کاربر خودش این اعداد رو وارد کنه؟ یا نه باید توسط کد نویسی تولید بشن؟ میخوای تو این برگه A4 چی نوشته بشه مربوط به چیه؟ اینجوری نمیشه که