public void modDatCascada(List<string> dats,User user,Diccionario dic,List<string> regV) { string clavePrim="",claveOldPrim=""; List<string> registroViejo = getRegMod(regV); for (int i = 0; i < atributos.Count; i++) if (atributos[i].TClave == 1) { clavePrim = dats[i]; claveOldPrim = registroViejo[i]; } //Modifica la bitacora modDatos(dats, user,regV); //Algoritmo para buscar y modificar en casacada for(int i =0;i<dic.Entidades.Count;i++) { for(int j=0;j<dic.Entidades[i].atributos.Count;j++) { if(dic.Entidades[i].atributos[j].ApuntaPrim==nombre) { for(int k=0;k<dic.Entidades[i].listaRegistros.Count;k++) { if(dic.Entidades[i].listaRegistros[k][j]==claveOldPrim) { dic.Entidades[i].listaRegistros[k][j] = clavePrim; } } } } } }
/// <summary> /// Funcion que permite inicializar la pantalla de acuerdo a si es alta, baja o modificacion /// </summary> private void inicializaFuncion() { this.Text = funcion; foreach(Diccionario i in manejador.Bases) { if (usuario.BaseDatos == i.NomDic) { comboBox2.Items.Add(usuario.BaseDatos); baseActual = i; } } switch(funcion) { case "altas": buttonAddD.Visible = true; buttonDelD.Visible = false; buttonModD.Visible = false; break; case "bajas": buttonAddD.Visible = false; buttonDelD.Visible = true; buttonModD.Visible = false; break; case "mod": buttonAddD.Visible = false; buttonDelD.Visible = false; buttonModD.Visible = true; break; } }
public Organizacion(Diccionario dic,string ext) { string nombre; diccionario = dic; nombre=diccionario.NomDic.Substring(0,diccionario.NomDic.Length-3); archivo = new Archivo(nombre,ext); }
public Form1(Manager man) { InitializeComponent(); modE = false; delE = false; delA = false; modA = false; org = false; manejador = man; NDic nuevo = new NDic(); if (nuevo.ShowDialog() == DialogResult.OK) { this.Text = nuevo.NombreDic; inicializaNuevo(); diccionario = new Diccionario(this.Text); manejador.Bases.Add(diccionario); } else { inicializaTodo(); } foreach(Diccionario i in manejador.Bases) { comboBD.Items.Add(i.NomDic); } }
public Consultas(Manager man,string baseDatos) { InitializeComponent(); manejador = man; baseActual = manejador.getBDbyName(baseDatos); llenaComboTablas(); }
private void nuevoDiccionarioToolStripMenuItem_Click(object sender, EventArgs e) { NDic nuevo = new NDic(); if (nuevo.ShowDialog() == DialogResult.OK) { this.Text = nuevo.NombreDic; inicializaNuevo(); diccionario = new Diccionario(this.Text); } }
public Multillaves(Diccionario dic) { InitializeComponent(); diccionario = dic; loadComboEnts(); nombre = diccionario.NomDic.Substring(0, diccionario.NomDic.Length - 3); modD = false; delD = false; multilistas = new Multilistas(nombre); }
public secuencial(Diccionario dicc) { InitializeComponent(); diccionario = dicc; organizacion = new Organizacion(diccionario, "sec"); loadComboEnts(); dats = new List<string>(); DelD = false; modD = false; }
private void abriToolStripMenuItem_Click(object sender, EventArgs e) { if (openFileDialog1.ShowDialog() == DialogResult.OK) { this.Text = Path.GetFileName(openFileDialog1.FileName); diccionario = new Diccionario(this.Text); //Inicializa campos visibles y activados iniciaAbrir(); } }
/// <summary> /// Funcion que es llamada desde la form para insertar un bloque /// </summary> /// <param name="ent"></param> /// <param name="dats"></param> /// <param name="diccionario"></param> /// <returns></returns> public bool insertaBloque(Entidad ent,List<string> dats,Diccionario diccionario) { bool res = false; long dirBloqNuevo = 0; //Primero escribe el bloque en el archivo dirBloqNuevo = escribeBloqueMulti(ent, dats); for (int i = 0; i < ent.Atributos.Count; i++) //Inserta ordenado(atributo,dato,dirBloque) insertaOrdenado(ent, ent.Atributos[i], dats[i], dirBloqNuevo, i, ent.Atributos[i].Tipo); return res; }
public Indexada(Diccionario dicc) { InitializeComponent(); this.Text = "Secuencial Indexada"; diccionario = dicc; loadComboEnts(); dats = new List<string>(); tablaIndices = new List<Indice>(); string nombre = diccionario.NomDic.Substring(0, diccionario.NomDic.Length-3); indexada = new OrgIndex(nombre); modD = false; DelD = false; }
/// <summary> /// Sobrecarga de constructor para modificaciones /// </summary> /// <param name="atri"></param> /// <param name="dato"></param> /// <param name="mod"></param> /// <param name="baseAc"></param> /// <param name="ent"></param> public GetDatos(List<Atributo> atri,List<string> dat,bool mod,Diccionario baseAc,Entidad ent) { InitializeComponent(); atributos = atri; diccionario = baseAc; noSecu = false; viejos = dat; modificando = mod; dato = new List<string>(); cambioPrim = false; entidad = ent; dataGridView1.ColumnCount = ent.Atributos.Count - 6; for (int i = 0; i < ent.Atributos.Count - 6; i++) { if (ent.Atributos[i].TClave == 2) { DataGridViewComboBoxColumn combo = new DataGridViewComboBoxColumn(); List<String> itemCodeList = llenaCombo(ent.Atributos[i].ApuntaPrim, diccionario); if (itemCodeList.Count == 0) { MessageBox.Show("Error aun no existen datos para llenar la clave externa", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); dato.Add("error"); this.Close(); } combo.DataSource = itemCodeList; combo.HeaderText = ent.Atributos[i].Nombre + "(" + ent.Atributos[i].Tipo + ")"; combo.Name = ent.Atributos[i].Nombre + "(" + ent.Atributos[i].Tipo + ")"; combo.Width = 100; dataGridView1.Columns.Insert(0, combo); dataGridView1.ColumnCount--; } else { dataGridView1.Columns[i].Name = ent.Atributos[i].Nombre + "(" + ent.Atributos[i].Tipo + ")"; dataGridView1.Rows[0].Cells[i].Value = viejos[i]; } } }
public void eliminaRegLog(List<string> regViejo, Diccionario baseDatos,User user) { eliminaCascadaLog(baseDatos, nombre, regViejo,user); for (int i = 0; i < listaRegistros.Count; i++) for (int j = 0; j < atributos.Count - 6; j++) if (atributos[j].TClave == 1) if (regViejo[j] == listaRegistros[i][j]) { listaRegistros[i][listaRegistros[i].Count - 5] = DateTime.Today.ToShortDateString(); listaRegistros[i][listaRegistros[i].Count - 2] = user.Nombre; } }
private void comboBD_SelectedValueChanged(object sender, EventArgs e) { foreach(Diccionario i in manejador.Bases) { if(i.NomDic==comboBD.Text) { diccionario = i; llenaDataE(); llenaDataA(); inicializaTodo(); } } }
/// <summary> /// Constructor para ? /// </summary> /// <param name="atri"></param> /// <param name="dicc"></param> /// <param name="arch"></param> /// <param name="dato"></param> /// <param name="mod"></param> public GetDatos(Atributo atri, Diccionario dicc, Archivo arch,string dato,bool mod) { InitializeComponent(); atributo = atri; diccionario = dicc; archivo = arch; noSecu = true; modificando = false; cambioPrim = false; viejo = dato; modificando = mod; /* textCaptura.Text = dato; groupCaptura.Text = atributo.Nombre + "(" + atributo.Tipo + ")"; if (atributo.TClave == 2) { textCaptura.Visible = false; comboExternas.Visible = true; /*Llena el combo con los datos de clave primaria if (!llenaComboIndexada(atributo.ApuntaPrim)) { MessageBox.Show("Error aun no existen datos para llenar la clave externa", "Error", MessageBoxButtons.OK, MessageBoxIcon.Error); dato = "error"; this.Close(); } }*/ }
private void eliminaCascadaLog(Diccionario baseDatos, string entidad, List<string> datos,User user) { List<string> aux = new List<string>(); Entidad enti = baseDatos.getEntByName(entidad); foreach (Entidad i in baseDatos.Entidades) if (i.nombre != entidad) for (int j = 0; j < i.Atributos.Count - 6; j++) if (i.atributos[j].ApuntaPrim == entidad) for (int l = 0; l < enti.atributos.Count; l++) if (enti.atributos[l].TClave == 1) for (int k = 0; k < enti.ListaRegistros.Count; k++) if (datos[l] == i.listaRegistros[k][j]) { i.ListaRegistros[k][i.ListaRegistros[k].Count - 5] = DateTime.Today.ToShortDateString(); i.ListaRegistros[k][i.ListaRegistros[k].Count - 2] = user.Nombre; eliminaCascadaLog(baseDatos, i.nombre, i.ListaRegistros[k], user); return; } }
private void eliminaCascada(Diccionario baseDatos,string entidad,List<string> datos) { List<string> aux = new List<string>(); Entidad enti = baseDatos.getEntByName(entidad); foreach (Entidad i in baseDatos.Entidades) if (i.nombre != entidad) for (int j = 0; j < i.Atributos.Count-6; j++) if (i.atributos[j].ApuntaPrim == entidad) for(int l=0;l<enti.atributos.Count;l++) if(enti.atributos[l].TClave==1) for (int k=0;k<enti.ListaRegistros.Count;k++) if (datos[l] == i.listaRegistros[k][j]) { aux = i.listaRegistros[k]; i.ListaRegistros.Remove(i.listaRegistros[k]); eliminaCascada(baseDatos, i.nombre, aux); return; } }
private List<string> llenaCombo(string dirEnt,Diccionario dicc) { List<string> listaDatos = new List<string>(); //Obtener la entidad a la que apunta la direccion Entidad ent = dicc.getEntByName(dirEnt); foreach(List<string> i in ent.ListaRegistros) for(int j=0;j<ent.Atributos.Count;j++) if(ent.Atributos[j].TClave==1) listaDatos.Add(i[j]); return listaDatos; }
public void eliminaReg(List<string> regViejo, Diccionario baseDatos) { eliminaCascada(baseDatos, nombre, regViejo); for (int i = 0; i < listaRegistros.Count; i++) for (int j = 0; j < atributos.Count-6; j++) if (atributos[j].TClave == 1) if (regViejo[j] == listaRegistros[i][j]) listaRegistros.RemoveAt(i); }