Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > OOP
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 16-05-2014
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
ayuda comprobando campos

Estimados tengo un problemilla con este codigo al comprobar campos, necesito comprobar primero si estan vacio campos y luego que si registro ya existe en listado, el problema que tengo es que al recorrer listview esta cuando esta vacia no hace nada pero si tiene registro funciona agregando registro pero no cancela al ya existir. agrego codigo
Código Delphi [-]
procedure TForm2.BitBtn11Click(Sender: TObject);
var
cItem: TListItem;
id,man: string;
i: integer;
begin
for i := 0 to Listview5.Items.Count -1 do
begin
if (dblookupcombobox1.KeyValue = NULL) or (edit11.Text='') or (edit12.Text='') then
MessageDlg('complete campos', mtWarning, [mbOk],0)
else
if Listview5.Items[i].Caption = dblookupcombobox1.KeyValue  then
MessageDlg('ya existe elemento', mtWarning, [mbOk],0) else
begin
  man:= uman.Text;
  Zquery1.sql.text := 'insert into MP values (:area,:id,:elemento,:frecuencia,:tipo,:umant,mant)';
  ZQuery1.ParamByName('area').AsString := label8.Caption;
  ZQuery1.ParamByName('id').AsString := dblookupcombobox1.KeyValue;
  ZQuery1.ParamByName('elemento').AsString := dblookupcombobox1.Text;
  ZQuery1.ParamByName('frecuencia').AsString := edit11.Text;
  ZQuery1.ParamByName('tipo').AsString := edit12.Text;
  ZQuery1.ParamByName('umant').AsString := man;
  ZQuery1.ParamByName('pmant').AsDate := Datetimepicker4.Date;
  ZQuery1.ExecSQL;
  zQuery1.SQL.Clear;
  Zquery1.Close;
  Listview5.Clear;
  Zquery1.SQL.Text := 'SELECT * From MP where area = :area';
  zQuery1.ParamByName('area').AsString:= label8.Caption;
  zquery1.Open;
while not zquery1.Eof do
begin
cItem := Listview5.Items.Add;
cItem.Caption := zQuery1.fieldbyname('id').AsString;
cItem.SubItems.Add(zQuery1.fieldbyname('elemento').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('frecuencia').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('tipo').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('umant').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('pmant').AsString);
zquery1.next;
end;
edit11.Clear;edit12.Clear;
uman.Clear;
uman.Add('no registra');
Datetimepicker3.Format:= ' ';
end;
end;
end;


gracias!
Responder Con Cita
  #2  
Antiguo 03-06-2014
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
me pueden ayudar porfavor tengo esto pero me aparece un error de access violation
Código Delphi [-]
procedure TForm2.BitBtn11Click(Sender: TObject);
var
cItem: TListItem;
id,man: string;
i: integer;
begin
if (dblookupcombobox1.KeyValue = NULL) or (edit11.Text='') or (edit12.Text='') then
begin
MessageDlg('complete campos', mtWarning, [mbOk],0);
Abort;
end
else
if ListView5.Items.Count > 0 then
for i:= 0 to Listview5.Items.Count -1 do
begin
if Pos('cadena', Listview5.Items[i].Caption) <> 0 then
begin
MessageDlg('ya existe elemento', mtWarning, [mbCancel],0);
Abort;
end else
begin
  man:= uman.Text;
  Zquery1.sql.text := 'insert into MP values (:area,:id,:elemento,:frecuencia,:tipo,:umant,mant)';
  ZQuery1.ParamByName('area').AsString := label8.Caption;
  ZQuery1.ParamByName('id').AsString := dblookupcombobox1.KeyValue;
  ZQuery1.ParamByName('elemento').AsString := dblookupcombobox1.Text;
  ZQuery1.ParamByName('frecuencia').AsString := edit11.Text;
  ZQuery1.ParamByName('tipo').AsString := edit12.Text;
  ZQuery1.ParamByName('umant').AsString := man;
  ZQuery1.ParamByName('pmant').AsDate := Datetimepicker4.Date;
  ZQuery1.ExecSQL;
  zQuery1.SQL.Clear;
  Zquery1.Close;
  Listview5.Clear;
end end else
begin
  man:= uman.Text;
  Zquery1.sql.text := 'insert into MP values (:area,:id,:elemento,:frecuencia,:tipo,:umant,mant)';
  ZQuery1.ParamByName('area').AsString := label8.Caption;
  ZQuery1.ParamByName('id').AsString := dblookupcombobox1.KeyValue;
  ZQuery1.ParamByName('elemento').AsString := dblookupcombobox1.Text;
  ZQuery1.ParamByName('frecuencia').AsString := edit11.Text;
  ZQuery1.ParamByName('tipo').AsString := edit12.Text;
  ZQuery1.ParamByName('umant').AsString := man;
  ZQuery1.ParamByName('pmant').AsDate := Datetimepicker4.Date;
  ZQuery1.ExecSQL;
  zQuery1.SQL.Clear;
  Zquery1.Close;
  Listview5.Clear;
