Ir para conteúdo
Fórum Script Brasil

João Paulo Taraciuk

Membros
  • Total de itens

    227
  • Registro em

  • Última visita

Tudo que João Paulo Taraciuk postou

  1. Olá pessoal, estou tentando fazer um relatório na tabela de vendas onde tenho que separar por mês a pesquisa, o problema é que também tenho que filtrar por ano, e por ano ele não está dando certo, olha o código como está 'select id_pedido, vd_data, vendedor, forma_pagto, nome_vendedor, total from vendas, vendedores, items_vendas WHERE Extract(Year from vd_data) = :ano and vendas.vd_id_vendedor=vendedores.id_vendedor and extract(month from vd_data) :mes and items_vendas.id_pedido=vendas.vd_id_pedido ' ZQuery_select.ParamByName('ano').AsInteger:=StrToInt(Edit1.text); ZQuery_select.ParamByName('mes').AsInteger:=StrToInt(ComboBox1.text); Seleciona por mês certinho, mas por ano não funciona, vocês podem me dizer o que eu estou fazendo errado ? E aproveitando, como eu poderia separar no QReport o resultado por mes, O que eu devo colocar no TQRGroup, qualquer dica eu agradeço. Valeu!!!
  2. Grande Micheus, funcionou aqui, obrigado!!! Té mais.
  3. Antes de mais nada, obrigado pela ajuda, e testando o código do Micheus, ele funciona legal, porém não faz o cálculo da soma total no excel, agora, se eu clico em cima da célula onde seria o local da soma total, aparece a função da maneira correta, como tem que ser, assim, se tem duas linhas para calcular, aparece a fórmula =SOMA(D2:D4) que deveria fazer o cálculo, e a planilha é salva dessa maneira, porém, se eu simplesmente clico em cima da célula onde está a fórmula e dou um enter, o excel faz o cálculo certinho, aí, quebrando pensando um pouco por aqui, eu mostro o valor total da soma em um Edit, na tela de pedidos, aí eu coloquei dessa maneira o código Excel.Cells[i +1, 4] := Format((total_pedido.Text), [i]); Aí ele mostra o valor total, mas mostra como se fosse texto, se tivesse como converter para número seria ótimo, mas dessa maneira já mostra o que interessa, que é o valor total Obrigado pela ajuda, vocês tem me ajudado muito nesses dois meses de programador, Valeu !!!
  4. Boa tarde, já invadindo o tópico do colega fcandrade Também estou procurando um meio de fazer a exportação , funcionou para Word e txt, porém para excel de erro no código TQRXLSFilter, dá Undeclared identifier, eu utilizo office 2003, além da uses qrexport, que você mencionou, tem alguma outra que teria que declarar para excel 2003? Se puder me ajudar eu agradeço.
  5. Olá pessoal, estou fazendo um projeto, onde o cliente faz pedidos e manda por e-mail para o seu fornecedor, então pensei em utilizar o excell, estou utilizando o procedimento seguinte procedure Tfrm_pedidos.Button3Click(Sender: TObject); var excel :variant; i, a:integer; begin try excel := CreateOleObject('excel.application'); if not Excel.Application.Visible then Excel.Application.Visible := true; Excel.WorkBooks.Add; ZQuery_gridpesq.First; i:=0; a:=4;//esta variável é onde vai o valor total While not .ZQuery_gridpesq.Eof do begin inc(i); Excel.Cells[i, 1] := ZQuery_gridpesq.FieldbyName('descricao').asString; Excel.Cells[i, 2] := ZQuery_gridpesq.FieldbyName('quantidade').asString; Excel.Cells[i, 3] := ZQuery_gridpesq.FieldbyName('valor_unit').AsFloat; Excel.Cells[i, 4] := ZQuery_gridpesq.FieldbyName('valor_total').AsFloat; ZQuery_gridpesq.Next; if(ZQuery_gridpesq.Eof= True)Then begin Excel.Cells[a, 4] := '=d2+d1';//aqui vai a soma do valor total Excel.Cells[a, 3] := 'Total: '; end end; // excel.Workbooks[1].Saveas('C:\a.XLS'); except showmessage('Ocorreu erro ao executar a transferência'); end; end; Utilizando dessa maneira, ele exporta e soma bunitinho, o problema é que a soma fica sempre na mesma linha, se tiver na linha três e a conta tiver duas linhas, aí beleza, agora, se a conta tiver 5 linhas, ela fica por cima do valor total, teria como fazer para o valor total ir acompanhando as linhas tipo termina os produtos, duas linhas depois aparece a soma total, se alguém puder me ajudar eu agradeço, no excel ou se tiver uma idéia mais fácil, tipo exportar para txt com valor de soma total, eu agradeço. Valeu
  6. Denis Courcy, Obrigado mesmo, funcionou, vou baixar o manual para continuar estudando Abraço !!
  7. Deu certo, Obrigado Jhonas , coloquei um timer para fazer a select de 5 em 5 minutos, funcionou direitinho Té Mais
  8. Pois é colega, não estou sabendo fazer, me dá uma luz aí, dentro da pasta Mysql\bin tem um utilitário Mysql, que abre uma tela do prompt, seria por alí ? Como ficaria o comando, se eu quisesse fazer o seguinte Inserir no Banco sistema, dentro da tabela configuracoes o campo cupom, formato smallint, 2 caracteres de tamanho, e depois, para inserir no mesmo banco uma tabela chamada teste com um campo teste1, varchar(30), se puder me ajudar eu agradeço. Valeu..
  9. Deu certo, muito obrigado, o meu código ficou dessa maneira function Tfrm_principal.lendobanco: Boolean; var hora, calculo:TTime; begin hora:= Now; calculo:=hora + StrToTime(Edit4.Text);{aqui, o edit4 está recebendo 00:05:00, aí seguindo o exemplo do Jhonas , ele filtra a partir do evento que ocorrerá daqui a 5 minutos} DM_agenda.ZQry_consulta.Active:=False; DM_agenda.ZQry_consulta.SQL.Clear; DM_agenda.ZQry_consulta.SQL.Add('select * from cad_eventos where data =:date and horario > :hora order by horario desc'); DM_agenda.ZQry_consulta.ParamByName('date').AsDate:=Date; DM_agenda.ZQry_consulta.ParamByName('hora').AsTime:=calculo; DM_agenda.ZQry_consulta.Active:= True; while not (DM_agenda.ZQry_consulta.Eof)do begin ListBox1.Items.Add(DM_agenda.ZQry_consulta.Fieldbyname('horario').AsString); DM_agenda.ZQry_consulta.Next; Edit2.Text:=DM_agenda.ZQry_consulta.Fieldbyname('horario').AsString; então o resultado dessa pesquisa, é somente os eventos que ainda irão acontecer, ficando possível mostrar o lembrete, agora, o grid principal da agenda mostra todos os eventos do dia, select * from cad_eventos teria como mostrar todos os dados do dia, mas a linha de foco no grid ficar setado no evento que aparece na pesquisa acima, no caso, o mesmo evento que vai para o Edit2 , que seria o próximo evento ? Desde já agradeço, sem a ajuda dos colegas do fórum eu estaria perdido Valeu
  10. AllNet , eu faço esta verificação somente para cpf e rg que não podem existir dois iguais Valeu
  11. Olá pessoal, sou iniciante em programação, eu trabalho com Delphi 7 e banco MySql 3.23, crio os bancos pelo EMS SQL Manager, então, tem um sistema que o cliente já está utilizando, mas houve a necessidade de inserir mais alguns campos em uma tabela, aí fica a questão, como eu posso fazer para atualizar o banco de dados dele sem precisar trocar o banco todo, pois no micro dele não está instalado o gerenciador de banco de dados, se alguém puder me ajudar eu agradeço Valeu!!!
  12. Boa tarde AllNet, eu faço este filtro desta maneira function evitarduplicados: boolean; begin zQuery1.Active:=False; zQuery1.SQL.Clear; zQuery1.SQL.Add('select * from dados where nome=:um and cidade=:dois'); zQuery1.ParamByName('um').value:=edit1.text; zQuery1.ParamByName('dois').Value:=edit2.text; zQuery1.Active:=true; if(zQuery1.recordcount=0)then Begin //Aqui você coloca sua procedure para inserir os dados end else if zQuery1.recordcount> 0 then begin Este cadastro já foi realizado end end; Aí é só você chamar esta função no botão de cadastro, se não for encontrado nenhum cadastro igual ela finaliza, senão dá a mensagem. Valeu..
  13. Olá, estou trabalhando no projeto de uma agenda, onde o usuário cadastra os eventos, então 10 minutos antes do horário programado deverá aparecer uma uma mensagem avisando , tipo assim Cadastro um evento para as 16:00 horas, então 15:50 eu recebo uma mensagem sobre o evento que vai ocorrer daqui à 10 minutos, aí fica a pergunta: Trabalho com o banco MySql3.23, Delphi 7, estou a principio filtrando a minha pesquisa por data dessa maneira Estou jogando os horários do dia para um listbox, só para conferir, por aí pode-se perceber que o campo 2 da tabela é onde estão os horários dos eventos(Field horario), o campo data é o campo 3 da tabela, aí eu jogo para um edit e o edit3 está recebendo a hora atual, então eu faço o cálculo onde o edit1 irá receber a diferença entre estes dois horários No edit4 eu coloco 00:10:00 Até aí está saindo, o que não estou conseguindo fazer é o filtro do banco da dados, gostaria de saber uma maneira de filtrar os horários da seguinte maneira, que ele jogasse para o Edit2 o horário mais próximo da hora atual, tipo se agora são três horas, mas tem eventos para as 15:05 e 15:08, ele jogasse o valor menor, outra coisa que tem que fazer é ignorar nesta consulta os eventos que já passaram da hora, por que no ListBox que coloquei aparecem todos os eventos, qualquer ajuda eu agradeço, fazem menos de dois meses que comecei a programar, então se tiver algum erro na minha procedure, agradeceria se um colega desse um toque. Valeu!!!
  14. devil69, eu editei o tópico, pois havia um erro no Button1Click, ao invés de if EstaVivo(Edit1.Text) then, fica if VerificaConexao(Edit1.Text) then.
  15. Eu faria uma verificação de conexão com a internet antes de enviar, você poderia fazer dessa maneira: Coloca um componente da Paleta Indy Clients IdIcmpClient, coloca o nome dele de pingador, coloca um Button e um Edit, então cria a seguinte function na seção Private function VerificaConexao(IP: String): boolean; Então logo abaixo completa ela assim function TForm1.VerificaConexao(IP: String): boolean; begin with Pingador do begin Host := IP; ReceiveTimeout := 500; Ping; if ReplyStatus.BytesReceived > 0 then result := true else result := false; end; end; Aí no OnClick do Button põe assim procedure TForm1.Button1Click(Sender: TObject); begin if VerificaConexao(Edit1.Text) then ShowMessage('Você está conectado') else ShowMessage('Não há conexão com a internet'); end; Aí no text do Edit você coloca www.google.com.br que é um site que nunca sai do ar. Aí você incrementa ele de uma maneira que se adapte ao seu projeto valeu..
  16. Boa tarde Tetzner, digamos que está no form1 declare a função na Public declarations do form1, por exemplo Clicando CTRL + SHIFT + C coloque assim então em um button do form2 chame assim Falou...
  17. Muito Obrigado Micheus, deu exatamente como eu queria utilizando o ListBox no exemplo do Churc ficaria dessa maneira Listbox1.TabWidth := 50; ListBox1.Items.Add(MinhaQuery.FieldByName('CAMPO1').AsString+^I+' '+MinhaQuery.FieldByName('CAMPO2').AsString); Funcionou Perfeitamente Fazendo como no post do samuelsjn, com o ListView ficou assim var lstitmItem: TListItem; begin ListView1.ShowColumnHeaders := true; ListView1.Clear; while not MinhaQuery.Eof do begin lstitmItem := ListView1.Items.Add; lstitmItem.SubItems.Add(MinhaQuery.FieldByName('CAMPO1).AsString); lstitmItem.SubItems.Add(MinhaQuery.FieldByName('CAMPO2').AsString); MinhaQuery.Next; end; // Também funcionou direitinho Aí testando aqui, tentei fazê-lo mostrar no Hint de um DBGrid, que é onde será selecionado os dados, ficou dessa maneira DBGrid1.Hint:=(MinhaQuery.Fields[0].AsString+' '+ MinhaQuery.Fields[1].AsString); Quando o valor retornado é apenas um dado, mostra bonitinho, agora, se for mais de uma linha, ela mostra apenas a primeira linha. Ah, eu não quis utilizar um DBGrid, porque é uma tela de vendas onde já tem alguns DBGrids, aí eu queria fazer diferente esta pesquisa, para facilitar a observação do usuário, que em um dblclick em um dos DBGrids, aparecerão estas informações. Vou utilizar o Listview para este procedimento, mas como eu estou aprendendo, não ficarei triste se aprendesse também a mostrar os dados no Hint, se na tabela retornar mais de um dado, hehe Abraços, Obrigado pela atenção !!!
  18. Olá a todos, gostaria de saber como controlo as colunas em um listbox, para ele receber os dados de uma ZQuery ou um DBGrid, para exibir uma coluna utilizo este código ListBox1.Items.Add(ZQuery1.Fields[0].AsString); Gostaria de saber como proceder se a a query estivesse com 3 colunas, mais ou menos dessa maneira Descrição | Data | Valor XXXXXXX | XXXX | XXXX poderia ser no listbox ou em um ListView, se alguém puder me ajudar eu agradeço. Abraços!!!
  19. Obrigado Micheus, vocês tem me ajudado muito, mesmo, o zipmaster é excelente, não precisa de licença nem nada, olhando os tópicos sugeridos, surgiu uma dúvida, tem como utilizar o ZLib no Delphi 7, pois os arquivos gerados por ele não podem ser descompactados com outros programas, se tiver uma idéia ou u post eu ficarei grato, valeu!!!
  20. Eu utilizo este procedimento para zipar arquivos If winexec(PChar('c:\arquivos de programas\winzip\winzip32.exe -min -a -s'+edit_senha.Text+' C:\Arquivo.zip' + ' '+ 'C:\Arquivo), sw_show) < 32 then begin MessageDlg('Não é possível criar o arquivo compactado.', mtError, [mbOk], 0); O que eu gostaria de saber é se tem como fazer para não aparecer aquela janela do Winzip com as opções I Agree, Quit, Queria que o arquivo fosse zipado automaticamente sem necessidade de nenhum clique à mais Se alguém puder me ajudar, eu agradeço, valeu!!!
  21. Boa tarde a todos, estou trabalhando em uma agenda, onde coloquei uma função que faz a leitura do banco de dados de 5 em 5 minutos para verificar se tem algum compromisso nos próximos cinco minutos e mostra um form e um Beep, estou encontrando dificuldades na hora de fazer comparar a data do banco com a data atual, estou utilizando a seguinte função function Tfrm_principal.lendobanco: Boolean; var dia : TDate; begin dia:=Date; DM_agenda.ZQry_consulta.Active:=False; DM_agenda.ZQry_consulta.SQL.Clear; DM_agenda.ZQry_consulta.SQL.Add('select * from cadastro_eventos where data =:date'); DM_agenda.ZQry_consulta.ParamByName('date').Value:=dia; DM_agenda.ZQry_consulta.Active:= True; ShowMessage(IntToStr(DM_agenda.ZQry_consulta.RecordCount)); então, se eu coloco desta maneira, como está, não retorna valor nenhum, agora se eu coloco na linha DM_agenda.ZQry_consulta.ParamByName('date').Value:=Edit1.text; e insiro uma data desta maneira 2007/12/20 no edit, ele retorna exatamente o número de eventos cadastrados para esta data, aí eu pensei, se tivesse como mudar o formato da data que será recebida pela variável, por que ela é inserida em um MaskEdit, __/__/_____ E também gostaria de saber como faço uma função para subtrair da hora normal 5 minutos, tentei esta função mas não deu certo, retorna 01/12/188/99 , neste sistema, mas em um outro ela funciona perfeitamente, alguém saba me dizer por quê? var Hora : TTime; Hora := IncMinute(Hora, 5); Se alguém puder me ajudar eu agradeço, valeu
  22. (Resolvido)Valeu Micheus, matou dios coelhos com uma cajadada só, eu estava tentando entender como funciona as funções do TQRExpr, com a sua explicação ficará bem mais fácil. Obrigado!!
  23. (Resolvido) Muito bom, Obrigado Micheus, este procedimento resolve o meu problema, Valeu!!
×
×
  • Criar Novo...