Ejemplo n.º 1
0
        private void printDocument1_PrintPage(object sender, System.Drawing.Printing.PrintPageEventArgs e)
        {
            var counter    = printerTable.Rows[printCounter]["ClientAcct"].ToString().Split(',').ToList();
            var newCounter = new List <string>();

            foreach (string str in counter)
            {
                newCounter.Add(str.Trim());
            }



            FindExistingTrades finder = new FindExistingTrades(printerTable.Rows[printCounter]["Symbol"].ToString(), printerTable.Rows[printCounter]["Side"].ToString(), Convert.ToInt32(printerTable.Rows[printCounter]["Quantity"]), Convert.ToDecimal(printerTable.Rows[printCounter]["Avg_Price"]), "", 1);

            float point      = 257;
            var   brush      = Brushes.Black;
            var   background = Color.FromArgb(180, 150, 40, 27);
            var   _regFont   = new Font("Courier New", 10, FontStyle.Regular);
            var   _boldFont  = new Font("Courier New", 16, FontStyle.Bold);

            //TRADE DATA
            var issuer       = finder.getIssuer();
            var settlement   = finder.GetSettlementDate();
            var symbol       = finder.GetPwatchTicker();
            var currency     = finder.GetCurrency();
            var commission   = Convert.ToDecimal(printerTable.Rows[printCounter]["Commission"]);
            var titlePrice   = Convert.ToDecimal(printerTable.Rows[printCounter]["Avg_Price"]);
            var securityName = finder.GetSecurityName();



            var image = new Bitmap(600, 30);

            e.Graphics.FillRectangle(Brushes.LightGray, new Rectangle(60, 237, 650, 20));

            e.Graphics.DrawRectangle(Pens.Black, 60, 237, 150, 20);
            e.Graphics.DrawRectangle(Pens.Black, 210, 237, 220, 20);
            e.Graphics.DrawRectangle(Pens.Black, 430, 237, 160, 20);
            e.Graphics.DrawRectangle(Pens.Black, 590, 237, 120, 20);
            e.Graphics.DrawString("Portfolio Manager", _regFont, Brushes.Black, 60, 240);
            e.Graphics.DrawString("Portfolio", _regFont, Brushes.Black, 220, 240);
            e.Graphics.DrawString("Action", _regFont, Brushes.Black, 440, 240);
            e.Graphics.DrawString("Shares", _regFont, Brushes.Black, 600, 240);



            e.Graphics.DrawString("[Trade Ticket " + DateTime.Today.ToString("MMMM dd, yyyy") + "] - [" + printerTable.Rows[printCounter]["Side"].ToString() + "] Shares of " + symbol + " @ System Price Of " + titlePrice.ToString("C4") + "]" + Environment.NewLine + Environment.NewLine + "Printed On: " + DateTime.Now + "  |  By: " + Environment.UserName + "  |  Settlement Date: " + settlement + Environment.NewLine + Environment.NewLine + "- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -" + Environment.NewLine + "Security: " + securityName + " [" + symbol + "] " + Environment.NewLine + "System Broker: Instinet |  System Commission: " + (commission / 100).ToString("C4") + " " + currency + " Per Share" + Environment.NewLine + Environment.NewLine + Environment.NewLine + " Manual Price: ____________" + "     Manual Broker: _____________________" + "     Manual Commission: ________", new Font("Tahoma", 10, FontStyle.Bold, GraphicsUnit.Point), Brushes.Black, 20, 50);



            if (printerTable.Rows[printCounter]["Side"].ToString().Contains("BUY"))
            {
                brush      = Brushes.Green;
                background = Color.FromArgb(80, 0, 102, 0);
            }
            else
            {
                brush = Brushes.Red; background = Color.FromArgb(80, 255, 40, 40);
            }



            foreach (string str in newCounter)
            {
                FindExistingTrades finder2 = new FindExistingTrades(printerTable.Rows[printCounter]["Symbol"].ToString(), printerTable.Rows[printCounter]["Side"].ToString(), Convert.ToInt32(printerTable.Rows[printCounter]["Quantity"]), Convert.ToDecimal(printerTable.Rows[printCounter]["Avg_Price"]), str, 1);
                var _shares = finder2.GetShares();
                e.Graphics.DrawRectangle(Pens.Black, 60, point, 150, 20);
                e.Graphics.DrawRectangle(Pens.Black, 210, point, 220, 20);
                e.Graphics.DrawRectangle(Pens.Black, 430, point, 160, 20);
                e.Graphics.DrawRectangle(Pens.Black, 590, point, 120, 20);
                e.Graphics.DrawString(issuer, new Font("Courier New", 10), Brushes.Black, 60, point + 2);
                e.Graphics.DrawString(str, new Font("Courier New", 10), brush, 220, point + 2);
                e.Graphics.DrawString(printerTable.Rows[printCounter]["Side"].ToString(), new Font("Courier New", 10), brush, 440, point + 2);
                e.Graphics.DrawString((_shares.ToString("N0")), new Font("Courier New", 10), brush, 600, point + 2);
                point = Convert.ToInt32(point + 20);
            }


            if (printCounter < printerTable.Rows.Count - 1)
            {
                e.HasMorePages = true;
                printCounter++;
            }
            else
            {
                printCounter = 0;
                printerTable.Dispose();
                e.HasMorePages = false;
            }
        }