Problema ao pular de página no PrintDocument, C#
Olá pessoal, bom dia, boa tarde ou boa noite.
Bom, estou trabalhando em um relatório de etiquetas com C# e printDocument, o limite de registros por página são de 60 registros. O problema é que não esta passando para outra página quando o valor do contador da etiquetas for igual a 60.
Info:
O relatório possui o padrão de 10 etiquetas X 6 colunas;
seguem o código abaixa:
private void printDocument_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
{
//Definindo a fonte para o código de barras
Font BarcodeFont = new Font("Free 3 of 9", 18, FontStyle.Regular);
//Definindo a fonte para o número do código de barras
Font NumberFont = new Font("Arial", 8);
//Pego a fonte atual
Font thisFont = this.Font;
SolidBrush myBrush = new SolidBrush(Color.Black);
e.Graphics.PageUnit = GraphicsUnit.Millimeter;
float x = 7.3f; //definindo o comprimento da etiqueta
float y = 15.7f; // definindo a altura da etiqueta
// uma variável onde vai ser meu contador, quando possuir o valor de 10, passa a imprimir
// os registros na próxima coluna
Int32 Count = 0;
Int32 CountEtiqueta = 0; //Contador de Etiquetas
//Percorro minha lista de Objetos contento as informações da etiqueta
for (Int32 i = 0; i <= this.OBJEtiqueta.LISTEtiqueta.Count; i++)
{
if (i != this.OBJEtiqueta.LISTEtiqueta.Count)
{
//imprime os barras
e.Graphics.DrawString("*" + this.OBJEtiqueta.LISTEtiqueta[i].CODETIQUETA + "*", BarcodeFont, Brushes.Black, x, y + 3, new StringFormat());
//imprime o código da barra
e.Graphics.DrawString(this.OBJEtiqueta.LISTEtiqueta[i].CODETIQUETA, NumberFont, Brushes.Black, x + 5, y + 9, new StringFormat());
//soma + 25.4f cm vericalmente
y += 25.4f;
Count++; // alimenta o contador
CountEtiqueta++; // alimenta o contador de etiquetas
// a cada 10 linhas adicicone uma coluna
if (Count == 10)
{
x += 33.5f; //adicione 33.5fcm na posicao horiz.
y = 15.7f; //volta para o topo da pagina
Count = 0; // contador de linhas volta a ser zero
}
if (CountEtiqueta == 60) //se o valor do contador de etiquetas for 60
{
e.HasMorePages = true; //Adiciona uma página
CountEtiqueta = 0; // Contador de etiquetas volta a ser zero
}
else // senão
{
e.HasMorePages = false; //Não adiciona página
}
}
}
}
Agradeço desde já.
Discussão (1)
Carregando comentários...