end;

  Zquery1.SQL.Text := 'SELECT * From MP where area = :area';
  zQuery1.ParamByName('area').AsString:= label8.Caption;
  zquery1.Open;
while not zquery1.Eof do
begin
cItem := Listview5.Items.Add;
cItem.Caption := zQuery1.fieldbyname('id').AsString;
cItem.SubItems.Add(zQuery1.fieldbyname('elemento').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('frecuencia').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('tipo').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('umant').AsString);
cItem.SubItems.Add(zQuery1.fieldbyname('pmant').AsString);
zquery1.next;
end;
edit11.Clear;edit12.Clear;
uman.Clear;
uman.Add('no registra');
Datetimepicker3.Format:= ' ';
end;
Responder Con Cita
  #3  
Antiguo 03-06-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola jonydread.

Sinceramente habría sido de mucha utilidad que hubieras explicado con palabras que deseabas que hiciera la rutina.

Es difícil interpretar correctamente el código si no se sabe cuál es su finalidad, sin contar que se ignora el tipo y cometido de de los componentes y debido a todo eso, por que se lanza la excepción.

De todas formas veo que llevas dos semanas con esto, así que de acuerdo a lo que entendí, yo trataría de clarificar un poco encapsulando algunas acciones:
Código Delphi [-]
function TForm1.ExistsInCaption(aCaption: TCaption): Boolean;
var
  i: Integer;
begin
  Result:= False;
  for i:= 0 to ListView5.Items.Count-1 do
    if Pos(aCaption, ListView5.Items[i].Caption) <> 0 then
    begin
      Result:= True;
      Exit;
    end;
end;

procedure TForm1.Insertar;
begin
  zquery1.sql.text:= 'insert into MP values(:id, :area, :elemento, :frecuencia, :tipo, :umant, mant)';
  zQuery1.ParamByName('id').AsString:= dblookupcombobox1.KeyValue;
  zQuery1.ParamByName('area').AsString:= label8.Caption;
  zQuery1.ParamByName('elemento').AsString:= dblookupcombobox1.Text;
  zQuery1.ParamByName('frecuencia').AsString:= edit11.Text;
  zQuery1.ParamByName('tipo').AsString:= edit12.Text;
  zQuery1.ParamByName('umant').AsString:= uman.Text;
  zQuery1.ParamByName('pmant').AsDate:= Datetimepicker4.Date;
  zQuery1.ExecSQL;
end;

procedure TForm1.BitBtn1Click(Sender: TObject);
var
  cItem: TListItem;
begin
  if (dblookupcombobox1.KeyValue = NULL) or (edit11.Text='') or (edit12.Text='') then
  begin
    MessageDlg('complete campos', mtWarning, [mbOk],0);
    Exit;
  end;

  if not ExistsInCaption('cadena') then
    Insertar
  else
  begin
    MessageDlg('ya existe elemento', mtWarning, [mbCancel], 0);
    Exit;
  end;

  zquery1.SQL.Text := 'SELECT * From MP where area = :area';
  zQuery1.ParamByName('area').AsString:= label8.Caption;
  zquery1.Open;
  while not zquery1.Eof do
  begin
    cItem := Listview5.Items.Add;
    cItem.Caption:= zQuery1.fieldbyname('id').AsString;
    cItem.SubItems.Add(zQuery1.fieldbyname('elemento').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('frecuencia').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('tipo').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('umant').AsString);
    cItem.SubItems.Add(zQuery1.fieldbyname('pmant').AsString);
    zquery1.next;
  end;
  edit11.Clear;edit12.Clear;
  uman.Clear;
  uman.Lines.Add('no registra');
  Datetimepicker3.Format:= ' ';
end;
Te aclaro que sólo pretendo darte una pauta, no probé el código e ignoro si funciona tál como esta, pero espero que te sirva como punto de partida para encontrar la solución.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 05-06-2014
jonydread jonydread is offline
Miembro
NULL
 
Registrado: nov 2011
Posts: 157
Poder: 13
jonydread Va por buen camino
Exelente muchas gracias ya me daba por vencido.


Saludos!

Última edición por Casimiro Notevi fecha: 05-06-2014 a las 09:58:10.
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Ayuda con campos obligatorios daragor Lazarus, FreePascal, Kylix, etc. 21 07-10-2012 21:30:26
Recorrer Registros de dos Tablas comprobando STOCK Lenny Varios 1 18-01-2011 18:25:19
Campos Fechas, ayuda!!! shoulder SQL 7 13-08-2008 15:43:57
Ayuda Con Campos Auto_increment drakkon SQL 0 26-06-2007 20:25:57
ayuda con campos blob squenda Conexión con bases de datos 10 08-04-2004 07:12:48


La franja horaria es GMT +2. Ahora son las 04:19:25.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi