exportacao para excel-delphi
Pessoal,
sou iniciante em delphi, to trabalhando com um banco de dados de empregados que tem informacoes tipo salario, cpf etc, gostaria de saber como faço para exportar para o delphi apenas a informacao de um empregado, e nao todo o banco de dados
sou iniciante em delphi, to trabalhando com um banco de dados de empregados que tem informacoes tipo salario, cpf etc, gostaria de saber como faço para exportar para o delphi apenas a informacao de um empregado, e nao todo o banco de dados
Iniciantedelphi
Curtidas 0
Respostas
Jones Granatyr
19/08/2016
Olá! Não sei se entendi direito a dúvida, mas não seria somente fazer um SQL filtrando pelo identificador do empregado? select * from empregados where idempregado = ?
GOSTEI 0
Iniciantedelphi
19/08/2016
é isso, poderia me dizer o que tenho que escrever no codigo porfavor
GOSTEI 0
Iniciantedelphi
19/08/2016
o codigo esta assim
procedure Tfrmexportarfuncionarios.bttnexportarfuncionarioselecionadoClick
(Sender: TObject);
var
planilha: variant;
linha, cont, posicao, i: Integer;
nomefuncionario: string;
begin
if lstbxfuncionarios.ItemIndex <> -1 then // se o usuário escolheu algum funcionario
begin
// recebe o nome que foi selecionado no listbox
nomefuncionario := lstbxfuncionarios.Items[lstbxfuncionarios.ItemIndex];
cont := querysel.RecordCount;
prgrssbrexportarfuncionario.max := cont;
prgrssbrexportarfuncionario.position := 0;
{ query.filtered := false;
query.Filter := 'nome-empregado=nomefuncionario'; }
planilha := createoleobject('excel.application'); // criei a planilha
planilha.caption := 'delphi para excel'; // renomeei a planilha
planilha.visible := false; // deixei invisivel
planilha.workbooks.add(1); // adicionei uma aba
// dando nome para as colunas da tabela
planilha.cells[1, 1] := 'Cadastro';
planilha.cells[1, 2] := 'Nomeempregado';
planilha.cells[1, 3] := 'Sexo';
planilha.cells[1, 4] := 'Salario';
planilha.cells[1, 5] := 'Numerodepartamento';
planilha.cells[1, 6] := 'CadastroSupervisor';
querysel.disablecontrols;
{ for linha:= 2 to dm.tblempregado.RecordCount-1 do
begin
if dm.tblempregado[linha,2]=nomefuncionario then
begin
posicao:= dm.tblempregado[linha,2];
end;
end;
querysel.Close;
querysel.Parameters('nomefuncionario').value:=lstbxfuncionarios.text;
querysel.Open; }
{ try
while not querysel.eof do
begin }
nomefuncionario := lstbxfuncionarios.Items[lstbxfuncionarios.ItemIndex];
planilha.cells[posicao, 1] := queryselCadastro.value;
planilha.cells[posicao, 2] := queryselNomeEmpregado.value;
planilha.cells[posicao, 3] := queryselSexo.value;
planilha.cells[posicao, 4] := queryselSalario.value;
planilha.cells[posicao, 5] := queryselNumeroDepartamento.value;
planilha.cells[posicao, 6] := queryselCadastroSupervisor.value;
prgrssbrexportarfuncionario.position :=
prgrssbrexportarfuncionario.position + 1;
end;
planilha.columns.autofit; // ajeita o tamanho das colunas
planilha.visible := true; // planilha fica visivel
{ finally }
querysel.EnableControls;
planilha := unassigned;
end;
procedure Tfrmexportarfuncionarios.bttnexportarfuncionarioselecionadoClick
(Sender: TObject);
var
planilha: variant;
linha, cont, posicao, i: Integer;
nomefuncionario: string;
begin
if lstbxfuncionarios.ItemIndex <> -1 then // se o usuário escolheu algum funcionario
begin
// recebe o nome que foi selecionado no listbox
nomefuncionario := lstbxfuncionarios.Items[lstbxfuncionarios.ItemIndex];
cont := querysel.RecordCount;
prgrssbrexportarfuncionario.max := cont;
prgrssbrexportarfuncionario.position := 0;
{ query.filtered := false;
query.Filter := 'nome-empregado=nomefuncionario'; }
planilha := createoleobject('excel.application'); // criei a planilha
planilha.caption := 'delphi para excel'; // renomeei a planilha
planilha.visible := false; // deixei invisivel
planilha.workbooks.add(1); // adicionei uma aba
// dando nome para as colunas da tabela
planilha.cells[1, 1] := 'Cadastro';
planilha.cells[1, 2] := 'Nomeempregado';
planilha.cells[1, 3] := 'Sexo';
planilha.cells[1, 4] := 'Salario';
planilha.cells[1, 5] := 'Numerodepartamento';
planilha.cells[1, 6] := 'CadastroSupervisor';
querysel.disablecontrols;
{ for linha:= 2 to dm.tblempregado.RecordCount-1 do
begin
if dm.tblempregado[linha,2]=nomefuncionario then
begin
posicao:= dm.tblempregado[linha,2];
end;
end;
querysel.Close;
querysel.Parameters('nomefuncionario').value:=lstbxfuncionarios.text;
querysel.Open; }
{ try
while not querysel.eof do
begin }
nomefuncionario := lstbxfuncionarios.Items[lstbxfuncionarios.ItemIndex];
planilha.cells[posicao, 1] := queryselCadastro.value;
planilha.cells[posicao, 2] := queryselNomeEmpregado.value;
planilha.cells[posicao, 3] := queryselSexo.value;
planilha.cells[posicao, 4] := queryselSalario.value;
planilha.cells[posicao, 5] := queryselNumeroDepartamento.value;
planilha.cells[posicao, 6] := queryselCadastroSupervisor.value;
prgrssbrexportarfuncionario.position :=
prgrssbrexportarfuncionario.position + 1;
end;
planilha.columns.autofit; // ajeita o tamanho das colunas
planilha.visible := true; // planilha fica visivel
{ finally }
querysel.EnableControls;
planilha := unassigned;
end;
GOSTEI 0
Jones Granatyr
19/08/2016
Talvez o filtro não esteja funcionando. Tente fazer passando o comando SQL para a query, mais ou menos assim (vai depender dos componentes que está utilizando):
qry.SQL.ADD("select * from funcionario where idfuncionario = :id");
qry.Params[0].AsInteger := ID que está selecionado
qry.ExecuteQuery();
qry.SQL.ADD("select * from funcionario where idfuncionario = :id");
qry.Params[0].AsInteger := ID que está selecionado
qry.ExecuteQuery();
GOSTEI 0
Iniciantedelphi
19/08/2016
fala que na query nao tem o membro chamado params
GOSTEI 0
Natanael Ferreira
19/08/2016
Qual banco de dados e componentes você usa? ADO?
Se for, troque [b]Params[/b] por [b]Parameters[/b].
Se for, troque [b]Params[/b] por [b]Parameters[/b].
qry.close;
qry.SQL.ADD('select * from funcionario where idfuncionario = :id');
qry.Parameters[0].AsInteger := ID que está selecionado
qry.open;GOSTEI 0