Exemplo n.º 1
0
    /// <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);
    }
Exemplo n.º 2
0
    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);
    }
Exemplo n.º 3
0
    /*
     * 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);
    }