Multidesk.be » Forums » .Net » [c#] Afdrukken

  • Pagina
  • 1 van 1
0 gasten lezen dit onderwerp.
^ Onderwerp geschreven door suomy op dinsdag 6 oktober 2009 om 22:16:53.
suomy heeft nog geen avatar toegevoegd
Multiviteit: 196
hoi

Het zal misschien noob klinken maar ik zou in geen honderd jaar meer weten hoe ik verder moet om af te drukken. heb al een deel van de code maar nu zou hij nog het afdrukken zelf moeten doen.
Ook het aantal dat er ingegeven wordt zou dan moeten afgedrukt worden.
De standaard afmetingen staan op A4 maar dit zou moeten veranderd worden op een bestandje van 5.7(breedte) en 3.2 cm(hoogte)

Kunnen jullie mij verder helpen? Dit is de code is ik al ontcijferd heb:

CODE
  1.         PrintDocument pDoc;         
  2. int aantal;           
  3. private void btnAfdrukken_Click(object sender, EventArgs e)         
  4. {             
  5.      pDoc = new PrintDocument();
  6.      pDoc.BeginPrint += new PrintEventHandler(pDoc_BeginPrint);
  7.      pDoc.PrintPage += new PrintPageEventHandler(pDoc_PrintPage);         
  8.      aantal = 0;             aantal = Convert.ToInt32(txtAantal.Text);         
  9. }         
  10. void pDoc_BeginPrint(object sender, PrintEventArgs e)         
  11. {   
  12.  
  13. }         
  14. void pDoc_PrintPage(object sender, PrintPageEventArgs e)         
  15. {   
  16.      Bitmap bpm = new Bitmap(Image.FromFile("Pebbles_ticket.jpg"));             
  17.      e.Graphics.PageUnit = GraphicsUnit.Pixel;         
  18.      e.Graphics.DrawImage(bpm,0,0);       
  19.      e.Graphics.DrawString(txtBedrag.Text, new Font("Segoe Print", 20), new SolidBrush(Color.Black), 30, 175);                     
  20. }


Alvast bedankt

groetjes
diego
^ Reactie #1 geschreven door NightCreature op dinsdag 6 oktober 2009 om 22:51:52.
NightCreature's avatar
Multiviteit: 1196
MSc.
aantal = Convert.ToInt32(txtAantal.Text);

Dat kan al een exception veroorzaken dus sowieso een try catch omheen zetten. Vertrouw nooit data die je van een User krijgt.
I need thought completion.
Shaders, een beetje vreemd maar wel lekker (voor de ogen dan he)
2.83Ghz Q9550 HD4850 512MiB 4GiB 1333Mhz DDR3 RAM
http://paulintheuk.blogspot.com
FE Programmer @ Codemasters (Front End)
^ Reactie #2 geschreven door thekid op dinsdag 6 oktober 2009 om 23:10:25.
thekid's avatar
Multiviteit: 5273
Moderator
persoonlijk ga ik zelf eerder te werk met bouwen van een printdocument

public class PrintEtiket : PrintDocument
{
// implementeer klasse dan hier
}

ge kunt dan ook makkelijk alle functies aanpassen
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #3 geschreven door suomy op woensdag 7 oktober 2009 om 13:19:47.
suomy heeft nog geen avatar toegevoegd
Multiviteit: 196
hmm heb nog nooit zo gewerkt heb da anders geleerd op school wat is juist het verschil met op die manier en de mijne?
^ Reactie #4 geschreven door thekid op woensdag 7 oktober 2009 om 14:13:04.
thekid's avatar
Multiviteit: 5273
Moderator
1 van de voordelen van zo te werken is dat je uw document op meerdere plaatsen kunt oproepen, dat het niet zomaar door je formcodering loopt, maar dat het afgezonderd staat in zijn eigen klasse.

Je kan het dus op een OOP manier aanpakken of op een vb.net manier in C# programmeren ;)

daarna kan je uw document simpel afdrukken dmv

using (PrintEtiket pe = new PrintEtiket()) // of eventueel met constructor erbij
{
pe.Print();
}

kan je dan vanaf verschillende plaatsen oproepen, zit je niet met globale declaraties, kan vanaf ieder form in je project opgeroepen worden...

Als ze je het op deze manier is die school eigenlijk fout bezig om een OOP taal aan te leren, no offense naar u of de school toe, hoor :)

