コード例 #1
0
        } //

        private Sitio dame_sitio_del_fragmento(DataRow fragmento)
        {
            String nombre_fragmento = (String)fragmento[SITIO];
            Sitio  buscado          = null;

            if (nombre_fragmento == SO.ID)
            {
                buscado = SO;
            }
            else if (nombre_fragmento == SM1.ID)
            {
                buscado = SM1;
            }
            else if (nombre_fragmento == SM2.ID)
            {
                buscado = SM2;
            }
            else if (nombre_fragmento == SM3.ID)
            {
                buscado = SM3;
            }
            else if (nombre_fragmento == SPG.ID)
            {
                buscado = SPG;
            }

            return(buscado);
        } //
コード例 #2
0
        private void inserta_fragmento_V(Sitio sitio, DataRow fragmento, String columnas, String clave, String valores)
        {
            List <String> columnas_FV        = enlista_columnas_FV(fragmento[NOM].ToString());
            List <String> valores_entrada    = enlista_valores(valores, true);
            List <String> columnas_completas = enlista_valores(columnas, true);
            String        cad_col            = formatea_cadena_columnas(columnas_FV);
            String        cad_val            = "";

            clave = clave.Remove(clave.Length - 1, 1);
            valores_entrada.Insert(0, clave);

            for (int i = columnas_FV.Count - 1; i >= 0; i--)
            {
                if (!columnas_completas.Contains(columnas_FV[i]))
                {
                    columnas_completas.Insert(0, columnas_FV[i]);
                }
            }

            cad_val = empareja_datos_FV(columnas_completas, columnas_FV, valores_entrada);

            if (columnas_FV.Count == enlista_valores(cad_val, true).Count)
            {
                sitio.inserta(fragmento[NOM].ToString(), cad_col, "", cad_val);
            }
            else
            {
                MessageBox.Show("Error al emparejar columnas con valores!");
            }
        }
コード例 #3
0
        } //agregar grids

        public void insercion(String tabla, String columnas, String valores, String tabla_detalle, String clave_detalle, Boolean detalle, List <String> val_detalle)
        {
            DataTable fragmentos = dame_fragmentos_de(tabla);
            int       indx_fsec  = dame_indice_fragmento_principal(fragmentos);
            String    clave      = "";

            if (indx_fsec > -1) //Si hay secuencia
            {
                DataRow fragmento_ppal = fragmentos.Rows[indx_fsec];
                Sitio   sitio          = dame_sitio_del_fragmento(fragmento_ppal);
                DataSet data_set       = new DataSet();

                sitio.dame_clave_secuencia(fragmento_ppal[SEC].ToString(), ref clave);
                sitio.inserta(fragmento_ppal[NOM].ToString(), columnas, "", valores);
                fragmentos.Rows.RemoveAt(indx_fsec);
            }

            if (clave != "")
            {
                clave += ",";
            }

            if (clave_detalle != "")
            {
                clave = clave_detalle + ",";
            }

            if (detalle)
            {
                insercion_detalle(tabla_detalle, clave, val_detalle);
            }

            inserta_dependientes(fragmentos, columnas, clave, valores);
            llena_superGrid_de(tabla);
        }
コード例 #4
0
        private void inserta_fragmento_H(Sitio sitio, DataRow fragmento, String clave, String valores)
        {
            String        condicion = fragmento[COND].ToString();
            String        dependencia = fragmento[DEP].ToString();
            List <String> items = dame_elementos_condicion(condicion);
            int           PIZQ = 0, OPERADOR = 1, PDER = 2;
            Boolean       cumple_condicion = false;
            String        valor_entrada;
            List <String> columnas = new List <string>();

            sitio.dame_columnas_de(fragmento[NOM].ToString(), columnas);
            valor_entrada = dame_valor_entrada(items[PIZQ], columnas, enlista_valores(valores, false));

            if (dependencia == "")
            {
                cumple_condicion = evalua_condicion(items[OPERADOR], valor_entrada, items[PDER]);
            }
            else
            {
                List <String> col_dep = new List <string>();
                sitio.dame_columnas_de(dependencia, col_dep);
                cumple_condicion = valida_dependencia(sitio, dependencia, col_dep[0], valor_entrada);
            }

            if (cumple_condicion)
            {
                sitio.inserta(fragmento[NOM].ToString(), "", clave, valores);
            }
            else
            {
                //MessageBox.Show("No se realizó la inserción en " + fragmento[NOM].ToString());
            }
        }
