renanbg

Membros
  • Content Count

    66
  • Joined

  • Last visited

Community Reputation

0 Neutro

About renanbg

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

  1. De fato o campo, CEDENTE, que trago via inner join é o problema. Antes eu usava lookup e ao incluir já aparecia, porém eu mantinha uma tabela com 1200 registros aberta só para isso. Agora com o uso do inner join, vou precisar refazer a consulta, após a inclusão, para então aparecer o nome no dbgrid.
  2. Essa é a tela de contas a pagar. Como pode ver eu faço filtros por cedente, vencimento, numero do documento ou nota A SQL base desses filtros é essa: SELECT CP.CODIGO, CP.NF, CP.DATA, CP.NUM_DOC, CP.VALOR, CP.VENCIMENTO, CP.PARCELA, CE.CEDENTE AS NOME_CEDENTE FROM CONTASPAGAR CP INNER JOIN CEDENTES CE ON CE.CODIGO = CP.COD_CEDENTE Eu consigo fazer a baixa, alteração, exclusão sem problemas. A inclusão de um novo registro que é o problema. Ao clicar naquele botão com o simbolo de +, eu abro uma nova tela onde preencho os dados que estão aparecendo no dbgrid. Ao gravar o nome do cedente não aparece no dbgrid. Se fosse um campo lookup apareceria normalmente, mas via inner join vou ter que refazer a consulta a cada inclusão?
  3. Resolvido atualizando o ibx para a versão 7.08 do delphi 7
  4. Nunca recebi esse tipo de erro. Estou usando ibquery + datasetprovider + clientdataset + datasource e o codigo é esse. Da erro no applyupdates with FrmDm.cdsCheques do begin DisableControls; //Desabilita controles First; while not eof do begin if FieldByName('MARCADO').AsString = 'S' then begin Edit; FieldByName('STATUS').AsString := 'B'; FieldByName('OBS').AsString := Edobs.Text; FieldByName('DATA_BAIXA').AsDateTime := Date; Post; end; Next; end; if ApplyUpdates(0) > 0 then Abort; EnableControls; //Habilita controles end;
  5. Então Jhonas. Já uso o updatesql em conjunto com a query e o datasource para editar, gravar e excluir. Agora adicionei uma nova query somente para consultas, mas perdi o controle dos botões alterar e cancelar, que eu fazia no evento de onstatechange do datasource que grava.
  6. Agradeço a ajuda Jhonas, mas isso é um problema no filtro da query clientes que fica ativo, mesmo eu fechando ela. Se eu acessar a tela de contas a receber diretamente, sem passar pela de clientes, tudo da certo. Descobri agora que isso ocorre porque fiz o select usando a propria query de clientes. Seria correto usar uma query para buscas e outra para gravar/editar/excluir?
  7. O select está correto, o problema acontece quando faço a busca de um cliente no cadastro de clientes. Aparentemente, mesmo fechando a query ao sair do formulario, o filtro que fiz permanece ativo. Então ao acessar a tela de contas a receber, a busca traz todas contas que selecionei, porém com o nome do cliente em branco, exceto o nome do cliente pesquisado anteriormente,
  8. Estou usando componentes da paleta interbase. O inner join não atualiza traz os nomes dos clientes no dbgrid. Para que isso ocorra, eu faço esse procedimento Faço a busca de um cliente no cadastro de clientes Select nome, idade from clientes where nome like ed.text Ao sair do formulario de clientes, fecho a query de clientes. Aí, ao acessar a tela de contas a receber, faço esse select Select * from contas a receber cr inner join clientes cl on cl.codigo = cr.cod_cliente order by vencimento Ocorre que todos os nomes saem em branco, exceto aquele ultimo que pesquisei lá no cadastro de clientes. Porque, mesmo dando um close, a pesquisa não traz todos resultados?
  9. Eu já usava dessa forma, perguntando se desejava inserir mais. Acabei fazendo um contador manual e resolveu.
  10. Sim, essa programação vai dentro do botão gravar. Então assim que gravar o primeiro boleto, preciso limpar os campos para incluir o segundo e assim por diante.
  11. Até tentei montar esse for, mas não consegui fazer ele funcionar. Ele segue automatico, sem permitir que eu faça o lançamento do segundo boleto. var i : Integer; begin for i:=1 to strtoint(edparcelas.text) do if i <> strtoint(edparcelas.text) then begin ShowMessage('Gravei'); Edit2.Clear; Edit3.Clear; Edit1.SetFocus; end else ShowMessage('Commitei e vou embora'); //Sai da tela de cadastro end;
  12. O sistema funciona da seguinte forma. Suponha que o usuário tem em mãos 3 boletos do mesmo cliente e precisa cadastrar esses boletos de forma manual. Uma rotina que lê o código de barras extrai valor e vencimento. Então é preciso informar apenas o nome do cliente e nota. Após a inclusão, todos os campos são limpos e o sistema aguarda a leitura do novo boleto. Problema: Ter que buscar novamente o cliente e nota para lançar o segundo boleto Pensei em por um edit para informar o numero de boletos a ser cadastrado. Desta forma ao finalizar a inclusão do primeiro, eu limparia apenas os campos valor e vencimento, mantendo os demais na tela. Minha dificuldade está em atualizar esse contador de parcelas, para sair da tela ao finalizar o cadastro do ultimo boleto
  13. Amigos, vejam a imagem Para acessar o cadastro de usuarios, antes peço a senha. Application.CreateForm(Tfrmsenha, frmsenha); frmsenha.ShowModal; Se a senha for correta, abro o form de usuarios da mesma forma Application.CreateForm(Tfrmusu, frmusu); frmusu.ShowModal; Gostaria de fechar o form da senha assim que chamo o de usuarios, mas o comando close só fecha ele quando eu fechar o form de usuarios. Usar o show não é uma opção, pois se o usuario clicar fora do formulario, ele some.
  14. Hoje uso algo assim: TEdit(Sender).Text := Mascara(TEdit(Sender).Text,'(99) 99999-9999'); TEdit(Sender).SelStart := Length(TEdit(Sender).Text); Então a formatação vai ocorrendo ao digitar. Será que existe uma forma da formatação funcionar tanto para 14 como para 15 caracteres no mesmo campo? A ideia seria poder digitar tanto um fixo, como um celular no mesmo campo. PS: precisa ser no onchange, Onexit não serve.