Een deftige print functie (zoals een factuur of dergelijke) neemt ook wel wat lijnen codering in beslag waardoor dit soms onoverzichtelijk door uw formcode kan gaan, en tja, er zijn betere manieren, laat ons het zo zeggen :)

'k ga anders eens kijken of ik hier ergens nog een stuk code vind voor dingen af te drukken en dan post ik deze hier wel eventjes...
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
^ Reactie #5 geschreven door suomy op woensdag 7 oktober 2009 om 14:42:54.
suomy heeft nog geen avatar toegevoegd
Multiviteit: 196
mja das feit ons school is daar niet al te sterk in maar er is ook maar 1 form dus eigenlijk is het niet echt heel nodig, de bedoeling is gewoon om prijzen op een labelprinter af te drukken. Maar zal het zeker in gedachten houden voor eventuele latere projecten :)

Terwijl even een update van de status, ik kan al mijn aantal afdrukken bepalen maar de afbeelding die als achtergrond afbeelding moet plaatsen is te groot dus ik denk dat ik gewoon de resolutie iets zal moeten verminderen. Zal je zeker op de hoogte houden.

Bedankt in ieder geval al :)

^ Reactie #6 geschreven door thekid op woensdag 7 oktober 2009 om 17:21:32.
thekid's avatar
Multiviteit: 5273
Moderator
hier een stuk code om een bon af te drukken

't is van een oud programma voor mijn pa, dus valt wel mee om dit vrij te geven

