Пример #1
0
        protected virtual void AgregarTags(qGen.Command comando, Lfx.Data.Row registro, string tabla)
        {
            Lfx.Data.Table Tabla = this.Connection.Tables[tabla];
            if (Tabla.Tags != null && Tabla.Tags.Count > 0)
            {
                foreach (Lfx.Data.Tag Tg in Tabla.Tags)
                {
                    if (Tg.Nullable == false && registro[Tg.FieldName] == null)
                    {
                        switch (Tg.FieldType)
                        {
                        case Lfx.Data.DbTypes.Currency:
                        case Lfx.Data.DbTypes.Integer:
                        case Lfx.Data.DbTypes.SmallInt:
                        case Lfx.Data.DbTypes.MediumInt:
                        case Lfx.Data.DbTypes.TinyInt:
                        case Lfx.Data.DbTypes.Numeric:
                            comando.Fields.AddWithValue(Tg.FieldName, 0);
                            break;

                        default:
                            comando.Fields.AddWithValue(Tg.FieldName, "");
                            break;
                        }
                    }
                    else
                    {
                        comando.Fields.AddWithValue(Tg.FieldName, registro[Tg.FieldName]);
                    }
                }
            }
        }
Пример #2
0
        protected virtual void AgregarTags(qGen.IStatement comando, Lfx.Data.Row registro, string tabla)
        {
            Lfx.Data.Table Tabla = Lfx.Workspace.Master.Tables[tabla];
            if (Tabla.Tags != null && Tabla.Tags.Count > 0)
            {
                foreach (Lfx.Data.Tag Tg in Tabla.Tags)
                {
                    if (Tg.Nullable == false && registro[Tg.FieldName] == null)
                    {
                        switch (Tg.FieldType)
                        {
                        case Lazaro.Orm.ColumnTypes.Currency:
                        case Lazaro.Orm.ColumnTypes.Integer:
                        case Lazaro.Orm.ColumnTypes.SmallInt:
                        case Lazaro.Orm.ColumnTypes.MediumInt:
                        case Lazaro.Orm.ColumnTypes.TinyInt:
                        case Lazaro.Orm.ColumnTypes.Numeric:
                            comando.ColumnValues.AddWithValue(Tg.FieldName, System.Convert.ToInt32(Tg.DefaultValue));
                            break;

                        default:
                            comando.ColumnValues.AddWithValue(Tg.FieldName, "");
                            break;
                        }
                    }
                    else
                    {
                        comando.ColumnValues.AddWithValue(Tg.FieldName, registro[Tg.FieldName]);
                    }
                }
            }
        }
Пример #3
0
        /// <summary>
        /// Actualiza el control con los datos del elemento.
        /// </summary>
        public override void ActualizarControl()
        {
            Lazaro.Pres.Forms.Section Sect = new Lazaro.Pres.Forms.Section("Campos adicionales");
            this.Tabla = Lfx.Workspace.Master.Tables[m_Elemento.TablaDatos];
            //Tabla.Connection = this.Connection;
            if (Tabla.Tags != null)
            {
                foreach (Lfx.Data.Tag Tg in Tabla.Tags)
                {
                    if (Tg.Internal == false)
                    {
                        Lazaro.Pres.Field Fld = new Lazaro.Pres.Field(Tg.FieldName, Tg.Label, Tg.InputFieldType);
                        if (string.IsNullOrEmpty(Tg.LblType) == false)
                        {
                            Fld.LblType = Lbl.Instanciador.InferirTipo(Tg.LblType);
                        }
                        if (Tg.Access > 0)
                        {
                            Lbl.Sys.Permisos.Operaciones Oper = (Lbl.Sys.Permisos.Operaciones)(Tg.Access);
                            if (Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(m_Elemento, Oper) == false)
                            {
                                Fld.ReadOnly = true;
                            }
                        }
                        Fld.Relation = Tg.Relation;
                        Sect.Fields.Add(Fld);
                    }
                }
            }

            this.FromSection(Sect);

            base.ActualizarControl();
        }
Пример #4
0
                /// <summary>
                /// Actualiza el control con los datos del elemento.
                /// </summary>
                public override void ActualizarControl()
                {
                        Lazaro.Pres.Forms.Section Sect = new Lazaro.Pres.Forms.Section("Campos adicionales");
                        this.Tabla = m_Elemento.Connection.Tables[m_Elemento.TablaDatos];
                        Tabla.Connection = this.Connection;
                        if (Tabla.Tags != null) {
                                foreach (Lfx.Data.Tag Tg in Tabla.Tags) {
                                        if (Tg.Internal == false) {
                                                Lazaro.Pres.Field Fld = new Lazaro.Pres.Field(Tg.FieldName, Tg.Label, Tg.InputFieldType);
                                                if (string.IsNullOrEmpty(Tg.LblType) == false) {
                                                        Fld.LblType = Lbl.Instanciador.InferirTipo(Tg.LblType);
                                                }
                                                if (Tg.Access > 0) {
                                                        Lbl.Sys.Permisos.Operaciones Oper = (Lbl.Sys.Permisos.Operaciones)(Tg.Access);
                                                        if (Lbl.Sys.Config.Actual.UsuarioConectado.TienePermiso(m_Elemento, Oper) == false) {
                                                                Fld.ReadOnly = true;
                                                        }
                                                }
                                                Fld.Relation = Tg.Relation;
                                                Sect.Fields.Add(Fld);
                                        }
                                }
                        }

                        this.FromSection(Sect);

                        base.ActualizarControl();
                }
