/// <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);
        }
Exemplo n.º 2
0
        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);
        }