// created on 12/5/2005 at 4:22 PM using System; using System.Data; using Gtk; using Glade; using Gdk; using MySql.Data; using MySql.Data.MySqlClient; using Mono.Data; using Expector; public class cl_leads { [Glade.Widget] Gtk.Window wdw_leads; [Glade.Widget] Gtk.TreeView tv_leads; [Glade.Widget] Gtk.Entry te_search; Gtk.TreeModelFilter filter; public cl_leads () { Glade.XML gxml = new Glade.XML (null, "gui.glade", "wdw_leads", null); gxml.Autoconnect (this); Gtk.TreeIter iter; if (tv_leads == null) throw new Exception ("Oops! Null!"); Gtk.TreeStore leadStore = new Gtk.TreeStore (typeof(string), typeof(string), typeof(string), typeof(string), typeof(string)); filter = new Gtk.TreeModelFilter (leadStore, null); filter.VisibleFunc = new Gtk.TreeModelFilterVisibleFunc (FilterTree); tv_leads.Model = filter; //deconstruct the treeview... foreach (TreeViewColumn column in tv_leads.Columns) { tv_leads.RemoveColumn (column); } leadStore.Clear(); string getleads = "SELECT tbl_sales_leads.Lead_Number, DATE_FORMAT(tbl_sales_leads.Lead_Date,\'%a %b %e `%y\')" + "AS \'Date\'," + "LTRIM(CONCAT_WS(\' \', tbl_sales_leads.Title, tbl_sales_leads.Name_2, tbl_sales_leads.Name))" + "AS \'Customer_Name\'," + "IF(" + "RTRIM(" + "LTRIM(" + "CONCAT_WS(" + "\' \', tbl_sales_leads.Address_1, tbl_sales_leads.Address_2, tbl_sales_leads.City, \',\', " + "tbl_sales_leads.State, tbl_sales_leads.Zipcode" + "))) = \',\'," + "CONCAT(\'NO DATA\')," + "RTRIM(" + "LTRIM(" + "CONCAT_WS(" + "\' \', tbl_sales_leads.Address_1, tbl_sales_leads.Address_2, tbl_sales_leads.City, \',\', " + "tbl_sales_leads.State, tbl_sales_leads.Zipcode" + "))))" + "AS \'Customer_Address\'," + "LTRIM(" + "CONCAT_WS(" + "\' \', tbl_employees.Prefix, tbl_employees.First_Name, tbl_employees.Last_Name, tbl_employees.Suffix))" + "AS \'Consultant\'," + "tbl_sales_leads.Sales_Person " + "FROM tbl_sales_leads INNER JOIN tbl_employees ON " + "tbl_sales_leads.Sales_Person = tbl_employees.Employee_Number WHERE Dead = 0 AND Sold = 0;"; string getsalesmen = "SELECT Employee_Number, RTRIM(LTRIM(CONCAT_WS(\' \',Prefix,First_Name,Last_Name,Suffix)))" + "As \'Name\' FROM tbl_employees WHERE in_Sales = -1 AND Fire_Date IS NULL " + "AND EMPLOYEE_NUMBER != \'9001\' AND EMPLOYEE_NUMBER != \'4098\';"; DataSet salesmen = ((cl_getdata)cl_Vars.cl_getdata).returndataset(getsalesmen); DataSet leads = ((cl_getdata)cl_Vars.cl_getdata).returndataset(getleads); DataTable salesmentable = salesmen.Tables[0]; DataTable leadtable = leads.Tables[0]; foreach (DataRow man in salesmentable.Rows) { iter = leadStore.AppendValues(man["Name"].ToString()); foreach (DataRow lead in leadtable.Rows) { if (man["Employee_Number"].ToString() == lead["Sales_Person"].ToString()) { leadStore.AppendValues (iter, lead["Date"].ToString(), lead["Customer_Name"].ToString(), lead["Customer_Address"].ToString(), lead["Lead_Number"].ToString(), lead["Sales_Person"].ToString()); } } } Gtk.TreeViewColumn col_date = new Gtk.TreeViewColumn (); col_date.Title = "Lead Date"; Gtk.TreeViewColumn col_name = new Gtk.TreeViewColumn (); col_name.Title = "Name"; Gtk.TreeViewColumn col_address = new Gtk.TreeViewColumn (); col_address.Title = "Address"; tv_leads.AppendColumn (col_date); tv_leads.AppendColumn (col_name); tv_leads.AppendColumn (col_address); Gtk.CellRendererText dateCell = new Gtk.CellRendererText (); col_date.PackStart (dateCell,true); Gtk.CellRendererText nameCell = new Gtk.CellRendererText (); col_name.PackStart (nameCell,true); Gtk.CellRendererText addressCell = new Gtk.CellRendererText (); col_address.PackStart (addressCell,true); col_date.AddAttribute (dateCell, "text", 0); col_name.AddAttribute (nameCell, "text", 1); col_address.AddAttribute (addressCell, "text", 2); } public void on_tv_leads_row_activated (object sender, RowActivatedArgs args) { TreeIter iter2 = new TreeIter(); TreeModel m = tv_leads.Model; m.GetIter(out iter2, args.Path); string col0 = (string)m.GetValue(iter2, 3); Console.WriteLine(col0); } public void on_btn_search_clicked (object sender, EventArgs args) { } public void on_te_search_changed (object sender, EventArgs args) { Console.WriteLine("in on_te_search_changed"); filter.Refilter (); } private bool FilterTree (Gtk.TreeModel model, Gtk.TreeIter iter2) { if (model == null) throw new Exception ("Oops! Search Null!"); Console.WriteLine("in FilterTree"); Console.WriteLine("Model is: " + model); string colname = model.GetValue (iter2, 1).ToString (); if (te_search == null) throw new Exception ("Oops! Null!"); if (te_search.Text == "") return true; if (colname.IndexOf (te_search.Text) > -1) return true; else return false; } }