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 05/08/2007, 15h58   #1
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 2
Points : 1
Points : 1
Par défaut [C++ ILE] Comment afficher/ouvrir un sous format?

Bonjour,
j'essaye d'ecrire mon premier programme en C++ ILe, et je suis bloqué au niveau de la gestion des sous-fichier.
J'ai créé un fichier ecran comportant 2 "RECORD" (enregistrement);
le premier correspond à un ensemble de champ et le second est un sous-fichier (SFL).
Comment faire pour afficher le sous-fichier après avoir réaliser les entrées correspondante à l'enregistrement N° 1?
Ci-après un bout de code:
Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
	RECORD1 rcd1, rcd1_in,rcd1_out;
	RECORD2 rcd2;

	/* ON affiche tant que la saisie n'est pas correcte.*/

	if ((dspf = _Ropen ("MyLIB/MYDSPF", "ar+,indicators=y" )) == NULL )
	{
		printf ("Display file did not open.\n" );
		exit (0);
	}
		
	do {
                _Rindara ( dspf, ind_area1 );
		_Rformat (dspf, "RECORD1" );
		rfb1 = _Rwrite (dspf, "", 0);
		rfb1 = _Rreadn (dspf, &rcd1, sizeof(rcd1), __DFT );

		//traitement du sous-fichier
		/*---- ????? COMMENT FAIRE A PARTIR D'ICI ???
                /*-pour afficher et traiter RECORD2????      */
	}
	while ( ind_area1[PF12] == IND_OFF);
Merci pour vos réponses.
hotus est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 10/08/2007, 18h03   #2
Membre du Club
 
Jean-Pierre Laroche
Inscription : octobre 2005
Messages : 41
Détails du profil
Informations personnelles :
Nom : Jean-Pierre Laroche
Âge : 60
Localisation : France, Paris (Île de France)

Informations forums :
Inscription : octobre 2005
Messages : 41
Points : 50
Points : 50
Par défaut trt SFL C j'espere que cela t'aideras

void TRT_SFL ()
{
int I_Ligne ;
int I_LignP ;
_Rformat(dspf,"FMT01CTL");
indicator_area[I91] = IND_OF ;
indicator_area[I96] = IND_ON ; _Rwrite(dspf,DISPLAY_CTL,I_LGCTL);
indicator_area[I96] = IND_OF ;

_Rformat(dspf,"FMT02SFL");
/*--------------- PAGE AV ---------------*/
if (CLAVIER == ENTER ) { FK = _Rlocate(P_PHY,K_BUF_PHY,I_LGKEY,__NO_LOCK|__START);
FK = _Rlocate(P_PHY,K_BUF_PHY,I_LGKEY,__NO_LOCK|__KEY_GE);
FK = _Rreadp(P_PHY,BUF_PHY,I_LGPHY,__NO_LOCK) ;

}
if (CLAVIER == PG_AV ) FK = _Rreadp(P_PHY,BUF_PHY,I_LGPHY,__NO_LOCK) ; CPF();
/*--------------- PAGE AR ---------------*/
if (CLAVIER == PG_AR )
{
I_Ligne = 0 ;
if (indicator_area[I77] == IND_OF ) I_LignP = (I_NBLIG * 2 ) + 1 ;
else I_LignP = I_NBLIG + 1 ;
do {
FK = _Rreadp(P_PHY,BUF_PHY,I_LGPHY,__NO_LOCK) ; CPF();
if ( IND != IN33 ) ++I_Ligne ;
} while ((IND != IN33 ) && (I_Ligne != I_LignP)) ;
if (FK->num_bytes == EOF ) FK = _Rlocate(P_PHY,K_BUF_PHY,I_LGKEY,__NO_LOCK|__START);
}
/*--------------- AFFICHAGE ---------------*/
indicator_area[I77] = IND_OF;
FK = _Rreadn(P_PHY,BUF_PHY,I_LGPHY,__NO_LOCK); CPF();
I_Ligne = 0 ;
do {
if (IND != IN33)
{
CHARGE_SFL(); _Rwrited(dspf,DISPLAY_SFL,I_LGSFL, ++ I_Ligne);

indicator_area[I91] = IND_ON;
FK = _Rreadn(P_PHY,BUF_PHY,I_LGPHY,__NO_LOCK); CPF();
}
} while ((IND != IN33) && ( I_Ligne != I_NBLIG)) ;
if (FK->num_bytes == EOF ) { FK = _Rlocate(P_PHY,K_BUF_PHY,I_LGKEY,__NO_LOCK|__LAST);
indicator_area[I77] = IND_ON;
}
}
JPLAROCHE est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 13/08/2007, 18h13   #3
Invité de passage
 
Inscription : août 2007
Messages : 2
Détails du profil
Informations forums :
Inscription : août 2007
Messages : 2
Points : 1
Points : 1
Merci, pour la fonction, je vais essayer de l'adapter à ma sauce.
ou a défaut, je vais me tourner vers le RPG
hotus est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 17h37.


 
 
 
 
Partenaires

Hébergement Web