Exemplo n.º 1
0
        private void PrintPage(object sender, PrintPageEventArgs ev)
        {
            LP = ControllerRq.AskOneProBylot(LL[ValeurList].NUM_LOT.ToString());
            LC = ControllerRq.AskChaByNoDatPai(LL[ValeurList].NUM_LOT.ToString());
            double   resultat  = 0;
            Metafile pageImage = new
                                 Metafile(m_streams[m_currentPageIndex]);

            // Adjust rectangular area with printer margins.

            Rectangle adjustedRect = new Rectangle(
                ev.PageBounds.Left + (int)ev.PageSettings.HardMarginX,
                ev.PageBounds.Top + (int)ev.PageSettings.HardMarginY,
                ev.PageBounds.Width,
                ev.PageBounds.Height);


            // Draw a white background for the report
            ev.Graphics.FillRectangle(Brushes.White, adjustedRect);

            // Draw the report content
            ev.Graphics.DrawImage(pageImage, adjustedRect);
            Font       drawFont     = new Font("Arial", 10);
            Font       drawFontGras = new Font("Arial", 10, FontStyle.Bold);
            SolidBrush drawBrush    = new SolidBrush(Color.Black);

            // Create point for upper-left corner of drawing.
            PointF drawPointNom     = new PointF(170F, 197F);
            PointF drawPointAdresse = new PointF(170F, 225F);
            PointF drawPointNum     = new PointF(200F, 289F);
            PointF drawPointCha     = new PointF(350F, 550F);

            ev.Graphics.DrawString(LP[0].NOM_PRO, drawFontGras, drawBrush, drawPointNom);
            ev.Graphics.DrawString(LL[ValeurList].ADRESSE, drawFont, drawBrush, drawPointAdresse);
            ev.Graphics.DrawString(LL[ValeurList].NUM_LOT.ToString(), drawFont, drawBrush, drawPointNum);
            float Height  = 550;
            float largeur = 84;

            if (LC.Count() != 0)
            {
                for (int i = 0; i < LC.Count(); i++)
                {
                    PointF drawPointCha1 = new PointF(largeur, Height);
                    PointF drawPointMnt  = new PointF(550, Height);
                    ev.Graphics.DrawString(LC[i].LIB_CHA, drawFont, drawBrush, drawPointCha1);
                    ev.Graphics.DrawString(LC[i].MNT_CHA.ToString(), drawFont, drawBrush, drawPointMnt);
                    Height   += 20;
                    resultat += double.Parse(LC[i].MNT_CHA.Replace('.', ','));
                }
            }
            Height += 30;
            PointF DrawPointTotal = new PointF(largeur, Height);

            ev.Graphics.DrawString("Total à régler", drawFontGras, drawBrush, DrawPointTotal);
            PointF drawPointTotalAR = new PointF(550, Height);

            ev.Graphics.DrawString(resultat.ToString(), drawFontGras, drawBrush, drawPointTotalAR);

            // Prepare for the next page. Make sure we haven't hit the end.
            m_currentPageIndex++;
            ev.HasMorePages = (m_currentPageIndex < m_streams.Count);
            if (ValeurList != LL.Count())
            {
                ValeurList += 1;
            }
            else
            {
                ValeurList = 0;
            }
        }