Sauvegarde de la sortie de rapport au format INTERNAL

Comment :

Référence :

Les fichiers HOLD remplissent des valeurs de données nombre entier binaire et décimal condensé jusqu'à une frontière de mot entier. Par exemple, un champ nombre entier à trois chiffres (I3), est stocké comme quatre octets dans un fichier HOLD. Afin que les programmes de troisième génération, tels que COBOL, puissent lire les fichiers HOLD d'une manière précise, il peut vous être nécessaire de sauvegarder les champs dans un fichier HOLD sans remplissage.

Pour supprimer le remplissage de champs dans le fichier HOLD, vous devez reformater les champs dans la requête afin de remplacer les formats ACTUAL par défaut qui correspondent aux formats USAGE dans le fichier maître :


Haut de page

x
Syntaxe : Supprimer le remplissage de champs dans les fichiers HOLD
SET HOLDLIST = PRINTONLY
TABLE FILE filename 
display_command fieldname/[In|Pn.d]
.
.
ON TABLE HOLD AS name FORMAT INTERNAL
END

où :

PRINTONLY
fait en sorte que votre requête de rapport propage le fichier HOLD de sorte que seuls les champs spécifiés s'affichent dans la sortie de rapport. Si vous ne lancez pas cette définition, un champ supplémentaire contenant la longueur de champ rempli est compris dans le fichier HOLD. Consultez Contrôle de champs dans un fichier Master HOLD.
fieldname/[In|Pn.d]
spécifie les longueurs correctes aux formats des champs remplis et nombre entier où vous souhaitez supprimer le remplissage. Ces formats annulent les formats ACTUAL utilisés pour les formats d'affichage dans le fichier maître. Consultez Notes sur la suppression de champs remplis dans les fichiers HOLD.

Vous noterez que la précision double de point flottant (D) et la précision unique de point flottant (F) ne sont pas changées par HOLD FORMAT INTERNAL.

FORMAT INTERNAL
sauvegarde le fichier HOLD sans remplissage pour les champs remplis et nombre entier spécifiés.

Pour voir une illustration, consultez Création d'un fichier HOLD avec HOLD FORMAT INTERNAL.


Haut de page

x
Référence : Notes sur la suppression de champs remplis dans les fichiers HOLD


Exemple : Création d'un fichier HOLD sans HOLD FORMAT INTERNAL

Dans cet exemple, les valeurs ACTUAL de RETAIL_COST, DEALER_COST et SEATS sont toutes remplies jusqu'à un mot entier. Des champs alphanumériques occupent aussi des mots entiers.

TABLE FILE CAR
PRINT CAR COUNTRY RETAIL_COST DEALER_COST SEATS
ON TABLE HOLD AS DJG
END

La requête crée le fichier maître suivant :

FILE=DJG, SUFFIX=FIX
 SEGMENT=DJG, SEGTYPE=S0
  FIELDNAME=CAR          ,ALIAS=E01  ,USAGE=A16  ,ACTUAL=A16    ,$
  FIELDNAME=COUNTRY      ,ALIAS=E02  ,USAGE=A10  ,ACTUAL=A12    ,$
  FIELDNAME=RETAIL_COST  ,ALIAS=E03  ,USAGE=D7   ,ACTUAL=D08    ,$
  FIELDNAME=DEALER_COST  ,ALIAS=E04  ,USAGE=D7   ,ACTUAL=D08    ,$
  FIELDNAME=SEATS        ,ALIAS=E05  ,USAGE=I3   ,ACTUAL=I04    ,$


Exemple : Création d'un fichier HOLD avec HOLD FORMAT INTERNAL

Dans cet exemple, DEALER_COST et RETAIL_COST sont définis dans le fichier Master comme champs D, mais la requête annule RETAIL_COST comme champ I2 et DEALER_COST comme champ P3.

SET HOLDLIST=PRINTONLY
TABLE FILE CAR
PRINT CAR COUNTRY RETAIL_COST/I2 DEALER_COST/P3 SEATS/I1
ON TABLE HOLD AS HINT3 FORMAT INTERNAL
END

Cela a pour résultat le fichier maître suivant :

FILE=HINT3, SUFFIX=FIX
 SEGMENT=HINT3, SEGTYPE=S0
  FIELDNAME=CAR          ,ALIAS=E01   ,USAGE=A16  ,ACTUAL=A16   ,$
  FIELDNAME=COUNTRY      ,ALIAS=E02   ,USAGE=A10  ,ACTUAL=A10   ,$
  FIELDNAME=RETAIL_COST  ,ALIAS=E03   ,USAGE=I6   ,ACTUAL=I02   ,$
  FIELDNAME=DEALER_COST  ,ALIAS=E04   ,USAGE=P4   ,ACTUAL=P02   ,$
  FIELDNAME=SEATS        ,ALIAS=E05   ,USAGE=I4   ,ACTUAL=I01   ,$

Les formats ACTUAL des champs annulés sont I2, P2 et I1. L'ACTUAL de DEALER_COST est P2 parce que P3, l'annulation de format, signifie trois chiffres d'affichage pouvant être stockés dans deux chiffres réels. Vous noterez que le champ alphanumérique n'est pas rempli.


WebFOCUS