et des exemples un peu plus consistants
option 2
et "entrée"
.
F4
sur "Examen/Copie spoule"
pour la liste.
"F *ERR"
puis "entrée"
.
La partie "examen"
est positionnée sur la première erreur.
"F1"
.
"édition"
7031
,
saisir "F 7030"
puis "entrée"
pour accéder aux dernières
vraies erreurs.
H D F*=================================================================== F* PRTIP : Trucs et astuces d'impression F* F* Patrick LARREYA 1990-2000 F*=================================================================== FQSYSPRT O F 80 OA PRINTER UC F KINFDS INFOPR E CMD 1 7 80 Commandes I* Infos impression : ligne courante. IINFOPR DS I B 367 3680NBLIN C* Positionnement info impression C CALL 'QCMDEXC' C PARM CMD,1 CMDX 80 C PARM 80 CMDLEN 155 C*----------------------------------------------------------------- C OPEN QSYSPRT C* 1<--C EXCPTH1 on C* Un état de test C DO 100 Pas boucler C* L'impression dépend de la ligne en cours C Z-ADDNBLIN D1LIN 40 C SELEC C D1LIN WHLE 10 C EXCPTD1 C D1LIN WHLE 20 C EXCPTD2 C D1LIN WHLE 25 C EXCPTD1 C OTHER C EXCPTT9 C LEAVE C ENDSL C* C ENDDO C* C CLOSEQSYSPRT C* Affichage du résultat C* Création du fichier de sauvegarde C* Copie vers fichier de sauvegarde C* Préparation de l'impression C* Reconstitution du spoule C* Affichage du nouveau spoule C 2 DO 7 I 50 C CALL 'QCMDEXC' C PARM CMD,I CMDX 80 C PARM 80 CMDLEN 155 C ENDDO C* C SETON LR C*==================================================================== OQSYSPRT E 03 H1 O 50 'Test d''impression' O E 1 D1 O 20 '>>>>>>>>>>>>>>>>>>>>' O 40 'après ligne' O D1LIN 45 O 80 '>------------------>' O E 3 D2 O 40 '...... après ligne' O D1LIN 45 O E 2 T9 O 20 ' *** Terminé ***' ** CMD Commandes OVRPRTF QSYSPRT splfname(test) USRDTA('un Test') pagesize(66 80) DSPSPLF test * *LAST CRTPF QTEMP/CPYSPL RCDLEN(81) CPYSPLF TEST QTEMP/CPYSPL SPLNBR(*LAST) ctlchar(*FCFC) OVRPRTF QSYSPRT splfname(testB) ctlchar('*FCFC') pagesize(66 80) cpyf qtemp/cpyspl qsysprt DSPSPLF testB * *LAST |
Le source est assez simple pour ne pas demander beaucoup de commentaires. Pour une vraie application :
CTLCHAR(*FCFC)
et surtout CPYF
vers QSYSPRT
,
certains programmes seront peut être à réécrire, ou pourront être complétés.
Source écran TSTINFFM
A DSPSIZ(24 80 *DS3) A R F1 A INVITE A 1 4'TSTINF' A COLOR(BLU) A 1 20'Message instantanné pour' A DSPATR(HI) A DEV 10 O 1 45DSPATR(HI) A MSG 30 O 8 16DSPATR(RI) |
Programme CL TSTINF
PGM (&dev &msg) DCLF FILE(TSTINFFM) OVRDSPF FILE(TSTINFFM) DEV(&dev) SNDF RCDFMT(F1) DLYJOB 5 chgvar &msg ' ça va couper. . .' SNDF RCDFMT(F1) DLYJOB 3 ENDPGM |
Pour tester : CALL TSTINF ('DSP02' 'Coucou !')
DATA QUEUE
pour afficher des messages au fur et à mesure de leur arrivée.
L'AS400 propose deux modes de transfert
tmp
de l'AS400 situé sous Root
,
et le répertoire Temp
du poste local.
Exemple de dialogue sous Windows NT
Microsoft(R) Windows NT(TM) C:\>cd \temp C:\TEMP>ftp monAS Connected to monAS. 220-QTCP at ASXXX. 220 Connection will close if idle more than 50 minutes. User (monAS:(none)): user 331 Enter password. Password: 230 USER logged on. ftp> quote site namefmt 1 250 Now using naming format "1". ftp> put Test.html /tmp/test1.html 200 PORT subcommand request successful. 150 Sending file to /tmp/test1.html 250 File transfer completed successfully. 218 octets envoyés dans 0.00 seconds (218000.00 Kbytes/sec) ftp> cd tmp 501 Unknown extension in database file name. ftp> cd /tmp 250 "/tmp" is current directory. ftp> dir 200 PORT subcommand request successful. 125 List started. USER 218 05/09/00 13:40:29 *STMF test1.html 250 List completed. ftp> get test1.html 200 PORT subcommand request successful. 150 Retrieving file /tmp/test1.html 250 File transfer completed successfully. 218 octets reçus dans 0.03 seconds (7.27 Kbytes/sec) ftp> quit 221 QUIT subcommand received. C:\TEMP>exit |
"quote site namefmt 1"
,
qui permet la bascule vers le système de fichier intégré.
Sans ce code, la syntaxe classique AS400 est utilisée.
"binary"
,
pour transmettre autre chose que de l'ASCII.
Il faut l'utiliser pour transmettre par exemple des fichiers
de sauvegarde par internet en utilisant des PC comme intermédiaires.
say 'Calculette REXX. Entrer une expression arithmétique à évaluer.' signal on syntax name err ; do forever pull x if x = ' ' then exit interpret say x end err: say 'syntax - Problème de syntaxe. Corriger.' ; exit |
Source CLP :
CMD PROMPT('Calculette REXX')
/* Compiler avec PGM(*REXX) REXSRCFILE(Bib/Source) REXSRCMBR(CALC) +
HLPPNLGRP(*LIBL/CALH) HLPID(*CMD) */
|
Source PNLGRP :
:PNLGRP. :HELP NAME='CAL'. :p.La commande :pk.CAL:epk. active une calculette :pk.REXX:epk. :pc.REXX est un langage interprété disponible en standard sur l'AS400. Pour obtenir de l'aide sur REXX, consulter l'aide générale par index depuis n'importe quel menu système. :p.Toute expression mathématique peut être utilisée, et toute expression saisie ou calculée peut être rappelée. Les erreurs de syntaxe sont mal gérées. En cas d'erreur, rappeler la calculette. Les données saisie sont conservées :p.Compte tenu du mode de fonctionnement de REXX, le premier appel de la calculette est plus lent que les suivants. :EHELP. :EPNLGRP. |
Etonnant, non ?
Patrick Larreya, Septembre 2000.