Muito complicado!
14/05/2003
0
eu tenho um programa que imprime relatorios na forma de tabelas,
sendo que maioria dos dados da tabela sou eu que preencho, uso o beforeprint e o afterprint. O problema é o seguinte: eu preciso imprimir varias telas com os mesmos dados ...mas usando apenas um quickrep, ja que eu so preciso mudar os dados das ultimas colunas da tabela e esses dados eu mesmo preenche, ou seja, eles nao sao de componentes ligados a tabela!!!!
me ajudem...
pra ter uma ideia melhor ..uma solucao seria criar varios quickreps iguais... e usar um compositereport o que nao seria legal ...e o numero de quckrep pode varias em tempo de execucao!!!
Xanatos
Posts
14/05/2003
Mauromarques
Todo quickrep tem o evento onNeedData certo. Nele existe uma variável chamada MoreData que se ela estiver true ele imprimirá a página do relatório se ela estiver False não imprimirá.
Existem várias formas de implementar esta rotina, uma delas é a seguite:
- Deixar o campo dataset do quickreport sem nada;
- Cria uma variável publida no DataModulo de Nome NrPaginas.
- Na tua tela de parâmetro, isto é, a tela que chama o relatório antes de executar a opção Preview ou previewModal ou Print tu irás definir o valor para esta variável conforme o número de paginas que tu queres imprimir.
Por exemplo imprimir 6 folhas tu definirá:
NrPaginas := 6;
No Evento onNeedData tu deves escrever esta rotina:
if DataModulo.NrPaginas=0 then
begin
MoreData:=False;
end
else
begin
MoreData:=True;
DataModulo.NrPaginas := DataModulo.NrPaginas-1;
end;
Com isto, a primeira vez que tu executar o relatório, a variável moredata estará true e imprimirá a página e ...
14/05/2003
Xanatos
blz...
15/05/2003
Okama
O relatório está pronto, é um modelo padrão para vários, altere os campos necessários passe como variáveis e imprima.
Clique aqui para fazer login e interagir na Comunidade :)