private void InitialiseBudgetList(ABudgetTable ABdgTable) { string CheckedMember = "CHECKED"; string AccountDBN = ABudgetTable.GetAccountCodeDBName(); string CostCentreDBN = ABudgetTable.GetCostCentreCodeDBName(); string BudgetSeqDBN = ABudgetTable.GetBudgetSequenceDBName(); string CCAccDesc = "CostCentreAccountDescription"; string BudgetSeqKey = "BudgetSequenceKey"; //Calculate the longest Cost Centre to calculate padding amount ABudgetRow BudgetRow; int CostCentreCodeLength = 0; if (ABdgTable != null) { if (ABdgTable.Count > 0) { FBudgetsExist = true; for (int i = 0; i < ABdgTable.Count; i++) { BudgetRow = (ABudgetRow)ABdgTable.Rows[i]; CostCentreCodeLength = BudgetRow.CostCentreCode.Length; if (CostCentreCodeLength > CostCentrePadding) { CostCentrePadding = CostCentreCodeLength; } } BudgetRow = null; // add empty row so that SetSelectedString for invalid string will not result in undefined behaviour (selecting the first cost centre etc) //ABudgetRow emptyRow = (ABudgetRow)ABdgTable.NewRow(); DataView view = new DataView(ABdgTable); view.RowFilter = String.Format("{0}={1}", ABudgetTable.GetLedgerNumberDBName(), FLedgerNumber); DataTable ABdgTable2 = view.ToTable(true, new string[] { BudgetSeqDBN, AccountDBN, CostCentreDBN }); ABdgTable2.Columns.Add(new DataColumn(CheckedMember, typeof(bool))); ABdgTable2.Columns.Add(new DataColumn(BudgetSeqKey, typeof(string), BudgetSeqDBN)); ABdgTable2.Columns.Add(new DataColumn(CCAccDesc, typeof(string), CostCentreDBN.PadRight(CostCentrePadding + 2, ' ') + " + '-' + " + AccountDBN)); clbCostCentreAccountCodes.Columns.Clear(); clbCostCentreAccountCodes.AddCheckBoxColumn("", ABdgTable2.Columns[CheckedMember], 17, false); clbCostCentreAccountCodes.AddTextColumn("Key", ABdgTable2.Columns[BudgetSeqKey], 0); clbCostCentreAccountCodes.AddTextColumn("Cost Centre-Account", ABdgTable2.Columns[CCAccDesc], 200); clbCostCentreAccountCodes.DataBindGrid(ABdgTable2, BudgetSeqKey, CheckedMember, BudgetSeqKey, false, true, false); clbCostCentreAccountCodes.SetCheckedStringList(""); } } btnOK.Enabled = FBudgetsExist; btnSelectAllBudgets.Enabled = FBudgetsExist; btnUnselectAllBudgets.Enabled = FBudgetsExist; }
private void InitialiseBudgetList(ABudgetTable ABdgTable) { string CheckedMember = "CHECKED"; string AccountDBN = ABudgetTable.GetAccountCodeDBName(); string CostCentreDBN = ABudgetTable.GetCostCentreCodeDBName(); string BudgetSeqDBN = ABudgetTable.GetBudgetSequenceDBName(); string CCAccDesc = "CostCentreAccountDescription"; string BudgetSeqKey = "BudgetSequenceKey"; //Calculate the longest Cost Centre to calculate padding amount ABudgetRow BudgetRow; int CostCentreCodeLength = 0; if (ABdgTable != null) { if (ABdgTable.Count > 0) { FBudgetsExist = true; for (int i = 0; i < ABdgTable.Count; i++) { BudgetRow = (ABudgetRow)ABdgTable.Rows[i]; CostCentreCodeLength = BudgetRow.CostCentreCode.Length; if (CostCentreCodeLength > CostCentrePadding) { CostCentrePadding = CostCentreCodeLength; } } BudgetRow = null; // add empty row so that SetSelectedString for invalid string will not result in undefined behaviour (selecting the first cost centre etc) //ABudgetRow emptyRow = (ABudgetRow)ABdgTable.NewRow(); // We create a copy of the ABudget table but this time only with three columns and ensuring we get didtinct rows. // This caters for having multiple budget revisions by 'filtering' them out. // We already have a specific ledger and year from the server in ABdgTable. DataTable ABdgTable2 = ABdgTable.DefaultView.ToTable(true, new string[] { BudgetSeqDBN, AccountDBN, CostCentreDBN }); ABdgTable2.Columns.Add(new DataColumn(CheckedMember, typeof(bool))); ABdgTable2.Columns.Add(new DataColumn(BudgetSeqKey, typeof(string), BudgetSeqDBN)); ABdgTable2.Columns.Add(new DataColumn(CCAccDesc, typeof(string), CostCentreDBN.PadRight(CostCentrePadding + 2, ' ') + " + '-' + " + AccountDBN)); clbCostCentreAccountCodes.Columns.Clear(); clbCostCentreAccountCodes.AddCheckBoxColumn("", ABdgTable2.Columns[CheckedMember], 17, false); clbCostCentreAccountCodes.AddTextColumn("Key", ABdgTable2.Columns[BudgetSeqKey], 0); clbCostCentreAccountCodes.AddTextColumn("Cost Centre-Account", ABdgTable2.Columns[CCAccDesc]); clbCostCentreAccountCodes.DataBindGrid(ABdgTable2, CCAccDesc, CheckedMember, BudgetSeqKey, false, true, false); clbCostCentreAccountCodes.SetCheckedStringList(""); } } btnOK.Enabled = FBudgetsExist; btnSelectAllBudgets.Enabled = FBudgetsExist; btnUnselectAllBudgets.Enabled = FBudgetsExist; }