tiriciasf 0 Denunciar post Postado Outubro 26, 2007 Pessoal estou com um problema preciso colocar no SQLDATASET commandText, um codigo SQL, para um relatório, pois já tentei colocar diretamente na programaçao, mas os componentes passam dos 255 elementos, preciso no SQL colocar entre datas (pois para o relatorio o usuario vai escolher as datas que quer o relatorio Tentei assim no commandText do SQLDATASET SELECT VIAGEM.COD_VIAGEM, NR_VIAGEM, DATA_VIAGEM, CRT, MIC, PESO_CARGA,DESTINO, VALOR_FRETE, VALE1, KM_SAIDA, KM_CHEGADA, CARGA_CIDADE,TOTAL_DESP_REAIS,VELOCIDADE, KM, TOTAL_ABAST_REAIS, TOTAL_LITROS, MEDIA, MOTORISTA.NOME_MOT, VEICULOS.PLACAfrom VIAGEMINNER JOIN VEICULOSON VIAGEM.COD_VEIC = VEICULOS.COD_VEICINNER JOIN MOTORISTAON VIAGEM.COD_MOTORISTA = MOTORISTA.COD_MOTORISTAWHERE (VIAGEM.DATA_VIAGEM BETWEEN :DATA_INICIAL AND :DATA_FINAL) AND MOTORISTA.NOME_MOT= :NOME; Com esse Código ta dando um erro " No value for Parameter DATA_INICIAL " Se alguém puder me ajudar!!! Compartilhar este post Link para o post Compartilhar em outros sites
marcio.theis 3 Denunciar post Postado Outubro 26, 2007 Você esta passando os parâmetros certinho para o SQLDataSet ?Se puder, coloque o fonte que esta usando para gerar. Compartilhar este post Link para o post Compartilhar em outros sites
tiriciasf 0 Denunciar post Postado Outubro 27, 2007 Como assim não entendi.. Este cod que está no SQLDASET, para que depois eu possa passar por parametro, para o relatorio. o SQLDASET está ligado ao SQLConection, que está ligada com o banco de Dados. Vou passar um exemplo de um que fiz para aparecer num DBGRID, quero fazer parecido, porém não estou conseguindo passar por parametro as datas (data inicial, data final). Segue o exemplo. Cód no SQLDASET select VIAGEM.COD_VIAGEM, NR_VIAGEM,DATA_VIAGEM, VALOR_FRETE, FRETE_COBRADO, MOTORISTA.NOME_MOT,VEICULOS.PLACA from VIAGEM INNER JOIN MOTORISTA ON VIAGEM.COD_MOTORISTA= MOTORISTA.COD_MOTORISTA INNER JOIN VEICULOS ON VIAGEM.COD_VEIC = VEICULOS.COD_VEIC WHERE COD_VIAGEM= :CODIGO OR MOTORISTA.NOME_MOT like :NOME OR VIAGEM.NR_VIAGEM like :NUM_VIAGEM OR VIAGEM.DATA_VIAGEM = :DATA OR (VIAGEM.FRETE_COBRADO = 1) OR VEICULOS.PLACA like :NUM_PLACA Este código eu coloquei, para abrir uma viagem que estava no DBGRID procedure TFormViagemAberto.DBGridVIAGEMDblClick(Sender: TObject); begin DMCADASTRO.TBVIAGEM.Close; DMCADASTRO.SQLDATASETVIAGEM.ParamByName('CODIGO').AsInteger := DMCADASTRO.TBDBGRIDVIAGEMCOD_VIAGEM.AsInteger; DMCADASTRO.TBVIAGEM.Open; FormViagemAberto.Visible:=false; FormViagem.ShowModal; Bom para este eu preciso que apareçam no relatório os campos que estão no Código do SQLDASET, e tenho que passar por parametro a Data_viagem, que será a Data_inicial e Final do Relatório, so vai aparecer as viagens entre estas datas, e o motorista que ele escolher. Segue o Código que do SQLDASET que vou ligar no relatório.Mas que tá dando o erro " No value for Parameter DATA_INICIAL " SELECT VIAGEM.COD_VIAGEM, NR_VIAGEM, DATA_VIAGEM, CRT, MIC, PESO_CARGA,DESTINO, VALOR_FRETE, VALE1, KM_SAIDA, KM_CHEGADA, CARGA_CIDADE,TOTAL_DESP_REAIS,VELOCIDADE, KM, TOTAL_ABAST_REAIS, TOTAL_LITROS, MEDIA, MOTORISTA.NOME_MOT, VEICULOS.PLACAfrom VIAGEMINNER JOIN VEICULOSON VIAGEM.COD_VEIC = VEICULOS.COD_VEICINNER JOIN MOTORISTAON VIAGEM.COD_MOTORISTA = MOTORISTA.COD_MOTORISTA WHERE (VIAGEM.DATA_VIAGEM BETWEEN :DATA_INICIAL AND :DATA_FINAL) AND MOTORISTA.NOME_MOT like :NOME; Compartilhar este post Link para o post Compartilhar em outros sites
tiriciasf 0 Denunciar post Postado Outubro 29, 2007 Pessoal, consegui, vou colocar abaixo como fiz, pq se alguém estiver na mesma situação possa tirar como base. No CommandoText do SQLDATASET coloquei o seguinte código. SELECT VIAGEM.COD_VIAGEM, NR_VIAGEM, DATA_VIAGEM, CRT, MIC, PESO_CARGA,DESTINO, VALOR_FRETE, VALE1, KM_SAIDA, KM_CHEGADA, CARGA_CIDADE,TOTAL_DESP_REAIS,VELOCIDADE, KM, TOTAL_ABAST_REAIS, TOTAL_DESP_VIAGEM, TOTAL_LITROS, MEDIA, MOTORISTA.NOME_MOT, VEICULOS.PLACA from VIAGEM INNER JOIN VEICULOS ON VIAGEM.COD_VEIC = VEICULOS.COD_VEIC INNER JOIN MOTORISTA ON VIAGEM.COD_MOTORISTA = MOTORISTA.COD_MOTORISTA WHERE VIAGEM.DATA_VIAGEM >= :DATA_INICIAL AND VIAGEM.DATA_VIAGEM <= :DATA_FINAL AND MOTORISTA.NOME_MOT LIKE :NOME; Depois passei por parametro, la no botao imprimir do formulário.Assim procedure TFRelViagemMot.BitBtn2Click(Sender: TObject); begin DMRELATORIO.TBVIAGEMMOT.close; DMRELATORIO.SQLDASETVIAGEMMOT.ParamByName('DATA_INICIAL').Value:=InverteData(maskedit1.Text); DMRELATORIO.SQLDASETVIAGEMMOT.ParamByName('DATA_FINAL').Value:=InverteData(maskedit2.Text); DMRELATORIO.SQLDASETVIAGEMMOT.ParamByName('NOME').Value:= DBLookupComboBox1.Text; DMRELATORIO.TBVIAGEMMOT.open; QRVIAGEMMOT.PreviewModal; end; Compartilhar este post Link para o post Compartilhar em outros sites