コード例 #5
0
        private void insercion_detalle(String tabla_detalle, String clave, List <String> val_detalle)
        {
            DataTable fragmentos = dame_fragmentos_de(tabla_detalle);

            foreach (DataRow f in fragmentos.Rows)
            {
                Sitio sitio = dame_sitio_del_fragmento(f);
                foreach (String valor in val_detalle)
                {
                    sitio.inserta(f[NOM].ToString(), "", clave, valor);
                }
            }
        }
コード例 #6
0
        public void eliminacion_detalle(String tabla, String clave1, String clave2)
        {
            DataTable fragmentos = dame_fragmentos_de(tabla);

            foreach (DataRow fragmento in fragmentos.Rows)
            {
                Sitio         sitio          = dame_sitio_del_fragmento(fragmento);
                List <String> columnas_clave = new List <string>();
                sitio.dame_columnas_de(fragmento[NOM].ToString(), columnas_clave);
                sitio.elimina_detalle(fragmento[NOM].ToString(), columnas_clave[0], columnas_clave[1], clave1, clave2);
            }

            llena_superGrid_de(tabla);
        }
コード例 #7
0
        private Boolean valida_dependencia(Sitio sitio, String dependencia, String columna_pk, String valor_entrada)
        {
            DataSet data_set = new DataSet();
            String  consulta = "SELECT * FROM " + dependencia + " WHERE " + columna_pk + "=" + valor_entrada;

            sitio.dame_dataset_de(consulta, data_set);

            if (data_set.Tables[0].Rows.Count > 0)
            {
                return(true);
            }

            return(false);
        }
コード例 #8
0
        public void modificacion_tratamiento(String tabla, String campo, String valor, String campo_clave, String clave)
        {
            DataTable fragmentos = dame_fragmentos_de(tabla);

            foreach (DataRow fragmento in fragmentos.Rows)
            {
                if (fragmento[TIPO].ToString() != "V")
                {
                    String consulta = "UPDATE " + fragmento[NOM].ToString() + " SET " + campo + "=" + valor + " WHERE " + campo_clave + "=" + clave;
                    Sitio  sitio    = dame_sitio_del_fragmento(fragmento);
                    sitio.ejecuta_comando(consulta);
                }
            }

            llena_superGrid_de(tabla);
        }
コード例 #9
0
        public Sitio dame_sitio(String sitio)
        {
            Sitio s = null;

            switch (sitio)
            {
            case "CONTROL_INTERNO":
                s = SPG;
                break;

            case "FARMACIA":
                s = SO;
                break;
            }

            return(s);
        }
コード例 #10
0
        public void modificacion_campo(String tabla, String campo, String valor, String campo_clave, String clave, String campo_clave2, String clave2)
        {
            DataTable fragmentos = dame_fragmentos_de(tabla);

            foreach (DataRow fragmento in fragmentos.Rows)
            {
                String consulta = "UPDATE " + fragmento[NOM].ToString() + " SET " + campo + "=" + valor + " WHERE " + campo_clave + "=" + clave;
                if (campo_clave2 != "" && clave2 != "")
                {
                    consulta += " AND " + campo_clave2 + "=" + clave2;
                }
                Sitio sitio = dame_sitio_del_fragmento(fragmento);
                sitio.ejecuta_comando(consulta);
            }

            llena_superGrid_de(tabla);
        }
コード例 #11
0
        public void eliminacion(String tabla, String clave)
        {
            DataTable fragmentos = dame_fragmentos_de(tabla);

            foreach (DataRow fragmento in fragmentos.Rows)
            {
                Sitio         sitio         = dame_sitio_del_fragmento(fragmento);
                List <String> columnas      = new List <string>();
                String        columna_clave = "";

                sitio.dame_columnas_de(fragmento[NOM].ToString(), columnas);
                columna_clave = columnas[0];
                sitio.elimina(fragmento[NOM].ToString(), columna_clave, clave);
            }

            llena_superGrid_de(tabla);
        }
コード例 #12
0
        public void modificacion(String tabla, String columna_clave, String clave, DataRow valores)
        {
            DataTable fragmentos = dame_fragmentos_de(tabla);

            foreach (DataRow fragmento in fragmentos.Rows)
            {
                Sitio         sitio        = dame_sitio_del_fragmento(fragmento);
                List <String> columnas_val = new List <string>();

                if (fragmento[TIPO].ToString() == "V")
                {
                    List <String> columnas_FV = enlista_columnas_FV(fragmento[NOM].ToString());
                    foreach (String atributo in columnas_FV)
                    {
                        if (atributo != columna_clave)
                        {
                            columnas_val.Add(atributo + "=" + valores[atributo].ToString());
                        }
                    }
                }
                else
                {
                    int n_columnas = valores.Table.Columns.Count;
                    for (int i = 0; i < n_columnas; i++)
                    {
                        String nom_col = valores.Table.Columns[i].ColumnName;
                        columnas_val.Add(nom_col + "=" + valores[i].ToString());
                    }
                }

                if (columnas_val.Count != 0)
                {
                    sitio.modifica(fragmento[NOM].ToString(), columna_clave, clave, columnas_val);
                }
                else
                {
                    MessageBox.Show("columnas_val Count = 0");
                }
            }

            llena_superGrid_de(tabla);
        }
