/***************************************************************/
Type Champ Defaut Final TailleSegment 16 ConserverObjets
/* Objet : Destription d'un champ. */
/***************************************************************/
/*-------------------------------------------------------------*/
/* Heritage des proprietes d'Objet. */
/*-------------------------------------------------------------*/
Prive :
EstInstanceDe : Type Lecture Public;
/*-------------------------------------------------------------*/
/* Proprietes propres. */
/*-------------------------------------------------------------*/
Prive :
NomChamp : Nul Ou Caractere Virtuel Lecture Public Trace;
PositionChamp : Entier Virtuel Lecture Public;
TailleChamp : Entier Virtuel Lecture Public;
TypeChamp : ChampType Virtuel Lecture Public;
ValeurParDefautChamp : Nul Ou Objet Virtuel Lecture Public;
/*-------------------------------------------------------------*/
/* Heritage des methodes d'Objet. */
/*-------------------------------------------------------------*/
Public :
Fonction Optimiser(Invariant) Identique(O : Nul Ou Objet) Retourner Nul Ou Booleen;
Procedure Convertir(O : Nul Ou Objet);
Fonction Optimiser(Invariant) CreeParLeServeur() Retourner Entier;
Fonction Optimiser(Invariant) CreeParLeProcessus() Retourner Entier;
Fonction Optimiser(Invariant) CreeDansLEntrepot() Retourner Entrepot;
Fonction Cloner(EntrepotCible : Nul Ou Entrepot=Nul, Profondeur : ModeClonage = ClonageObjetSeul) Retourner Nul Ou Objet;
Fonction LirePropriete(NomPropriete : Caractere) Retourner Nul Ou Objet;
Procedure EcrirePropriete(NomPropriete : Caractere, Valeur : Nul Ou Objet);
Fonction IncrementerDecrementerPropriete(NomPropriete : Nul Ou Caractere, Incrementer : Booleen, Prefixe : Booleen) Retourner Nul Ou Objet;
Procedure SupprimerPropriete(NomPropriete : Caractere);
Fonction Optimiser(Invariant) EnumererProprietes(NumeroPropriete : Entier, TypePropriete : Nul Ou Type=? Sortie, PeutEtreNul : Booleen=? Sortie, Aide : Nul Ou Caractere=? Sortie, NomEnumere : Nul Ou Caractere=? Sortie) Retourner Nul Ou Caractere;
Fonction Optimiser(Invariant) Adresse() Retourner Nul Ou Caractere;
Prive :
Fonction Exporter(E : Nul Ou IEchangeElementaire) Retourner Boolean;
Fonction Importer(E : Nul Ou IEchangeElementaire, EntrepotCible : Nul Ou Entrepot=Nul, EstFiltre : Booleen=Faux, V : Entier=0, R : Entier=0, C : Entier=0) Retourner Nul Ou Objet;
/*-------------------------------------------------------------*/
/* Methodes propres. */
/*-------------------------------------------------------------*/
Public :
Constructeur Habilitation (Nom:Nul Ou Caractere, Position:Entier, Taille:Entier, TypeDuChamp:ChampType, ValeurParDefaut:Nul Ou Objet=Nul);
Operateur Optimiser(Invariant, NulAbsorbant) ==(C : Nul Ou Champ) Retourner Nul Ou Booleen;
Operateur Optimiser(Invariant, NulAbsorbant) !=(C : Nul Ou Champ) Retourner Nul Ou Booleen;
Prive :
Destructeur(MettreEnAnteMemoire : Booleen) Retourner Booleen;
Fin Type
Le type Champ modélise un champ d'un enregistrement.
Le type Champ possède un constructeur pour lesquels les paramètres Nom, Position, Taille, TypeDuChamp et ValeurParDefaut représentent respectivement son nom, sa position dans l'enregistrement, sa taille, son type et sa valeur par défaut.
Le nom Nom doit être non Nul s'il correspond à une propriété d'un objet à exporter ou à importer. Sinon, il s'agit d'un champ ignoré.
La position Position est exprimée en nombre de caractères depuis le début de l'enregistrement, le comptage commençant à zéro.
La taille Taille est exprimée en nombre de caractères. Elle doit être positive strictement.
La valeur par défaut ValeurParDefaut doit être cohérente avec le type du champ. Elle est utilisée pour un champ ignoré à exporter.
Variable
/******/
MesChampsEmploye : Nul Ou ListeDe Nul Ou Champ;
MonEnregistrementEmploye : Nul Ou Enregistrement;
Principal
/*******/
Debut
...
MesChampsEmploye=ListeDe(Champ(Nul, 0, 5, ChampTypeCaractere, "Z2EDP"));
MesChampsEmploye+=Champ("Nom", 5, 20, ChampTypeCaractere);
MesChampsEmploye+=Champ("Numero", 30, 5, ChampTypeEntier);
MesChampsEmploye+=Champ("Salaire", 40, 10, ChampTypeReel);
MonEnregistrementEmploye=Enregistrement("Employe", Employe, MesChampsEmploye);
...
Fin Principal
- | - | - | - | - | - | - | - | - |