/// <summary> /// method that creates the pdf with pdfsharp /// </summary> /// <param name="order">the order number</param> protected void CreateReport(string order) { string shippingCost = ""; DataTable dtDelivery = new Facade().GetDeliveryInfowithCustomerNameByOrderId(order); string dCustomer = dtDelivery.Rows[0]["customer"].ToString(); string dHouse = dtDelivery.Rows[0]["house"].ToString(); string dPostcode = dtDelivery.Rows[0]["postcode"].ToString(); string dAddress = dtDelivery.Rows[0]["Address"].ToString(); shippingCost = dtDelivery.Rows[0]["shippingcost"].ToString(); string ShippingCostValue = "€" + dtDelivery.Rows[0]["shippingcost"].ToString(); string RemarksValue = dtDelivery.Rows[0]["remarks"].ToString().Trim(); // string DiscountpcValue = dtDelivery.Rows[0]["discountpc"].ToString(); string OrderDateValue = dtDelivery.Rows[0]["orderdate"].ToString(); DataTable dtInvoice = new Facade().GetInvoiceInfowithCustomerNameByOrderId(order); string customer = dtInvoice.Rows[0]["customer"].ToString(); string house = dtInvoice.Rows[0]["house"].ToString(); string postcode = dtInvoice.Rows[0]["postcode"].ToString(); string address = dtInvoice.Rows[0]["address"].ToString(); string today = ""; double xStartColumn = 10; //starting x axis double yStartColumn = 10; //starting y axis double unitColumnGap = 60; // column gap string destination = ConfigurationManager.AppSettings["resources"].ToString() + "pdf\\template.pdf"; PdfSharpPages report = new PdfSharpPages(); PdfPage page = report.document.AddPage(); report.gfx = XGraphics.FromPdfPage(page); report.SetHorizontalPos(report._leftMargin); //initialize the horizontal position report.GetVerticalPos(report._lineGap * 5); //initialize the vertical position report.gfx.DrawString("Order No# " + order, report._normalFontBold, XBrushes.Red, report.GetHorizontalPos(xStartColumn), report.GetVerticalPos(yStartColumn)); report.gfx.DrawString("Order Date: " + OrderDateValue, report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (6.0 * unitColumnGap), report.GetVerticalPos(0)); report.gfx.DrawString("Customer :", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(4 * report._lineGap)); report.gfx.DrawString("Delivery Address :", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (4.5 * unitColumnGap), report.GetVerticalPos(0)); report.gfx.DrawString(customer, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0)); report.gfx.DrawString(dCustomer, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (6 * unitColumnGap), report.GetVerticalPos(0)); report.gfx.DrawString(house, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(report._lineGap)); report.gfx.DrawString(dHouse, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (6 * unitColumnGap), report.GetVerticalPos(0)); report.gfx.DrawString(postcode, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(report._lineGap)); report.gfx.DrawString(dPostcode, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (6 * unitColumnGap), report.GetVerticalPos(0)); report.gfx.DrawString(address, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(report._lineGap)); report.gfx.DrawString(dAddress, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (6 * unitColumnGap), report.GetVerticalPos(0)); //report.gfx.DrawString("Discount(%) :", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(2 * report._lineGap)); //report.gfx.DrawString(DiscountpcValue, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0)); report.gfx.DrawString("Remarks :", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(report._lineGap)); report.gfx.DrawString(RemarksValue, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0)); //contents from database //Adding Discount Amount and VAT Amount DataTable dt = new Facade().GetDiscountAmountandVATAmountByOrderId(order); double grandTotal = 0.00; for (int i = 0; i < dt.Rows.Count; i++) { grandTotal += Double.Parse(dt.Rows[i]["NETPrice"].ToString()); } string TotalValue = "€ " + string.Format("{0:F2}", grandTotal); // Double shipCost = System.Math.Round((double.Parse(shippingCost) * grandTotal) / 100, 2); //ShippingCostValue = "€ " + string.Format("{0:F2}", shipCost); string GrandTotalValue = "€ " + string.Format("{0:F2}", (grandTotal)); DataColumn index; index = new DataColumn(); index.DataType = System.Type.GetType("System.Int32"); index.ColumnName = "index"; dt.Columns.Add(index); for (int i = 0; i < dt.Rows.Count; i++) { DataRow row = dt.Rows[i]; row["index"] = i + 1; } //getting the workspace width (gap between left margin and right margin) unitColumnGap = (page.Width - (2 * (report._rightMargin + xStartColumn))); unitColumnGap /= 15;//dividing total width into 15 columns XPen pen = new XPen(XColors.Black, 1); pen.DashStyle = XDashStyle.Solid; //draw first horizontal line for table double initXLineStart = report.GetHorizontalPos(0); double initYLineStart = report.GetVerticalPos(report._lineGap * 2); // creating the table report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); //adding the column headers report.DrawRightAlign("Serial#", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap)); report.gfx.DrawString("Article", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0)); report.DrawRightAlign("QTY", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (7.5 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("Stock", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (8.5 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("Price(Excl.VAT)", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (10.5 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("Discount", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (12 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("VAT", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (13 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("Net Price", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 4, report.GetVerticalPos(0)); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(report._lineGap), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); int lineCounter = 1;//counts the number of lines that will dynamically assigns int pageCount = 0; foreach (DataRow row in dt.Rows) { //report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(report._lineGap), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); pageCount++; report.DrawRightAlign(row["index"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap * 1)); lineCounter = report.PrintMultipleLine(row["title"].ToString(), report._smallFontBold, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0)); lineCounter += report.PrintMultipleLine(row["author"].ToString(), report._smallFontItalic, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); lineCounter += report.PrintMultipleLine(row["type"].ToString(), report._smallFont, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); report.DrawRightAlign(row["qty"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (7.5 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign(row["stock"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (8.5 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("€ " + row["unitprice"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (10.5 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("€ " + row["discountAmount"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (12 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("€ " + row["vatAmount"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (13 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.DrawRightAlign("€ " + row["NETprice"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos((report._lineGap - 2) * lineCounter), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(0), initXLineStart, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0), report.GetHorizontalPos(0) + unitColumnGap, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (6.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (6.5 * unitColumnGap), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (7.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (7.5 * unitColumnGap), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (8.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (8.5 * unitColumnGap), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (10.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (10.5 * unitColumnGap), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (12 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (12 * unitColumnGap), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (13 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (13 * unitColumnGap), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (15 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (15 * unitColumnGap), initYLineStart); if (pageCount % 12 == 0) { page = report.document.Pages.Add(); report.gfx = XGraphics.FromPdfPage(page); lineCounter = 1; report.SetVerticalPos(110); report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(report._lineGap), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); initYLineStart = 123; } } //report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(0), initXLineStart, initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0), report.GetHorizontalPos(0) + unitColumnGap, initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (6.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (6.5 * unitColumnGap), initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (7.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (7.5 * unitColumnGap), initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (8.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (8.5 * unitColumnGap), initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (10.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (10.5 * unitColumnGap), initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (12 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (12 * unitColumnGap), initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (13 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (13 * unitColumnGap), initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (15 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (15 * unitColumnGap), initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(0) - initLineStart, report.GetHorizontalPos(0), report.GetVerticalPos(0)); report.DrawRightAlign("Sub Total: ", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (13 * unitColumnGap), report.GetVerticalPos(report._lineGap)); report.DrawRightAlign(TotalValue, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 4, report.GetVerticalPos(0)); //report.DrawRightAlign("Shipping Cost: ", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (13 * unitColumnGap), report.GetVerticalPos(report._lineGap)); //report.DrawRightAlign(ShippingCostValue, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 4, report.GetVerticalPos(0)); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (13 * unitColumnGap), report.GetVerticalPos(report._lineGap), report.GetHorizontalPos(0) + (15 * unitColumnGap), report.GetVerticalPos(0)); report.DrawRightAlign("Total Amount: ", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (13 * unitColumnGap), report.GetVerticalPos(report._lineGap)); report.DrawRightAlign(GrandTotalValue, report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 4, report.GetVerticalPos(0)); // Response.Write("<script language = javascript> window.open(\"" + destination + "\",\"\",\"resizable= yes,width=660, height=434,status=no,toolbar=yes,menubar=yes,location=no\" )</script> "); //report.DeleteExistFile(destination); report.SaveFile(destination); //destination = ConfigurationManager.AppSettings["web-resources"].ToString() + "pdf/template.pdf"; // Response.Write("<script language = javascript> window.open(\"" + destination + "\",\"PrintOrder\",\"resizable= yes,width=660, height=434,status=1,toolbar=yes,menubar=yes,location=no\" )</script> "); // string pdfName = ConfigurationManager.AppSettings["web-resources"].ToString() + "pdf/" + btnPreviewPdf.CommandArgument.ToString(); //Response.Write("<script language = javascript> window.open(\"" + pdfName + "\",\"\",\"resizable= yes,width=660, height=434,status=no,toolbar=yes,menubar=yes,location=no\" )</script> "); /* * end of code for pdfsharp */ DownLoadPDF(destination); }
private void GenerateReport(string orderId) { sql = @"select ro.supplyorderid,rol.articlecode,a.title, (case when lower(a.articletype)='b' then 'Book' when lower(a.articletype)='c' then 'CD/DVD' when lower(a.articletype)='s' then 'SheetMusic' end ) as articletype, coalesce(c.firstName,'')||' '||coalesce(c.middleName,'') ||' '||coalesce(c.lastname,'') as author, a.quantity as stock, sol.orderqty as OrderQty,rol.receiveid as ID, to_char(ro.receivedate,'dd-mm-yyyy')as receivedate, rol.receiveqty as PreviousReceive,sol.orderqty- ( select sum(receiveqty) from receiveordersline rol_in where rol_in.articlecode=rol.articlecode and rol_in.receiveid in(select receiveid from receiveorders where supplyorderid=" + orderId + @") group by rol_in.articlecode )as balance from receiveorders ro,receiveordersline rol,supplyordersline sol,article a,composer c where ro.receiveid=rol.receiveid and ro.supplyorderid=sol.supplyorderid and rol.articlecode=sol.articlecode and rol.articlecode=a.articlecode and c.composerid=a.composer and ro.supplyorderid=" + orderId + @"group by ro.supplyorderid,rol.articlecode,a.title,a.articletype,c.firstName,c.middleName,c.lastName,a.quantity,sol.orderqty,rol.receiveqty,rol.receiveid,ro.receivedate"; DataTable dt = dbHandler.GetDataTable(sql); sql = @"select so.supplyorderid ,to_char(so.supplyorderdate,'dd-mm-yyyy') as orderdate,to_char(so. deliverydate,'dd-mm-yyyy') as deldate, ( case when lower(so.receivingstatus)='n'then 'Not Received' when lower(so.receivingstatus)='p'then 'Partial Received' when lower(so.receivingstatus)='f'then 'Full Received' end )as RcvStatus, ( case when lower(so.paymentstatus)='u' then 'Unpaid' when lower(so.paymentstatus)='p' then 'Partial paid' when lower(so.paymentstatus)='f' then 'Full paid' end ) as PayStatus, coalesce(p.firstname||' ','')||coalesce(p.middlename||' ','') || coalesce(p.lastname||' ','') as SupplierName, coalesce(p.housenr||',','')||coalesce(p.address||'','') as supplierAddress1, coalesce(p.postcode||',','')||coalesce(p.residence||'','')as supplierAddress2, (select countryname from country where lower(countrycode)=lower(coalesce(p.country,'NL'))) as supplierCountry, coalesce(so.dhousenr||',','')||coalesce(so.daddress||'','') as deliveryAddress1, coalesce(so.dpostcode||',','')||coalesce(so.dresidence||'','') as deliveryAddress2, (select countryname from country where lower(countrycode)=lower(coalesce(so.dcountry,'NL'))) as deliveryCountry from supplyorders so,publisher p where so.supplierid=p.publisherid and so.supplyorderid=" + orderId; DataTable dtInfo = dbHandler.GetDataTable(sql); string destination = ConfigurationManager.AppSettings["resources"].ToString() + @"pdf\template.pdf"; System.Threading.Thread.CurrentThread.CurrentCulture = new System.Globalization.CultureInfo(cultureName); PdfSharpPages report = new PdfSharpPages(); PdfPage page = new PdfPage(); report.document.AddPage(page); report.gfx = XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Append); double xStartColumn = 10; //starting x axis double yStartColumn = 10; //starting y axis double unitColumnGap = 60; // column gap report.SetHorizontalPos(report._leftMargin); //initialize the horizontal position report.SetVerticalPos(report._lineGap * 5); //initialize the vertical position report.gfx.DrawString("Order # " + dtInfo.Rows[0]["supplyorderid"].ToString(), report._normalFont, XBrushes.Red, report.GetHorizontalPos(xStartColumn), report.GetVerticalPos(yStartColumn)); report.DrawRightAlign("Order Date: " + dtInfo.Rows[0]["orderdate"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (7 * unitColumnGap) + 12, report.GetVerticalPos(0)); report.gfx.DrawString("Delivery Date: " + dtInfo.Rows[0]["deldate"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (5 * unitColumnGap) + 38, report.GetVerticalPos(0) + 15); report.gfx.DrawString("Delivery Status: " + dtInfo.Rows[0]["RcvStatus"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(0) + 15); report.gfx.DrawString("Payment Status :" + dtInfo.Rows[0]["PayStatus"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(0) + 30); report.gfx.DrawString("Supplier: ", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(0) + (4 * report._lineGap)); report.gfx.DrawString(dtInfo.Rows[0]["SupplierName"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + 50, report.GetVerticalPos(0) + (4 * report._lineGap)); report.gfx.DrawString(dtInfo.Rows[0]["supplierAddress1"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 10, report.GetVerticalPos(0) + (5 * report._lineGap)); report.gfx.DrawString(dtInfo.Rows[0]["supplierAddress2"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 10, report.GetVerticalPos(0) + (6 * report._lineGap)); report.gfx.DrawString(dtInfo.Rows[0]["supplierCountry"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 10, report.GetVerticalPos(0) + (7 * report._lineGap) - 20); report.gfx.DrawString("Delivery Address: ", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (5 * unitColumnGap) + 25, report.GetVerticalPos(0) + (3 * report._lineGap)); report.gfx.DrawString(dtInfo.Rows[0]["deliveryAddress1"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (6 * unitColumnGap) + 35, report.GetVerticalPos(0) + (3 * report._lineGap)); report.gfx.DrawString(dtInfo.Rows[0]["deliveryAddress2"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (7 * unitColumnGap) - 25, report.GetVerticalPos(0) + (4 * report._lineGap)); report.gfx.DrawString(dtInfo.Rows[0]["deliveryCountry"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (7 * unitColumnGap) - 25, report.GetVerticalPos(0) + (5 * report._lineGap)); unitColumnGap = (page.Width - (2 * (report._rightMargin + xStartColumn))); unitColumnGap /= 15; //dividing total width into 15 columns XPen pen = new XPen(XColors.Black, 1); pen.DashStyle = XDashStyle.Solid; //XPen pen1 = new XPen(XColors.Black, 1); //pen1.DashStyle = XDashStyle.Solid; double initXLineStart = report.GetHorizontalPos(0); double initYLineStart = report.GetVerticalPos(report._lineGap * 8); // creating the table report.gfx.DrawLine(pen, report.GetHorizontalPos(0) - 20, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); //adding the column headers report.DrawRightAlign("Article Code", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap)); report.gfx.DrawString("Article", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + 40, report.GetVerticalPos(0)); report.DrawRightAlign("Current Stock", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (8 * unitColumnGap), report.GetVerticalPos(0)); report.DrawRightAlign("Order Qty", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (9 * unitColumnGap) + 10, report.GetVerticalPos(0)); report.DrawRightAlign("Receiving Date", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (10 * unitColumnGap) + 40, report.GetVerticalPos(0)); report.DrawRightAlign("Receive Qty", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (14 * unitColumnGap) - 40, report.GetVerticalPos(0)); report.DrawRightAlign("Receiving Balance", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap), report.GetVerticalPos(0)); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) - 20, report.GetVerticalPos(report._lineGap), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); int lineCounter = 1; //Double balance=0.00; for (int i = 0; i < dt.Rows.Count; i++) //foreach (DataRow row in dt.Rows) { if (i == 0) { report.DrawRightAlign(dt.Rows[i]["articlecode"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap)); lineCounter = report.PrintMultipleLine(dt.Rows[i]["title"].ToString(), report._smallFontBold, XBrushes.Black, unitColumnGap * 5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0)); lineCounter += report.PrintMultipleLine(dt.Rows[i]["author"].ToString(), report._smallFontItalic, XBrushes.Black, unitColumnGap * 5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); lineCounter += report.PrintMultipleLine(dt.Rows[i]["articletype"].ToString(), report._smallFont, XBrushes.Black, unitColumnGap * 5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); report.DrawRightAlign(dt.Rows[i]["stock"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (9 * unitColumnGap) - 32, report.GetVerticalPos(0)); report.DrawRightAlign(dt.Rows[i]["orderqty"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (10 * unitColumnGap) - 25, report.GetVerticalPos(0)); report.DrawRightAlign(dt.Rows[i]["balance"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 5, report.GetVerticalPos(0)); } else { if (dt.Rows[i]["articlecode"].ToString().Equals(dt.Rows[i - 1]["articlecode"].ToString())) { report.DrawRightAlign("", report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap)); lineCounter = report.PrintMultipleLine("", report._smallFontBold, XBrushes.Black, unitColumnGap * 5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0)); lineCounter += report.PrintMultipleLine("", report._smallFontItalic, XBrushes.Black, unitColumnGap * 5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); lineCounter += report.PrintMultipleLine("", report._smallFont, XBrushes.Black, unitColumnGap * 5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); report.DrawRightAlign("", report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (9 * unitColumnGap) - 32, report.GetVerticalPos(0)); report.DrawRightAlign("", report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (10 * unitColumnGap) - 25, report.GetVerticalPos(0)); } else { report.gfx.DrawLine(pen, report.GetHorizontalPos(0) - 20, report.GetVerticalPos(report._lineGap * lineCounter), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); report.DrawRightAlign(dt.Rows[i]["articlecode"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap)); lineCounter = report.PrintMultipleLine(dt.Rows[i]["title"].ToString(), report._smallFontBold, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0)); lineCounter += report.PrintMultipleLine(dt.Rows[i]["author"].ToString(), report._smallFontItalic, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); lineCounter += report.PrintMultipleLine(dt.Rows[i]["articletype"].ToString(), report._smallFont, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); report.DrawRightAlign(dt.Rows[i]["stock"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (9 * unitColumnGap) - 32, report.GetVerticalPos(0)); report.DrawRightAlign(dt.Rows[i]["orderqty"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (10 * unitColumnGap) - 25, report.GetVerticalPos(0)); report.DrawRightAlign(dt.Rows[i]["balance"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 5, report.GetVerticalPos(0)); } } report.DrawRightAlign(dt.Rows[i]["receivedate"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (11 * unitColumnGap), report.GetVerticalPos(0)); report.DrawRightAlign(dt.Rows[i]["previousreceive"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (13 * unitColumnGap) - 10, report.GetVerticalPos(0)); if (i == dt.Rows.Count - 1) { report.gfx.DrawLine(pen, report.GetHorizontalPos(0) - 20, report.GetVerticalPos((report._lineGap - 2) * lineCounter), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); } } report.gfx.DrawLine(pen, report.GetHorizontalPos(0) - 20, report.GetVerticalPos(0), report.GetHorizontalPos(0) - 20, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0), report.GetHorizontalPos(0) + unitColumnGap, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (6 * unitColumnGap) + 12, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (6 * unitColumnGap) + 12, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (9 * unitColumnGap) - 28, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (9 * unitColumnGap) - 28, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (10 * unitColumnGap) - 18, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (10 * unitColumnGap) - 18, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (11 * unitColumnGap) + 8, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (11 * unitColumnGap) + 8, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (12 * unitColumnGap) + 28, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (12 * unitColumnGap) + 28, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (15 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (15 * unitColumnGap), initYLineStart); report.SaveFile(destination); DownLoadPDF(destination); }
/* * This function will generate report * Author:Shahriar * Date:15-7-07 */ private void ReportGenerator(PdfSharpPages report, string destination, DataTable dtBody, DataTable dtHead, string invoiceId) { Double totalShippingCost = 0.00; Double totalDiscount = 0.00; Double totalVat = 0.00; Double subTotal = 0.00; Double netPrice = 0.00; for (int i = 0; i < dtBody.Rows.Count; i++) { subTotal += Double.Parse(dtBody.Rows[i]["unitprice"].ToString()) * Double.Parse(dtBody.Rows[i]["quantity"].ToString()); totalDiscount += ((Double.Parse(dtBody.Rows[i]["unitprice"].ToString()) * Double.Parse(dtBody.Rows[i]["quantity"].ToString())) * Double.Parse(dtBody.Rows[i]["discountpc"].ToString())) / 100; totalVat += ((Double.Parse(dtBody.Rows[i]["unitprice"].ToString()) * Double.Parse(dtBody.Rows[i]["quantity"].ToString())) * Double.Parse(dtBody.Rows[i]["vatpc"].ToString())) / 100; } string sql = "select sum(o.shippingcost) as total from orders o" + " where o.orderid in(select orderid from invoiceline where invoiceid='" + invoiceId + "')"; DataTable dtShipCost = dbHandler.GetDataTable(sql); totalShippingCost = Double.Parse(dtShipCost.Rows[0]["total"].ToString()); netPrice = subTotal - totalDiscount + totalVat + totalShippingCost; PdfPage page = new PdfPage(); report.document.AddPage(page); report.gfx = XGraphics.FromPdfPage(page, XGraphicsPdfPageOptions.Append); double xStartColumn = 5; //starting x axis double yStartColumn = 5; //starting y axis double unitColumnGap = 50; // column gap report.SetHorizontalPos(report._leftMargin); //initialize the horizontal position report.SetVerticalPos(report._lineGap * 2); //initialize the vertical position report.gfx.DrawString("Invoice # " + invoiceId, report._normalFontBold, XBrushes.Red, report.GetHorizontalPos(xStartColumn), report.GetVerticalPos(yStartColumn)); report.DrawRightAlign("Invoice Date: " + dtHead.Rows[0]["invoicedate"].ToString(), report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + ((9 * unitColumnGap)), report.GetVerticalPos(0)); report.gfx.DrawString("Customer :", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(4 * report._lineGap)); report.gfx.DrawString(dtHead.Rows[0]["customer"].ToString().Trim(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0)); report.gfx.DrawString("Status:", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 10), report.GetVerticalPos(0)); report.gfx.DrawString(dtHead.Rows[0]["status"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 50), report.GetVerticalPos(0)); report.gfx.DrawString("Customer BTW#:", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(2 * report._lineGap)); report.gfx.DrawString(dtHead.Rows[0]["customerbtwnr"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0)); report.gfx.DrawString("Total Shipping Cost:", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 10), report.GetVerticalPos(0)); report.gfx.DrawString("€ " + string.Format("{0:F2}", totalShippingCost), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 100), report.GetVerticalPos(0)); report.gfx.DrawString("Invoice Address:", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0), report.GetVerticalPos(2 * report._lineGap)); report.gfx.DrawString(dtHead.Rows[0]["housenr"].ToString() + "," + dtHead.Rows[0]["address"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (20 + unitColumnGap), report.GetVerticalPos(0)); report.gfx.DrawString("Total Discount:", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 10), report.GetVerticalPos(0)); report.gfx.DrawString("€ " + string.Format("{0:F2}", totalDiscount), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 100), report.GetVerticalPos(0)); report.gfx.DrawString(dtHead.Rows[0]["postcode"].ToString() + "," + dtHead.Rows[0]["residence"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (20 + unitColumnGap), report.GetVerticalPos(1 * report._lineGap)); report.gfx.DrawString(dtHead.Rows[0]["country"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (20 + unitColumnGap), report.GetVerticalPos(1 * report._lineGap)); //report.gfx.DrawString("", report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (20 + unitColumnGap), report.GetVerticalPos(1 * report._lineGap)); report.gfx.DrawString("Total VAT:", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 10), report.GetVerticalPos(1 * report._lineGap) - 20); report.gfx.DrawString("€ " + string.Format("{0:F2}", totalVat), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 100), report.GetVerticalPos(0) - 20); //report.gfx.DrawString(dtHead.Rows[0]["residence"].ToString() + ",", report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (20 + unitColumnGap), report.GetVerticalPos(1 * report._lineGap)); report.gfx.DrawString("Net Price:", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 10), report.GetVerticalPos(1 * report._lineGap) - 20); report.gfx.DrawString("€ " + string.Format("{0:F2}", netPrice), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + ((7 * unitColumnGap) + 100), report.GetVerticalPos(0) - 20); unitColumnGap = (page.Width - (2 * (report._rightMargin + xStartColumn))); unitColumnGap /= 15; //dividing total width into 15 columns XPen pen = new XPen(XColors.Black, 1); pen.DashStyle = XDashStyle.Solid; double initXLineStart = report.GetHorizontalPos(0); double initYLineStart = report.GetVerticalPos(report._lineGap); // creating the table report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); //adding the column headers report.DrawRightAlign("Order#", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap)); report.gfx.DrawString("Article", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0)); report.DrawRightAlign("Unit Price", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (9 * unitColumnGap), report.GetVerticalPos(0)); report.DrawRightAlign("Quantity", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (10 * unitColumnGap) + 10, report.GetVerticalPos(0)); report.DrawRightAlign("VAT(%)", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (11 * unitColumnGap) + 10, report.GetVerticalPos(0)); report.DrawRightAlign("Discount(%)", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (12 * unitColumnGap) + 30, report.GetVerticalPos(0)); report.DrawRightAlign("Shipping Cost", report._smallFontBold, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 5, report.GetVerticalPos(0)); report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(report._lineGap), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); int lineCounter = 1; foreach (DataRow row in dtBody.Rows) { report.DrawRightAlign(row["orderid"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + unitColumnGap - 4, report.GetVerticalPos(report._lineGap)); lineCounter = report.PrintMultipleLine(row["title"].ToString(), report._smallFontBold, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0)); lineCounter += report.PrintMultipleLine(row["Composer"].ToString(), report._smallFontItalic, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); lineCounter += report.PrintMultipleLine(row["ArticleType"].ToString(), report._smallFont, XBrushes.Black, unitColumnGap * 5.5, report.GetHorizontalPos(0) + unitColumnGap + 4, report.GetVerticalPos(0) + (report._lineGap * lineCounter)); report.DrawRightAlign("€ " + row["unitprice"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (9 * unitColumnGap), report.GetVerticalPos(0)); report.DrawRightAlign(row["quantity"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (10 * unitColumnGap), report.GetVerticalPos(0)); report.DrawRightAlign(row["vatpc"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (11 * unitColumnGap), report.GetVerticalPos(0)); report.DrawRightAlign(row["discountpc"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (12 * unitColumnGap) + 30, report.GetVerticalPos(0)); report.DrawRightAlign("€ " + row["shippingcost"].ToString(), report._smallFont, XBrushes.Black, report.GetHorizontalPos(0) + (15 * unitColumnGap) - 5, report.GetVerticalPos(0)); report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(report._lineGap * lineCounter), report.GetHorizontalPos(0) + (page.Width - (2 * (report._rightMargin + xStartColumn))), report.GetVerticalPos(0)); } //report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(0)+unitColumnGap, initXLineStart, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0), report.GetVerticalPos(0), report.GetHorizontalPos(0), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + unitColumnGap, report.GetVerticalPos(0), report.GetHorizontalPos(0) + unitColumnGap, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (7.5 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (7.5 * unitColumnGap), initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (9 * unitColumnGap) + 4, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (9 * unitColumnGap) + 4, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (10 * unitColumnGap) + 14, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (10 * unitColumnGap) + 14, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (11 * unitColumnGap) + 15, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (11 * unitColumnGap) + 15, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (12 * unitColumnGap) + 35, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (12 * unitColumnGap) + 35, initYLineStart); //report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (14 * unitColumnGap) + 10, report.GetVerticalPos(0), report.GetHorizontalPos(0) + (14 * unitColumnGap) + 10, initYLineStart); report.gfx.DrawLine(pen, report.GetHorizontalPos(0) + (15 * unitColumnGap), report.GetVerticalPos(0), report.GetHorizontalPos(0) + (15 * unitColumnGap), initYLineStart); }