Comment attribuer dataset de façon dynamique dans FastReport?
J'ai créé un rapport à l'aide de FastReport Concepteur et l'appel à l'aide de Delphi 6. Mais DataSet
pour la MasterData
et les champs ne sont pas affectés au moment de la conception. Je veux mettre ces propriétés à l'exécution fondée sur les DataSet
. Comment puis-je le faire? Comment puis-je accéder à la DataSet
de la MasterData
à Delphes avant d'appeler les visualiser/imprimer/design? Ajouté le code suivant dans frxReport1BeforePrint
.
t := frxReport1.FindObject('MasterData1') as TfrxMasterData;
//if Assigned(t) then
//t.DataSet := frxIBODataset1;
m := frxReport1.FindObject('mTenderType') as TfrxMemoView;
if Assigned(m) then
begin
m.DataSet := frxIBODataset1;
m.DataField := 'ACCOUNTNAME';
m.Text := '[frxIBODataset1."ACCOUNTNAME"]';
end;
Mais j'ai besoin de définir ces propriétés avant d'appeler l'impression/conception/preview. Toute aide est appréciée.
OriginalL'auteur sinu | 2010-10-31
Vous devez vous connecter pour publier un commentaire.
Vous devez d'abord spécifier si vous essayez d'utiliser un jeu de données définies dans votre application, ou un ensemble de données défini directement dans votre rapport (onglet Données de FastReport designer)?
Si vous essayez d'utiliser un jeu de données qui est définie à l'intérieur de votre application (par exemple, un AdoDataset instance définie dans l'une de vos données-modules), pour un tel but, vous n'avez pas à lier la MasterBand à votre jeu de données. dynamiquement. À l'intérieur du rapport, votre MasterBand est lié à un TfrxDbDataset instance au moment de la conception. Au moment de l'exécution, votre frxDbDataset instance peut être connecté à n'importe quel jeu de données dans votre projet.
Ici est de savoir comment il serait:
1 - Vous déposer une frxReport composant et un frxDbDataset composant sur votre formulaire ou de données-module.
2 - Dans le concepteur de rapports, vous allez à la section ensembles de données, et ajoutez le frxDbDataset le rapport de la liste jeu de données.
3 - Vous ajoutez un maître-bande de données, et d'attribuer le frxDbDataset à sa propriété Dataset.
4 - Maintenant, dans votre code, avant de montrer ou de la préparation du rapport, vous pouvez écrire quelque chose comme ceci:
Ce que vous attribuez à frxDbDataset sera imprimé par le maître de la bande dans votre rapport.
Si vous définissez le jeu de données directement à l'intérieur du rapport, à l'aide de FastReport designer; ensuite, tout est à l'intérieur de votre rapport. Il suffit d'ouvrir fastreport designer et de le faire:
1 - Allez à l'onglet Données et de définir vos ensembles de données (par exemple, AdoQuery1).
2 - Sélectionnez l'objet de Rapport de Rapport de volet d'Arborescence.
3 - Dans l'inspecteur d'objet, aller à l'onglet Événements.
4 - Choisissez un bon événement; OnStartReport est un bon événement pour votre travail. Double-cliquez dessus pour l'ouvrir dans l'éditeur de code.
5 - Maintenant, vous pouvez affecter l'ensemble de données défini dans les données de l'onglet pour le maître-bande de données à l'aide de PascalScript code. Quelque chose comme ceci:
OriginalL'auteur vcldeveloper
Si vous utilisez FastReport 3+ ensuite, vous pouvez placer des composants de base de données à l'intérieur de rapport. Seulement que vous avez besoin est de fournir de connexion de base de données et exécuter le concepteur à partir de votre application.
Vous pouvez définir des variables, de les transmettre, de l'application et l'exécuter .fr3 fichier de rapport.
OriginalL'auteur DiGi