Ir para conteúdo
Fórum Script Brasil

claudyo

Membros
  • Total de itens

    37
  • Registro em

  • Última visita

Tudo que claudyo postou

  1. o codigo ta no evento onclick de um botao
  2. uma coisa q eu não tinha dito antes, eu só preciso q esses dados sejam mostrados em duas grids não é necessario um report. Da forma q eu fiz ta retornando todos os dados da tabela detalhe, e qd eu configuro em tempo de projeto ai sim funciona certo. O q ta errado no codigo q te mostrei??? Abraço
  3. obrigado pela atençao Jhonas. Ainda não achei nehuma duvida parecida com a minha, e não sei se me expressei bem. montar relatorios (simples) eu sei, também consigo fazer um masterdetail só q faço isso configurando as propriedades MASTERSOURCE, MASTERFIELDS e INDEXFIELDNAME em tempo de projeto, eu quero saber se é possivel passar esses valores em tempo de execuçao algo mais ou menos assim if rbtTelefone.Checked=true then begin cdscliente.Active:=false; cdsTel.Active:=false; cdsCliente.MasterSource:=dtsTel; cdsCliente.MasterFields:=cdsTel.fieldbyName('CLIENTE_ID_1').AsString; cdsCliente.IndexFieldNames:=cdsTel.fieldByname('CLIENTE_ID_1').AsString; with qryTel do begin Active:=false; Sql.Clear; Sql.Text:='SELECT CLIENTE.CLIENTE_ID, CLIENTE.NOME, CLIENTE.RG, CLIENTE.CPF, CLIENTE.LOGRADOURO, CLIENTE.NUMERO, CLIENTE.BAIRRO, CLIENTE.COMPLEMENTO, CLIENTE.OBSERVACAO, TELEFONES.TEL_ID, TELEFONES.CLIENTE_ID, TELEFONES.NUMERO '+ 'FROM (CLIENTE INNER JOIN TELEFONES ON CLIENTE.CLIENTE_ID = TELEFONES.CLIENTE_ID)'+ ' Where TELEFONES.NUMERO like :pTel'; Params[0].Value:=EdtTelefone.Text; Active:=true; end; end; cdscliente.Active:=true; cdsTel.Active:=true; end; claro q isso não funcionou, eu keria saber se o que eu to tentando é possivel e como se faz Abraços
  4. Bom dia a todos é o seguinte, preciso fazer um masterdetail em runtime. Tenho a tabela telefones e a tabela cliente, e minha busca nessas tabelas seria tanto pelo nome do cliente qt pelo telefone, então to tentando setar o mastersource, masterfields e indexfieldname em runtime, mas não ta funcionando. A pergunta é: é possivel fazer isso e se possivel qual a maneira correta, porque já pesquisei e não achei nada q resolva meu problema.
  5. meu caro douglas já experimentou fazer um master detail???da uma peskisada qualker duvida posta ai.. Abraço
  6. claudyo

    Gerar instalador

    vlw pela atençaoJhonas mas infelizmente minha duvida persiste pois tutoriais de como usar o installshield eu já tinha lido e até fiz um instalador, mas qd instalei em uma makina q não tem o delphi instalado ele não roda, aparece uma mens de erro q ta faltando bpl, vcls, rtls(a opçao build with runtime packages já estava desmarcada) e um outro erro q aparece uma parte de um comando sql( select * from alguma coisa).Enfim o que eu quero mesmo saber é o que exatamente devo colocar no pacote de instalaçao pra q rode em uma makina q não tenha delphi, se preciso instalar o access pra rodar o BD e se preciso instalar mais algum driver tipo odbc(markei essa opçao no installshield). Vlw Abraço
  7. Ola a todos Bom minha duvida é a seguinte, fiz uma aplicaçao em D7 e agora to tentando fazer o instalador mas não sei o que exatamente devo adicionar alem do BD(Access2007) e do .exe, uso conexao via odbc. Tenho q add alguma dll, algum driver e como registro uma dll Qualker ajuda é bem vinda Obrigado Abraço a todos
  8. Micheus obrigado pela atençao era isso mesmo q eu precisava vlw Abraços
  9. Ola a todos,bom pessoal meu problema é o seguinte, preciso colocar um combobox em um formulario onde o usuaria vai escolher uma opçao, geralmente esse combox lista uma coluna de uma tabela, mas nesse combobox o usuario vai escolher a forma de pagamento quero sabe se existe alguma maneira de listar essas opçoes q não seja a partir de uma tabela. Andei peskizando e vi alguma coisa sobre hardCoded mas não achei nada parecido com o q eu preciso, alguém sabe como fazer isso??? Se puderem me ajudar com mais essa duvida fico grato Abraço a todos
  10. Ola Gabriel Cabral, bom se entendi bem sua duvida, os campos q você quer mostrar nos Dbedits estao na mesma tabela q você esta mostrando no dbGrid, imagino q você tenha um edit pra informar o codigo do produto a ser peskizado então ficaria assim with dm.QueryBuscaForn do begin Close; SQL.Clear; SQL.Add('SELECT * FROM FINAFOR.dbf'); SQL.Add('WHERE FORCOD = :pCOD'); Parameters.ParambyName('pCOD').Value:=Edit1.text; Open; if not(IsEmpty) then begin frmCadForn.txtCadForn_CodForn.Text := dm.QueryBuscaForn.Fields[0].AsString; //e assim por diante com os outros campos.... end; end; Se não for isso poste com mais detalhes Abraço
  11. Micheus, na query q uso pra inserir os dados coloquei na Propriedade Sql dela um 'Select * From Tabela', isso pode causar problema já q é uma query pra inserçao de dados e não de consulta?? Existe algum outro component pra inserir dados melhor q uma query?? porque depois de tantas tentativas começo a achar q essa query é q ta me dando problemas já q fiz td você me recomendou fazer e nada da certo. Abraços
  12. Verifique na sua tabela o nome do campo em questao, só gera esse erro qd não encontra o campo na tabela, você deve te colocado o nome diferenta do q esta na tabela Espero q isso ajude Abraços
  13. Ola Micheus, Infelizmente o erro persiste fiz como me sugeriu testei também fazendo algumas alteraçoes mas infelizmente o erro persiste, vou dar uma olhada em todo o codigo, revisar ele todo seguindo suas sugestoes pra ve se acho onde to errando e volto a postar resultados. Origado pela atençao Abraços
  14. Micheus, o que acontece é q esse erro q te falei(imcompatibilidade entre TParameter e Procedure untyped pointer ou untyped parameter) aparece qd tento roda o programa(F9). não compila se eu chama a funçao InitParam, tive q tira ela pra roda. Agora um outro probleminha q eu acho q é simples, como se verifica se um DbLookupcombobox ta em branco eu até tinha feito e tinha dado certo mais deu um problema aki e não deu pra salva agora to tentando faze e não da certo. Faço assim f varisnull (cboCategoria.KeyValue) then begin Application.Messagebox('Escolha uma Categoria Para o Produto','Aviso',mb_IconInformation+mb_ok); cboCategoria.SetFocus; exit; end; e já tentei também assim if (cboCategoria.kevalue:= null then Mas em ambos os casos parece q essa linha é ignorada e da erro no banco por não ter uma categoria selecionada. Como faço isso?? Abraços
  15. Os erros só vao mudando :D mas td bem assim vo aprendendo mais. Bom Micheus, agora é o seguinte, fiz o que me sugeriu só q agora da erro de imcompatibilidade entre TParameter e Procedure e na frente disso aparece untyped pointer ou untyped parameter. o que eu faço??? Abraços
  16. cara vlw d++ fiz as mudanças aki e ta funcionando perfeito o codigo fico assim procedure TfrmPrincipal.btnAddClick(Sender: TObject); begin dm.cdsTemporario.insert; dm.cdsTemporarioNome.Value:=dm.qryPedido.fieldbyName('nome').asString; dm.cdsTemporarioTamanho.Value:=dm.qryPedido.fieldByname('tamanho').AsString; dm.cdsTemporarioVolume.Value:=dm.qryPedido.fieldByname('Volume').AsString; dm.cdsTemporarioQtd.Value:=strtofloat(edtQtde.Text); dm.cdsTemporarioValor.Value:=strTofloat(edtQtde.Text)*dm.qryPedido.fieldByname('Valor').AsFloat; dm.cdsTemporario.Post; end; Obrigado pela ajuda Abraços não sei como colocar resolvido, mais alguém deve coloca.....
  17. Obrigado pela atençao Frega, bom fiz como você me sugeriu, e como não tenho ideia de como é feito fiz exatamente como você posto segue o codigo procedure TfrmPrincipal.btnAddClick(Sender: TObject); begin dm.cdsTemporario.dataset.insert; dm.cdsTemporarioNome.Value:=dm.qryPedidoNome.asString; dm.cdsTemporarioTamanho.Value:=dm.qryPedidoTamanho.AsString; dm.cdsTemporarioVolume.Value:=dm.qryPedidoVolume.AsString; dm.cdsTemporarioQtd.Value:=strToInt(edtQtd.text).AsInteger; dm.cdsTemporarioValor.Value:=strToFloat(edtQtd.text)*dm.qryPedidoValor.AsFloat; dm.cdsTemporarioDataser.Post; end; Me retorna alguns erros o primeiro é identificadir não declarado "dataset, qrypedidoNome(obs:já testei algumas mudanças aki tipo qry.fieldbyname, e não deu certo). o que eu tenho q muda??? Continuo contando com sua ajuda Abraços
  18. Seguinte pessoal, tenho um form de registro de pedido com duas grids, uma ligada a tabela produto na outra criei uma tabela temporaria com o clientdataset, agora eu preciso que qd o usuario selecionar um produto na grid(nome, tamanho ou volume, qtd e valor) de produtos e clicar num botao add esse item na outra sendo q a qtd vai ser colocada em um edit e o valor tem q ser multiplicado pela qtd, e só depois q fechar o pedido inserir os itens na tabela itens de pedido. alguém sabe como fazer isso??? já tentei testando alguns ex q achei mais não funcionou.Se alguém puder me ajudar agradeço Abraço a todos.
  19. Eu aki de novo Micheus hehe.... cara testei aki sua sujestao, fiz esse teste num outro form de cadastro de produto q vai te também dois campos onde só um é obrigatorio, podendo ser qualker um deles segue o codigo procedure TfrmCadProd.gravadados; begin with dm.qryCadProd do begin sql.Text:='insert into produto(nome, categoria, tamanho, volume, valor,)'+ 'Values (:pNome, :pCategoria, :pTamanho,:pValor,:pVolume, :pValor)'; Parameters.ParamByName('pNome').Value:=edtNome.Text; Parameters.ParamByName('pCategoria').Value:=cboCategoria.KeyValue; if edtTamanho.text <> '' then Parameters.ParamByName('pTamanho').Value:=edtTamanho.text else Parameters.ParamByName('pTamanho').Value:= null; if edtVolume.text <> '' then Parameters.ParamByName('pVolume').Value:=edtVolume.text else Parameters.ParamByName('pVolume').Value:= null; Parameters.ParamByName('pValor').Value:=strTocurr(edtValor.text); Prepared:=true; ExecSql(); end; end; procedure TfrmCadProd.btnSalvarClick(Sender: TObject); var i : integer; begin for i:=0 to componentCount-1 do begin if (TEdit(components[i]).Tag=1) and (TEdit(components[i]).text='') then begin application.MessageBox('Existem Campos Obrigatórios em Branco','Aviso',mb_iconInformation+mb_okcancel); TEdit(components[i]).SetFocus; exit; end; end; if (edtTamanho.Text='') and (edtVolume.Text='') then begin application.MessageBox('Informe o Tamanho ou Volume do Produto','Aviso',mb_iconInformation+mb_okcancel); edtTamanho.SetFocus; exit; end; gravadados; end; end. Ai me retorna o seguinte erro "Objeto parameter definido incorretamente, as informaçoes são incorretas ou inconsistentes". Sabe porque isso ocorre? Agradeço a atençao Abraços
  20. Vlw Micheus vo testa aki e posto resultado Abraços
  21. claudyo, como você está fazendo esta inserção. Voce está utilizando componentes data-aware ligados ao dataset, ou está usando queries (com insert) parametrizadas? Abraços Eu uso queries com parametros, isso pode da problema??? Abraços
  22. Micheus, olhei no meu banco os campos e todos permitem comprimento zero, se sabe alguma outra propriedade q possa ser mudada seria uma ajuda muito bem vinda.. Mais uma vez obrigado pela atençao Abraços
  23. não consegui resolve o problema exatamente como eu keria segui as instruçoes do Micheus, colocando um driver msjet mas infelizmente deu o mesmo erro,mas achei uma soluçao meio tosca, mas na falta de outra..... Os campos não podem estar vazios tipo('') mas se eu trocar o valor pra um texto em branco(' ') ai eu consigo fazer inserçao o inconveniente é q tenho q mudar os tipos dos campos todos pra texto no banco pra não da imcopatibilidade com os campos numericos.Mas resolveu meu problema. Obrigado a todos pela atençao e continuo contando com ajuda de todos já q vou precisar pra termina meu sistema. Abraço a todos
  24. sempre tem um porém... :D claudyo, faltou também informar que componente você está utilizando para o acesso. como você não poderá manter os dois campos como obrigatório, então prossivelmente você não terá como usar o OnPostError sugerido pelo colega sllc. Então, a primeira abordagem (testar no botão de gravação) seria mais aplicável. Há ainda a possibilidade de você fazer esta validação no evento OnBeforePost do dataset - e neste caso, você testaria o campo do dataset (não o Edit ou maskedit...) Abraços Obrigado Micheus pela atençao. Bom vamos la qt ao componente q uso pra conexao é um ADOconection e uma ADOQuery já add os fields e já tava todos com required false e o erro continua, o que devo fazer?? Tentar algum outro tipo de component de conexao ou existe alguma outra propriedade q devo alterar pra resolver isso???Qt a mens de erro q me retorna é exatamente essa "[Microsoft][Driver ODBC microsoft Access]Valor de precisao invalido".Sabe me dize porque isso ocorre??? Abraços
  25. Bem meu problema continua, me eskeci de menciona um problema, eu não consigo fazer inserao de dados se houver um campo em branco, mesmo configurando o campo da tabela no banco(Access2007) como não requerido na hora de fazer inserçao da erro, pra outros campos q tenho no meu form q não são obrigatorios eu já achei uma forma de contorna esse problema, mas pra esses dois em kestao é um pouco mais complicado, pois um deles é obrigatorios podendo ser qualker um deles, então preciso descobrir uma forma pra q quando um desses campos estiver preenchido o sistema ignore o outro em branco Se mais alguém tiver alguma ideia é sempre bem vinda...fico aguardando Abraço a todos
×
×
  • Criar Novo...