Overblog
Suivre ce blog Administration + Créer mon blog
16 septembre 2017 6 16 /09 /septembre /2017 15:39
Générateur Automatique de Programme : GAP

Générateur Automatique de Programme : GAP

Générateur Automatique de Programme : GAP
Report Program Génerator : RPG
Catégorie RPG sur ce blog

 

Partager cet article
Repost0
24 octobre 2016 1 24 /10 /octobre /2016 11:12

Tout arrive ! 16 ans après...
Nous ne sommes plus des Sorciers !?

Partager cet article
Repost0
23 septembre 2016 5 23 /09 /septembre /2016 11:15
P.A. Milan, l'informaticien qu'il vous faut !

P.A. Milan, l'informaticien qu'il vous faut !

Diverses missions en province ou à
Paris, en tant qu’AP, puis Chef de Projet
m’ont conduit à une bonne maîtrise
des outils de développements
 AS400 ainsi
qu’à une sérieuse expérience dans la
réalisation de projets : analyses
des besoins
avec les utilisateurs, création d' applications,
maintenances, mises en exploitation,
encadrements, audits et formations.

Je suis de très près les évolutions du monde IBM i,
notamment Rational Developer for i RDi ;
ainsi que celles de Windev/Webdev/Mobile.

AS/400 iSeries IBM i depuis 1989, Rpg IV Ile depuis 1996,
free-format depuis 2003, Embedded Sql, SQL PL...

Fiable, ouvert et motivé, d'un naturel communiquant,
j’apprécie les 
responsabilités qui me sont confiées.
Je réside à La Rochelle en Charente Maritime.

pam007@free.fr

 

Partager cet article
Repost0
15 septembre 2016 4 15 /09 /septembre /2016 09:07

// Quelques exemples de déclarations "full free format Rpg".

// A l'occasion de l'abandon des spécifs,

// IBM aurait peut-être pu rebaptiser son langage Rpg 5, non ?!

// Anti-sèche DeveloperWorks

 


ctl-opt option (*srcstmt:*nodebugio) dftactgrp(*no) actgrp('MILAN');

dcl-f fic010p usage(*input) keyed prefix(f1_);
dcl-f fic020e workstn sfile(SFL1:rangw);

dcl-s zona char(50);
dcl-s zonb varchar(1000);
dcl-s datedebut date(*iso);
dcl-s ouinon ind;
dcl-s yesno like(ouinon);
dcl-s zn packed(7:2);
dcl-s arn packed(5:2) dim(99);

dcl-ds mads1;
z1 char(5);
z2 char(10);
end-ds;

dcl-ds mads2 likerec(fic010f);

dcl-ds mads3;
subf1 char(5) pos(11);              // Pos remplace Overlay
subf2 packed(5:2) pos(1);
subf3 char(10) pos(100);
subf4 char(5);                      // Equivalent à Overlay(mads3:*next)
end-ds;

dcl-ds *n PSDS;
procw *proc;
jobw char(10) pos244);
userw char(10) pos(358);
end-ds;

dcl-pr fonction1 ind;            // Prototype d'une fonction
*n packed(3) value;
*n packed(3) value;
end-pr;

dcl-pi *n;                       // Entrée de la procédure principale
parm3 char(5);
end-pi;

dcl-proc fonction1;                  // Déclaration d'une fonction
dcl-pi *n ind;                       // Procedure Interface d'une fonction
parm1 packed(3) value;
parm2 packed(3) value;
end-pi;
return (parm1 > parm2);
end-proc;

 

Partager cet article
Repost0
12 octobre 2015 1 12 /10 /octobre /2015 10:05
Partager cet article
Repost0
14 janvier 2015 3 14 /01 /janvier /2015 15:42
Report Program Generator - RPG free-format
Report Program Generator - RPG free-format

...

Partager cet article
Repost0
24 septembre 2012 1 24 /09 /septembre /2012 16:37

Encore une histoire de date "legacy"...

Un pgm de service, deux fonctions,

et le pgm de test.

 

******* Prototype PSDT01CP ****************************

D dt8u            pr             8  0                  

D dt8ix                          8  0 value          

 

D dt8i            pr             8  0                  

D dt8ux                          8  0 value 

 

******* Programme de Service PSDT01 *******************

Hnomain                                     

