Ir para conteúdo
Fórum Script Brasil

valdmir

Membros
  • Total de itens

    13
  • Registro em

  • Última visita

Sobre valdmir

valdmir's Achievements

0

Reputação

  1. valdmir

    Datagridview

    Olá, estou fazendo um programa de orcamento. Tenho um datagrid com os campos codinsumo, descricao e unidade. Nesse datagridview pode ter um registro, dois , 3 ou 8... ou seja a medida que seleciono no combo em cima em cima vai aparece no datagridvew varias linha dependendo da quantidade de cada item. Quero pegar os registros da coluna codinsumo e gravar em uma tabela pedido. Vai ser assim : escolho no combo em cima um servico e no datagridview aparece os insumos relacionados a ele, quero selecionar a coluna codinsumo e usar um botao gravar para tabela pedido. Ai escolho outro servico no combo e aparece no datagridview os insumos relacionados , devo selecionar toda coluna codinsumo e grava-la em uma tabela pedido. Como posso fazer isso? grato
  2. Olá, estou preenchendo uma tabela de outra tabela e gerando relatório com o RAve reports. Tenho um botão para gerar o relatório na mesma tela que seleciono os dados e jogo para outra tabela. Se tentar gerar o relatório após inserir os dados a tela trava, aí tenho que sair do Delphi pois trava tudo. Mas se sair da tela e logo em seguida retornar, ao clicar no botão para gerar o relatório sai tudo certinho. Creio que preciso fazer com que a tabela seja fechada antes da geração do relatório ao algo assim. Uso o IBUpdateSQL1 , já coloquei o close mas continua travando. O que poderia fazer? Uso o banco de dados Firebird. grato Valdmir PS: os dados da tabela estão atualizados ou seja ao gravar na tabela fica perfeito o problema está na hora de usar esses dados da tabela , se gerar o relatorio na mesma tela trava mas se sair funciona normalmente.
  3. Caros amigos, mais um pedido de ajuda. Estou prestes a concluir um programa de orcamento. Tem tabela Clientes, endobra, PEDIDOS, Servicos e Insumos. Na tabela Pedidos na resolvir o problema com ajuda do Forum. Em dbloopukcombobox seleciono servico e insumos e jogo para a tabela pedidos. Existem os relacionamentos entre as tabelas necessárias. A tabela pedido recebe os dados de cliente, endobra, servicos e insumos. O problema comecou aí nesse ponto. A tabela pedido como recebe de todos tive que fazer um relacionamento com SQL: [sELECT* FROM "PEDIDOS" pedidos JOIN "SERVICOS" servicos ON (pedidos.ID_SERVICOS = servicos. ID_SERVICOS) JOIN "INSUMOS" insumos ON (pedidos.ID_INSUMOS = insumos. ID_INSUMOS) JOIN "ENDOBRA" ENDOBRA ON (PEDIDOS.ID_ENDOBRAS = ENDOBRA.ID_ENDOBRAS) JOIN "CLIENTES" CLIENTES ON (ENDOBRA.ID_CLIENTES = CLIENTES.ID_CLIENTES) ] Tenho agora a query com tudo relacionado. Estou usando o fast reports para fazer o relatorio final dessa query. Mas no fast conseguir fazer o relatorio geral de todos os clientes. Não conseguir que ele mim desse a opção de escolher qual o cliente e o endereco para fazer o orcamento especifico. Quero escolher qual o cliente e endereco da obra ) Retornei para o delphi criando uma tabela provisória onde deveria selecionar o cliente e depois a obra e jogar esses dados para essa tabela como fiz com o pedido , depois no fast com uma tabela é fácil. Mas quando coloco no dbloopukcombobox aparece vários nomes dos clientes repetidos e assim endereco servico, etc. Aparece assim pois na tabela pedidos está assim. Como posso usar imagem. Gostaria de escolher o cliente e endereco e jogar para a tabela provisória. grato
  4. Olá, gostaria de gerar relatorio no Delphi. Quero gerar relatorios de 3 tabelas onde em em band posso colocar campo de tabelas distintas. Já tentei colocar mas não aceita. Sempre vejo o pessoal colocar de uma tabela, usando o RAVE que vem no Delphi. Alguns citam o QuickReporter, outros o Crystal Reporter. Qual seria o mais indicado ? grato
  5. Mais um pedido de ajuda!!! Já pesquisei no google e aqui no forum e não obtive resultado satisfatorio para minha duvida. É o seguinte no segundo dbgrid já tenho um campo calculado que está calculando certo. Quero digitar um valor e multiplicar esse valor pelo campo calculado colocando o resultado em outro campo. Coloquei o nr em uma variavel , convertir para inteiro mas não conseguir multiplicar esse numero pelo campo do dbgrid. A dificuldade está em colocar a referencia na fórmula do cálculo. Para fazer o campo calculado tenho as referencias da tabela . Já coloquei multiplicando a variavel convertida multiplicado pelo campo mas dá um erro : não encontra a variavel. Fiz assim: Criei uma variavel X, convertir para inteiro . Multiplico esse X pelo campo calculado mas informa que não encontra a variavel X. Como fazer essa multiplicacao? grato
  6. Caro Micheus, não estou brincando não, amigo. Mil desculpas. Foi que ao conseguir rodar tentei inserir os dados do dbgrid2 e estava colocando apenas um na tabela pedidos. Depois voltou a funcionar como indicou!!!.
  7. Olá amigos, conseguir resolver o problema :D . Na realidade fiz duas coisas: a primeira foi verificar que o cod_insumo da tabela insumos estava em segundo lugar na tabela e não em primeiro lugar devido ser sequencial e chave.(não se realmente infuencia alguma coisa)!!! Mudei para o primeiro campo da tabela funcionou mas quando escolhia o dbgrid1 o dbgrid2 não mostrava como antes . Aí fiz um referential integrity na tabela insumo com a de servico que são ligadas. Pronto funciona normalmente sem travamentos. Agora mas uma duvida: Por exemplo no dbgrid2 tenho 4 itens a serem gravados na tabela. Tenho que gravar de um a um. Como posso gravar os 4 de vez ou todos aqueles que aparecer no dbgrid2 e jogar de uma só vez? temo como fazer isso? Micheus mais uma vez meus sinceros agradecimentos grato
  8. Micheus, obrigado mais uma vez e desculpe pela insistencia. Conseguir passar daquele ponto os codigos estão assim agora: tableinsumos.open; tablepedidos.Open; tableinsumos.First; while not tableinsumos.EOF do begin tablepedidos.edit; Tablepedidos.Insert; tablepedidos.append; if not Tablepedidos.Locate('Cod_insumo', tableinsumos.FieldByName('cod_insumo').value,[]) then tablepedidos.FieldByName('cod_insumo').value := tableinsumos.FieldByName('cod_insumo').value; tablepedidos.post; tableinsumos.Next; end; Mas ele apresenta um erro agora na linha " tablepedidos.post; e sinaliza aí o erro mostrando Tablepedidos: dataset not in editor or insert mode. Como pode ver acima já existe tablepedidos.insert mas mesmo assim continua apresentando o erro. o que posso fazer agora?
  9. Amigo, segue o codigo: tableinsumos.open; tableinsumos.First; while not tableinsumos.EOF do begin tablepedidos.append; tablepedidoscod_insumo.value := tableinsumoscod_insumo.value; tablepedidos.post; tableinsumos.Next; apresenta esses erros abaixo e fica com indicacao em "tableinsumoscod_insumo [Error] CadastroPedidos.pas(78): Undeclared identifier: 'tableinsumoscod_insumo' [Error] CadastroPedidos.pas(78): Missing operator or semicolon [Fatal Error] VH.dpr(10): Could not compile used unit 'CadastroPedidos.pas' Pode ser diferenca de campos nas duas tabelas? o campo cod_insumo na tabela de pedidos está como I - long integer sem chave e o campo na tabela de insumos está cod-insumo é + - auto icrement com chave. Pode ser isso o erro? mais uma vez grato
  10. Ficou muito claro agora. Fiz como indicou das duas formas tanto para copiar um registro como para todos mostrados na dbgrid2. Mas quando uso da tableinsumocod_insumo ele para aí apontando sempre depois do insumo no "o" . Qaundo coloquei outro campo para teste por exemplo data e rodou mas ao clicar no botao para iniciar o preocesso aprensenta "key violation" e pára mostrando "end." no final. grato
  11. Amigão, tentei mas ficou em parte . Olhe como ficou o que fiz: TablePedidos.append; TablePedidoscod_insumo.value:= Dbgrid2.Columns[0]. TablePedidos.Post; Na segunda linha faltou os 2 pontos. Deu um trabalho danado para descobrir. Logo em seguinda faz referencia a tableinsumocoddigoinsumo mas na realidade o quero é jogar do Dbgrid2 e não direto da tabela de insumo Quero jogar uma coluna do dbgri2 que está selecionado da linha tal . Ou seja só quero gravar a primeira coluna da linha tal. não sei se deu para entender. Depois de Dbgrid2.columns[0] deve ter algo dizendo que é a linha selecionada para defenir dois pares (x, y). Espero que entendam grato
  12. Caro Micheus, perfeito. Ao fazer a inversão ficou como eu queria, Realmente perfeito. Agora como fazer para que ao escolher os insumos na parte de baixo eu faça com eles fiquem gravados na tabela pedidos? A medida que for selecionando quero jogá-los no pedido. Algum manual de instrução SQL? Muito agradecido pela ajuda Valeu
  13. Caro Micheeus, Primeiro em novo form coloquei um Table chamando de tableservico fazendo sua ligacao com a tabela servico, a que vai ficar na parte de cima. Depois coloquei um datasource que chamei de datasourceservico, ligando ele a table (em dataset escolhir "tableservico". Creio que liguei os dois. Coloquei outra Table com o nome de tableinsumo e ligando ela a tabela insumo ( essa tabela insumo é dependente de servico). Creiei depois outro datasource que chamei de datasourceinsumo e liguei ao tableinsumo. O que fiz com um fiz com o outro ou seja -> datasourceservico -> table servico e datasourceinsumo -> tableinsumo. Vi na internet que deveria fazer uma ligacao do ligacao entre o tableservico e tableinsumo. No tableservico em MasterSource selecionei o tableinsumo inclusive só tem essa possibilidade de escolha. Até ai nenhum erro. Já fiz um lookup entre as tabelas servico e insumo na criação das tabelas , sem problema ( fazendo cod_servico do insumo dependente do cod_servico da tabela servico. Na tableservico ainda selecionei MasterFields , lá aparece os links de servico e insumo , seleciono os dois que estao ligados que são: Cod_servico do servico e cod_servico do insumo e adiciono na janela de baixo ficando assim(cod_servico -> cod_servico) dou ok. Sem Problemas. Coloco 2 dbgrid : um em cima que será relativo a servico e outro embaixo relativo ao insumo. No de cima em datasource seleciono a tableservico. Ele é preenchido com os dados do servico. Aí é que aparece o problema aparece apenas o primeiro registro e na tabela de servico existem 2 servicos que cadastrei ou seja nessa tabela deveria aparecer os dois servicos para eu puder escolher um deles. Mas não aparece um ficou escondido. Na dbgrid de baixo faco a mesma coisa : em datasource seleciono a tableinsumo : nessa tabela aparece todos os registros mas deveria aparecer apenas o que eu selecionasse na tabela de cima o que não acontece. ao executar o programa funciona normalmente digo sem apresentar erro mas esse problema aparece: na parte de cima aparece apenas um item e na parte de baixo aparece todos os itens. Creio que necessita de algum comando ou linha de codigo que faça que a tabela de cima mostre todos os registros e não apenas o primeiros e que o dbgrid de baixo fique dependente do de cima que creio que já estar Um detalhe que percebi é que parece que está funcioando ao contrario : se escolher no dbgrid de baixo , o insumo em cima muda o servico para o numero 2. Na realidade isso deveria ser ao contrario: ao selecionar um registro em cima deveria mostrar os ligados a ele em baixo. A sequencia que fiz foi essa aí sem acrescentar nada. É isso assim. grato
×
×
  • Criar Novo...