schalk1984 Ответов: 1

Цикл с условием


Привет

Попытка создать какой-то цикл с условием.
что мне нужно, так это когда при добавлении определенного количества текстовых строк он перемещается на новую страницу, а затем продолжает добавлять новые с возможностью делать то же самое каждый раз.

Если пробовали несколько петля 'и 'если, то 'объекту' и 'за', но думать так, как я установил это, возможно, было неправильно.

приведенный ниже код выполняется для каждой строки в datagrid. эта работа.
этот foreach должен работать, скажем, 10 раз, а затем новая страница до 'N'. N не может быть определено, сколько сумма, как база данных всегда будет меняться.

o это способ, который я нашел, работает лучше всего для меня, чтобы напечатать также

спасибо за любую помощь

Что я уже пробовал:

foreach (DataGridViewRow row in dataGridView1.SelectedRows)
                {
                    PartN = row.Cells[0].Value.ToString();
                    SerialN = row.Cells[1].Value.ToString();
                    Descrip = row.Cells[2].Value.ToString();

                    RTBox.SelectionFont = new Font("Courier New", 12);
                    RTBox.AppendText(Descrip);
                    RTBox.SelectionFont = new Font(barcodeName, 26);
                    RTBox.AppendText(Environment.NewLine + PartN);
                    RTBox.SelectionFont = new Font("Courier New", 12);
                    RTBox.AppendText(Environment.NewLine + PartN);
                    RTBox.SelectionFont = new Font("Courier New", 12);
                    if (SerialN == "")
                    {

                    }
                    else
                    {
                        RTBox.AppendText(Environment.NewLine + "S/N: " + SerialN);
                    }

                    RTBox.AppendText(Environment.NewLine + Environment.NewLine);

//RTBox.SelectedRtf = @"{\rtf1 \page}";
                }

1 Ответов

Рейтинг:
0

Richard MacCutchan

Вам просто нужна некоторая переменная, которая определяет количество строк на странице, и та, которая считает строки обработанными.. Затем вы инициализируете счетчик на 0 и подсчитываете каждый раз, когда добавляете строку, что-то вроде:

const int maxLines = 66;
int pageNumber = 0;
int lineNumber = 0;
foreach (item that will be processed)
{
    process(theItem);
    lineNumber += 1;
    if (lineNumer == maxLines)
    {
        pageNumber += 1;

        do end of page processing

        lineNumber = 0;
    }
}


schalk1984

Извините, все еще не уверен, может быть, я не так хорошо понимаю

Richard MacCutchan

Чего ты не понимаешь? Трудно сделать это более ясным.

schalk1984

Привет СРИ,

Кажется,я не могу заставить ваш пример работать. Я только сейчас начал использовать цикл foreach.
мои знания очень малы, когда дело доходит до цикла foreach

Мне было интересно, нельзя ли использовать код, который я дал, как отдельную задачу сам по себе. поэтому, если я выполню эту задачу (3-4 строки каждая ", так как последняя строка не появится, если данные будут нулевыми.
поэтому, используя задачу/метод, мне нужно запустить его 10 раз, чтобы поместиться на одной странице, затем начнется перерыв запуска, и после этого будут запущены следующие 10 задач. все они всегда разные, база данных может иметь всего 50 строк - более 1000 строк.

Richard MacCutchan

Мне очень жаль, но если вы не можете понять простую петлю, подобную приведенной выше, то вам нужно потратить больше времени на изучение. В интернете есть много примеров, которые помогут вам; используйте Google для их поиска или посмотрите документацию MSDN по адресу foreach, in (ссылка на C# )[^].

schalk1984

да, я не отрицаю, что мало знаю о цикле foreach или любом другом цикле, так как на самом деле не работаю с ними.
Я проверил образцы, гугля его и ссылку Еще до того, как начал публиковать здесь. Я не люблю задавать вопросы, если не исследовал их заранее.

Я тоже использовал ваш образец, но, похоже, не могу заставить его работать на меня.

Если вы все еще хотите помочь.
Не могли бы вы объяснить "foreach (item that will be processed)", какой элемент я обрабатываю здесь.

ваш образец немного странный

Richard MacCutchan

Элементы в вашем DataGridView; или любой другой список, который вы хотите обработать. Если вы действительно не понимаете циклов, то вам будет очень трудно попытаться создать какое-либо полезное приложение.