Ir para conteúdo
Fórum Script Brasil

Alberto Mota

Membros
  • Total de itens

    296
  • Registro em

  • Última visita

Tudo que Alberto Mota postou

  1. spRecTodosG é 1 ADOStoredProc da Palheta Ado Poderia ser uma query somatodos é um procedimento que joga o total num label Voce pode eliminar. @datai é um parametro criado no banco de dados, no caso o sql server Isso é um exemplo apenas. O caminho é esse. Ficaria mais facil se dissesse qual banco de dados esta usando.
  2. Voce só pode salvar um registro em modo de edição. Uma vez que já o salvou, não precisa clicar de novo. Use esse procedimento de configuração: Adapte para sua necessidade. procedure TFrmAssociados.ConfiguraBotoes; begin sbInserir.Enabled := not sbInserir.Enabled; sbEditar.Enabled := not sbEditar.Enabled; sbExcluir.Enabled := not sbExcluir.Enabled; sbOk.Enabled := not sbOk.Enabled; sbCancelar.Enabled := not sbCancelar.Enabled; end; o código abaixo voce deve colocar no datasource no evento on change procedure TFrmAssociados.DataSource1DataChange(Sender: TObject; Field: TField); begin with QueryAssociados do Begin sbInserir.Enabled := (State = dsBrowse); sbEditar.Enabled := (State = dsBrowse) and (not IsEmpty); sbExcluir.Enabled := (State = dsBrowse) and (not IsEmpty); sbOK.Enabled := (State <> dsBrowse); sbCancelar.Enabled := (State <> dsBrowse); sbFirst.Enabled := (not Bof) and (State = dsBrowse); sbPrior.Enabled := (not Bof) and (State = dsBrowse); sbNext.Enabled := (not Eof) and (State = dsBrowse); sbLast.Enabled := (not Eof) and (State = dsBrowse); end; end;
  3. Elimine o case rg3T.ItemIndex of No meu caso é um grupo de opção válido para mim apenas Para voce não há necessidade. Podendo ficar assim: procedure TFrmCR.BitBtn13Click(Sender: TObject); var dt_ini, dt_fin: String; Begin dt_ini:=DateToStr(DateTimePicker1.Date); dt_fin:=DateToStr(DateTimePicker2.Date); edit1.Text := dt_ini; edit2.Text := dt_fin; begin spRecTodosG.close; spRecTodosG.Parameters.ParamByName('@datai').Value := dt_ini; spRecTodosG.Parameters.ParamByName('@dataf').Value := dt_fin; spRecTodosG.open; spRecTodosG.active := true; statusbar1.Panels[0].Text:= ' registros encontrados. '; somatodos; if spRecTodosG.IsEmpty then Begin statusbar1.Panels[0].Text := ' Não existem registros para esse período'; exit; end; end;
  4. Para a sua primeira questão adapte o select abaixo: select TblMedicos.nomemedico, Tblpacientes.nomepaciente, TblAgenda.data, TblAgenda.hora, TblAgenda.medico, TblAgenda.paciente from tblAgenda, TblMedicos, TblPacientes where TblAgenda.medico = TblMedicos.IDMedico And TblAgenda.Paciente = TblPacientes.IDPaciente Para o segundo problema o código abaixo filtra 2 datas data inicial e data final procedure TFrmCR.BitBtn13Click(Sender: TObject); var dt_ini, dt_fin: String; Begin dt_ini:=DateToStr(DateTimePicker1.Date); dt_fin:=DateToStr(DateTimePicker2.Date); edit1.Text := dt_ini; edit2.Text := dt_fin; begin case rg3T.ItemIndex of 0: //Todos begin if rg1.ItemIndex = 0 then //Todos Todos Begin GridTipo.Visible := false; DbGridFormapgto.Visible := true; DBGridTodosN.Visible := false; spRecTodosG.close; spRecTodosG.Parameters.ParamByName('@datai').Value := dt_ini; spRecTodosG.Parameters.ParamByName('@dataf').Value := dt_fin; spRecTodosG.open; spRecTodosG.active := true; statusbar1.Panels[0].Text:= ' registros encontrados. '; somatodos; if spRecTodosG.IsEmpty then Begin statusbar1.Panels[0].Text := ' Não existem registros para esse período'; exit; end; end; //================================= if rg1.ItemIndex = 1 then //Normal Todos Begin DBGridTodosN.Visible := true; GridTipo.Visible := false; DbGridFormapgto.Visible := false; SpTodosN.close; SpTodosN.Parameters.ParamByName('@datai').Value := dt_ini; SpTodosN.Parameters.ParamByName('@dataf').Value := dt_fin; SpTodosN.open; SpTodosN.active := true; statusbar1.Panels[0].Text:= ' registros encontrados. '; SomaTodosN; if SpTodosN.IsEmpty then Begin statusbar1.Panels[0].Text:= ' Não existem registros para esse período'; exit; end; end; end; //======================================= 1: //Por Tipo Begin if rg1.ItemIndex = 0 then //Tipo Todos Begin GridTipo.Visible := true; DbGridFormapgto.Visible := false; DBGridTodosN.Visible := false; spTipoTodos.close; spTipoTodos.Parameters.ParamByName('@datai').Value := dt_ini; spTipoTodos.Parameters.ParamByName('@dataf').Value := dt_fin; spTipoTodos.Parameters.ParamByName('@formapgto').Value := edit7.Text; spTipoTodos.open; spTipoTodos.active := true; statusbar1.Panels[0].Text:= ' registros encontrados. '; somatipot; if spTipoTodos.IsEmpty then Begin statusbar1.Panels[0].Text:= ' Não existem registros para esse período'; exit; end; end; end; end; end; end;
  5. Felizmente, consegui resolver meu problema. Tive que recriar o relatório. De alguma forma, algo o impedia de mostrar os dados.
  6. Prezados colegas, pesquisei muito na Web e não encontrei nada que solucionasse o meu problema. Coloquei em Available forms 1 dos forms da minha aplicação. o FrmQuitacao Ao chama-lo coloquei if FrmQuitacao = NIL then //cria o form se ele não foi criado ainda Application.CreateForm(TFrmQuitacao,FrmQuitacao); // cria o form FrmQuitacao.show; E ao executar o rave procedure TFrmQuitacao.BitBtn16Click(Sender: TObject); var doc : integer; begin ADOStoredProc9.close; ADOStoredProc9.Parameters.ParamByName('@ndoc').Value := StrToInt(txtNDoc.Text); ADOStoredProc9.open; ADOStoredProc9.active := true; //===============mensagens============================================== AdoMensagem.close; AdoMensagem.Parameters.ParamByName('A1').Value := StrToInt(edit9.Text); AdoMensagem.open; AdoMensagem.active := true; //====================================================================== RvProject2.Execute; end; E abre 1 pagina em branco, com a quantidade de paginas 1 de 1 Antes, coloquei em Available forms, e esse relatório abria normalmente. Fiz um teste e coloquei o form em Auto-Create e voltou a funcionar. Entretanto, preciso libera-lo da memória No evento ao fechar do form Action := caFree; // libera form da memória FrmQuitacao := NIL; // indica que foi liberado O que esta acontecendo? Devo colocar todos os forms em Available forms? Desde já, obrigado.
  7. Alberto Mota

    criterio de consulta

    O seu filtro deve ser mesmo a primeira coluna O id da tabela, a sua chave primária. Voce deve estar errando em algum outro ponto da sua consulta Reveja os passos.
  8. Coloque na sua consulta, como filtro do campo da data <[Forms]![FrmPrincipal]![Txtdata]
  9. Uso o código a seguir e encontro de qualquer forma. QueryAssociados.Close; QueryAssociados.SQL.clear; QueryAssociados.SQL.Add('SELECT * from TblAssociados where nomeassociado like :nome order by nomeassociado'); QueryAssociados.Parameters.ParamByName('nome').Value := '%' + Edit1.text + '%'; QueryAssociados.Open;
  10. Jhonas, resolveu perfeitamente. Muito obrigado.
  11. Prezados colegas, gero um pdf através do Rave e o executo num ole container vinculado. E dessa forma o pdf é exibido praticamente assim que é gerado. Entretanto há 1 situação em que ele é gerado atraves de variaveis, pelo numero do documento. Portanto, não tenho como colocar um ole container. Gostaria que fosse num botão. O caminho do pdf para executa-lo e abri-lo seria com a variavel numero do documento. Como faço isso? Desde já, obrigado.
  12. Jhonas, mais uma vez obrigado. Consegui resolver atraves dos links que passou. Valeu.
  13. Prezados colegas, uso o Delphi 7 e para um determinado relatório estou usando o quickreport. Gostaria de que em cada pagina ficasse um registro agrupado. na verdade é um extrato de envio para clientes. Cada extrato de cliente na sua pagina. Como faço isso? desde já, obrigado.
  14. Bareta, esta me retornando uma página em branco. Como resolvo? Desde já, obrigado.
  15. Leve em consideração o banco de dados. Entre Access, MYSQL e sql server o mais seguro é o último. E pense tambem num aplicativo de logistica, quando a loja estiver vendendo bastante. Para vendas com cartão e boleto voce pode se valer do PagSeguro, entre no site deles para maiores informações. É um serviço do UOL. Pode ser viável para voce. O bom é que a conexão em ASP é praticamente a mesma para os 3 bancos de dados citados acima.
  16. Postei uma solução para um tópico logo abaixo e a pessoa interessada não se manifestou. Entretanto ela se adapta plenamente a voce. Coloque algumas caixa de texto no relatório, coloque-as invisiveis. ClientePedido = [Forms]![FrmRecibo]![TxtCliente] Texto89 = [Forms]![FrmRecibo]![TxtValor] NumeroVale = [Forms]![FrmRecibo]![TxtNumeroVale] [Forms]![FrmRecibo]![TxtCliente] e [Forms]![FrmRecibo]![TxtValor] e [Forms]![FrmRecibo]![TxtNumeroVale] são campos não acoplados no seu form. Extenso é uma função para o valor propriamente dita E uma úlima Caixa de texto visivel ="Recebemos de " & [ClientePedido] & " a importância de R$ " & Formato([Texto89];"#,###.00") & " (" & Extenso([Texto89]) & "), " & " referente ao pagamento " & [NumeroVale] & " pelo que passamos o presente recibo para fins legais." No form, um botão DoCmd.OpenReport "Recibo", acViewPreview DoCmd.Maximize
  17. Coloque algumas caixa de texto no relatório, coloque-as invisiveis. ClientePedido = [Forms]![FrmRecibo]![TxtCliente] Texto89 = [Forms]![FrmRecibo]![TxtValor] NumeroVale = [Forms]![FrmRecibo]![TxtNumeroVale] [Forms]![FrmRecibo]![TxtCliente] e [Forms]![FrmRecibo]![TxtValor] e [Forms]![FrmRecibo]![TxtNumeroVale] são campos não acoplados no seu form. Extenso é uma função para o valor propriamente dita E uma úlima Caixa de texto visivel ="Recebemos de " & [ClientePedido] & " a importância de R$ " & Formato([Texto89];"#,###.00") & " (" & Extenso([Texto89]) & "), " & " referente ao pagamento " & [NumeroVale] & " pelo que passamos o presente recibo para fins legais." No form, um botão DoCmd.OpenReport "Recibo", acViewPreview DoCmd.Maximize
  18. Bareta, é apenas 1 registro. A Venda Atual e o nome do cliente atual. Issa faz parte do cabeçalho da venda.
  19. Coloque como critério da sua consulta, onde esta o seu relatório Cujo campo seja a chave primária ex: Supondo que na sua consulta exista o campo NumeroVenda [Formulários]![Vendas]![NumeroVenda] é no formulário que voce vai criar um botão DoCmd.OpenReport "Vendas", acViewPreview DoCmd.Maximize
  20. Coloque No evento no Atual do seu form If Me.NewRecord Then Me.Campo.Enabled = True Else Me.Campo.Enabled = false End If Se for novo registro esta habilitado caso contrário, não está
  21. Utilizo VBa para a sua 3ª necessidade. O código abaixo faz um filtro. O usuário repete o pedido para não ter que digitar 2 vezes. O processo de uma cotação ser transformada em Pedido é o mesmo. Abaixo gera o cabeçalho do Pedido Dim db As Database Dim rsAtivo As Recordset Dim rsProventosCalc As Recordset Set db = CurrentDb() Set rsAtivo = db.OpenRecordset("SELECT * FROM TblVendaSaidaNovo WHERE lngNumContrato=" & Me.Combinação0) Set rsProventosCalc = db.OpenRecordset("TblVendaSaidaNovo") Do Until rsAtivo.EOF rsProventosCalc.AddNew rsProventosCalc("NumeroPedidoNovo") = Me.TxtNumeroPedido rsProventosCalc("FornecedorPedido") = rsAtivo("FornecedorPedido") rsProventosCalc("ClientePedido2") = rsAtivo("ClientePedido2") rsProventosCalc("DataEmissão") = Now() rsProventosCalc("Condições2") = rsAtivo("Condições2") rsProventosCalc("Transportadora") = rsAtivo("Transportadora") rsProventosCalc("Cobrança") = rsAtivo("Cobrança") rsProventosCalc("ClientePedido2") = rsAtivo("ClientePedido2") rsProventosCalc("Perc") = rsAtivo("Perc") rsProventosCalc("Faturado") = rsAtivo("Faturado") rsProventosCalc("Bonificação1") = rsAtivo("Bonificação1") rsProventosCalc("Bonificação2") = rsAtivo("Bonificação2") rsProventosCalc("Bonificação3") = rsAtivo("Bonificação3") rsProventosCalc("Bonificação4") = rsAtivo("Bonificação4") rsProventosCalc("Bonificação5") = rsAtivo("Bonificação5") rsProventosCalc("Situação") = rsAtivo("Situação") rsProventosCalc("Obs") = rsAtivo("Obs") rsProventosCalc.Update rsAtivo.MoveNext Loop rsAtivo.Close rsProventosCalc.Close Me.Requery '======================================================================== MsgBox "Cabeçalho do Pedido adicionado com sucesso!", 64, "Aviso" 'DoCmd.Close 'DoCmd.OpenForm "FrmAdicionaPedidoA" End Sub E esse agora gera os itens Private Sub Comando6_Click() Dim detalhes As Recordset Dim detalhesbase As Recordset Set db = CurrentDb() Set detalhesbase = db.OpenRecordset("SELECT * FROM TblDetalhevendaNovo WHERE CódigoPedido = " & Me.Combinação0) Set detalhes = db.OpenRecordset("TblDetalhevendaNovo") Do Until detalhesbase.EOF detalhes.AddNew detalhes("CódigoPedido") = Me.Texto3 detalhes("CódProd") = detalhesbase("CódProd") detalhes("VlDetNovo") = detalhesbase("VlDetNovo") detalhes("QtdeDoPedido") = detalhesbase("QtdeDoPedido") detalhes("DescontoVenda") = detalhesbase("DescontoVenda") detalhes.Update detalhesbase.MoveNext Loop '============================================= detalhesbase.Close detalhes.Close MsgBox "Itens do Pedido adicionado com sucesso!", 64, "Aviso" End Sub
  22. Adapte a função colocando seus proprios campos. Isso que postei era um exemplo apenas. Se quiser mande o seu mdb com apenas esse form e dou uma olhada.
  23. Minha resposta esta errada. De qualquer forma esta confuso o que precisa. Veja se isso abaixo auxilia. Campo: DSoma("Total";"teste2";"nome='" & [Descrição] & "'") Sendo que Descrição deve ser um campo existente na sua consulta.
  24. Infelizmente Bareta continua retornando o ultimo registro. Eis o script: <% cod = request.Form("txtpedido") %> <% cst = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" & _ Server.MapPath("dados/februmar.mdb") set conn = CreateObject("ADODB.Connection") conn.open cst seleciona = cod sql = "SELECT TblVendaSaidaNovo.ClientePedido2, TblClientes.Código2, TblVendaSaidaNovo.lngNumContrato FROM TblClientes left JOIN TblVendaSaidaNovo ON TblClientes.Código2 = TblVendaSaidaNovo.ClientePedido2 Where lngNumContrato = " + seleciona + "" set consulta = conn.execute(sql) v_id_cliente = consulta("Código2") %> Obrigado.
×
×
  • Criar Novo...