Ajuda com Listview
Colegas estou usando um dbgrid é um listview
No cadastro de entrada de material
Os produtos ficam no grid e ao clicar no mesmo “jogo” no listview
Até ai tudo bem só que tem alguns erros que não consigo tirar:
Não deixar que seja inserida o mesmo produto duas vezes
Não sei como verificar a cada item inserido se o mesmo já existe no
Listview.
Na coluna quantidade o valor não pode ser zero também não sei
Como verificar isso.
Para inserir uso esse código :
procedure TfrmMovEntrada.AdicionarItem;
var
ListItem: TListItem; // Variável para guarda os itens do Listview
item : string;
begin
// Adicionamos um Item ao ListView
ListItem := ListView1.Items.Add;
// Adicionamos dados a Coluna Código do Grupo
ListItem.Caption := qryEstCons.Fieldbyname(´cd_grupo´).AsString;
// Adicionamos dados a Coluna Nome do Grupo
ListItem.SubItems.Add(Trim(qryEstCons.Fieldbyname(´de_grupo´).AsString));
// Adicionamos dados a Coluna Código do Produto
ListItem.SubItems.Add(qryEstCons.Fieldbyname(´cd_produto´).AsString);
// Adicionamos dados a Coluna Nome do Produto
ListItem.SubItems.Add(Trim(qryEstCons.Fieldbyname(´de_produto´).AsString));
// Adicionamos dados a Coluna Quantidade do Produto
item:= (InputBox(´SCA´,´Informe a quantidade´,´0´));
if item = ´0´ then
begin
Application.MessageBox(´Informe uma quantidade correta´, ´Atenção´, MB_OK +
MB_ICONINFORMATION);
item:= (InputBox(´SCA´,´Informe a quantidade´,´0´));
end
else
begin
ListItem.SubItems.Add(item);
// Adicionamos dados a Coluna Quantidade do Produto
ListItem.SubItems.Add(Trim(qryEstCons.Fieldbyname(´vl_custo´).AsString));
end;
end;
Alguém pode me ajudar.
No cadastro de entrada de material
Os produtos ficam no grid e ao clicar no mesmo “jogo” no listview
Até ai tudo bem só que tem alguns erros que não consigo tirar:
Não deixar que seja inserida o mesmo produto duas vezes
Não sei como verificar a cada item inserido se o mesmo já existe no
Listview.
Na coluna quantidade o valor não pode ser zero também não sei
Como verificar isso.
Para inserir uso esse código :
procedure TfrmMovEntrada.AdicionarItem;
var
ListItem: TListItem; // Variável para guarda os itens do Listview
item : string;
begin
// Adicionamos um Item ao ListView
ListItem := ListView1.Items.Add;
// Adicionamos dados a Coluna Código do Grupo
ListItem.Caption := qryEstCons.Fieldbyname(´cd_grupo´).AsString;
// Adicionamos dados a Coluna Nome do Grupo
ListItem.SubItems.Add(Trim(qryEstCons.Fieldbyname(´de_grupo´).AsString));
// Adicionamos dados a Coluna Código do Produto
ListItem.SubItems.Add(qryEstCons.Fieldbyname(´cd_produto´).AsString);
// Adicionamos dados a Coluna Nome do Produto
ListItem.SubItems.Add(Trim(qryEstCons.Fieldbyname(´de_produto´).AsString));
// Adicionamos dados a Coluna Quantidade do Produto
item:= (InputBox(´SCA´,´Informe a quantidade´,´0´));
if item = ´0´ then
begin
Application.MessageBox(´Informe uma quantidade correta´, ´Atenção´, MB_OK +
MB_ICONINFORMATION);
item:= (InputBox(´SCA´,´Informe a quantidade´,´0´));
end
else
begin
ListItem.SubItems.Add(item);
// Adicionamos dados a Coluna Quantidade do Produto
ListItem.SubItems.Add(Trim(qryEstCons.Fieldbyname(´vl_custo´).AsString));
end;
end;
Alguém pode me ajudar.
Mssilva
Curtidas 0
Respostas
Mssilva
18/07/2007
Colegas o erro da quantidade com zero já consegui resolver.
Só falta pesquisar se o item inserido do dbgrid já está no listview
São 5 Subitens que tenho em cada linha do listview eu preciso consultar
Só o 1º e 3º alguém pode me ajudar com essa dúvida?
Só falta pesquisar se o item inserido do dbgrid já está no listview
São 5 Subitens que tenho em cada linha do listview eu preciso consultar
Só o 1º e 3º alguém pode me ajudar com essa dúvida?
GOSTEI 0
Adriano Santos
18/07/2007
procedure TForm1.Button1Click(Sender: TObject); var ListItem: TListItem; function ExiteItem(ACodigo: string): Boolean; var I : Integer; begin for I := 0 to ListView1.Items.Count-1 do begin if ListView1.Items[I].Caption = ACodigo then begin Result := True; Break; end; end; end; begin if not ExiteItem(Edit1.Text) or (ListView1.Items.Count = 0) then begin ListItem := ListView1.Items.Add; ListItem.Caption := Edit1.Text; ListItem.SubItems.Add(´TESTE1´); end else MessageDlg(´Item já existe.´, mtInformation, [mbOk], 0); end;
GOSTEI 0
Vitor Alcantara
18/07/2007
Você também pode utilizar o método FindCaption.
Ex:
function ItemExiste(Caption:String);
begin
ListView1.ItemIndex := LvPDVPro.FindCaption(0,Caption.Value ,true,true,true).Index;
Result := ListView1.ItemIndex >= 0;
if Result then
ShowMessage(´O item já existe´);
end;
Ex:
function ItemExiste(Caption:String);
begin
ListView1.ItemIndex := LvPDVPro.FindCaption(0,Caption.Value ,true,true,true).Index;
Result := ListView1.ItemIndex >= 0;
if Result then
ShowMessage(´O item já existe´);
end;
GOSTEI 0
Vitor Alcantara
18/07/2007
Só uma pequena correção. Não testei mais acho que da certo.
function ItemExiste(Caption:String); begin ListView1.ItemIndex := LvPDVPro.FindCaption(0,Caption.Value ,false,true,true).Index; Result := ListView1.ItemIndex >= 0; if Result then ShowMessage(´O item já existe´); end;
GOSTEI 0
Vitor Alcantara
18/07/2007
function ItemExiste(Caption:String):boolean; begin ListView1.ItemIndex := LvPDVPro.FindCaption(0,Caption ,false,true,true).Index; Result := ListView1.ItemIndex >= 0; if Result then ShowMessage(´O item já existe´); end;
GOSTEI 0
Mssilva
18/07/2007
Bem colegas a principio é isso mesmo só que além do caption eu preciso pegar o subitem [3] são 6 de cada linha do listview tem como.
GOSTEI 0
Mssilva
18/07/2007
Obrigado colegas funcionou :lol:
GOSTEI 0
Hermeson Gonçalves
18/07/2007
e como seria para pegar o valor em uma TListview com o MultiItemdetail habilitado???
GOSTEI 0