RM (Relatório Máquina) é um poderoso pacote de controle de relatório Delphi. Use -o para criar relatórios muito complexos. O uso mais simples é explicado abaixo:
Coloque dois controles de banco de dados no formulário: Adoconnection and Adoquery para configurar o ConnectionString da Adoconnection. LoginPrompt = false. A conexão de Adoquery aponta para a Adoconnection. O SQL da Adoquery configura declarações de consulta de dados.
Coloque dois controles de relatório RM no formulário: rmdbdataset e rmreport. O conjunto de dados do RMDBDataSet aponta para o Adoquery. O conjunto de dados do RMReport aponta para o rmdbdataset.
(Se você deseja que o aplicativo gerado final tenha recursos de design de relatório, também precisa colocar o controle do RMDesigner e não definir nenhum atributo)
Clique duas vezes no controle do RMReport para começar a projetar o modelo de relatório.
Para relatórios que geralmente são comparados com as regras, você só precisa adicionar quatro objetos de banda ao modelo, a saber: 1), cabeçalho da página: geralmente usado para exibir o nome do relatório, o tempo, etc. 2), cabeçalho principal: geralmente usado para Exibir o nome das colunas. 3) Dados do item principal: usado para exibir dados. 4) Nota de rodapé da página: Usado para exibir o número da página, data, etc.
O modelo projetado pode ser salvo no DFM ou em um arquivo de modelo independente com a extensão RMF e é chamado no tempo de execução. Aqui estão alguns trechos de código:
procedimento tbrowseform.button5Click (remetente: tabjas); Varrmreport: trmReport; BEGINEFE ADoQuery1.isempty thenExit; TryrmReport: = trmreport.create (self); rmreport.loadfrofile ('Match.rmf'); RMReport.ReRerPere; .Free; fim; fim;
Procedimento TForm1.Button1Click (remetente: Tobject);
// Procedimento do modelo de relatório de design
Para a maioria dos relatórios de regras, o conhecimento acima é suficiente. Mas essa é apenas a maneira mais simples de usar o RM e está longe de refletir o poder das funções RM.
RM tem dois recursos atraentes que eu mais preciso no momento:
1) Os dados podem vir do banco de dados ou de qualquer outro lugar, como em arquivos, na memória, etc. 2) Não é necessário modelos pré-fabricados.
Embora o RM seja poderoso, não parece complicado de usar.
1. Quais são suas boas soluções para um relatório que requer dois lados de um pedaço de papel? Você pode optar por digitar páginas ímpares ou até mesmo ao imprimir. 2. Como posso imprimir um número fixo de linhas em uma página? Clique no relatório para inserir a interface do relatório de design? Rmreport1.modifyPrepared: = FALSO4. Passe os parâmetros para o relatório como fazer uma trmmemoView? Rmreport1.findobject ('memorando'). Memo.text: = 'dddd' ou rmvariables ['a1']: = 'dddd'; 6. Como não podemos imprimir conteúdo duplicado? Supres = true7. Definir rmreport.modifyPreview = false8. .Bottomframe .Visible: = Falso no script do relatório Memo1.frameTyp: = 15; A página e o controle para exibir, mas não há problema em imprimir. Uma tabela para cada 3 linhas para definir a coluna de dados de itens principais: linesperpage = 3 Se houver uma maneira de três pessoas para uma linha: defina as colunas da coluna de dados do item principal = 3 impressão em agrupamento, condições de agrupamento: NowLine> 3 OnbeforePrint : BeginNowLine: = 1; END; Sim, defina a coluna de dados do item principal: Visible = False Statistics Box: calcnovisible = true12. Sim, defina a caixa de texto: Streated = true; // Leia o relatório RMREPORT1.SHOWREPORT; 2. se os cabeçalhos do grupo trocam de páginas em cada grupo. 1.rmreport1.pages [0] .Changepaper () 2.rmreport1.pages [0] .Findobject (Nome da coluna do cabeçalho do grupo) .Prop ['NewPage']: = false; 15. Rmreport1.showprintdialog: = false; rmreport1.printReport; 16. Você não precisa selecionar a área de zoom para imprimir nas configurações de página ou rmreport1.págios [0] .pgmargins: =; RichEdit1.Lines.SavetosTream (tempstream); tempstream.Position: = 0; rmformReport1.pageHeader.caption.loadFromStream (Tempstream); Tempstream.Free; final; 18. Defina o modelo do TRMDESIGNER19. (Rmreport1.findobject ('band1') como trmbandview) .dataSet: = 'rmdbdataset1'; 20. Distância esquerda: curreport.pages [0] .pgmargins.left: = redond (rmconverttopixels (mm*10, rmsumm)) 22.rmvariables ['marca']: = true; rmvariables ['nome do produto']: = 'computador' ; PRINCIPAL DE DADOS DE ITEM PRINCIPAL LINHA DA COLUNA = 1024. ? ? É melhor usar a coluna da coluna, colocar uma caixa de estatísticas e definir o Calctype 25. Ao gerar relatórios dinamicamente, como definir a margem da página de rm? 40); Rmcompositereport1.reports.add (rmreport2); Sim, o conteúdo A3 [Memo1.CalcValue + Memo2.CalcValue] 29. e apenas imprime .30. [';
Rmvariables ['A2'
Manual do Usuário de Desenvolvimento da Máquina de Relatório-Criar Relatório 2010-02-10 13:08
Crie um relatório:
Criar um relatório consiste nas seguintes etapas:
1. Selecione dados: selecione a fonte de dados usada no relatório
2. Modelos de relatório de projeto: use a área (chamada banda) para distribuir diferentes partes do relatório para determinar o estilo do relatório.
3. Processamento: use o idioma de script interno do relatório ou processe os dados, modelos de relatório, etc. Usado no relatório em Delphi.
4. Gere relatório: Gere o relatório final com base no modelo de relatório + fonte de dados.
Selecione uma fonte de dados:
Os dados necessários para a maioria dos relatórios vêm do banco de dados. Os componentes TTable e TQuery podem servir como fontes de dados para relatórios. Em geral, ele pode usar qualquer subclasse herdada do componente TDataSet. O TDataSet usado em cada relatório deve ter um trmdbdataSet correspondente.
Além do TDataSet, as páginas do relatório podem usar qualquer fonte de dados (matrizes, arquivos, grades de caracteres etc.). Nesse caso, o programa deve controlar o acesso de fontes não-dados por si só. Você pode usar o TRMUSERDataset para transferir dados facilmente para os relatórios.
Modelo de relatório de design:
O próprio modelo de relatório descreve como ver o relatório correto. Cada modelo de relatório consiste em várias regiões, que o relatório chama de banda. Existem dois tipos de bandas: bandas de área fixa (como títulos de relatórios, cabeçalhos de página, notas de rodapé da página, etc.) e bandas usadas para exibir todos os registros no conjunto de dados (como a coluna de dados de itens principal). A banda de dados precisa ser conectada à fonte de dados e o conteúdo é um registro na fonte de dados.
O Relatórios fornece um ambiente visual para o desenvolvimento do relatório (designer de relatórios, que também pode ser fornecido ao seu usuário final para facilitar o usuário final para modificar os modelos de relatório por si mesmo) para criar relatórios. O designer do relatório é poderoso, simples e fácil de usar. A interface do relatório é feita de uma barra de ferramentas flutuante, que pode alterar livremente sua posição.
tratar:
Ao gerar um relatório, você precisa processar os dados de entrada (como formatação) e o modelo de relatório precisa ser modificado (como uma caixa de texto no modelo de relatório precisa alterar a fonte).
A implementação desse processamento permite que você escreva o código no processamento de eventos do TRMReport em Delphi. É por isso que a linguagem de script embutida no RelatórioMachinet, a linguagem de script interna da machina do relatório é muito semelhante ao objeto Pascal e é poderosa. Escreva o código de processamento de eventos nesta linguagem de script, que permite criar processamento complexo sem escrever código em Delphi. Ele pode separar relatórios de seus projetos.
Exemplo de script de relatório:
relatório da unidade;
interface
Procedimento Memorando1OnBeforePrint (remetente: Tobject);
Procedimento Memorando1OnBeforePrint (remetente: TOBJECT);
Procedimento principal;
fim;
fim.
Gerar um relatório:
A geração de um relatório é um processo no qual o relatório processa a fonte de dados de acordo com o modelo de relatório para gerar o relatório final e pode visualizá -lo depois de clicar no botão "Visualizar". Os relatórios preparados no relatório são uma coleção de objetos que descrevem o conteúdo contido em cada página após o processamento do relatório. Isso permite que você modifique a página de relatório gerada chamando a página desejada no designer. Além disso, a reação do mouse clicando no objeto na janela de visualização também pode ser descrita. Isso facilitará a organização do seu trabalho (clicar em um objeto de relatório pode produzir um novo relatório mais detalhado).
A janela de visualização do relatório é semelhante ao Microsoft Word: várias páginas podem ser vistas em uma janela e podem ser arrastadas com um mouse.