} //dg_ReportTrade_CellMouseClick() public static void dg_ReportTradeMenuItem_Click(object sender, MouseEventArgs e) { // // Purpose: A generic menu click event for the Order Right-Click // // Local Variables ToolStripMenuItem ts_From = (ToolStripMenuItem)sender; TradeMenuStruct myTradeStr = (TradeMenuStruct)ts_From.Tag; String Tradeid = myTradeStr.TradeID; String NewSide = myTradeStr.NewSide; ReportTrade myForm = myTradeStr.myParentForm; String mySql; // Alter the Trade Record mySql = "Update Trade Set Side = '" + NewSide + "' Where TradeID = " + Tradeid; int myRows = SystemLibrary.SQLExecute(mySql); mySql = "Update Fills Set Side = '" + NewSide + "' Where OrderRefID = (Select OrderRefID from Fills_Allocation Where TradeID = " + Tradeid + ") "; myRows = SystemLibrary.SQLExecute(mySql); mySql = "Update Orders Set Side = '" + NewSide + "' Where OrderRefID = (Select OrderRefID from Fills_Allocation Where TradeID = " + Tradeid + ") "; myRows = SystemLibrary.SQLExecute(mySql); myForm.LoadTrades(); } //dg_ReportTradeMenuItem_Click()
} //dg_ReportTrade_MouseClick() private void dg_ReportTrade_CellMouseClick(object sender, DataGridViewCellMouseEventArgs e) { // Show the popup menu try { /* * WARNING: This block does not deal with Stock Location rebuild, so have restricted access to the developer. * It was temporarily added 26-Feb-2014 to help a new client who was working in EMSX only for Orders, * and thus missing whether an order direction was Long or Short. */ if (e.Button == MouseButtons.Right && e.RowIndex > -1 && e.ColumnIndex > -1 && SystemLibrary.GetUserName() == "Colin Ritchie") { Point myLocation = new Point(this.Location.X + CXLocation, this.Location.Y + CYLocation); ContextMenuStrip myMenu = new ContextMenuStrip(); ToolStripMenuItem mySubMenu = new ToolStripMenuItem(); String TradeID = SystemLibrary.ToString(dg_ReportTrade.Rows[e.RowIndex].Cells["TradeID"].Value); String Side = SystemLibrary.ToString(dg_ReportTrade.Rows[e.RowIndex].Cells["Side"].Value); String NewSide = Side; // Swap between Short & Long Order Menu String MenuText = ""; switch (Side) { case "B": MenuText = "Swap from 'Buy' to 'Buy to Cover'"; NewSide = "BS"; break; case "BS": MenuText = "Swap from 'Buy to Cover' to 'Buy'"; NewSide = "B"; break; case "S": MenuText = "Swap from 'Sell' to 'Sell Short'"; NewSide = "SS"; break; case "SS": MenuText = "Swap from 'Sell Short' to 'Sell'"; NewSide = "S"; break; default: Console.WriteLine("Programmer issue: dg_Orders_CellMouseClick(Unknown Side='" + Side + "'"); MenuText = ""; break; } if (MenuText.Length > 0) { TradeMenuStruct myTradeStr = new TradeMenuStruct(); myTradeStr.TradeID = TradeID; myTradeStr.NewSide = NewSide; myTradeStr.myParentForm = this; mySubMenu = new ToolStripMenuItem(MenuText); myTradeStr.Instruction = "Swap Trade"; mySubMenu.Tag = myTradeStr; mySubMenu.MouseUp += new MouseEventHandler(dg_ReportTradeMenuItem_Click); myMenu.Items.Add(mySubMenu); } // Show the Menu myMenu.Show(myLocation); } } catch { } } //dg_ReportTrade_CellMouseClick()