У меня есть форма, содержащая таблицу данных, в которой он что-то вычисляет (некоторые материалы для одного элемента)Есть также кнопка печати, которая сохраняет и распечатывает эту таблицу, содержащую сетку.
Теперь мне нужна кнопка для запуска новой "страницы" с новой сеткой для следующего элемента из того же порядка.
На последней странице мне нужно составить сумму из всех итогов с предыдущих страниц.
Кроме того, мне нужно распечатать страницу для каждой ранее созданной сетки, а последняя страница должна содержать итоги.
Пример. Сумма по одному предмету - 2 блокнота и 1 ручка
Перечисленные страницы должны быть следующими: страница 1 с подробностями для элемента 1, страница 2 с подробностями для элемента 2 и страница 3 с подробностями с последней страницы с итогом.
Любые советы, как мне это сделатьтот?
Код ниже.
public Form1()
{
InitializeComponent();
}
//<----ALGORITM---->
private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
foreach (DataGridViewRow row in dataGridView1.Rows)
{
//<----Bagheta---->
row.Cells[dataGridView1.Columns["Bagheta"].Index].Value = ((Convert.ToDouble(row.Cells[dataGridView1.Columns["Lungime"].Index].Value) + Convert.ToDouble(row.Cells[dataGridView1.Columns["Latime"].Index].Value)) * 2) / 1000;
//<----Silicagel----> de adaptat formula
row.Cells[dataGridView1.Columns["Silicagel"].Index].Value = ((Convert.ToDouble(row.Cells[dataGridView1.Columns["Lungime"].Index].Value) + Convert.ToDouble(row.Cells[dataGridView1.Columns["Latime"].Index].Value)) * 2 * 0.08) / 1000;
//<----Butil----> de adaptat formula
row.Cells[dataGridView1.Columns["Butil"].Index].Value = ((Convert.ToDouble(row.Cells[dataGridView1.Columns["Lungime"].Index].Value) + Convert.ToDouble(row.Cells[dataGridView1.Columns["Latime"].Index].Value)) * 2 * 0.11) / 1000;
//<----Tiocol----> de adaptat formula
row.Cells[dataGridView1.Columns["Tiocol"].Index].Value = ((Convert.ToDouble(row.Cells[dataGridView1.Columns["Lungime"].Index].Value) + Convert.ToDouble(row.Cells[dataGridView1.Columns["Latime"].Index].Value) * 2 * 0.1)) / 1000;
//<----Sticla----> de adaptat formula
row.Cells[dataGridView1.Columns["Sticla"].Index].Value = ((Convert.ToDouble(row.Cells[dataGridView1.Columns["Lungime"].Index].Value) * Convert.ToDouble(row.Cells[dataGridView1.Columns["Latime"].Index].Value)) * 1.15) / 1000;
//<----Corniere----> de adaptat formula
row.Cells[dataGridView1.Columns["Corniere"].Index].Value = 4;
}
}
//<----PRINT SYSTEM---->
private void button1_Click(object sender, EventArgs e)
{
PrintPanel();
}
private void PrintPanel()
{
System.Drawing.Printing.PrintDocument doc = new PrintDocument();
doc.PrintPage += new PrintPageEventHandler(doc_PrintPage);
doc.Print();
}
private void doc_PrintPage(object sender, PrintPageEventArgs e)
{
Bitmap bmp = new Bitmap(panel1.Width, panel1.Height);
float tgtWidthMM = 210; //A4 paper size
float tgtHeightMM = 297;
float tgtWidthInches = tgtWidthMM / 25f; //25.4f
float tgtHeightInches = tgtHeightMM / 25f;
float srcWidthPx = bmp.Width;
float srcHeightPx = bmp.Height;
float dpiX = srcWidthPx / tgtWidthInches;
float dpiY = srcHeightPx / tgtHeightInches;
bmp.SetResolution(dpiX, dpiY);
panel1.DrawToBitmap(bmp, panel1.ClientRectangle);
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
e.Graphics.DrawImage(bmp, 0, 0, tgtWidthMM, tgtHeightMM);
}