 |
ActiveDelphi .: O site do programador Delphi! :.
|
| Exibir mensagem anterior :: Exibir próxima mensagem |
| Autor |
Mensagem |
faustoalencar Novato

Registrado: Terça-Feira, 20 de Mai de 2008 Mensagens: 40
|
Enviada: Dom Jul 31, 2011 5:43 pm Assunto: No value for parameter Codigo3 |
|
|
Boa tarde,
Mais uma vez, dependo do forum pra continuar a desenvolver.
Fiz um relatorio filtrando por data e por cliente, funcionou legal, mas acrescentei mais um filtro, dai surgiu erro.
procedure TFormChamaRelAgendaPorData.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
ModuleRepresentantes.ClientDataSetClientes.Close;
ModuleRepresentantes.ClientDataSetTipoVisitas.Close;
end;
procedure TFormChamaRelAgendaPorData.SpeedButtonVisualizarClick(
Sender: TObject);
begin
FormRelatorioAgendaPorData := TFormRelatorioAgendaPorData.Create(Application);
with FormRelatorioAgendaPorData do
begin
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('data1').asDate := StrToDate(DateEditInicial.Text);
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('data2').asDate := StrToDate(DateEditFinal.Text);
////// abaixo é o filtro de CLIENTES
if ChkCliente.Checked then begin // foi colocado um checkbox para seleção de apenas um cliente
if StrToIntDef(DBLookupComboBoxClientes.ListSource.DataSet.FieldByName('Codigo').AsString, 0) <> 0 then begin
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo1').AsInteger := DBLookupComboBoxClientes.KeyValue;
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo2').AsInteger := DBLookupComboBoxClientes.KeyValue;
end else begin
Application.MessageBox('Selecione um cliente', 'Relatório', MB_OK);
Exit;
end;
end else begin
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo1').AsInteger := 0;
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo2').AsInteger := 99999;
end;
ModuleRepresentantes.ClientDataSetRelAgendaVisitas.Close;
ModuleRepresentantes.ClientDataSetRelAgendaVisitas.Open;
////// abaixo é o filtro do TIPO DE VISITAS
if ChkTipoVisita.Checked then begin // foi colocado um checkbox para seleção de apenas um tipo de visita
if StrToIntDef(DBLookupComboBoxTipoVisita.ListSource.DataSet.FieldByName('Codigo').AsString, 0) <> 0 then begin
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo3').AsInteger := DBLookupComboBoxTipoVisita.KeyValue;
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo4').AsInteger := DBLookupComboBoxTipoVisita.KeyValue;
end else begin
Application.MessageBox('Selecione um tipo de visita', 'Relatório', MB_OK);
Exit;
end;
end else begin
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo3').AsInteger := 0;
ModuleRepresentantes.SQLDataSetRelAgendaVisitas.ParamByName('codigo4').AsInteger := 99999;
end;
ModuleRepresentantes.ClientDataSetRelAgendaVisitas.Close;
ModuleRepresentantes.ClientDataSetRelAgendaVisitas.Open;
FormRelatorioAgendaPorData.RLReport1.PreviewModal;
end;
end;
Grato pelo apoio |
|
| Voltar ao Topo |
|
 |
imex Moderador

Registrado: Sexta-Feira, 7 de Janeiro de 2011 Mensagens: 11666
|
Enviada: Dom Jul 31, 2011 6:06 pm Assunto: |
|
|
Experimente excluir as linhas de código abaixo do meio da rotina, mantendo-as apenas no final antes do PreviewModal, pois o ClientDataSet deve ser aberto somente depois que todos os parâmetros foram atribuidos:
| Código: | ModuleRepresentantes.ClientDataSetRelAgendaVisitas.Close;
ModuleRepresentantes.ClientDataSetRelAgendaVisitas.Open; |
Espero que seja útil.
__________________
Assinatura: Salas comerciais em Guarulhos |
|
| Voltar ao Topo |
|
 |
faustoalencar Novato

Registrado: Terça-Feira, 20 de Mai de 2008 Mensagens: 40
|
Enviada: Ter Ago 02, 2011 1:00 pm Assunto: |
|
|
Boa tarde,
Feito o procedimento sugerido pelo Imex e, problema resolvido.
Grato |
|
| Voltar ao Topo |
|
 |
|
|
Enviar Mensagens Novas: Proibido. Responder Tópicos Proibido Editar Mensagens: Proibido. Excluir Mensagens: Proibido. Votar em Enquetes: Proibido.
|
|