Exemple de MàJ d'une fiche d'une entité
**FREE
// Programme: FOURN02R - Maintenance d'un fournisseur
// Description: Création ou modification d'un fournisseur
// Paramètres: Mode ('C'=Création, 'M'=Modification), Code fournisseur
Ctl-Opt DftActGrp(*No) ActGrp(*Caller) Option(*SrcStmt:*NoDebugIO);
Dcl-F FOURN02D WorkStn IndDs(Ind) UsrOpn;
// Paramètres d'entrée
Dcl-Pi *N;
pMode Char(1);
pCode Int(10);
End-Pi;
// Indicateurs
Dcl-Ds Ind;
Fin Ind Pos(3);
Retour Ind Pos(12);
ProtCode Ind Pos(50);
ErrSociete Ind Pos(51);
End-Ds;
// Variables
Dcl-S SqlCode Int(10);
Dcl-S SqlState Char(5);
Dcl-S SocieteOld Char(30);
Exec SQL Set Option Commit = *None, CloSqlCsr = *EndMod;
Open FOURN02D;
// Initialisation selon le mode
If pMode = 'C'; // Création
TITRE = 'Création d''un fournisseur';
CODE = 0;
SOCIETE = *Blanks;
DATCRT = *Blanks;
DATMAJ = *Blanks;
ProtCode = *On;
Else; // Modification
TITRE = 'Modification d''un fournisseur';
ChargerFournisseur(pCode);
ProtCode = *On;
EndIf;
// Boucle de saisie
DoU Fin or Retour;
ExFmt ECRAN;
If Fin or Retour;
Leave;
EndIf;
// Validation
ErrSociete = *Off;
If %Trim(SOCIETE) = '';
ErrSociete = *On;
Iter;
EndIf;
// Sauvegarde
If pMode = 'C';
CreerFournisseur();
Else;
ModifierFournisseur(pCode);
EndIf;
Leave;
EndDo;
Close FOURN02D;
Return;
// Procédure: Charger un fournisseur existant
Dcl-Proc ChargerFournisseur;
Dcl-Pi *N;
pCodeFourn Int(10);
End-Pi;
Exec SQL Select CODE, SOCIETE,
Char(DATE_CREATION, ISO),
Char(DATE_MODIFICATION, ISO)
Into :CODE, :SOCIETE, :DATCRT, :DATMAJ
From FOURNISSEUR
Where CODE = :pCodeFourn
And SUPPRESSION = '0';
If SqlCode <> 0;
SOCIETE = '*** Fournisseur introuvable ***';
EndIf;
SocieteOld = SOCIETE;
End-Proc;
// Procédure: Créer un nouveau fournisseur
Dcl-Proc CreerFournisseur;
Exec SQL Insert Into FOURNISSEUR (SOCIETE)
Values (:SOCIETE);
If SqlCode = 0;
// Récupération du code généré
Exec SQL Set :CODE = Identity_Val_Local();
EndIf;
End-Proc;
// Procédure: Modifier un fournisseur existant
Dcl-Proc ModifierFournisseur;
Dcl-Pi *N;
pCodeFourn Int(10);
End-Pi;
Exec SQL Update FOURNISSEUR
Set SOCIETE = :SOCIETE,
DAT_MAJ = Current_Date
Where CODE = :pCodeFourn
And SUPPRESSION = '0';
End-Proc;


Commentaires
Enregistrer un commentaire