|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||
|
Invité régulier
![]() Inscription : août 2008 Messages : 43 ![]() |
Bonjour à tous,
J’ai développé une petite macro pour l’émulateur PCSWS d’IBM, qui permet une copie d’écran AS400 vers Excel. ![]() Elle fonctionne quel que soit l'écran et présente de gros avantages par rapport à un traditionnel copier/coller, à savoir : * Conservation des champs tels qu’ils ont été définis dans le DSPF. Un champ par cellule Excel, sans découpage. * Si présence d’un sous-fichier, export intégral en parcourant toutes les pages. * Export en couleur ou en noir et blanc. Voilà le code : Code :
* Pour Seven : <user>\AppData\Roaming\IBM\Client Access\Emulator\Private * Pour XP : C:\Program Files\IBM\Client Access\Emulator\Private (Si vous ne trouvez pas votre répertoire, enregistrez une macro via l’émulateur, et recherchez là ensuite sur votre disque.) Vous pourrez ensuite la lancer via le menu de l’émulateur ou configurer votre clavier pour lancer cette macro d’une simple combinaison de touche. Restrictions connues : La fonction « waitforattrib », qui permet de retrouver la couleur d’un champ, ne fonctionne pas si ce champ est en inverse vidéo, ou en souligné. Dans ces cas-là, la couleur utilisée sera le vert. Un incident a été remonté à IBM pour corriger ce point. Certaines listes système ne remontent ni erreur ni message en fin de sous-fichier. La macro ne sera pas en mesure dans ce cas de détecter la fin de son traitement. Son interruption devra être effectuée manuellement via le bouton correspondant ou le menu de l’émulateur. Merci de vos retours |
||
|
|
10
|
|
|
#2 |
|
Membre régulier
![]() Inscription : février 2009 Messages : 82 ![]() |
Pour ma part bien que je sois en W7 le chemin d'installation du fichier mac est :
C:\ProgramData\IBM\Client Access\Emulator\private Sinon , ça semble fonctionner correctement pour les écrans venant des commandes Iseries (testé avec WRKACTJOB/WRKWTR/WRKSPLF) mais plutôt aléatoirement pour les écrans venant de logiciels/progiciels autres ( le defilement ne se fait pas toujours dans un SF etc etc...) mais il est possible que cela vienne du sw... |
|
|
00
|
|
|
#3 |
|
Membre chevronné
![]() Inscription : septembre 2008 Messages : 480 ![]() |
Je suis aussi sous windows 7 et mon répertoire est bien celui sous utilisateurs.
Les sous-fichiers IBM marchent normalement, mais il y a la ligne "A suivre" qui sépare chaque page. Mes sous-fichiers d'application ne sont pas pris comme des sous-fichiers et j'ai donc un imprim écran simple dans Excel. Quand j'aurais le temps, je regarderais la macro de plus près. En tout cas, un grand merci à mutsum1. Sa macro est très sympa
|
|
|
00
|
|
|
#4 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 43 ![]() |
Merci pour ces premiers retours.
Effectivement je n'ai testé que la pagination classique. Vous pouvez facilement l'adapter à vos progiciels en modifiant l'appel à la sous-routine "PageMove". Il suffit de passer en paramètre la fonction permettant la pagination. Mais il sera difficile de faire en sorte que cela marche dans tous les cas. Des touches de fonction utilisées sur certains progiciels auront une autre utilité ailleurs. Pour le "A suivre", cette donnée est entièrement intégrée par l'AS400 dans le sous-fichier, comme une ligne classique. La macro ne fait pas de distinction. Pour un sous-fichier déclaré avec un SFLEND simple, cette ligne n'apparaît pas. |
|
|
00
|
|
|
#5 |
|
Invité régulier
![]() Inscription : août 2008 Messages : 43 ![]() |
Je viens d'effectuer une première modification en ligne 314.
J'ai remplacé Code :
If autECLSession.autECLPS.GetText(24, 1, 10) <> space(10) Then PageMove = 1 Code :
If autECLSession.autECLPS.GetText( autECLSession.autECLPS.NumRows, 1, 10 ) <> space(10) Then PageMove = 1 On me remonte également quelques soucis avec STRSQL. Effectivement STRSQL gère son sous-fichier de façon personnel, une seule zone par ligne, avec les entêtes intégrés. De plus il fait partie des écrans système qui ne provoque pas d'avertissement en fin de fichier (la mention "fin des données" est aussi intégrée au sous-fichier). Donc la macro boucle, il faut l’arrêter à la main. Je réfléchit à une macro spécifique pour lui, gérant également la pagination horizontale, wait and see... |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com