valdmir
-
Total de itens
13 -
Registro em
-
Última visita
Posts postados por valdmir
-
-
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.
-
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
-
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
-
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
-
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!!!.
-
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
-
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?
-
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
-
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
-
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
-
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
-
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
Datagridview
em .NET
Postado
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