Sauvegarde et récupération des résultats de rapports intermédiaires

Dans cette section :

Il arrive souvent qu'un rapport ait besoin de résultats produits dans d'autres rapports. Pour récupérer de tels résultats, il doit y avoir un endroit pour stocker des valeurs intermédiaires. Par exemple, il peut être nécessaire de calculer le bénéfice net dans un état des résultats avant de calculer l'intérêt dans un bilan. Le langage de modélisation financière (FML) peut sauvegarder des lignes sélectionnées dans un ou plusieurs modèles en les postant dans un fichier de travail. Les lignes signalées peuvent alors être récupérées du fichier de travail et réutilisées.

Le fichier de travail par défaut est FOCPOST. Il s'agit d'un fichier délimité par des virgules depuis lequel vous pouvez directement créer un rapport, si un fichier maître est disponible. Pour utiliser le fichier de travail dans une requête, vous devez attribuer un nom physique à l'utilitaire ddname FOCPOST avant de lancer le rapport postant les données, et encore avant de lancer le rapport recevant les données.

Pour attribuer le nom physique au fichier, il suffit de lancer une commande FILEDEF sur Windows, et CMS, ou une commande TSO ALLOCATE ou DYNAM ALLOCATE sur z/OS, avant le lancement de la requête. Vous pouvez créer une commande FILEDEF avec l'Assistant d'allocations.

Bien que vous ne puissiez pas préparer un rapport FML seulement à partir des données fournies directement dans votre requête, vous pouvez le faire avec des données stockées dans un fichier de travail délimité par des virgules.


Haut de page

x
Affichage des données

Comment :

Vous pouvez sauvegarder toute ligne TAG, RECAP ou DATA en postant la sortie dans un fichier. Vous pouvez utiliser ces lignes comme si elles ont été fournies dans une ligne DATA.

La ligne est traitée de la manière habituelle dans le rapport, selon les autres options qui lui sont attribuées, puis elle est postée. L'étiquette de la ligne est écrite le premier, suivie des valeurs numériques des colonnes, dont chacune est délimitée par une virgule et se termine par le caractère d'arrêt ($). Pour plus d'informations, consultez Affichage de lignes dans un fichier de travail.

Remarque : seuls les champs affichés sur la sortie de rapport sont postés. Les champs qui ne sont pas imprimés (par exemple, les champs spécifiés avec l'option NOPRINT, les champs supplémentaires créés lorsque vous reformatez les champs dans la requête, ou les champs impliqués par utilisation dans un calcul) ne sont pas postés.



x
Syntaxe : Afficher des données dans un fichier

La syntaxe pour sauvegarder toute ligne TAG, RECAP ou DATA est :

POST [TO ddname]

où :

ddname

est le nom logique que vous attribuez au fichier de travail dans lequel vous postez des données.

Ajoutez cette syntaxe à toute ligne que vous souhaitez afficher dans le fichier de travail.



Exemple : Affichage de lignes dans un fichier de travail

La requête suivante crée un rapport FML, et poste deux lignes de balise dans le fichier de travail LEDGEOUT.

FILEDEF LEDGEOUT DISK [APP]\LEDGEOUT.DAT
DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
END
TABLE FILE LEDGER
SUM CUR_YR LAST_YR
FOR ACCOUNT 
1100 LABEL AR POST TO LEDGEOUT OVER 
1200 LABEL INV POST TO LEDGEOUT 
END

La sortie est montrée ci-dessous.

report



x
Syntaxe : Récupérer des données d'un fichier de travail

Vous pouvez récupérer des lignes postées de tout fichier de travail et les utiliser comme si elles ont été fournies dans une ligne DATA en ajoutant la phrase suivante à une requête FML :

DATA PICKUP [FROM ddname] id1 [OR id2 ...] [LABEL label] [AS 'text']

où :

ddname

est le nom logique du fichier de travail depuis lequel vous récupérez des données.

id

est l'étiquette qui a été attribuée au sein du fichier de travail à la ligne de données postée que l'on récupère actuellement.

étiquette

est l'étiquette que vous souhaitez attribuer aux données que vous récupérez.

L’étiquette que vous attribuez aux données récupérées peut correspondre ou pas (dans certains cas) aux données postées.

Vous pouvez inclure des phrases LABEL et AS, mais WHEN EXISTS n'est pas prise en charge.

Remarque : les champs récupérés sont mappés vers tous les champs (imprimés ou pas) dans le référentiel de mémoire (matrice interne) du rapport. Si la matrice contient les colonnes qui ne correspondent pas aux champs du fichier posté, il se peut que les valeurs extraites soient mal alignées. Par exemple, si vous reformatez un champ dans la requête PICKUP, ce champ sera représenté par deux colonnes dans la matrice interne. Toutefois, le fichier posté n'a qu'une seule valeur représentant ce champ et les valeurs extraites ne sont pas mappées correctement vers les colonnes associées dans la matrice.



Exemple : Récupération de données d'un fichier de travail

Dans l'exemple suivant, les données de la source de données LEDGER et du fichier de travail LEDGEOUT sont utilisées dans le calcul RECAP. Pour voir la façon dont ce fichier a été créé, consultez Affichage de lignes dans un fichier de travail.

Conseil : vous devez attribuer un nom logique au fichier en lançant une commande FILEDEF sur Windows, et CMS, ou une commande DYNAM ALLOCATE sur z/OS, avant le lancement de la requête. Vous pouvez créer une commande FILEDEF avec l'Assistant d'allocations.

DEFINE FILE LEDGER
CUR_YR/I5C=AMOUNT;
LAST_YR/I5C=.87*CUR_YR - 142;
END
TABLE FILE LEDGER
SUM CUR_YR LAST_YR
FOR ACCOUNT
1010 TO 1030 AS 'CASH' LABEL CASH   OVER 
DATA PICKUP FROM LEDGEOUT AR  AS 'ACCOUNTS RECEIVABLE' LABEL AR   OVER 
DATA PICKUP FROM LEDGEOUT INV AS 'INVENTORY' LABEL INV            OVER
BAR                                 OVER
RECAP CUR_ASSET/I5C = CASH + AR + INV;
END

La sortie est montrée ci-dessous.

rapport

La ligne suivante peut être utilisée pour récupérer la somme des deux comptes de LEDGEOUT.

DATA PICKUP FROM LEDGEOUT AR OR INV
AS 'ACCTS REC AND INVENTORY'

Remarque : comme les lignes dans un fichier PICKUP sont stockées dans un format standard délimité par des virgules, elles peuvent être fournies depuis un postage précédent, ou directement par l'utilisateur.


WebFOCUS