Les rapports, en tant que l'une des formes de sortie typiques des informations du système, sont une fonction importante de la plupart des systèmes d'application qui sont des fonctions extraordinaires et importantes des systèmes MIS. Qu'il ait une bonne fonction d'impression est souvent lié au succès ou à l'échec du système dans une certaine mesure. Delphi a des fonctions de rapports solides, mais ses fonctions de rapport ne peuvent pas répondre à nos besoins. Par conséquent, de nombreux experts de Delphi ont successivement lancé de nombreux excellents contrôles de rapport (modules) en tant que suppléments à QuickReport, parmi lesquels Fastreport est un représentant.
Fastreport combine les avantages de QuickReport et ReportBuilder, il est de petite taille, rapide et a tout le code source. Lors du développement d'un système de traitement des médicaments, l'auteur a produit avec succès un rapport basé sur une forme qui était exactement le même que le formulaire d'acceptation de médicament et l'allocation de médicaments à l'aide de Fastreport 2.51. Permettez-moi de le présenter à mes amis ci-dessous.
Fastreport2.51 Adresse de téléchargement: http // www.skycn.com / soft / 8805.html.
Rapport Analyse des exigences
Des amis travaillant à l'hôpital savent que lorsque les médicaments sont mis dans l'entrepôt, ils doivent remplir le formulaire d'acceptation du médicament et lorsque le personnel de la pharmacie reçoit les médicaments, ils doivent remplir le formulaire d'allocation de médicaments. Le formulaire d'acceptation du médicament et le formulaire d'allocation utilisés par l'auteur ne sont pas dédiés, mais un formulaire général d'acceptation et un formulaire d'allocation de produit. Contrairement aux rapports utilisés dans les grands magasins et systèmes de télécommunications, son apparence est en forme de barre et chaque feuille peut être remplie de cinq types de médicaments, y compris l'unité de livraison, le numéro de commande de livraison, l'unité de livraison, le nom du produit, les spécifications, l'unité, le prix , Quantité, etc., un style et une triple combinaison.
Pour résumer, nous pouvons résumer les exigences de la conception du rapport comme suit:
1. Taille: 21 cm de long et 10 cm de large;
2. Chacun peut imprimer 5 types de médicaments, et le sous-total de cette page se trouve sous le formulaire.
3. Lorsqu'il y a plus de 5 médicaments, commencez à imprimer une nouvelle forme.
Conception de rapport
1. Ouvrez le concepteur de rapport Fastreport et concevez le "formulaire d'acceptation des médicaments" selon la figure 1.
(La photo est grande, veuillez tirer la barre de défilement pour regarder)
De plus, les variables INHJ, OUTHJ, CAHJ et LineCount représentent "total en magasin", "out-magasin total", "différence totale" et "lignes de données totales", et ces variables seront attribuées dans les valeurs dans le programme.
2. Appuyez sur F11 pour appeler la visionneuse d'objets, sélectionnez Band2 et entrez le code suivant dans son événement ONBEFORPRINT:
Commencer
Si line # -1 <> 0 et line # -1 mod 5 = 0 alors
Commencer
showbandchild1
showbandband1
fin
fin
Dans le code, utilisez la fonction intégrée line # de Fastreport pour obtenir le numéro de ligne actuel.
3. Sélectionnez Child3 et entrez le code suivant dans son événement OnBeForPrint:
Commencer
lin = lineCount // attribuez une valeur à cette variable dans le programme
tandis que lin mod 5 <> 0 do
Commencer
showbandchild2 // imprimer les lignes vides
inclin
fin
showbandchild3
fin
Le but de ce code est d'imprimer des lignes vierges si la dernière ligne de données n'est pas suffisante pour qu'un formulaire s'affiche.
4. Sélectionnez Band3 et entrez le code suivant dans son événement OnBeForPrint:
Commencer
showbandchild1 // Lorsque le rapport est atteint, le contenu en bas du formulaire est affiché
fin
5. Enregistrer le rapport et retourner dans l'environnement de développement de Delphi.
Partie de programmation Delphi
Dans la partie de programmation Delphi, nous terminons principalement le passage des paramètres requis pour le rapport.
Privé
line1line2integer // Enregistrer le numéro de ligne
inputxjintemp // entrée subtotale dans l'entrepôt, effacez après toutes les 5 lignes, la même ci-dessous
Outxjoulemp // Sortie sous-totale
Cajiaxjcatempreal // sous-total de la différence de prix
Vous trouverez ci-dessous une liste de codes pour plusieurs processus principaux.
// Processus de fusion des données de formulaire unique
procédure tinputform.frdbdataset1NextSender Tobject
var
RecompterInteger
Commencer
Recompter = adoruku.recordCount
Incline1 // Cette variable est transmise au fichier de rapport pour contrôler l'impression des lignes vides
Incline2 // Cette variable contrôle la valeur sous-totale
Si ce n'est pas adoruku.eof alors
Commencer
inputxj = inputxj + adoruku.fieldByName'input montant'.asfloat
outxj = outxj + adoruku.fieldByName'out-Deposit Montant '.asfloat
Cajiaxj = cajiaxj + adorukujxcj.asfloat
fin
// effacer la valeur subtotale après toutes les 5 rangées
Si line2 mod 5 = 0 et reCount> line2 div 5 5 alors
Commencer
Intemp = inputxj
OutEmp = outxj
Catemp = cajiaxj
inputxj = 0
outxj = 0
Cajiaxj = 0
fin
// attribue une valeur à la variable lorsqu'il atteint la fin de l'ensemble de données
Si adoruku.eof alors
Commencer
Intemp = inputxj
OutEmp = outxj
Catemp = cajiaxj
fin
fin
Le programme ci-dessus a été débogué et réussi dans Windows 2000 / XP + Delphi6.0. Jusqu'à présent, nous avons rempli la conception du formulaire d'acceptation des médicaments, et d'autres conceptions de rapports similaires peuvent se référer au processus ci-dessus. La figure 2 est l'effet d'aperçu du rapport généré lors de l'exécution du programme.
(La photo est grande, veuillez tirer la barre de défilement pour regarder)