To add a column to a Jiwa Grid you use AddColumn when setting it up, how to do you do the following?
- Remove a column
Rename a column
Hide a column
public void Setup(JiwaFinancials.Jiwa.JiwaApplication.IJiwaForm JiwaForm, JiwaFinancials.Jiwa.JiwaApplication.Plugin.Plugin Plugin)
{
JiwaFinancials.Jiwa.JiwaSalesUI.SalesOrder.SalesOrderEntryForm salesOrderForm = (JiwaFinancials.Jiwa.JiwaSalesUI.SalesOrder.SalesOrderEntryForm)JiwaForm;
salesOrderForm.grdLines.AddColumn("Test1", new JiwaFinancials.Jiwa.JiwaApplication.JiwaManageGrid.JiwaTextCellType(), "Test1", 8, false, true, true, false, 50, true);
salesOrderForm.grdLines.AddColumn("Test2", new JiwaFinancials.Jiwa.JiwaApplication.JiwaManageGrid.JiwaTextCellType(), "Test2", 8, false, true, true, false, 50, true);
salesOrderForm.grdLines.AddColumn("Test3", new JiwaFinancials.Jiwa.JiwaApplication.JiwaManageGrid.JiwaTextCellType(), "Test3", 8, false, true, true, false, 50, true);
// Hide a column
FarPoint.Win.Spread.Column columnToHide = salesOrderForm.grdLines.ActiveSheet.GetColumnFromTag(null, "Test1");
salesOrderForm.grdLines.ActiveSheet.Columns[columnToHide.Index].Visible = false;
// Remove a column
FarPoint.Win.Spread.Column columnToRemove = salesOrderForm.grdLines.ActiveSheet.GetColumnFromTag(null, "Test2");
salesOrderForm.grdLines.ActiveSheet.Columns.Remove(columnToRemove.Index, 1);
// Rename a column
FarPoint.Win.Spread.Column columnToRename = salesOrderForm.grdLines.ActiveSheet.GetColumnFromTag(null, "Test3");
columnToRename.Tag = "Test4";
// Add a handler to LineDisplayed to set the renamed Test4 column text to prove it works with new name
salesOrderForm.LineDisplayed += LineDisplayed;
}
public void LineDisplayed(object sender, System.EventArgs e, JiwaFinancials.Jiwa.JiwaSales.SalesOrder.SalesOrderLine SalesOrderLine, int Row)
{
JiwaFinancials.Jiwa.JiwaSalesUI.SalesOrder.SalesOrderEntryForm salesOrderForm = (JiwaFinancials.Jiwa.JiwaSalesUI.SalesOrder.SalesOrderEntryForm)sender;
salesOrderForm.grdLines.set_GridText("Test4", Row, "New Text");
}
public static class JiwaGridExtensions
{
public static void DeleteColumn(this JiwaFinancials.Jiwa.JiwaApplication.Controls.JiwaGrid Grid, string ColumnName)
{
FarPoint.Win.Spread.Column columnToRemove = Grid.ActiveSheet.GetColumnFromTag(null, ColumnName);
Grid.ActiveSheet.Columns.Remove(columnToRemove.Index, 1);
}
public static void HideColumn(this JiwaFinancials.Jiwa.JiwaApplication.Controls.JiwaGrid Grid, string ColumnName, bool Hide = true)
{
FarPoint.Win.Spread.Column columnToHide = Grid.ActiveSheet.GetColumnFromTag(null, ColumnName);
Grid.ActiveSheet.Columns[columnToHide.Index].Visible = !Hide;
}
public static void RenameColumn(this JiwaFinancials.Jiwa.JiwaApplication.Controls.JiwaGrid Grid, string ColumnName , string NewColumnName)
{
FarPoint.Win.Spread.Column columnToRename = Grid.ActiveSheet.GetColumnFromTag(null, ColumnName);
columnToRename.Tag = NewColumnName;
}
public static void ChangeColumnCaption(this JiwaFinancials.Jiwa.JiwaApplication.Controls.JiwaGrid Grid, string ColumnName , string NewCaption)
{
FarPoint.Win.Spread.Column columnToRename = Grid.ActiveSheet.GetColumnFromTag(null, ColumnName);
columnToRename.Label = NewCaption;
}
}
SBarnes wrote:To finish this off and make it a bit more maintainable for anyone who wants to use it I have created a series of extension methods as shown below in a class, just pasting the code into a plugin will make them available.
grdLines.DeleteColumn("ColumnName");
grdLines.HideColumn("ColumnName", true);
grdLines.ChangeColumnCaption("ColumnName", "New Caption");
SBarnes wrote:Hi Mike,
I couldn't get it to work for VB.Net though, I thought putting it in a plugin and then having a vb.net plugin reference the c# plugin would work but unfortunately not, may be you have an idea on how to get that to work?
Return to Technical and or Programming
Users browsing this forum: No registered users and 9 guests