コード例 #13
0
        } //agregar las demas grids

        private void inserta_dependientes(DataTable fragmentos, String columnas, String clave, String valores)
        {
            foreach (DataRow fragmento in fragmentos.Rows)
            {
                Sitio sitio = dame_sitio_del_fragmento(fragmento);
                switch (fragmento[TIPO].ToString())
                {
                case "N":
                case "R":
                    sitio.inserta(fragmento[NOM].ToString(), "", clave, valores);
                    break;

                case "H":
                    inserta_fragmento_H(sitio, fragmento, clave, valores);
                    break;

                case "V":
                    inserta_fragmento_V(sitio, fragmento, columnas, clave, valores);
                    break;
                }
            }
        }
コード例 #14
0
        private void inserta_fragmento_V(Sitio sitio, DataRow fragmento, String columnas, String clave, String valores)
        {
            List<String> columnas_FV = enlista_columnas_FV(fragmento[NOM].ToString());
            List<String> valores_entrada = enlista_valores(valores,true);
            List<String> columnas_completas = enlista_valores(columnas,true);
            String cad_col = formatea_cadena_columnas(columnas_FV);
            String cad_val = "";

            clave = clave.Remove(clave.Length - 1, 1);
            valores_entrada.Insert(0, clave);

            for (int i = columnas_FV.Count-1; i >= 0; i--)
                if(!columnas_completas.Contains(columnas_FV[i]))
                    columnas_completas.Insert(0,columnas_FV[i]);

            cad_val = empareja_datos_FV(columnas_completas, columnas_FV, valores_entrada);

            if (columnas_FV.Count == enlista_valores(cad_val,true).Count)
                sitio.inserta(fragmento[NOM].ToString(), cad_col, "", cad_val);
            else
                MessageBox.Show("Error al emparejar columnas con valores!");
        }
コード例 #15
0
        private void inserta_fragmento_H(Sitio sitio, DataRow fragmento, String clave, String valores)
        {
            String condicion = fragmento[COND].ToString();
            String dependencia = fragmento[DEP].ToString();
            List<String> items = dame_elementos_condicion(condicion);
            int PIZQ = 0, OPERADOR = 1, PDER = 2;
            Boolean cumple_condicion = false;
            String valor_entrada;
            List<String> columnas = new List<string>();

            sitio.dame_columnas_de(fragmento[NOM].ToString(), columnas);
            valor_entrada = dame_valor_entrada(items[PIZQ], columnas, enlista_valores(valores,false));

            if (dependencia == "")
                cumple_condicion = evalua_condicion(items[OPERADOR], valor_entrada, items[PDER]);
            else
            {
                List<String> col_dep = new List<string>();
                sitio.dame_columnas_de(dependencia, col_dep);
                cumple_condicion = valida_dependencia(sitio, dependencia, col_dep[0], valor_entrada);
            }

            if (cumple_condicion)
                sitio.inserta(fragmento[NOM].ToString(), "", clave, valores);
            else
            {
                //MessageBox.Show("No se realizó la inserción en " + fragmento[NOM].ToString());
            }
        }
コード例 #16
0
 private void llena_superGrid(Sitio sitio,int grid_indx)
 {
     sitio.llena_superGrid_con(consultas[grid_indx], grids[grid_indx]);
 }
コード例 #17
0
        private Boolean valida_dependencia(Sitio sitio, String dependencia, String columna_pk, String valor_entrada)
        {
            DataSet data_set = new DataSet();
            String consulta = "SELECT * FROM " + dependencia + " WHERE " + columna_pk + "=" + valor_entrada;
            sitio.dame_dataset_de(consulta, data_set);

            if (data_set.Tables[0].Rows.Count > 0)
                return true;

            return false;
        }
コード例 #18
0
        } //agregar consultas de las demas grids

        private void llena_superGrid(Sitio sitio, int grid_indx)
        {
            sitio.llena_superGrid_con(consultas[grid_indx], grids[grid_indx]);
        } //