This is really old snippet but here’s something that might be useful
using PlexityHide.GTP;
public static class PlexityGridController {
public static void ViewGrid(Grid grid) {
List<string> columns = new List<string>();
foreach (GridColumn column in grid.Columns) {
columns.Add(column.Title);
}
//Debug("columns({0}): {1}", columns.Count, String.Join(", ", columns.ToArray()));
List<string> nodes = new List<string>();
foreach (GridNode node in grid.RootNodes) {
nodes.Add(ReadAllCells(node));
}
//Debug("nodes({0}): {1}", nodes.Count, String.Join(", ", nodes.ToArray()));
}
public static int IndexOf(GridColumns columns, string title) {
foreach (GridColumn column in columns) {
if (column.Title == title) {
return column.Index;
}
}
return -1;
}
public static GridColumn AddColumn(Grid grid, CellType type, string title) {
GridStructure structure = new GridStructure(grid);
GridColumn column = new GridColumn(type, structure);
column.Title = title;
grid.Columns.Add(column);
return column;
}
public static void MoveColumn(Grid grid, GridColumn moveable, int moveTo) {
List<gridcolumn> columns = new List<gridcolumn>();
for (int index = 0; index < grid.Columns.Count; index++) {
GridColumn column = grid.Columns[index];
if (index == moveTo) {
columns.Add(moveable);
}
if (column.Title == moveable.Title) {
continue;
}
columns.Add(column);
}
grid.Columns.Clear();
foreach (GridColumn column in columns) {
grid.Columns.Add(column);
}
}
public static Cell GetCellByColumnTitle(GridNode node, string title) {
for (int index = 0; index < node.GridControl.Columns.Count; index++) {
Cell cell = node.GetCell(index);
if (cell.Column.Title == title) {
return cell;
}
}
return null;
}
public static void SetCellValue(Cell cell, object @value) {
cell.Content.Value = @value;
}
private static string ReadAllCells(GridNode node) {
List<string> cells = new List<string>();
int index = 0;
bool hasMore = true;
while (hasMore) {
if (index > node.GridControl.Columns.Count) {
break;
}
try {
Cell cell = node.GetCell(index);
index = index + 1;
if (cell == null) {
continue;
}
ContentEntity content = cell.Content;
if (content == null) {
continue;
}
object val = content.Value;
if (val == null) {
continue;
}
cells.Add(val.ToString());
} catch (Exception e) {
hasMore = false;
}
}
return String.Join(", ", cells.ToArray());
}
}
Here’s how to modify the Plexity ToolTip
//Gist File: scheduling_board.cs
private static PlexityHide.GTP.Gantt gntJobs;
private static PlexityHide.GTP.TimeAreaOffscreenDraw gntTimeArea;
private static PlexityHide.GTP.GridNode currentNode;
private DynamicQueryAdapter dqa;
QueryExecutionDataSet qeds;
InitCustomCode()
{
//Get a hold of the grid
gntJobs = (PlexityHide.GTP.Gantt)csm.GetNativeControlReference("listPanel1.gntJobs");
//Use our Event Helper Class (other gist) to remove the Epicor Native ToolTip
cEventHelper.RemoveEventHandler(gntJobs, "OnTimeItem_Hoover");
//Register the Hoover Event
gntJobs.OnTimeItem_Hoover += new PlexityHide.GTP.TimeItemEvent(this.gntJobs_OnTimeItem_Hoover);
}
private void gntJobs_OnTimeItem_Hoover(Gantt aGantt, TimeItemEventArgs e)
{
Erp.UI.App.MultiResourceSchedulingBoard.ListPanel lp= (Erp.UI.App.MultiResourceSchedulingBoard.ListPanel)csm.GetNativeControlReference("2a0f08ca-a115-4547-999a-e658594fa6b5");
string jobNum="";
StringBuilder sb = new StringBuilder();
try
{
if (e.TimeItem != null)
{
Epicor.Mfg.Lib.Scheduling.taskData td =(Epicor.Mfg.Lib.Scheduling.taskData)e.TimeItem.UserReference;
qeds.ExecutionParameter.Clear();
qeds.ExecutionParameter.AddExecutionParameterRow("JobNum", td.JobNum , "nvarchar",false, Guid.NewGuid(),"A");
qeds.ExecutionParameter.AddExecutionParameterRow("Assy", td.AsmNum.ToString() , "int",false, Guid.NewGuid(),"A");
dqa.ExecuteByID("SchedBoardToolTip",qeds);
sb.AppendLine("JobNum: " + td.JobNum);
sb.AppendLine("Assembly: " + td.AsmNum + " - " + dqa.QueryResults.Tables["Results"].Rows[0]["JobAsmbl_Description"]);
sb.AppendLine("Order: " +dqa.QueryResults.Tables["Results"].Rows[0]["JobProd_OrderNum"]);
sb.AppendLine("Customer: " +dqa.QueryResults.Tables["Results"].Rows[0]["Customer_CustID"] + " - " + dqa.QueryResults.Tables["Results"].Rows[0]["Customer_Name"]);
}
lp.setGanttToolTip(sb.ToString());
}
catch(Exception ex)
{
}
}