Ir para conteúdo
  • Cadastre-se

dev botao

  • Este tópico foi criado há 1743 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Recommended Posts

Postado

Boa noite 

Queria saber se me podiam a ajudar ?

Eu estou aqui com muitas duvidas 

EU quero fazer um programa em lazarus que permita ir buscar um ficheiro excel e guarde em memoria e depois faça o update dos valores que vem da tabela na base de dados 

Postado

image.png

 

o que eu pretendo é  que o utilizador carregue no    button  (ler arquivo)  e vá abrir uma opção abrir um ficheiro excel  e que guarde na memoria  para depois fazer o update na base dados. 

 

var
excel :variant;
l,c: integer;
begin
Excel := CreateOleObject(´Excel.Application´);
Excel.Visible := False;
excel.WorkBooks.Add(FilenameFocusEdit1.Text);
l:=2;
for l := 2 to linhas.Value do
begin
cdsItens.Append;
cdsItensid.AsInteger := Excel.Cells.Item[l,1].Value;
if Excel.Cells.Item[l,2].Value <> ´´ then
cdsItensnrped.AsInteger := Excel.Cells.Item[l,2].Value;
cdsItensdata.AsDateTime := strtodate(Excel.Cells.Item[l,3].value);
cdsItensproduto.AsString := Excel.Cells.Item[l,4].Value;
cdsItens.Post;
end;
 

este é um  exemplo que vi na internet agora quero que vá buscar utilizador vá buscar o ficheiro

Não sei se está a perceber o que pretendo 

Postado

Usa o TOpenDialog para ele selecionar o arquivo. Tem como definir filtros para listar somente as extensões desejadas.

  if OpenDialog1.Execute then
    FilenameFocusEdit1.Text := OpenDialog1.FileName;

E para salvar, utiliza o TSaveDialog, assim permite ao "utilizador" escolher o nome do novo arquivo.

  if SaveDialog1.Execute then
    FilenameFocusEdit1.Text := SaveDialog1.FileName;

Usei no código o componente visual do seu exemplo o FilenameFocusEdit1.Text

Seria isso talvez?

 

 

  • Curtir 1
Postado

Sim é mais isso 

para depois fazer o update na base dados e verificar se pnumber do excel é igual a fazer ao do banco de dados faço  tambem faço no lazarus  ?

isto guarda na memoria certo ?

Postado

Não entendi, mas vou procurar um exemplo que fiz a alguns anos onde abria um arquivo, tratava as informações e salvava o arquivo tratado e anexo os fontes. Esse componente é um pouco complexo de trabalhar, lembro que tive algumas dificuldades.

Postado

Acho que já percebeu mais ao menos o que eu pretendo

 

Mas assim fica mais simples 

1-ler o ficherio de xls  (nesse folha de excel tem la o part-number que distingue os produtos )

2-por cada linha do ficheiro  de xls verificar-se o produto existe na bd (verifica se o part-number existe na base dados)

 a) se existir faz o update  //mas isto eu sei como e faz que e na base dados 

sim isto também está dar muitas disculdades

Postado

Bom dia 

Eu andei a pesquisar e encontrei este codico pode explicar o codico para entender melhor 

 

procedure Tprincipal1.procurar1Click(Sender : Tobject;ARow, ACol: Cardinal;constADataCell: PCell);

var
excel :variant;
l,c: integer;
begin
Excel := CreateOleObject(´Excel.Application´);
Excel.Visible := False;
excel.WorkBooks.Add(FilenameFocusEdit1.Text);
l:=2;
for l := 2 to linhas.Value do
begin
cdsItens.Append;
cdsItensid.AsInteger := Excel.Cells.Item[l,1].Value;
if Excel.Cells.Item[l,2].Value <> ´´ then
cdsItensnrped.AsInteger := Excel.Cells.Item[l,2].Value;
cdsItensdata.AsDateTime := strtodate(Excel.Cells.Item[l,3].value);
cdsItensproduto.AsString := Excel.Cells.Item[l,4].Value;
cdsItens.Post;
end;     

 

  • Este tópico foi criado há 1743 dias atrás.
  • Talvez seja melhor você criar um NOVO TÓPICO do que postar uma resposta aqui.

Crie uma conta ou entre para comentar

Você precisar ser um membro para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar Agora
×
×
  • Criar Novo...

Informação Importante

Colocamos cookies em seu dispositivo para ajudar a tornar este site melhor. Você pode ajustar suas configurações de cookies, caso contrário, assumiremos que você está bem para continuar.

The popup will be closed in 10 segundos...