Пример #5
0
 public void DesdeTable(Lfx.Data.Table tabla)
 {
     this.Clear();
     tabla.FastRows.LoadAll();
     foreach (Lfx.Data.Row Lrw in tabla.FastRows.Values)
     {
         this.AddFromRow(Lrw);
     }
     this.HayCambios = false;
 }
Пример #6
0
 public void AddRange(Lfx.Data.Table tabla)
 {
     if (tabla != null)
     {
         tabla.PreLoad();
         foreach (Lfx.Data.Row Rw in tabla.FastRows.Values)
         {
             Lfx.Data.Row Lrw = Rw;
             this.AddFromRow(Lrw);
         }
     }
     this.HayCambios = false;
 }
Пример #7
0
        public void CheckTable(Lfx.Types.OperationProgress progreso, Lfx.Data.Table table)
        {
            Lfx.Data.TableStructure CurrentTableDef = this.Connection.GetTableStructure(table.Name, true);
            progreso.ChangeStatus("Verificando tabla " + table.Name);

            foreach (Lfx.Data.ConstraintDefinition Cons in CurrentTableDef.Constraints.Values)
            {
                // Elimino valores 0 (los pongo en NULL)
                qGen.Update PonerNullablesEnNull = new qGen.Update(table.Name);
                PonerNullablesEnNull.ColumnValues.AddWithValue(Cons.Column, null);
                PonerNullablesEnNull.WhereClause = new qGen.Where(Cons.Column, 0);
                this.Connection.ExecuteNonQuery(PonerNullablesEnNull);

                // Busco problemas de integridad referencial
                if (Cons.TableName != Cons.ReferenceTable)
                {
                    qGen.Select RefValidas = new qGen.Select(Cons.ReferenceTable);
                    RefValidas.Columns = new qGen.SqlIdentifierCollection()
                    {
                        Cons.ReferenceColumn
                    };

                    qGen.Update ElimRefInvalidas = new qGen.Update(table.Name);
                    switch (Cons.ReferenceTable)
                    {
                    case "bancos":
                        // Los bancos inexistentes los remplazo por "otro banco"
                        ElimRefInvalidas.ColumnValues.AddWithValue(Cons.Column, 99);
                        break;

                    case "personas":
                        // Las personas inexistentes las paso a Administrador
                        ElimRefInvalidas.ColumnValues.AddWithValue(Cons.Column, 1);
                        break;

                    default:
                        // El resto lo pongo en null
                        ElimRefInvalidas.ColumnValues.AddWithValue(Cons.Column, null);
                        break;
                    }
                    ElimRefInvalidas.WhereClause = new qGen.Where(Cons.Column, qGen.ComparisonOperators.NotIn, RefValidas);

                    System.Console.WriteLine(ElimRefInvalidas.ToString());
                    this.Connection.ExecuteNonQuery(ElimRefInvalidas);
                }
            }
        }
Пример #8
0
        public override void ActualizarControl()
        {
            Lista.SuspendLayout();
            Lista.Items.Clear();
            Lfx.Data.Table TablaEtiquetas = Lfx.Workspace.Master.Tables["sys_labels"];
            TablaEtiquetas.PreLoad();
            foreach (Lfx.Data.Row Rw in TablaEtiquetas.FastRows.Values)
            {
                Lbl.Etiqueta Eti = new Lbl.Etiqueta(this.Connection, Rw);
                if (Eti.TablaReferencia == m_Elemento.TablaDatos)
                {
                    ListViewItem Itm = Lista.Items.Add(Eti.Id.ToString());
                    Itm.SubItems.Add(Eti.Nombre);
                    if (Elemento.Etiquetas.Contains(Eti.Id))
                    {
                        Itm.Checked = true;
                    }
                }
            }
            Lista.ResumeLayout();

            base.ActualizarControl();
        }
Пример #9
0
 public ColeccionGenerica(Lfx.Data.Connection dataBase, Lfx.Data.Table tabla)
     : this(dataBase)
 {
     this.Clear();
     this.AddRange(tabla);
 }
Пример #10
0
 public ColeccionGenerica(Lfx.Data.Table tabla)
     : this(tabla.Connection)
 {
     this.DesdeTable(tabla);
 }
Пример #11
0
                internal TableCollection GetTables()
                {
                        TableCollection Res = new Lfx.Data.TableCollection(Lfx.Workspace.Master.MasterConnection);
                        foreach (string TblName in Lfx.Data.DataBaseCache.DefaultCache.GetTableNames()) {
                                Lfx.Data.Table NewTable = new Lfx.Data.Table(Lfx.Workspace.Master.MasterConnection, TblName);
                                switch (TblName) {
                                        case "alicuotas":
                                        case "articulos_codigos":
                                        case "articulos_situaciones":
                                        case "bancos":
                                        case "cajas":
                                        case "conceptos":
                                        case "ciudades":
                                        case "documentos_tipos":
                                        case "formaspago":
                                        case "impresoras":
                                        case "margenes":
                                        case "monedas":
                                        case "paises":
                                        case "personas_tipos":
                                        case "pvs":
                                        case "situaciones":
                                        case "sucursales":
                                        case "sys_permisos_objetos":
                                        case "sys_plantillas":
                                        case "sys_tags":
                                        case "tickets_estados":
                                        case "tipo_doc":
                                                NewTable.AlwaysCache = true;
                                                break;

                                        case "sys_log":
                                        case "sys_programador":
                                        case "sys_config":
                                                NewTable.Cacheable = false;
                                                break;
                                }

                                Res.Add(NewTable);
                        }

                        return Res;
                }