Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Michael.Dev

Problema ao pular de página no PrintDocument, C#

Recommended Posts

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á.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.