/// <summary> /// todoComment /// </summary> /// <param name="ALedgerNr"></param> /// <param name="ACheckedMember"></param> /// <param name="ADisplayMember"></param> /// <param name="AValueMember"></param> /// <param name="AExcludeInactive"></param> /// <returns></returns> public static System.Data.DataTable GetMotivationDetails(System.Int32 ALedgerNr, ref String ACheckedMember, ref String ADisplayMember, ref String AValueMember, bool AExcludeInactive) { System.Data.DataTable ReturnValue; DataTable CachedDataTable; String whereClause; DataRow[] filteredRows; CachedDataTable = TDataCache.TMFinance.GetCacheableFinanceTable(TCacheableFinanceTablesEnum.MotivationList, ALedgerNr); whereClause = AMotivationDetailTable.GetLedgerNumberDBName() + " = " + ALedgerNr.ToString(); if (AExcludeInactive) { whereClause = whereClause + " AND " + AMotivationDetailTable.GetMotivationStatusDBName() + " = 1"; } filteredRows = CachedDataTable.Select(whereClause, AMotivationDetailTable.GetMotivationGroupCodeDBName() + ',' + AMotivationDetailTable.GetMotivationDetailCodeDBName()); ReturnValue = CachedDataTable.Clone(); foreach (DataRow oldDr in filteredRows) { ReturnValue.ImportRow(oldDr); } ACheckedMember = "CHECKED"; ADisplayMember = "DISPLAY"; AValueMember = "VALUE"; ReturnValue.Columns.Add(new DataColumn(ACheckedMember, typeof(bool))); ReturnValue.Columns.Add(new DataColumn(AValueMember, typeof(String))); ReturnValue.Columns.Add(new DataColumn(ADisplayMember, typeof(String))); foreach (DataRow oldDr in ReturnValue.Rows) { oldDr[AValueMember] = (System.Object)(oldDr[AMotivationDetailTable.GetMotivationGroupCodeDBName()].ToString() + ", " + oldDr[AMotivationDetailTable.GetMotivationDetailCodeDBName()].ToString()); oldDr[ADisplayMember] = (System.Object)(oldDr[AMotivationDetailTable.GetMotivationGroupCodeDBName()].ToString() + " - " + oldDr[AMotivationDetailTable.GetMotivationDetailCodeDBName()].ToString()); } return(ReturnValue); }
public DataTable AsDataTable() { if (CachedDataTable.Rows.Count.Equals(0)) { CachedDataTable.Columns.AddRange(Table.Columns() .Select(s => new DataColumn(s.Name, typeof(object))).ToArray()); foreach (var rowItem in Table.Rows.Select(s => { var row = CachedDataTable.NewRow(); foreach (var column in s.Header.Columns()) { row[column.Name] = s.Values[column.Index - 1]; } return(row); }).ToArray()) { CachedDataTable.Rows.Add(rowItem); } } return(CachedDataTable); }