Exemplo n.º 1
0
        /// <summary>
        /// Get Current DataRow Column Value, usefull to work in DataSourceRowToModelRow
        /// </summary>
        /// <param name="DataSourceRow"></param>
        /// <param name="ColumnIndex"></param>
        /// <returns>Column Value</returns>
        public override object DataSourceRowGetColumnValue(DataRow pDataSourceRow, int pColumnIndex, string pFieldName = "")
        {
            String fieldName  = pFieldName;
            object fieldValue = null;

            if (pDataSourceRow.Table.Columns.Contains(fieldName))
            {
                fieldValue = pDataSourceRow[fieldName];

                //XPGuidObject - If detect XPGuidObject Type, Extract value from its Chield, ex ArticleFamily[Field].Article[Chield].Designation[FieldName]
                if (fieldValue != null && fieldValue.GetType().BaseType == typeof(XPGuidObject))
                {
                    fieldValue = GetXPGuidObjectChildValue(fieldValue, fieldName, _columnProperties[pColumnIndex].ChildName);
                }
                //Other Non XPGuidObject Types, Like String, Int, Decimal, DateTimes, Booleans etc
                else
                if (fieldValue.GetType() == typeof(bool))
                {
                    bool boolValue = Convert.ToBoolean(fieldValue);
                    fieldValue = (boolValue) ? resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_treeview_true") : resources.CustomResources.GetCustomResources(GlobalFramework.Settings["customCultureResourceDefinition"], "global_treeview_false");
                }
                else
                {
                    fieldValue = FrameworkUtils.FormatDataTableFieldFromType(fieldValue.ToString(), fieldValue.GetType().Name);
                }
            }
            //_log.Debug(string.Format("GetDataRowColumnValue: fieldName:[{0}], fieldValue:[{1}], fieldType:[{2}]", fieldName, fieldValue, fieldValue.GetType()));
            return(fieldValue);
        }
Exemplo n.º 2
0
        //Load Data from DataTable
        private void Load(DataTable pDataTable)
        {
            //Add Columns
            string fieldName;
            string fieldType;
            string fieldValue;

            foreach (DataColumn column in pDataTable.Columns)
            {
                fieldName = column.ColumnName;
                fieldType = column.DataType.ToString();
                this.Columns.Add(fieldName, typeof(string));
            }

            //Add Rows
            foreach (DataRow rowData in pDataTable.Rows)
            {
                int i = -1;
                //Init a new DataRow
                Object[] dataRow = new String[pDataTable.Columns.Count];

                foreach (DataColumn column in pDataTable.Columns)
                {
                    i++;
                    fieldName = column.ColumnName;
                    fieldType = column.DataType.ToString();

                    //Check if is Not Null
                    if (rowData[fieldName] != null)
                    {
                        fieldValue = FrameworkUtils.FormatDataTableFieldFromType(rowData[fieldName].ToString(), fieldType);
                    }
                    else
                    {
                        fieldValue = string.Empty;
                    }
                    dataRow[i] = fieldValue;
                }
                this.Rows.Add(dataRow);
            }
        }
Exemplo n.º 3
0
        //Load Data from GetDataTableFromQuery
        private void Load(string pSql)
        {
            //Get SelectedData
            XPSelectData xPSelectData = FrameworkUtils.GetSelectedDataFromQuery(_session, pSql);
            //Add Columns
            string fieldName;
            string fieldType;
            string fieldValue;

            foreach (SelectStatementResultRow column in xPSelectData.Meta)
            {
                fieldName = column.Values[0].ToString();
                fieldType = column.Values[2].ToString();
                this.Columns.Add(fieldName, typeof(string));
            }

            //Add Rows
            foreach (SelectStatementResultRow rowData in xPSelectData.Data)
            {
                //Init a new DataRow
                Object[] dataRow = new String[xPSelectData.Meta.Length];

                foreach (SelectStatementResultRow rowMeta in xPSelectData.Meta)
                {
                    fieldName = rowMeta.Values[0].ToString();
                    fieldType = rowMeta.Values[2].ToString();
                    //Check if is Not Null
                    if (rowData.Values[xPSelectData.GetFieldIndex(fieldName)] != null)
                    {
                        fieldValue = FrameworkUtils.FormatDataTableFieldFromType(rowData.Values[xPSelectData.GetFieldIndex(fieldName)].ToString(), fieldType);
                    }
                    else
                    {
                        fieldValue = string.Empty;
                    }
                    dataRow[xPSelectData.GetFieldIndex(fieldName)] = fieldValue;
                }
                this.Rows.Add(dataRow);
            }
        }
