Précédent   Forum des professionnels en informatique > Systèmes > Autres systèmes > AS/400
AS/400 Le Forum d'entraide sur IBM AS/400 - iSeries. RPG.
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 21/12/2010, 04h21   #1
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 48
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : août 2010
Messages : 48
Points : 10
Points : 10
Par défaut Macro qui fait planter Personnal communication Access iSeries pour Windows

Bonjour,

Voilà, je suis sous Windows 7 et j'utilise 'Personnal communication Access iSeries pour Windows'.

J'ai une macro que j'utilise à tout-va, mais qui au bout d'une douzaine d'utilisations fait planter ‘Personnal communication Access iSeries pour Windows’. Cette macro que je trouve très pratique permet de faire des recherches d’un mot dans un source RPG, dans un fichier spool, dans un source de débogage. Je l’ai associée à une séquence de touche
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
[PCOMM SCRIPT HEADER]
LANGUAGE=VBSCRIPT
DESCRIPTION=Recherche d'un mot
[PCOMM SCRIPT SOURCE]
OPTION EXPLICIT
autECLSession.SetConnectionByName(ThisSessionName)

REM This line calls the macro subroutine
subSub1_

sub subSub1_()
Dim col, row, lg, ind, retval
   autECLSession.autECLOIA.WaitForAppAvailable
col = autECLSession.autECLPS.CursorPosCol
row = autECLSession.autECLPS.CursorPosRow

ind = -1
Retval = autECLSession.autECLPS.GetText(row, col, 1) 

do until retval = " " or  retval = ":" or retval = ")" or retval = "(" or retval = ","  or retval = ";" or retval = "=" or retval = "'" or col+ind > autECLSession.autECLPS.NumCols -1
   ind = ind + 1
   Retval = autECLSession.autECLPS.GetText(row, col+Ind+1, 1) 
loop

If  Ind < 0 then
   Exit sub
else
   Retval = autECLSession.autECLPS.GetText(row, col, 1+ind) 
end if

if autECLSession.autECLPS.GetText(1, 58, 18) = "Source d'un module"  then
   autECLSession.autECLPS.SetCursorPos 23,16
   autECLSession.autECLPS.SendKeys "[ERASE EOF]" & "TOP" & "[ENTER]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SetCursorPos 23,16
   autECLSession.autECLPS.SendKeys "[ERASE EOF] F "  & retval  & "[ENTER]"
elseif autECLSession.autECLPS.GetText(1, 32, 18) = "Source d'un module" then
   autECLSession.autECLPS.SetCursorPos 20,16
   autECLSession.autECLPS.SendKeys "[ERASE EOF]" & "TOP" & "[ENTER]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SetCursorPos 20,16
   autECLSession.autECLPS.SendKeys "[ERASE EOF] F "  & retval  & "[ENTER]"
elseif autECLSession.autECLPS.GetText(1, 57, 14) = "Fichier spoule" then
   autECLSession.autECLPS.SetCursorPos 3,22
   autECLSession.autECLPS.SendKeys "[ERASE EOF]" & "T" & "[ENTER]"
   autECLSession.autECLOIA.WaitForInputReady
   autECLSession.autECLPS.SetCursorPos 4,22
   autECLSession.autECLPS.SendKeys "[ERASE EOF]"  & retval  & "[PF16]"
else
   if autECLSession.autECLPS.GetText(15, 55, 6) = "Examen" and row > 13 then
      autECLSession.autECLPS.SetCursorPos 16,9
   else
      autECLSession.autECLPS.SetCursorPos 2,9
   end if
   autECLSession.autECLPS.SendKeys "[ERASE EOF]"  & "f " & retval & " all" & "[ENTER]"
end if
end sub
Pour l’activer, je me positionne sur un mot, et la macro fait la recherche de ce mot dans le reste du document en commençant par le début du document

Quelqu’un saurait-il pourquoi ‘Personnal communication Access iSeries pour Windows’ plante au bout d’une douzaine d’utilisation de cette macro et que faire pour éviter ça, SVP ?
stupido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 13h05   #2
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Il y a des outils natifs sur le serveur IBM i pour faire ça. Je pense à PDM (STRPDM) sous écran vert et à i Navigator, l'interface graphique qui fonctionne sous Windows.
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 19h16   #3
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 48
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : août 2010
Messages : 48
Points : 10
Points : 10
Bonjour,

J'ai dû mal m'expliquer...

J'utilise cette macro quand je suis dans PDM sur un source quelconque, dans l'émulateur de sessions ‘Personnal communication Access iSeries pour Windows’...
stupido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/12/2010, 19h28   #4
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Je n'ai jamais employé de macro sur l'émulateur d'écran de Client/Access et je ne sais ni rechercherai pourquoi elle plante car je me demande bien à quoi sert une macro telle que celle-ci qui fait double emploi avec les fonctionnalités du logiciel sur le serveur puisqu'il existe déjà une fonction de recherche avant/arrière qui fait partie intégrante de l'éditeur ?
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 22/12/2010, 00h12   #5
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 48
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : août 2010
Messages : 48
Points : 10
Points : 10
L'intérêt de cette macro est qu'elle recherche le mot situé immédiatement à droite du curseur. Et donc, on n'a pas a retaper la zone de texte à rechercher pour la trouver. C'est plus rapide et ça évite les fautes de frappe.
stupido est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 20/02/2011, 15h09   #6
Membre régulier
 
Jean-Philippe BALLAT
Inscription : avril 2008
Messages : 62
Détails du profil
Informations personnelles :
Nom : Jean-Philippe BALLAT
Âge : 48

Informations forums :
Inscription : avril 2008
Messages : 62
Points : 71
Points : 71
Bonjour,

Peux être une histoire d'initialisation ou plutot de fin de Connexion ?
"autECLSession.SetConnectionByName(ThisSessionName)" !
Un EndConnection... lui ferait du bien en sortie de la macro.

Cordialement,
BALLAT est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 21/02/2011, 05h20   #7
Candidat au titre de Membre du Club
 
Inscription : août 2010
Messages : 48
Détails du profil
Informations personnelles :
Âge : 43

Informations forums :
Inscription : août 2010
Messages : 48
Points : 10
Points : 10
Bonjour

Merci pour le coup de pouce mais... Je n'ai pas trouvé de EndConnexion dans l'aide... Comment faire?

Ce srait juste avant le endSub?
stupido est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 06h21.


 
 
 
 
Partenaires

Hébergement Web