Duvida com DisableControls e EnableControls
Bom dia pessoal,
Uso o codigo abaixo para gerar um relatorio com fastreport
Estou usando TADOTable e um campo integer calculado para criar um indice automatico.
O problema é que se uso o DisableControls e EnableControls o indice no relatorio começa com -1. fica assim
-1
2
3
4 ...
e se retiro DisableControls e EnableControls fica normal assim
1
2
3
4 ...
como faço pra resolver isso?
desde já agradeço.
Uso o codigo abaixo para gerar um relatorio com fastreport
Estou usando TADOTable e um campo integer calculado para criar um indice automatico.
O problema é que se uso o DisableControls e EnableControls o indice no relatorio começa com -1. fica assim
-1
2
3
4 ...
e se retiro DisableControls e EnableControls fica normal assim
1
2
3
4 ...
como faço pra resolver isso?
if DM.TSetor.RecordCount <= 0 then
begin
Application.MessageBox(pchar(Não há dados para gerar relatório),pchar(Caption),MB_OK+MB_ICONINFORMATION);
end
else
begin
DM.TSetor.DisableControls;
DM.Relatorio.LoadFromFile(ExtractFilePath(Application.ExeName)+\Relatorio\Setor01.fr3);
DM.Relatorio.PrepareReport(true);
DM.Relatorio.ShowReport(true);
DM.TSetor.EnableControls;
end;
desde já agradeço.
Valdenir Matos
Curtidas 0
Respostas
Valdenir Albino
18/03/2012
Duas soluções.
Se você tiver usando um TDataSource para ligar os componentes, ao invés de usar o EnableControls e o DisableControls, utilise o Enable do DataSource e ficaria mais ou menos assim.
Se isso não Funcionar, use o RecNo do DataSet
antes de Dar o ShowReport:
DM.TSetor.RecNo := 1;
Se você tiver usando um TDataSource para ligar os componentes, ao invés de usar o EnableControls e o DisableControls, utilise o Enable do DataSource e ficaria mais ou menos assim.
if DM.TSetor.RecordCount <= 0 then
begin
Application.MessageBox(pchar(Não há dados para gerar relatório),pchar(Caption),MB_OK+MB_ICONINFORMATION);
end
else
begin
DM.TDataSource.Enable := false;
try
DM.Relatorio.LoadFromFile(ExtractFilePath(Application.ExeName)+\Relatorio\Setor01.fr3);
DM.Relatorio.PrepareReport(true);
DM.Relatorio.ShowReport(true);
finally
DM.TDataSource.Enable := true;
end;
end;
Se isso não Funcionar, use o RecNo do DataSet
antes de Dar o ShowReport:
DM.TSetor.RecNo := 1;
GOSTEI 0