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.
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.
La syntaxe pour sauvegarder toute ligne TAG, RECAP ou DATA est :
POST [TO ddname]
où :
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.
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.
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ù :
est le nom logique du fichier de travail depuis lequel vous récupérez des données.
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.
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.
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.
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 |