public void SetDataSource(XsdDataBaseDesign nDataBase, CMData.Schemas.XsdDataBase.TBL_ConnectionRow nSelectedConnection, CMData.Schemas.XsdDataBase.TBL_ObjectRow nSelectedObject)
 {
     _dtsDataBase        = nDataBase;
     _selectedConnection = nSelectedConnection;
     _selectedObject     = nSelectedObject;
 }
예제 #2
0
        public void SetDataSource(XsdDataBaseDesign nDtsDataBase, int nId_Object)
        {
            try
            {
                _Id_Object   = nId_Object;
                _DtsDataBase = nDtsDataBase;

                var rowObject = nDtsDataBase.TBL_Object.FindByid_Object(nId_Object);
                CatalogNameTextBox.Text = rowObject.Catalog_Name;
                ObjectTypeTextBox.Text  = rowObject.Generic_Type;
                SchemaNameTextBox.Text  = rowObject.Schema_Name;
                ObjectNameTextBox.Text  = rowObject.Object_Name;

                var fieldRows =
                    (CMData.Schemas.XsdDataBase.TBL_FieldRow[])(nDtsDataBase.TBL_Field.Select("fk_Object = " + nId_Object));

                // Agregar los filtros
                var filterRows = rowObject.GetTBL_FilterRows();
                foreach (var filterRow in filterRows)
                {
                    var newMapFilter = dtsMap.TBL_Map_Filter.AddTBL_Map_FilterRow(filterRow.id_Filter,
                                                                                  filterRow.fk_Object,
                                                                                  "Find_" + _FindNumber);
                    _FindNumber += 1;

                    // Agregar los campos incluyendo los previamente mapeados
                    foreach (var f in fieldRows)
                    {
                        // Buscar si ya existe el campo mapeado
                        var filterField =
                            ((CMData.Schemas.XsdDataBase.TBL_Filter_FieldRow[])
                                 (nDtsDataBase.TBL_Filter_Field.Select("fk_Filter = " + filterRow.id_Filter +
                                                                       " AND Field_Name = '" + f.Field_Name + "'")));

                        // Agregar la columna para mapear
                        var newMapFilterColumn = dtsMap.TBL_Map_Filter_Column.NewTBL_Map_Filter_ColumnRow();

                        newMapFilterColumn.fk_Map_Filter    = newMapFilter.id_Map_Filter;
                        newMapFilterColumn.fk_Object        = f.fk_Object;
                        newMapFilterColumn.Field_Name       = f.Field_Name;
                        newMapFilterColumn.Field_Type       = f.Field_Type;
                        newMapFilterColumn.Specific_Type    = f.Specific_Type;
                        newMapFilterColumn.Is_Nullable      = f.Is_Nullable;
                        newMapFilterColumn.Max_Length       = f.Max_Length;
                        newMapFilterColumn.Precision        = f.Precision;
                        newMapFilterColumn.Scale            = f.Scale;
                        newMapFilterColumn.PrimaryKey_Order = f.PrimaryKey_Order;

                        if (filterField.Length > 0)
                        {
                            newMapFilterColumn.Filter_Order = filterField[0].Filter_Order;
                            newMapFilterColumn.Selected     = true;
                        }
                        else
                        {
                            newMapFilterColumn.Filter_Order = 100;
                            newMapFilterColumn.Selected     = false;
                        }

                        dtsMap.TBL_Map_Filter_Column.AddTBL_Map_Filter_ColumnRow(newMapFilterColumn);
                    }
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al enlazar los datos, " + ex.Message, Program.AssemblyTitle, MessageBoxButtons.OK,
                                MessageBoxIcon.Error);
            }
        }