Advertisement
javitolin

C# Multiple Page Report

Feb 12th, 2015
357
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 2.47 KB | None | 0 0
  1. using System;
  2.  
  3. using System.Collections.Generic;
  4.  
  5. using System.ComponentModel;
  6.  
  7. using System.Data;
  8.  
  9. using System.Drawing;
  10.  
  11. using System.Linq;
  12.  
  13. using System.Text;
  14.  
  15. using System.Windows.Forms;
  16.  
  17.  
  18.  
  19. namespace WindowsFormsApplication8
  20.  
  21. {
  22.  
  23.     public partial class Form1 : Form
  24.  
  25.     {
  26.  
  27.         int[] numbers = new int[100];
  28.  
  29.         int currNumber = 0; //המשתנה הזה יספור באופן כללי את השורה הנוכחית
  30.  
  31.         int maxPerPage = 20;//משתנה זה מייצג את מספר האיברים שיהיו בכל דף
  32.  
  33.         int currPage = 0; //משתנה זה רק בשביל להראות בהדפסה באיזה עמוד אנחנו נמצאים, הוא לא הכרחי.
  34.  
  35.         public Form1()
  36.  
  37.         {
  38.  
  39.             InitializeComponent();
  40.  
  41.         }
  42.  
  43.  
  44.  
  45.         private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
  46.  
  47.         {
  48.  
  49.             Graphics G = e.Graphics;
  50.  
  51.             Font messageFont = new Font("Arial", 18, System.Drawing.GraphicsUnit.Point);
  52.  
  53.             G.PageUnit = GraphicsUnit.Millimeter;
  54.  
  55.             String Message = "דוח משתמשים";
  56.  
  57.             StringFormat format = new StringFormat(StringFormatFlags.DirectionRightToLeft);
  58.  
  59.             G.DrawString(Message, messageFont, Brushes.Blue, 120, 25, format);
  60.  
  61.             int row = 40;
  62.  
  63.             int i = 0; //משתנה זה יספור את האינדקס לדף הנוכחי
  64.  
  65.             while(i < maxPerPage && currNumber < numbers.Count()){
  66.  
  67.                 row += 10;
  68.  
  69.                 G.DrawString("number: " + numbers[currNumber], messageFont, Brushes.Blue, 160, row, format);
  70.  
  71.                 G.DrawString("page: " + currPage, messageFont, Brushes.Blue, 100, row, format);
  72.  
  73.                 i++;
  74.  
  75.                 currNumber++;
  76.  
  77.             }
  78.  
  79.             if (currNumber < numbers.Count())
  80.  
  81.             {
  82.  
  83.                 currPage++;
  84.  
  85.                 e.HasMorePages = true;
  86.  
  87.                 return;
  88.  
  89.             }
  90.  
  91.             else
  92.  
  93.             {
  94.         currNumber = 0;
  95.         currPage = 0;
  96.                 e.HasMorePages = false;
  97.  
  98.             }
  99.  
  100.         }
  101.  
  102.  
  103.  
  104.         private void Form1_Load(object sender, EventArgs e)
  105.  
  106.         {
  107.  
  108.             for (int i = 0; i < numbers.Count(); i++) numbers[i] = i;
  109.  
  110.         }
  111.  
  112.  
  113.  
  114.         private void button1_Click(object sender, EventArgs e)
  115.  
  116.         {
  117.  
  118.             printPreviewDialog1.ShowDialog();
  119.  
  120.         }
  121.  
  122.     }
  123.  
  124. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement