RM (Report Machine) est un puissant package de contrôle de rapport Delphi. Utilisez-le pour créer des rapports très complexes. L'utilisation la plus simple est expliquée ci-dessous:
Mettez deux commandes de base de données sur le formulaire: Adoconnection et Adidery pour configurer le strict de connexion de l'adoconnection. Loginprompt = false. La connexion d'Adidery pointe vers l'adoconnection. SQL d'ADOCHERY met en place des instructions de requête de données.
Mettez deux contrôles de rapport RM sur le formulaire: RMDBDATASET et RMREPORT. L'ensemble de données de RMDBDATASET pointe vers AdoQuery. L'ensemble de données de RMReport pointe vers le RMDBDATASET.
(Si vous souhaitez que l'application générée finale ait des capacités de conception de rapport, vous devez également mettre le contrôle RMDesigner et ne définir aucun attribution)
Double-cliquez sur le contrôle RMReport pour commencer à concevoir le modèle de rapport.
Pour les rapports qui sont généralement comparés aux règles, il vous suffit d'ajouter quatre objets de bande au modèle, à savoir: 1), en-tête de page: généralement utilisé pour afficher le nom du rapport, le temps, etc. 2), en-tête principal: généralement utilisé pour Afficher le nom des colonnes. 3) Données principales de l'élément: utilisé pour afficher les données. 4) Note de bas de page: utilisée pour afficher le numéro de page, la date, etc.
Le modèle conçu peut être enregistré dans DFM ou dans un fichier de modèle indépendant avec l'extension RMF et est appelé lors de l'exécution. Voici quelques extraits de code:
procédure tbrowseform.button5click (expéditeur: tobject); varrmreport: trmreport; BeginIf Adoquery1.isempty therexit; tryrmreport: = trmreport.create (self); rmReport.LoadFromfile ('match.rmf'); . Free; fin; fin;
Procédure tform1.button1click (expéditeur: tobject);
// Procédure de rapport de conception tform1.button2click (expéditeur: tobject);
Pour la plupart des règles, les connaissances ci-dessus sont suffisantes. Mais c'est juste le moyen le plus simple d'utiliser RM, et il est loin de refléter la puissance des fonctions RM.
RM a deux fonctionnalités attrayantes dont j'ai le plus besoin pour le moment:
1) Les données peuvent provenir de la base de données ou de n'importe où ailleurs, comme dans les fichiers, en mémoire, etc. 2) Il n'est pas nécessaire de faire des modèles préfabriqués.
Bien que RM soit puissant, il ne semble pas compliqué à utiliser.
1. Quelles sont vos bonnes solutions pour un rapport qui nécessite les deux côtés d'un morceau de papier? Vous pouvez choisir de taper des pages étranges ou même lors de l'impression. 2. Comment puis-je imprimer un nombre fixe de lignes dans une page? Cliquez sur le rapport pour entrer l'interface du rapport de conception? RmReport1.Modifyprepared: = False4. Passez des paramètres au rapport Comment faire un trmMoView? RmReport1.FindObject («memo1»). Memo.Text: = 'ddddd' ou rmvariables ['a1']: = 'ddddd'; 6. Comment ne pouvons-nous pas imprimer du contenu en double? Suppres = True7. Définir rmReport.ModifypReview = False8. .BottomFrame .Visible: = false dans le script du rapport memo1.frametyp: = 15; la page et le contrôler pour afficher mais il est ok de ne pas imprimer. Une table pour chaque 3 lignes pour définir la colonne des données de l'élément principal: LinesPerpage = 3if Il existe un moyen pour trois personnes sur une ligne: définissez les colonnes de la colonne de données de l'élément principal = 3 Imprime : BeginNowline: = 1; end; onBeforeprint: Beginnowline dans l'en-tête de groupement: = NowLine + 1; fin; 11. Oui, définissez la colonne des données de l'élément principal: Visible = False Statistics Box: CalcNoviSible = True12. Oui, définissez la zone de texte: stretch = true; // Lire Entrez le rapport rmReport1.showReport; 2. Si les en-têtes de groupe modifient les pages dans chaque groupe. 1.RmReport1.Pages [0] .Changepaper () 2.rmreport1.pages [0] .FindObject (Nom de la colonne d'en-tête de groupe) .prop [newpage ']: = false; 15. RmReport1.showprintDialog: = false; rmReport1.printport; 16. Vous n'avez pas besoin de sélectionner la zone de zoom sur les paramètres de la page ou rmReport1.pages [0] .pgmargins: =; RICHEDIT1.LIONS.SAVETOSTREAM (TEMPSSTREAM); TEMPSTREAM.POSITION: = 0; RMFormReport1.PageHeader.Caption.LoadFromStream (TEMPSSTREAM); TEMPSSTREAM.FREE; END; 18. Définissez Templatedir19 de TrmDesigner. (RmReport1.FindObject ('band1') comme trmbandView) .Dataset: = 'rmdbdataset1'; 20. Distance gauche: curReport.pages [0] .pgmargins.left: = rond (rmConvertTopixels (mm * 10, rmsumm)) 22.rmvariables ['marque']: = true; rmvariables ['Nom du produit']: = 'Computer' ; L'événement OnBeFrint de Page1 est le suivant: Si Brand ThemessageBox (nom du produit); Colonne des éléments principaux lineperpage = 1024. ? ? Il est préférable d'utiliser la colonne de note de bas de page de la colonne, de mettre une boîte de statistiques dessus, puis de définir Calctype 25. Lors de la génération de rapports dynamiquement, comment définir la marge de page de RM? 40); 26. Comment ouvrir plusieurs fichiers de rapport à la fois dans une fenêtre d'aperçu ou d'impression lorsque le programme est en cours d'exécution, dans une fenêtre d'aperçu ou d'impression, utilisez TrmCompositEreport, rmCompositEreport1.Report.CLEAR; RmCompositEreport1.Report.Add (rmReport2); Oui, A3 Content [MEMO1.CALCVALUE + MEMO2.CALCVALUE] 29. et imprime une fois.30. [';
Rmvariables ['A2'
Report Machine Development User Manual - Créer un rapport 2010-02-10 13:08
Créer un rapport:
La création d'un rapport comprend les étapes suivantes:
1. Sélectionnez les données: sélectionnez la source de données utilisée dans le rapport
2. Modèles de rapport de conception: utilisez la zone (appelée bande) pour distribuer différentes parties du rapport pour déterminer le style de rapport.
3. Traitement: utilisez le langage de script intégré du rapport ou traitez les données, les modèles de rapport, etc. utilisés dans le rapport de Delphi.
4. Générer le rapport: générer le rapport final en fonction du modèle de rapport + source de données.
Sélectionnez une source de données:
Les données requises pour la plupart des rapports proviennent de la base de données. Les composants TTable et TQuery peuvent servir de sources de données pour les rapports. En général, il peut utiliser n'importe quelle sous-classe héritée du composant TDATASET. Le tdataset utilisé dans chaque rapport doit avoir un trmdbdataset correspondant.
En plus de TDATASET, les pages ReportMachine peuvent utiliser n'importe quelle source de données (tableaux, fichiers, grilles de caractères, etc.). Dans ce cas, le programme doit contrôler en soi l'accès des sources non de database. Vous pouvez utiliser TrMUSERDATASET pour transférer facilement des données vers des rapports.
Modèle de rapport de conception:
Le modèle de rapport lui-même décrit comment voir le bon rapport. Chaque modèle de rapport se compose de plusieurs régions, que ReportMachine appelle la bande. Il existe deux types de bandes: des bandes de zone fixe (telles que les titres de rapport, les en-têtes de page, les notes de bas de page, etc.) et les bandes utilisées pour afficher tous les enregistrements dans l'ensemble de données (tels que la colonne de données des éléments principaux). La bande de données doit être connectée à la source de données et le contenu est un enregistrement dans la source de données.
ReportMachine fournit un environnement visuel pour le développement de rapports (Rapport Designer, qui peut également être fourni à votre utilisateur final pour faciliter votre utilisateur final pour modifier les modèles de rapport par vous-même) pour créer des rapports. Le concepteur de rapports est puissant, simple et facile à utiliser. L'interface du concepteur de rapport est composée d'une barre d'outils flottante, qui peut changer librement leur position.
traiter avec:
Lors de la génération d'un rapport, vous devez traiter les données d'entrée (telles que la mise en forme), et le modèle de rapport doit être modifié (comme une zone de texte dans le modèle de rapport doit modifier la police).
La mise en œuvre de ce traitement vous permet d'écrire du code dans le traitement des événements de TrmReport dans Delphi. C'est pourquoi le langage de script intégré dans ReportMachinet, le langage de script intégré de ReportMachine est très similaire à Object Pascal et est puissant. Écrivez le code de traitement des événements dans cette langue de script, qui vous permet de créer un traitement complexe sans écrire de code dans Delphi. Il peut séparer les rapports de vos projets.
Exemple de script de rapport:
Rapport d'unité;
interface
procédure memo1onbeforeprint (expéditeur: tobject);
procédure memo1onbeforeprint (expéditeur: tobject);
procédure principale;
fin;
fin.
Générer un rapport:
La génération d'un rapport est un processus dans lequel le rapport Machine traite la source de données en fonction du modèle de rapport pour générer le rapport final et peut le prévisualiser après avoir cliqué sur le bouton "Aperçu". Les rapports préparés dans ReportMachine sont une collection d'objets qui décrivent le contenu contenu dans chaque page après le traitement du rapport. Cela vous permet de modifier la page de rapport générée en appelant la page souhaitée dans le concepteur. De plus, la réaction de la souris en cliquant sur l'objet dans la fenêtre d'aperçu peut également être décrite. Cela vous permettra d'organiser plus facilement votre travail (cliquer sur un objet de rapport peut produire un nouveau rapport plus détaillé).
La fenêtre d'aperçu de ReportMachine est similaire à Microsoft Word: plusieurs pages peuvent être vues dans une fenêtre et peuvent être traînées avec une souris.