CODE
  1.  
  2.     public class PrintBon : PrintDocument
  3.     {
  4.         struct columnValue
  5.         {
  6.             string value;
  7.             int width;
  8.  
  9.             public string Text { get { return value; } set { this.value = value; } }
  10.             public int Width { get { return width; } }
  11.  
  12.             public columnValue(string inhoud)
  13.             {
  14.                 value = inhoud;
  15.                 width = 100;
  16.             }
  17.  
  18.             public columnValue(string inhoud, int width)
  19.             {
  20.                 value = inhoud;
  21.                 this.width = width;
  22.             }
  23.         }
  24.         bon document = null;
  25.         bool isDone = false, wasSet = false;
  26.         int currentPage = 0, maxPages = -1, currentRow;
  27.  
  28.         public PrintBon(bon mybon)
  29.         {
  30.             document = mybon;
  31.             this.BeginPrint += new PrintEventHandler(PrintBon_BeginPrint);
  32.             this.EndPrint += new PrintEventHandler(PrintBon_EndPrint);
  33.             this.PrintPage += new PrintPageEventHandler(PrintBon_PrintPage);
  34.         }
  35.  
  36.         void drawBox(Graphics e, string tekst, Font fnt, Brush color, ref Rectangle box)
  37.         {
  38.             if (box.Height < fnt.SizeInPoints + 6)
  39.             {
  40.                 box.Height = (int)(fnt.SizeInPoints + 6);
  41.             }
  42.             e.DrawString(tekst, fnt, color, new Rectangle(box.Left + 3, box.Top + 3, box.Width - 6, box.Height - 4));
  43.         }
  44.  
  45.         void drawRelativeBoxDown(Graphics e, string tekst, Font fnt, Brush color, ref Rectangle box)
  46.         {
  47.             drawBox(e, tekst, fnt, color, ref box);
  48.             box.Y += box.Height + 4;
  49.         }
  50.  
  51.         void drawRelativeBoxRight(Graphics e, string tekst, Font fnt, Brush color, ref Rectangle box, int w)
  52.         {
  53.             box.Width = w;
  54.             drawBox(e, tekst, fnt, color, ref box);
  55.             box.X += box.Width;
  56.         }
  57.  
  58.         string documentTitle
  59.         {
  60.             get
  61.             {
  62.                 if (document.GetType().Equals(typeof(factuur)))
  63.                     return "Factuur";
  64.                 if (document.GetType().Equals(typeof(bestelbon)))
  65.                     return "Bestelbon ";
  66.                 if (document.GetType().Equals(typeof(pvkoop)))
  67.                     return "Particulierenverkoop ";
  68.                 if (document.GetType().Equals(typeof(opzichtbon)))
  69.                     return "Opzichtbon ";
  70.                 return "";
  71.             }
  72.         }
  73.  
  74.         string documentTitleShort
  75.         {
  76.             get
  77.             {
  78.                 if (document.GetType().Equals(typeof(factuur)))
  79.                     return "Factuur";
  80.                 if (document.GetType().Equals(typeof(bestelbon)))
  81.                     return "Bestelbon ";
  82.                 if (document.GetType().Equals(typeof(opzichtbon)))
  83.                     return "Opzichtbon ";
  84.                 return "";
  85.             }
  86.         }
  87.  
  88.         void createPage(Graphics g, Rectangle bounds)
  89.         {
  90.             Font standaardFont = new Font("Arial", 8, FontStyle.Regular),
  91.                  titelFont = new Font("Arial", 16, FontStyle.Bold),
  92.                  KlantFont = new Font("Arial", 8, FontStyle.Bold);
  93.             Properties.Settings def = Properties.Settings.Default;
  94.  
  95.             // titel en eigen data
  96.             g.FillRectangle(Brushes.DimGray, new Rectangle(bounds.Left, bounds.Top, bounds.Width, 40));
  97.             Rectangle currentbox = new Rectangle(bounds.Left, bounds.Top + 50, (bounds.Width / 3) * 2, 16);
  98.             g.DrawString(def.Firma, titelFont, Brushes.Black, new Rectangle(bounds.Left + 6, bounds.Top + 6, bounds.Width - 12, 34));
  99.             /*g.DrawString(def.Adres, standaardFont, Brushes.DarkGray, new Rectangle(bounds.Left + 2, bounds.Top + 42, bounds.Width / 2, 14));
  100.             g.DrawString(def.Postcode + " " + def.Gemeente, standaardFont, Brushes.DarkGray, new Rectangle(bounds.Left + 2, bounds.Top + 56, bounds.Width / 2, 14));*/
  101.             drawRelativeBoxDown(g, def.Adres + ", " + def.Postcode + " " + def.Gemeente, standaardFont, Brushes.DarkGray, ref currentbox);
  102.             string Line;
  103.             if (def.Tel != "")
  104.                 Line = "Tel: " + def.Tel + " * ";
  105.             else
  106.                 Line = "";
  107.             if (def.Fax != "")
  108.                 Line += "Fax: " + def.Fax + " * ";
  109.             if (def.Gsm != "")
  110.                 Line += "GSM: " + def.Gsm;
  111.             if (Line.Trim() != "")
  112.                 drawRelativeBoxDown(g, Line, standaardFont, Brushes.DarkGray, ref currentbox);
  113.             if (def.Email != "")
  114.                 Line = "E-mail: " + def.Email + " * ";
  115.             else
  116.                 Line = "";
  117.             if (def.Website != "")
  118.                 Line += "Website: " + def.Website;
  119.             if (Line.Trim() != "")
  120.                 drawRelativeBoxDown(g, Line, standaardFont, Brushes.DarkGray, ref currentbox);
  121.  
  122.             if (def.BTWnr != "")
  123.                 Line = "Ondernemingsnr: " + def.BTWnr + " * ";
  124.             else
  125.                 Line = "";
  126.             if (def.Hrk != "")
  127.                 Line += "Handelsregister: " + def.Hrk;
  128.  
  129.             if (Line.Trim() != "")
  130.                 drawRelativeBoxDown(g, Line, standaardFont, Brushes.DarkGray, ref currentbox);
  131.  
  132.             if (def.Bankinfo != "" && document.GetType().Equals(typeof(factuur)))
  133.                 drawRelativeBoxDown(g, Line, standaardFont, Brushes.DarkGray, ref currentbox);
  134.  
  135.             // Klantgegevens afdrukken (kan via 1 lijn gebeuren)
  136.             klant k = data.db.Getklant(document.klantID);
  137.  
  138.             currentbox = new Rectangle(bounds.Left + ((bounds.Width / 3) * 2) + 10, bounds.Top + 60, bounds.Width / 3 - 20, 18);
  139.             drawRelativeBoxDown(g, k.firma, KlantFont, Brushes.Black, ref currentbox);
  140.             string[] adreslines = k.adres.Split(new string[] { "\r", "\n" }, StringSplitOptions.RemoveEmptyEntries);
  141.             foreach (string adresline in adreslines)
  142.                 drawRelativeBoxDown(g, adresline, KlantFont, Brushes.Black, ref currentbox);
  143.             drawRelativeBoxDown(g, k.postcode + " " + k.gemeente, KlantFont, Brushes.Black, ref currentbox);
  144.             if (k.land != "be" && k.land != "Belgium")
  145.             {
  146.                 drawRelativeBoxDown(g, k.land, KlantFont, Brushes.Black, ref currentbox);
  147.             }
  148.             g.DrawRectangle(Pens.DimGray, new Rectangle(currentbox.Left - 5, 155, currentbox.Width, currentbox.Top - 155));
  149.  
  150.             g.FillRectangle(Brushes.Gray, new Rectangle(bounds.Left + 2, bounds.Top + 175, bounds.Width - 4, 20));
  151.             currentbox = new Rectangle(bounds.Left + 2, bounds.Top + 175, 100, 20);
  152.             drawRelativeBoxRight(g, documentTitleShort + "nr:", standaardFont, Brushes.Black, ref currentbox, (documentTitleShort + "nr:").Length * 8);
  153.             currentbox.Width = (document.boekjaar + "-" + document.opvolging.PadLeft(5, '0')).Length * 8;
  154.             g.FillRectangle(Brushes.WhiteSmoke, currentbox);
  155.             drawRelativeBoxRight(g, document.boekjaar + "-" + document.opvolging.PadLeft(5, '0'), KlantFont, Brushes.Black, ref currentbox, 100);
  156.             drawRelativeBoxRight(g, documentTitleShort + "datum:", standaardFont, Brushes.Black, ref currentbox, (documentTitleShort + "datum:").Length * 8);
  157.             currentbox.Width = document.documentDatum.ToShortDateString().Length * 8;
  158.             g.FillRectangle(Brushes.WhiteSmoke, currentbox);
  159.             drawRelativeBoxRight(g, document.documentDatum.ToShortDateString(), KlantFont, Brushes.Black, ref currentbox, currentbox.Width);
  160.             if (document.GetType().Equals(typeof(factuur)))
  161.             {
  162.                 drawRelativeBoxRight(g, "BTWnr klant:", standaardFont, Brushes.Black, ref currentbox, ("BTWnr klant:").Length * 8);
  163.                 currentbox.Width = k.btwnr.Length * 8;
  164.                 g.FillRectangle(Brushes.WhiteSmoke, currentbox);
  165.                 drawRelativeBoxRight(g, k.btwnr, KlantFont, Brushes.Black, ref currentbox, 200);
  166.             }
  167.  
  168.             g.DrawRectangle(Pens.DimGray, new Rectangle(bounds.Left + 2, bounds.Top + 175, bounds.Width - 4, 20));
  169.  
  170.            if (document.GetType().Equals(typeof(factuur)))
  171.             {
  172.                 int[] colwidth = new int[] { 5, 10, 53, 10, 10 };
  173.                 for (int x = 0, currentLeft = bounds.Left; x < colwidth.Length; x++)
  174.                 {
  175.                     currentLeft += (int)(bounds.Width * colwidth[x] / 100);
  176.                     g.DrawLine(Pens.Silver, new Point(currentLeft, bounds.Top + 200), new Point(currentLeft, bounds.Bottom - 150));
  177.                 }
  178.             }
  179.             else
  180.             {
  181.                 int[] colwidth = new int[] { 5, 12, 10, 41, 10, 10 };
  182.                 for (int x = 0, currentLeft = bounds.Left; x < colwidth.Length; x++)
  183.                 {
  184.                     currentLeft += (int)(bounds.Width * colwidth[x] / 100);
  185.                     g.DrawLine(Pens.Silver, new Point(currentLeft, bounds.Top + 200), new Point(currentLeft, bounds.Bottom - 50));
  186.                 }
  187.             }
  188.  
  189.             // eens omkaderen van de layout
  190.             g.DrawRectangle(Pens.DimGray, bounds);
  191.             if (document.GetType().Equals(typeof(factuur)))
  192.             {
  193.                 // onderkant van pagina opmaken
  194.                 g.DrawLine(Pens.DimGray, new Point(bounds.Left, bounds.Bottom - 150), new Point(bounds.Right, bounds.Bottom - 150));
  195.             }
  196.             else
  197.             {
  198.                 // onderkant van pagina opmaken
  199.                 g.DrawLine(Pens.DimGray, new Point(bounds.Left, bounds.Bottom - 50), new Point(bounds.Right, bounds.Bottom - 50));
  200.             }
  201.             // rechtertotalen
  202.             if (currentPage.Equals(maxPages))
  203.             {
  204.                 Rectangle boundsLabel = new Rectangle(bounds.Right - 205, bounds.Bottom - 45, 100, 20),
  205.                           boundsValue = new Rectangle(bounds.Right - 105, bounds.Bottom - 45, 100, 20);
  206.                 Rectangle boundsLabelGewicht = new Rectangle(bounds.Right - 405, bounds.Bottom - 45, 100, 20),
  207.                           boundsValueGewicht = new Rectangle(bounds.Right - 305, bounds.Bottom - 45, 100, 20);
  208.                 g.FillRectangle(Brushes.LightGray, boundsLabelGewicht);
  209.                 drawRelativeBoxDown(g, "Totaal gewicht", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsLabelGewicht);
  210.                 g.FillRectangle(Brushes.White, boundsValueGewicht);
  211.                 drawRelativeBoxDown(g, string.Format("{0:N2} gr", document.TotaalGewicht), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsValueGewicht);
  212.                 if (document.GetType().Equals(typeof(factuur)))
  213.                 {
  214.                     boundsValue.Y = boundsLabel.Y = bounds.Bottom - 145;
  215.                     g.FillRectangle(Brushes.LightGray, boundsLabel);
  216.                     drawRelativeBoxDown(g, "Totaal excl", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsLabel);
  217.                     g.FillRectangle(Brushes.LightGray, boundsLabel);
  218.                     drawRelativeBoxDown(g, "Totaal btw " + (((factuur)document).BTWProcent * 100) + " %", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsLabel);
  219.                     g.FillRectangle(Brushes.LightGray, boundsLabel);
  220.                     drawRelativeBoxDown(g, "Totaal Inc", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsLabel);
  221.                     g.FillRectangle(Brushes.White, boundsValue);
  222.                     drawRelativeBoxDown(g, string.Format("{0:C}", ((factuur)document).TotaalPrijs), new Font("Arial", 8, FontStyle.Regular), Brushes.Black, ref boundsValue);
  223.                     g.FillRectangle(Brushes.White, boundsValue);
  224.                     drawRelativeBoxDown(g, string.Format("{0:C}", ((factuur)document).TotalVat), new Font("Arial", 8, FontStyle.Regular), Brushes.Black, ref boundsValue);
  225.                     g.FillRectangle(Brushes.White, boundsValue);
  226.                     drawRelativeBoxDown(g, string.Format("{0:C}", ((factuur)document).TotalIncVat), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsValue);
  227.                 }
  228.                 else
  229.                 {
  230.                     g.FillRectangle(Brushes.LightGray, boundsLabel);
  231.                     drawRelativeBoxDown(g, "Totaal", new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsLabel);
  232.                     g.FillRectangle(Brushes.White, boundsValue);
  233.                     drawRelativeBoxDown(g, string.Format("{0:C}", document.TotaalPrijs), new Font("Arial", 8, FontStyle.Bold), Brushes.Black, ref boundsValue);
  234.                 }
  235.             }
  236.             // weergave van documentdatum, paginanr (in geval van factuur -> btwnr klant)
  237.             if (maxPages != 1)
  238.             {
  239.                 g.DrawString("Pagina " + currentPage.ToString() + " van " + maxPages.ToString(), new Font("Arial", 8, FontStyle.Italic), Brushes.DarkGray, new Rectangle(bounds.Left + 5, bounds.Bottom - 17, bounds.Width / 4, 14));
  240.             }
  241.             //MessageBox.Show(((bounds.Height - 250) / 20).ToString() + " maximaal aantal rijen");
  242.         }
  243.  
  244.         void drawLine(Graphics g, Rectangle bounds, columnValue[] rowdata, ref int curY, Font tekstFont)
  245.         {
  246.             double currentleft = (double)bounds.Left;
  247.             int maxlines = 1;
  248.             foreach (columnValue cv in rowdata)
  249.             {
  250.                 double colwidth = (bounds.Width * (double)cv.Width / 100d);
  251.                 string tekst = "";
  252.                 int pos = 0;
  253.                 while (pos < cv.Text.Length - 1)
  254.                 {
  255.                     if (cv.Text.Length > colwidth / 9)
  256.                     {
  257.                         int colX = pos;
  258.                         pos = cv.Text.Substring(colX, (colX + (int)(colwidth / 9) < cv.Text.Length) ? (int)(colwidth / 9) : cv.Text.Length - colX).LastIndexOf(" ");
  259.                         if (pos > 0)
  260.                         {
  261.                             tekst += cv.Text.Substring(colX, pos).Trim() + "\n";
  262.                             pos += colX;
  263.                         }
  264.                         else
  265.                         {
  266.                             tekst += cv.Text.Substring(colX, ((int)(colwidth / 9) + colX < cv.Text.Length) ? (int)(colwidth / 9) : cv.Text.Length - colX).Trim() + "\n";
  267.                             pos = colX + (int)(colwidth / 9);
  268.                         }
  269.                     }
  270.                     else
  271.                     {
  272.                         tekst = cv.Text.Trim() + "\n";
  273.                         pos = cv.Text.Length;
  274.                     }
  275.                 }
  276.                 string[] lines = tekst.Split(new string[] { "\r\n", "\n", "\r" }, StringSplitOptions.RemoveEmptyEntries);
  277.                 for (int y = 0; y < lines.Length; y++)
  278.                 {
  279.                     g.DrawString(lines[y], tekstFont, Brushes.Black, new Rectangle((int)(currentleft), curY + y * 20, (int)colwidth, 20));
  280.                 }
  281.                 currentleft += colwidth;
  282.                 if (maxlines < lines.Length)
  283.                     maxlines = lines.Length;
  284.             }
  285.             curY += 20 * maxlines; // lijntje wat verdiepen
  286.         }
  287.  
  288.         void PrintBon_PrintPage(object sender, PrintPageEventArgs e)
  289.         {
  290.             if (maxPages < 0)
  291.             {
  292.                 // set maxPages
  293.                 int lastGoodRow = 0;
  294.                 for (int x = 0; x < document.Rows.Length; x++)
  295.                 {
  296.                     if (document.Rows[x].isEmptyLine())
  297.                         lastGoodRow = x;
  298.                 }
  299.                 maxPages = (int)(lastGoodRow / 30) + 1;
  300.                 // set currentPage = 0 = start
  301.                 currentPage = 0;
  302.  
  303.                 // currentRow instellen
  304.                 currentRow = 0;
  305.             }
  306.             currentPage++;
  307.             createPage(e.Graphics, e.MarginBounds);
  308.  
  309.             int pageRow = 1;
  310.             for (int x = currentRow, curY = e.MarginBounds.Top + 210; x < document.Rows.Length && curY < e.MarginBounds.Bottom - 150; x++)
  311.             {
  312.                 if (pageRow != 1 || document.Rows[x].isEmptyLine())
  313.                 {
  314.                     double total = document.Rows[x].getTotal;
  315.                     columnValue[] values;
  316.                     if (document.GetType().Equals(typeof(factuur)))
  317.                     {
  318.                         // gridline bestaat vnl uit hoofditems, no extra's
  319.                         values = new columnValue[] { new columnValue(document.Rows[x].aantal, 6),
  320.                                                  new columnValue(document.Rows[x].referentie, 10),
  321.                                                  new columnValue(document.Rows[x].omschrijving, 54),
  322.                                                  new columnValue(document.Rows[x].gewicht, 9),
  323.                                                  new columnValue(document.Rows[x].prijs, 10),
  324.                                                  new columnValue(((total != 0) ? total.ToString() : ""), 10) };
  325.                     }
  326.                     else
  327.                     {
  328.                         // gridline kan ook een datumref bevatten
  329.                         values = new columnValue[] { new columnValue(document.Rows[x].aantal, 8),
  330.                                                  new columnValue("", 10),
  331.                                                  new columnValue(document.Rows[x].referentie, 10),
  332.                                                  new columnValue(document.Rows[x].omschrijving, 40),
  333.                                                  new columnValue(document.Rows[x].gewicht, 10),
  334.                                                  new columnValue(document.Rows[x].prijs, 10),
  335.                                                  new columnValue(((total != 0) ? total.ToString() : ""), 12) };
  336.                         if (document.GetType().Equals(typeof(bestelbon)))
  337.                         {
  338.                             values[1].Text = ((bestellijn)document.Rows[x]).datumRef;
  339.                         }
  340.                         if (document.GetType().Equals(typeof(opzichtbon)))
  341.                         {
  342.                             values[1].Text = ((opzichtlijn)document.Rows[x]).datumRef;
  343.                         }
  344.                         if (document.GetType().Equals(typeof(pvkoop)))
  345.                         {
  346.                             values[1].Text = ((particulierlijn)document.Rows[x]).datumRef;
  347.                         }
  348.                     }
  349.                     drawLine(e.Graphics, e.MarginBounds, values, ref curY, new Font("Arial", 9, FontStyle.Regular));
  350.                     pageRow++;
  351.                 }
  352.                currentRow = x + 1;
  353.             }
  354.             e.HasMorePages = (currentPage < maxPages);
  355.             if (!e.HasMorePages)
  356.             {
  357.                 // vul de totale waarden in
  358.             }
  359.         }
  360.  
  361.         void PrintBon_EndPrint(object sender, PrintEventArgs e)
  362.         {
  363.             isDone = true;
  364.         }
  365.  
  366.         void PrintBon_BeginPrint(object sender, PrintEventArgs e)
  367.         {
  368.             if (!wasSet)
  369.             {
  370.                 using (PrintDialog pd = new PrintDialog())
  371.                 {
  372.                     pd.AllowCurrentPage = false; pd.AllowPrintToFile = false; pd.AllowSelection = false; pd.AllowSomePages = false;
  373.                     if (pd.ShowDialog() == DialogResult.OK)
  374.                     {
  375.                         this.PrinterSettings = pd.PrinterSettings;
  376.                         isDone = false;
  377.                         wasSet = true;
  378.                     }
  379.                     else
  380.                     {
  381.                         e.Cancel = true;
  382.                         isDone = false;
  383.                         wasSet = true;
  384.                     }
  385.                 }
  386.             }
  387.         }
  388.  
  389.         public bool WasPrinted
  390.         {
  391.             get
  392.             {
  393.                 return isDone;
  394.             }
  395.         }
  396.     }
  397.  


enjoy ;-)
"Human beings make life so interesting. Do you know, that in a universe so full of wonders, they have managed to invent boredom." - Death in Hogfather
  • Pagina
  • 1 van 1

Snel-antwoordformulier
Toon uitgebreid antwoordformulier Bericht nalezen Bericht plaatsen