/// <summary> /// Da de alta un atributo de una entidad /// </summary> /// <param name="nomEnt">Entidad en la que se va a crear el atributo</param> /// <param name="nombreAtr">nombre del atributo</param> /// <param name="tipo">tipo del atributo</param> /// <returns></returns> public bool altaAtributo(Entidad ent, Atributo atr, bool orden) { bool band = false; // if (this.activeUser.permisos[1] == true) // { if (this.buscaAtributo(ent, atr.nombre) == null) { if (orden) { band = this.insertaAtrPrincipio(ent, atr); } else { band = this.insertaAtrFinal(ent, atr); } } else { System.Windows.Forms.MessageBox.Show("Ya existe un atributo con el mismo nombre"); } /* } else { System.Windows.Forms.MessageBox.Show("No tienes permiso para altas"); } */ return band; }
public override bool altaAtributo(string nomEnt, Atributo atr, bool orden) { bool band = false; Entidad aEnt; aEnt = this.buscaEntidad(nomEnt); this.altaAtributo(aEnt, atr, orden); return band; }
private void cbEnt_SelectedIndexChanged(object sender, EventArgs e) { this.selectedEnt = this.f.org.buscaEntidad(this.cbEnt.SelectedItem.ToString()); selectedEnt.agregaAtributos(this.f.org.listaAtributos(selectedEnt.nombre)); selectedAtr = selectedEnt.listAtr.Find(a => a.llave.Equals(Atributo.KP)); dgvConsulta.Rows.Clear(); dgvConsulta.Columns.Clear(); cbRel.Items.Clear(); foreach (Relacion rel in selectedAtr.listRel) { cbRel.Items.Add(rel.nomEnt); } if (cbRel.Items.Count > 0) { cbRel.SelectedIndex = 0; } }
public virtual bool reescribeAtributo(Atributo atr, long pos, string path) { return false; }
public virtual long insertaAtributo(Atributo atr) { return -1; }
public void agregaAtributo(Atributo atr) { this.listAtr.Add(atr); }
private bool validaDato(Atributo atr,string dato) { bool band = true; int entero; float flotante; char car; switch (atr.tipo) { case Atributo.entero: band = int.TryParse(dato, out entero); break; case Atributo.flotante: band = float.TryParse(dato, out flotante); break; case Atributo.caracter: band = char.TryParse(dato, out car); if (band) { car = car.ToString().ToUpper()[0]; } break; default: band = true; break; } return band; }
private bool buscaRelacion(Atributo atr,string datoComp) { Entidad entAux; bool band = false; foreach (Relacion rel in atr.listRel) { entAux = this.f.org.buscaEntidad(rel.nomEnt); entAux.agregaAtributos(this.f.org.listaAtributos(entAux.nombre, Archivo.path + '\\' + this.f.org.tipo + '\\' + rel.bd)); if (this.f.org.buscaBloque(entAux, entAux.listAtr, atr.nombre, datoComp) != null) { band = true; break; } } return band; }
public override long insertaAtributo(Atributo atr) { long pos = 0; try { using (FileStream fs = new FileStream(base.ruta, FileMode.Append)) { pos = fs.Position; using (BinaryWriter bw = new BinaryWriter(fs)) { bw.Write(atr.llave); bw.Write(atr.nombre); bw.Write(atr.tipo); bw.Write(atr.campo); bw.Write(atr.comentarioCompleto); bw.Write(atr.sigAtr); bw.Write(atr.sigRel); } } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); pos = 0; } return pos; }
/// <summary> /// Inserta al principio y liga el atributo /// </summary> /// <param name="ent"> Entidad que va a tener el atributo</param> /// <param name="atr"> atributo a insertar</param> /// <param name="atr"> Ruta del archivo</param> /// <returns>true si se insertó correctamente</returns> private bool insertaAtrPrincipio(Entidad ent, Atributo atr) { bool band = false; long posAtr, posEnt; atr.sigAtr = (ent as EntSecuencial).apAtr; posAtr = this.insertaAtributo(atr); (ent as EntSecuencial).apAtr = posAtr; posEnt = base.buscaPosEntidad(ent.nombre); if (posEnt != -1) { band = this.reescribeEntidad(ent, posEnt); } return band; }
/// <summary> /// Inserta al final y liga el atributo /// </summary> /// <param name="ent">Entidad que va a tener el atributo</param> /// <param name="atr"> atributo a insertar</param> /// <param name="atr"> Ruta del archivo</param> /// <returns>true si se insertó correctamente</returns> private bool insertaAtrFinal(Entidad ent, Atributo atr) { bool band = false; long posAtr, posIt, posEnt; Atributo aAtr; posAtr = this.insertaAtributo(atr); if (posAtr != 0) { band = true; } if ((ent as EntSecuencial).apAtr == -1) { (ent as EntSecuencial).apAtr = posAtr; posEnt = this.buscaPosEntidad(ent.nombre); if (posEnt != -1) { band = this.reescribeEntidad(ent, posEnt); } } else { posIt = (ent as EntSecuencial).apAtr; do { aAtr = this.leeAtributo(posIt); if (aAtr.sigAtr != -1) { posIt = aAtr.sigAtr; } } while (aAtr.sigAtr != -1); aAtr.sigAtr = posAtr; band = this.reescribeAtributo(aAtr, posIt); } return band; }
public override bool reescribeAtributo(Atributo atr, long pos,string path) { bool band = true; try { using (FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Write)) { fs.Seek(pos, SeekOrigin.Begin); using (BinaryWriter bw = new BinaryWriter(fs)) { bw.Write(atr.llave); bw.Write(atr.nombre); bw.Write(atr.tipo); bw.Write(atr.campo); bw.Write(atr.comentarioCompleto); bw.Write(atr.sigAtr); bw.Write(atr.sigRel); } } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); band = false; } return band; }
public void recuperaRelaciones(Atributo atr) { long apRel = atr.sigRel; Relacion rel; while (apRel != -1) { rel = this.leeRelacion(apRel); atr.agregaRelacion(rel); apRel = rel.apSigRef; } }
public override Atributo leeAtributo(long pos,string path) { Atributo aAtr = new Atributo(); try { using (FileStream fs = new FileStream(path, FileMode.Open)) { fs.Seek(pos, SeekOrigin.Begin); using (BinaryReader br = new BinaryReader(fs)) { aAtr.llave = br.ReadChar(); aAtr.nombre = br.ReadString(); aAtr.tipo = br.ReadString(); aAtr.campo = br.ReadString(); aAtr.comentario = br.ReadString(); aAtr.sigAtr = br.ReadInt64(); aAtr.sigRel = br.ReadInt64(); } } } catch (Exception ex) { System.Windows.Forms.MessageBox.Show(ex.Message); } this.recuperaRelaciones(aAtr); return aAtr; }
public virtual bool altaAtributo(string nomEnt, Atributo atr, bool orden) { return false; }
public List<Atributo> atributos() { List<Atributo> listAtr = new List<Atributo>(); Atributo aAtr; try { foreach (DataGridViewRow row in ((DataGridView)base.controlPrincipal).Rows) { if (row.Cells["ColumnName"].Value != null) { aAtr = new Atributo(); aAtr.llave = row.Cells[0].Value.ToString()=="KP"? Atributo.KP :Atributo.None; aAtr.nombre = row.Cells[1].Value.ToString(); aAtr.tipo = row.Cells[2].Value.ToString(); aAtr.campo = row.Cells[3].Value.ToString(); if (row.Cells["ColumnComment"].Value != null) { aAtr.comentario = row.Cells[4].Value.ToString(); } else { aAtr.comentario = ""; } listAtr.Add(aAtr); } } } catch(NullReferenceException x) { MessageBox.Show(x.Message); } return listAtr; }
public virtual bool altaRelacionEnKF(string nomEnt, Atributo atr, Relacion rel) { return false; }
/// <summary> /// guarda una relacion para un atributo que es KP /// </summary> /// <param name="nomEnt"></param> /// <param name="atr">atributo que es KP</param> /// <param name="rel">relacion a guardar</param> /// <returns>true si se guardo false si hubo error</returns> public override bool altaRelacionEnKP(string nomEnt,Atributo atr,Relacion rel) { bool band = false; long pos, posAtr; // if (this.activeUser.permisos[1] == true) // { rel.apSigRef = atr.sigRel; pos = this.insertaRelacion(rel); if (pos != 0) { atr.sigRel = pos; posAtr = this.buscaPosAtributo(nomEnt, atr.nombre, Archivo.path +'\\'+ base.tipo + '\\' + rel.bd ); band = this.reescribeAtributo(atr, posAtr,Archivo.path +'\\'+ base.tipo + '\\' + rel.bd); } else { System.Windows.Forms.MessageBox.Show("Error al guardar relacion"); } /* } else { System.Windows.Forms.MessageBox.Show("No tienes permiso para altas"); } */ return band; }