D/copy sources,psdt010cp    

                

 * jmsa = dt8u(samj)                        

 * donne une pseudo date utilisateur

 * à partir d'une pseudo date informatique,   

 * pas de vérification        

                

P dt8u            b                   export    

 

D                 pi             8  0             

D dt8ix                          8  0 value       

 

D samj            ds                                

D dt8i                           8  0 overlay(samj) 

D  ssi                           2  0 overlay(dt8i:*next) 

D  aai                           2  0 overlay(dt8i:*next) 

D  mmi                           2  0 overlay(dt8i:*next) 

D  jji                           2  0 overlay(dt8i:*next) 

 

D jmsa            ds  

D dt8u                           8  0 overlay(jmsa)   

D  jju                           2  0 overlay(dt8u:*next)

D  mmu                           2  0 overlay(dt8u:*next) 

D  ssu                           2  0 overlay(dt8u:*next) 

D  aau                           2  0 overlay(dt8u:*next)  

 

 /free       

     dt8i = dt8ix;      

 

     jju = jji;         

     mmu = mmi;     

     ssu = ssi;      // Hum, ces 2 lignes pourraient être

     aau = aai;      // un peu plus... un peu moins.... 

                     // Expliquez pourquoi,vous avez 4 minutes...

 

     return dt8u;   

 /end-free           

P                 e      

 

 

 * samj = dt8i(jmsa)    

 * donne une pseudo date informatique

 * à partir d'une pseudo date utilisateur,  

 * vérification : 0 si pas bon.    

P dt8i            b                   export 

 

D                 pi             8  0     

D dt8ux                          8  0 value 

 

D dt8i            s              8  0    

 

 /free     

     monitor;    

     dt8i = %dec(%date(dt8ux:*eur):*iso);   

     on-error;       

     dt8i = 0;       

     endmon;        

     return dt8i;   

 /end-free           

P                 e  

 

**********************************************

 * Teste un pgm de service          

 *                             

Hdftactgrp(*no)          

Hoption(*srcstmt:*nodebugio)      

Hbnddir('MILAN')                

 

Fpsdt010td cf   e             workstn    

 

D/copy sources,psdt010cp       

 

D sdsw           sds        

D  procw            *proc      

D  jobnw                        10    overlay(sdsw:244) 

 

D usernw          s             10    inz(*user)  

 

D bouclew         s               n  

 

 /free              

     dou bouclew;           

     exfmt ecran01;         

     if *inkc or *inkl;      

     exsr srfin;             

     endif;                  

 

     date1ww = dt8u(date1w);  

     date2ww = dt8i(date2w);    

 

     enddo;           

 

    //**SR********************

     begsr srfin;                  

     exfmt ecran02w;             

     *inlr = *on;                  

     return;                              

     endsr;             

 

 

Partager cet article
Repost0
2 mars 2012 5 02 /03 /mars /2012 12:10

// Date du jour en 8.0 informatique 

 udatiw = %dec(%date():*iso); 

 

// Date du jour en 8.0 utilisateur  

 udatuw = %dec(%date():*eur);    

Partager cet article
Repost0
1 novembre 2011 2 01 /11 /novembre /2011 11:40

IBM Rational Developer for Power Systems 

Vous n'allez pas regretter SEU très longtemps...

http://www.ibm.com/developerworks/downloads/r/rdp/index.html

Partager cet article
Repost0
10 mai 2009 7 10 /05 /mai /2009 10:58


SP010T 

  
Pgm utilisant les fonctions hébergées
dans le programme de service.
 

Notez,
une fois terminée
la mise en place précédemment décrite,

la simplicité d'utilisation
des fonctions ainsi mutualisées !


Hdftactgrp(*no)

Hactgrp('MILAN')

Hbnddir('MILAN')


Fsp010e cf e workstn


* Les prototypes

/copy sources,sp010k


Dboucle         s      n


/free


dou boucle;


exfmt ecran01;

if *inkc;

exsr srfin;

endif;


amj8w = dt3v1(aaaaw:mmw:jjw:vw);

datew = dt3v1d(aaaaw:mmw:jjw);


enddo;


// S o u s - p r o g r a m m e s


begsr srfin;

*inlr =*on;

return;

endsr;


/end-free



Voir aussi
Sous-Procédures & Fonctions

Bons dév sur "IBM i" & avec Attn !
 

Partager cet article
Repost0