Os relatórios, como uma das formas de saída típicas de informações do sistema, são uma função importante da maioria dos sistemas de aplicativos que são funções extraordinárias e importantes dos sistemas MIS. Se tem uma boa função de impressão, geralmente está relacionada ao sucesso ou falha do sistema até certo ponto. A Delphi tem fortes funções de relatórios, mas suas funções de relatório não podem atender às nossas necessidades. Portanto, muitos especialistas em Delphi lançaram sucessivamente muitos excelentes controles de relatórios (módulos) como suplementos para o RaputReport, entre os quais Fastreport é um representante.
O FastReport combina as vantagens do QuickReport e do ReportBuilder, é pequeno em tamanho, rápido em velocidade e tem todo o código -fonte. Ao desenvolver um sistema de tratamento medicamentoso, o autor produziu com sucesso um relatório baseado em formulário que era exatamente o mesmo que o formulário de aceitação de medicamentos e a alocação de medicamentos usando o FastReport 2.51. Deixe -me apresentá -lo aos meus amigos abaixo.
FASTERRORT2.51 Endereço de download: http // www.skycn.com/soft/8805.html.
Análise de requisitos de relatório
Amigos que trabalham no hospital sabem que, quando os medicamentos são colocados no armazém, devem preencher o formulário de aceitação de medicamentos e, quando a equipe da farmácia recebe os medicamentos, eles devem preencher o formulário de alocação de medicamentos. O formulário de aceitação de medicamentos e o formulário de alocação usado pelo autor não são dedicados, mas um formulário geral de aceitação do produto e formulário de alocação. Ao contrário dos relatórios usados em lojas de departamento e sistemas de telecomunicações, sua aparência é em forma de barra e cada folha pode ser preenchida com cinco tipos de medicamentos, incluindo a unidade de entrega, o número da ordem de entrega, unidade de entrega, nome do produto, especificação, unidade, preço , Quantidade, etc., um estilo e combinação tripla.
Para resumir, podemos resumir os requisitos do projeto do relatório da seguinte forma:
1. Tamanho: 21 cm de comprimento e 10 cm de largura;
2. Cada um pode imprimir 5 tipos de medicamentos, e o subtotal desta página é encontrado sob o formulário.
3. Quando houver mais de 5 medicamentos, comece a imprimir uma nova forma.
Design de relatório
1. Abra o designer do relatório FastRorport e projete o "Formulário de Aceitação de Medicamentos", de acordo com a Figura 1.
(A imagem é grande, puxe a barra de rolagem para assistir)
Além disso, as variáveis INFJ, OUTHJ, CAHJ e LINECOUNT representam "total na loja", "total de lojas", "diferença total" e "linhas totais de dados", e essas variáveis receberão valores atribuídos nos valores nos programa.
2. Pressione F11 para chamar o visualizador de objeto, selecione Band2 e insira o código a seguir em seu evento OnBeForPrint:
Começar
Se Line#-1 <> 0 e Line#-1 mod 5 = 0 então
Começar
ShowbandChild1
Showbandband1
end
end
No código, use a função embutida line# de FastRport para obter o número da linha atual.
3. Selecione Child3 e insira o código a seguir em seu evento OnBeForprint:
Começar
lin = linecount // atribui valor a esta variável no programa
enquanto lin mod 5 <> 0 do
Começar
ShowbandChild2 // Imprima linhas vazias
inclin
end
ShowbandChild3
end
O objetivo deste código é imprimir linhas em branco se a última linha de dados não for suficiente para que um formulário seja exibido.
4. Selecione Band3 e insira o código a seguir em seu evento OnBeForprint:
Começar
ShowbandChild1 // Quando o relatório é atingido, o conteúdo na parte inferior do formulário é exibido
end
5. Salve o relatório e retorne ao ambiente de desenvolvimento Delphi.
Parte de programação Delphi
Na parte de programação Delphi, concluímos principalmente a passagem dos parâmetros necessários para o relatório.
Privado
linha1line2integer // Salvar o número da linha
inputXJIntemp // Entrada subtotal no armazém, limpa após cada 5 linhas, a mesma abaixo
outxjoutemp // Saída subtotal
Cajiaxjcatempreal // subtotal da diferença de preço
Abaixo está uma lista de códigos para vários processos principais.
// Processo de fusão de dados de formulário único
procedimento tinputform.frdbdataSet1Nextsender TObject
var
Recontageminteger
Começar
Recontagem = adoruku.recordCount
Incline1 // Esta variável é transmitida ao arquivo de relatório para controlar a impressão de linhas vazias
Incline2 // Esta variável controla o valor subtotal
se não for adoruku.eof então
Começar
inputXJ = inputXJ+Adoruku.fieldbyname'input
outxj = outxj+adoruku.fieldbyname'out-deposit Mount '.asfloat
Cajiaxj = cajiaxj+adorukujxcj.asfloat
end
// limpe o valor subtotal após cada 5 linhas
Se Line2 Mod 5 = 0 e -Recanda> Line2 Div 5 5 Então
Começar
Intemp = inputXJ
impemp = outxj
Catemp = cajiaxj
inputXJ = 0
outxj = 0
Cajiaxj = 0
end
// atribui um valor à variável quando atingir o final do conjunto de dados
Se Adoruku.eof então
Começar
Intemp = inputXJ
impemp = outxj
Catemp = cajiaxj
end
end
O programa acima foi depurado e aprovado no Windows 2000/XP+Delphi6.0. Até agora, concluímos o design do formulário de aceitação de medicamentos e outros projetos de relatórios semelhantes podem se referir ao processo acima. A Figura 2 é o efeito de visualização do relatório gerado quando o programa está em execução.
(A imagem é grande, puxe a barra de rolagem para assistir)