Как распечатать лабораторный отчет?
int y = 365; for (int i = NumberofItemsperpagesofar; i < dataGridView1.Rows.Count; i++) { NumberofItemsperpage++; if (NumberofItemsperpage <= 10) { NumberofItemsperpagesofar++; if (NumberofItemsperpagesofar <= dataGridView1.Rows.Count) { Pen m = new Pen(Brushes.Black, 2.5f); // e.Graphics.DrawString(dataGridView1.Rows[i].Cells[0].Value.ToString(), new Font("Microsoft Sans Serif", 16, FontStyle.Regular), Brushes.Black, new Point(15, y - 4)); try { if (dataGridView1.Rows[i].Cells[0].Value == dataGridView1.Rows[i].Cells[0].Value) { e.Graphics.DrawString(dataGridView1.Rows[0].Cells[0].Value.ToString(), new Font("Times New Roman", 18, FontStyle.Bold), Brushes.Black, new Point(10, 355)); // e.Graphics.DrawLine(q, new Point(0, y + 24), new Point(1000, y + 24)); e.Graphics.DrawString(dataGridView1.Rows[i].Cells[1].Value.ToString(), new Font("Calibri", 15, FontStyle.Bold), Brushes.Black, new Point(7, y+ 17)); e.Graphics.DrawString(dataGridView1.Rows[i].Cells[4].Value.ToString(), new Font("Calibri", 16, FontStyle.Bold), Brushes.Black, new Point(310, y +17)); e.Graphics.DrawString(dataGridView1.Rows[i].Cells[3].Value.ToString(), new Font("Calibri", 16, FontStyle.Bold), Brushes.Black, new Point(545, y +17)); e.Graphics.DrawString(dataGridView1.Rows[i].Cells[2].Value.ToString(), new Font("Calibri", 16, FontStyle.Bold), Brushes.Black, new Point(690, y +17)); } else if (dataGridView1.Rows[i].Cells[0].Value != dataGridView1.Rows[i].Cells[0].Value) { e.Graphics.DrawString(dataGridView1.Rows[0].Cells[0].Value.ToString(), new Font("Times New Roman", 18, FontStyle.Bold), Brushes.Black, new Point(10, y+25)); } } catch (Exception ex) { MessageBox.Show(ex.Message); } y += 30; } else { e.HasMorePages = false; } } else { NumberofItemsperpage = 0; e.HasMorePages = true; return; } }
Что я уже пробовал:
я хочу напечатать значение ячейки[0] один раз и все остальные ячейки каждый раз, и когда значение ячейки[0] изменится, а затем напечатать снова, пожалуйста, помогите мне решить эту проблему
ZurdoDev
Затем напишите код, чтобы делать то, что вы хотите. Где ты застрял?
Michael_Davies
Ваш код не имеет смысла, вы проверяете значение ячейки[0], чтобы оно было равно самому себе, оно всегда будет таким. Затем вы проверяете ячейку[0], не равную самой себе, на else, которая, поскольку она является else для противоположного условия, не требуется, плюс она никогда не будет выполняться, так как ячейка[0] всегда равна ячейке[0].
Этот код выглядит как часть процедуры печати, обычно существует другой код, который вызовет эту процедуру, в этом коде вам нужно сохранить значение ячейки[0] и сравнить с этим значением, когда есть разница, ячейка[0] изменилась, затем сохранить новое значение ячейки[0] и выполнить печать.