Exemplo n.º 4
0
        public override void InitDataModel(DataTable pDataSource, List <GenericTreeViewColumnProperty> pColumnProperties, GenericTreeViewMode pGenericTreeViewMode)
        {
            //Log4Net
            log4net.ILog log = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

            //Parameters
            DataTable dataTable = pDataSource;
            List <GenericTreeViewColumnProperty> _columnProperties = pColumnProperties;
            GenericTreeViewMode _treeViewMode = pGenericTreeViewMode;

            //Initialize Model and Column Properties
            ListStore model = GenericTreeViewModel.InitModel(_columnProperties, pGenericTreeViewMode);

            //Init ColumnValues Object Array
            System.Object[] columnValues = new System.Object[_columnProperties.Count];

            //Start Render Model Values from Collection
            String fieldName;

            //Always add Index to Rows, NOT USED: Check if existe before Add to prevent Refresh Add Again
            dataTable.Columns.Add("Index", typeof(Int32)).SetOrdinal(0);//Put in Index 0, First Column

            //If Detect CheckBox Mode, Insert CheckBox Column in DataTable
            if (_treeViewMode == GenericTreeViewMode.CheckBox)
            {
                //NOT USED: Check if existe before Add to prevent Refresh Add Again "if (dataTable.Columns.IndexOf("CheckBox") < 0)"
                dataTable.Columns.Add("CheckBox", typeof(Boolean)).SetOrdinal(1);//Put in Index 1, After Index
            }

            //Loop Records
            Int32 rowIndex = -1;

            foreach (DataRow dataRow in dataTable.Rows)
            {
                //Increase RowIndex
                rowIndex++;

                //Loop Fields : Generate Abstract Values to use in Model
                for (int i = 0; i < _columnProperties.Count; i++)
                {
                    fieldName = _columnProperties[i].Name;

                    //If is in first Field (Index) assign rowIndex to Model and DataRow
                    if (fieldName == "RowIndex")
                    {
                        columnValues[i] = rowIndex;
                        dataRow[i]      = rowIndex;
                    }
                    //Query
                    else if (_columnProperties[i].Query != null && _columnProperties[i].Query != string.Empty)
                    {
                        columnValues[i] = ColumnPropertyGetQuery(_columnProperties[i].Query, dataRow.ItemArray[i]);
                    }
                    //If detect XPGuidObject Value Type (Value is a XPObject, Child Object), Get Value from its Chield Field (Related Table)
                    else if (dataRow.ItemArray[i] != null && dataRow.ItemArray[i].GetType().BaseType == typeof(XPGuidObject))
                    {
                        columnValues[i] = GetXPGuidObjectChildValue(dataRow.ItemArray[i], fieldName, _columnProperties[i].ChildName);
                    }
                    //If is second field Assign false to checkbox to Model and DataRow
                    else if (fieldName == "RowCheckBox")
                    {
                        columnValues[i] = false;
                        dataRow[i]      = false;
                    }
                    //Else All others Fields assign Value from dataRow
                    else
                    {
                        columnValues[i] = FrameworkUtils.FormatDataTableFieldFromType(dataRow.ItemArray[i].ToString(), dataRow.ItemArray[i].GetType().Name);
                        //Format String using Column FormatProvider
                        if (_columnProperties[i].FormatProvider != null)
                        {
                            columnValues[i] = string.Format(_columnProperties[i].FormatProvider, "{0}", columnValues[i]);
                        }
                    }
                }

                //Add Column Value to Model
                model.AppendValues(columnValues);
            }

            _listStoreModel = model;
        }