exportacao para excel-delphi

Delphi

19/08/2016

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
Iniciantedelphi

Iniciantedelphi

Curtidas 0

Respostas

Jones Granatyr

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

Iniciantedelphi

19/08/2016

é isso, poderia me dizer o que tenho que escrever no codigo porfavor
GOSTEI 0
Iniciantedelphi

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;
GOSTEI 0
Jones Granatyr

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();
GOSTEI 0
Iniciantedelphi

Iniciantedelphi

19/08/2016

fala que na query nao tem o membro chamado params
GOSTEI 0
Natanael Ferreira

Natanael Ferreira

19/08/2016

Qual banco de dados e componentes você usa? ADO?

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
POSTAR