Chercher Et Ou Phrase  
Dans:          


Pour les nouveau visiteurs

Entrez ici

Chercher le Forum



 

 Les Forums
  Programmation avancée
Repondre a ce sujet  

Sujet windev23 erreur 70100
Message envoyé le 11-04-2024 par david80100 (FR)  
Bonjour,

Quand je clique sur un bouton appercu qui genere des etats pour en faire un seul pdf.
Je rencontre l erreur suivante qui est complement aléatoire.

Qui peut m aider.

Que s'est-il passé ?
Impossible de bloquer une zone du fichier .

Code erreur : 70100
Niveau : erreur non fatale
Code erreur WD55 : 100

Dump de l'erreur du module 'wd230hf.dll' (23.0.31.0).
Identifiant des informations détaillées (.err) : 71311
Informations de débogage :
IEWDHF=45.1
Module=
Version=<23.0.31.0>
Informations supplémentaires :
EIT_LOCKINFO : Commande.FIC     270     admin     "nom de la machine"     "ip de la machine"     ERP_BAL2022.exe ( ERP_BAL2022 )     RW-T     20240411095555
EIT_LOGICALTABLENAME :

Message envoyé le 11-04-2024 par devalender (Cote d'ivoire)  
Bonjour
le code qui génère cette erreur ?
merci

Message envoyé le 12-04-2024 par david80100 (FR)  
Bonjour,

Ci-joint le code du bouton APERCU

// Résumé :
// Syntaxe :
// Apercu ()
//
// Paramètres :
//     Aucun
// Valeur de retour :
//      Aucune
//
// Exemple :
// Indiquez ici un exemple d'utilisation.
//
PROCÉDURE Apercu()

NumPageMaxMobilier, NumPageMaxBlocInterieur, NumPageMaxBlocExterieur sont des entiers = 0
NumPageEnCoursMobilier, NumPageEnCoursBlocInterieur, NumPageEnCoursBlocExterieur sont des entiers = 0
Groupage, Export, EmballageCarton, EmballageIndividuel sont des booléens = Faux

// Permet de spécifier un Mode Aperçu
iDestination(iPDF, "C:\Tmp\MonPDF.PDF")

nCpt est entier = 1
bPresenceProfil est un booléen = Faux

//Enregistrement des données avant impression
ExécuteTraitement(BTN_AjoutCommande,trtClic)

// Execution de la requête qui permet de mettre la Date du Jour dans le champ DateImpression de la table Commande en fonction de l'IDCommande
HExécuteRequête(REQ_UPDATE_Commande_DateImpression,hVérifieIntégrité,DateDuJour(),gnIDcom)

// Execution de la requête qui permet récupérer les informations clients en fonction de l'IDCommande
HExécuteRequête(REQ_SELECT_InfoClient_Where_IDCommande,hVérifieIntégrité,gnIDcom)
// Permet de lire la première valeur récupérée
HLitPremier(REQ_SELECT_InfoClient_Where_IDCommande)

// Si on trouve une valeur
SI HTrouve(REQ_SELECT_InfoClient_Where_IDCommande) ALORS
     
     Groupage = REQ_SELECT_InfoClient_Where_IDCommande.Groupage
     Export = REQ_SELECT_InfoClient_Where_IDCommande.Export
     EmballageCarton = REQ_SELECT_InfoClient_Where_IDCommande.EmballageCarton
     EmballageIndividuel = REQ_SELECT_InfoClient_Where_IDCommande.EmballageIndividuel
     
SINON
     
     Groupage = Faux
     Export = Faux
     EmballageCarton = Faux
     EmballageIndividuel = Faux     
     
FIN

//----- 1ERE EXECUTION POUR AVOIR LE NOMBRE DE PAGE TOTAL PAR TYPEARTICLE -----//
// Execution de la requête qui permet de récupérer les LigneCommandeArticle en fonction de l'IDCommande
HExécuteRequête(REQ_SELECT_idLigneCommandeParCommande,hVérifieIntégrité,gnIDcom)
// Permet de lire la 1ère valeur récupérée
HLitPremier(REQ_SELECT_idLigneCommandeParCommande)

// TANT QUE l'on trouve une valeur
TANTQUE PAS HEnDehors(REQ_SELECT_idLigneCommandeParCommande)
     
     // Execution de la requête qui permet de chercher dans la table Article en fonction de l'IDArticle de la LigneCommandeArticle
     HLitRecherchePremier(Article,ID,REQ_SELECT_idLigneCommandeParCommande.IdArticle)
     
     SI HTrouve(Article) ALORS
          
          // Si l'Article est un Bloc et Utilisation Intérieur
          SI Article.IDTypeArticle = 3 ET Article.IDUtilisation = 1 ALORS
               
               NumPageMaxBlocInterieur += 1
               
               // Si l'Article est un Bloc et Utilisation Extérieur ou Extérieur/Intérieur     
          SINON SI Article.IDTypeArticle = 3 ET (Article.IDUtilisation = 2 OU Article.IDUtilisation = 4)
               
               NumPageMaxBlocExterieur += 1
               
               // Si l'Article est un Mobilier OU Mobilier Sans Montage OU Accessoire     
          SINON SI Article.IDTypeArticle = 1 OU Article.IDTypeArticle = 2 OU Article.IDTypeArticle = 7
               
               NumPageMaxMobilier += 1
          FIN
     FIN
     
     // Pemet de lire la prochaine ligne récupérée
     HLitSuivant(REQ_SELECT_idLigneCommandeParCommande)
FIN

//----- 2EME EXECUTION POUR LA PARTIE IMPRESSION -----//
// Execution de la requête qui permet de récupérer les LigneCommandeArticle en fonction de l'IDCommande
HExécuteRequête(REQ_SELECT_idLigneCommandeParCommande,hVérifieIntégrité,gnIDcom)
// Permet de lire la 1ère valeur récupérée
HLitPremier(REQ_SELECT_idLigneCommandeParCommande)

// TANT QUE l'on trouve une valeur
TANTQUE PAS HEnDehors(REQ_SELECT_idLigneCommandeParCommande)
     
     // Execution de la requête qui permet de chercher dans la table Article en fonction de l'IDArticle de la LigneCommandeArticle
     HLitRecherchePremier(Article,ID,REQ_SELECT_idLigneCommandeParCommande.IdArticle)
     
     SI HTrouve(Article) ALORS
          
          // Si c'est un BLOC
          SI Article.IDTypeArticle = 3 ALORS
               
               NB_TableauAffichage est un entier = 0
               NB_TableauNominatif est un entier = 0
               NB_Interphone est un entier = 0
               NB_CasePaquet est un entier = 0
               NB_PortePleine est un entier = 0
               NB_PDFL2 est un entier = 0
               NB_CCVEC est un entier = 0
               NB_CCV est un entier = 0
               NB_CaseConciergerieMecanique est un entier = 0     
               NB_Corbeille est un entier = 0
               NB_PorteProspectus est un entier = 0
               NB_Case est un entier = 0
               NB_QteArticle est un entier = REQ_SELECT_idLigneCommandeParCommande.QteArticle
               NoteEtiquette est une chaîne = REQ_SELECT_idLigneCommandeParCommande.NoteEtiquette
               
               nResChamps est chaîne = EnumèreChamp(ONG_LigneCommande,nCpt)
               //recupere le schema de la fenetre pour le mettre dans l etat
               c est un Champs <- {nResChamps+".IMG_SchemaBloc", indChamp}
               // Récupère la date d'expedition pour trouver le numéro de semaine d'expédition
               HLitRecherche(Commande,ID, REQ_SELECT_idLigneCommandeParCommande.IDCommande)
               SemaineExpedition est un entier = DateVersNuméroDeSemaine(Commande.ALivrerDate)
               
               RefChantier est une chaîne = Commande.RefChantier
               
               // Récupère le nombre de tableau d'affichage
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"TA")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_TableauAffichage = NB_TableauAffichage + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de tableau nominatif
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"TN")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_TableauNominatif = NB_TableauNominatif + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre d'Interphone
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"I")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_Interphone = NB_Interphone + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de Case à Paquet
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"CP")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_CasePaquet = NB_CasePaquet + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de Porte Pleine
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"PP")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_PortePleine = NB_PortePleine + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de Porte Double Face Largeur 2
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"PDFL2")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_PDFL2 = NB_PDFL2 + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de CCV-EC
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"CCV-EC")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_CCVEC = NB_CCVEC + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de CCV
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"CCV")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_CCV = NB_CCV + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de Case Conciergerie Mécanique
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"CC")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_CaseConciergerieMecanique = NB_CaseConciergerieMecanique + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de Corbeille + Seau
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"Corb")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_Corbeille = NB_Corbeille + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de Porte à Prospectus
               HExécuteRequête(REQ_SELECT_NBTypeTableau,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID,"Prosp")
               HLitPremier(REQ_SELECT_NBTypeTableau)     
               SI HTrouve(REQ_SELECT_NBTypeTableau) ALORS
                    NB_PorteProspectus = NB_PorteProspectus + REQ_SELECT_NBTypeTableau.Expr1
               FIN
               
               // Récupère le nombre de Case utilisé pour les tableaux ajoutés
               HExécuteRequête(REQ_SELECT_NbCase,hRequêteDéfaut,REQ_SELECT_idLigneCommandeParCommande.ID)
               HLitPremier(REQ_SELECT_NbCase)     
               SI HTrouve(REQ_SELECT_NbCase) ALORS
                    NB_Case = NB_Case + REQ_SELECT_NbCase.Expr1
               FIN

               //----- GESTION NUMERO DE PAGE BON DE COMMANDE -----//
               // Si l'Article est un Bloc et Utilisation Intérieur
               SI Article.IDTypeArticle = 3 ET Article.IDUtilisation = 1 ALORS
                    
                    NumPageEnCoursBlocInterieur += 1
                    
                    // Création du bon de commande
                    iEnchaînementAjoute(ETAT_BonCommande,REQ_SELECT_idLigneCommandeParCommande.ID, c,SemaineExpedition, NB_TableauAffichage, ...
                    NB_TableauNominatif, NB_Interphone, NB_CasePaquet,NB_PortePleine, NB_PDFL2, NB_CCVEC, NB_CCV, NB_CaseConciergerieMecanique, ...
                    NB_Corbeille, NB_PorteProspectus, NB_Case, NumPageEnCoursBlocInterieur, NumPageMaxBlocInterieur, Groupage, Export, EmballageCarton, EmballageIndividuel)
                    
                    // Si l'Article est un Bloc et Utilisation Extérieur ou Extérieur/Intérieur     
               SINON SI Article.IDTypeArticle = 3 ET (Article.IDUtilisation = 2 OU Article.IDUtilisation = 4)
                    
                    NumPageEnCoursBlocExterieur += 1
                    
                    // Création du bon de commande
                    iEnchaînementAjoute(ETAT_BonCommande,REQ_SELECT_idLigneCommandeParCommande.ID, c,SemaineExpedition, NB_TableauAffichage, ...
                    NB_TableauNominatif, NB_Interphone, NB_CasePaquet, NB_PortePleine, NB_PDFL2, NB_CCVEC, NB_CCV, NB_CaseConciergerieMecanique, ...
                    NB_Corbeille, NB_PorteProspectus, NB_Case, NumPageEnCoursBlocExterieur, NumPageMaxBlocExterieur, Groupage, Export, EmballageCarton, EmballageIndividuel)
                    
               FIN
               //----- FIN GESTION NUMERO DE PAGE BON DE COMMANDE -----//

               // Exécution de la requête qui permet de récupérer tous les Ral de la commande
               REQ_SELECT_AllRal.ParamID = REQ_SELECT_idLigneCommandeParCommande.ID     
               HExécuteRequête(REQ_SELECT_AllRal)
               // Permet de lire la 1ère valeur récupérée
               HLitPremier(REQ_SELECT_AllRal)
               
               // Permet de récupèrer le RAL du Corps
               HLitRecherche(RAL,ID, REQ_SELECT_AllRal.IDRALCorps)
               
               // Ajout du Bon de Peinture Ral Corps dans l'impression
               iEnchaînementAjoute(ETAT_BonPeinture2,REQ_SELECT_idLigneCommandeParCommande.ID, Milieu(RAL.NumRAL,5,Taille(RAL.NumRAL)), Vrai, Vrai)
               
               // Si le RAL Corps est différent du RAL Cadre
               SI REQ_SELECT_AllRal.IDRALCorps <> REQ_SELECT_AllRal.IDRALCadre ET REQ_SELECT_AllRal.IDRALCadre <> 0 ALORS
                    // Permet de récupèrer le RAL du Cadre
                    HLitRecherche(RAL,ID, REQ_SELECT_AllRal.IDRALCadre)
                    // Ajout du Bon de Peinture Ral Corps dans l'impression
                    iEnchaînementAjoute(ETAT_BonPeinture2,REQ_SELECT_idLigneCommandeParCommande.ID, Milieu(RAL.NumRAL,5,Taille(RAL.NumRAL)), Vrai, Faux)
               FIN
               
               // Si le RAL Corps est différent du RAL Profils ET le RAL Profils différent de 0
               SI REQ_SELECT_AllRal.IDRALCorps <> REQ_SELECT_AllRal.IDRalProfils ET REQ_SELECT_AllRal.IDRalProfils <> 0 ALORS
                    // Permet de récupèrer le RAL du Profils
                    HLitRecherche(RAL,ID, REQ_SELECT_AllRal.IDRalProfils)
                    // Ajout du Bon de Peinture Ral Profils dans l'impression
                    iEnchaînementAjoute(ETAT_BonPeinture2,REQ_SELECT_idLigneCommandeParCommande.ID, Milieu(RAL.NumRAL,5,Taille(RAL.NumRAL)), Vrai, Faux)
               FIN
               
               // Si le RAL Corps est différent du RAL Toit ET le RAL Toit différent de 0
               SI REQ_SELECT_AllRal.IDRALCorps <> REQ_SELECT_AllRal.IDRALToit ET REQ_SELECT_AllRal.IDRALToit <> 0 ALORS
                    // Permet de récupèrer le RAL du Toit
                    HLitRecherche(RAL,ID, REQ_SELECT_AllRal.IDRALToit)
                    // Ajout du Bon de Peinture Ral Toit dans l'impression
                    iEnchaînementAjoute(ETAT_BonPeinture2,REQ_SELECT_idLigneCommandeParCommande.ID, Milieu(RAL.NumRAL,5,Taille(RAL.NumRAL)), Vrai, Faux)
               FIN
               
               TANTQUE PAS HEnDehors(REQ_SELECT_AllRal)
                    // SI RAL Portillon est différent du RAL du Cadre, du RAL Corps, du RAL Profils, du RAL Toit ET différent de 0
                    SI REQ_SELECT_AllRal.IDRal <> REQ_SELECT_AllRal.IDRALCorps ET REQ_SELECT_AllRal.IDRal <> REQ_SELECT_AllRal.IDRALCadre ET REQ_SELECT_AllRal.IDRal <> REQ_SELECT_AllRal.IDRalProfils ET REQ_SELECT_AllRal.IDRal <> REQ_SELECT_AllRal.IDRALToit ET REQ_SELECT_AllRal.IDRal <> 0 ALORS
                         HLitRecherche(RAL,ID, REQ_SELECT_AllRal.IDRal)
                         // Bon de Peinture pour chaque RAL Portillon trouvé
                         iEnchaînementAjoute(ETAT_BonPeinture2,REQ_SELECT_idLigneCommandeParCommande.ID, Milieu(RAL.NumRAL,5,Taille(RAL.NumRAL)), Faux, Faux)
                    FIN
                    HLitSuivant(REQ_SELECT_AllRal)
               FIN     
          
               // Exécution et recherche dans la table LigneCommandeArticle en fonction de l'IDLigneCommandeArticle
               HLitRecherchePremier(LigneCommandeArticle,ID,REQ_SELECT_idLigneCommandeParCommande.ID)

               // SI LE BLOC est un A1
               SI Article.type_bloc = "A" ET Article.largeur_bloc * Article.longueur_bloc = 1 ALORS
                    iEnchaînementAjoute(ETAT_BonColisage,REQ_SELECT_idLigneCommandeParCommande.ID, c, RefChantier, NoteEtiquette, Groupage, Export, EmballageCarton, EmballageIndividuel)
               SINON
                    // Bon de Collisage X2
                    POUR i = 1 À NB_QteArticle
                         iEnchaînementAjoute(ETAT_BonColisage,REQ_SELECT_idLigneCommandeParCommande.ID, c, RefChantier, NoteEtiquette, Groupage, Export, EmballageCarton, EmballageIndividuel)
                    FIN                         
               FIN
               
          SINON SI Article.IDTypeArticle = 8 // Si c'est un Barillet
               
               NoteEtiquette est une chaîne = REQ_SELECT_idLigneCommandeParCommande.NoteEtiquette
               
               // Exécution de la requête qui permet de récupérer les infos de la table Commandes en fonction de l'IDCommande
               HLitRecherche(Commande,ID, REQ_SELECT_idLigneCommandeParCommande.IDCommande)
               // On récupère la Référence Chantier de la Commande     
               RefChantier est une chaîne = Commande.RefChantier     
               
               iEnchaînementAjoute(ETAT_BonColisageBarillet,REQ_SELECT_idLigneCommandeParCommande.ID, RefChantier, NoteEtiquette)
               
          SINON                    
               
               nNB_QteArticle est un entier = REQ_SELECT_idLigneCommandeParCommande.QteArticle
               sIDArticle est une chaîne = REQ_SELECT_idLigneCommandeParCommande.IdArticle
               sIDRALCorps est une chaîne = REQ_SELECT_idLigneCommandeParCommande.IDRALCorps
               sIDRALCadre est une chaîne = REQ_SELECT_idLigneCommandeParCommande.IDRALCadre     
               NoteEtiquette est une chaîne = REQ_SELECT_idLigneCommandeParCommande.NoteEtiquette
               
               // Exécution de la requête qui permet de récupérer les infos de la table Commandes en fonction de l'IDCommande
               HLitRecherche(Commande,ID, REQ_SELECT_idLigneCommandeParCommande.IDCommande)
               // Récupère la date d'expedition pour trouver le numéro de semaine d'expédition
               SemaineExpedition est un entier = DateVersNuméroDeSemaine(Commande.ALivrerDate)
               
               // On récupère la Référence Chantier de la Commande     
               RefChantier est une chaîne = Commande.RefChantier               
               
               //----- GESTION NUMERO DE PAGE BON DE COMMANDE -----//
               // Si l'Article est un Mobilier OU Mobilier Sans Montage OU Accessoire     
               SI Article.IDTypeArticle = 1 OU Article.IDTypeArticle = 2 OU Article.IDTypeArticle = 7
                    
                    NumPageEnCoursMobilier += 1
                    
                    // Création du bon de commande
                    iEnchaînementAjoute(ETAT_BonCommandeMobilier,REQ_SELECT_idLigneCommandeParCommande.ID, SemaineExpedition, NumPageEnCoursMobilier, NumPageMaxMobilier, Groupage, Export, EmballageCarton, EmballageIndividuel)
               FIN
               //----- FIN GESTION NUMERO DE PAGE BON DE COMMANDE -----//
               
               // Exécution de la requête qui permet de récupérer tous les Ral de la commande
               REQ_SELECT_AllRal.ParamID = REQ_SELECT_idLigneCommandeParCommande.ID     
               HExécuteRequête(REQ_SELECT_AllRal)
               // Permet de lire la 1ère valeur récupérée
               HLitPremier(REQ_SELECT_AllRal)
               
               // Permet de récupèrer le RAL du Cadre
               HLitRecherche(RAL,ID, REQ_SELECT_AllRal.IDRALCadre)
               
               SI REQ_SELECT_AllRal.IDRALCadre <> 0 ALORS
                    
                    // Ajout du Bon de Peinture Ral Cadre dans l'impression
                    iEnchaînementAjoute(ETAT_BonPeintureMobilier,REQ_SELECT_idLigneCommandeParCommande.ID, Milieu(RAL.NumRAL,5,Taille(RAL.NumRAL)),REQ_SELECT_idLigneCommandeParCommande.IdArticle)
                    
               FIN
               
               // Si le RAL Cadre est différent du RAL Corps ET le RAL Corps différent de 0
               SI REQ_SELECT_AllRal.IDRALCadre <> REQ_SELECT_AllRal.IDRALCorps ET REQ_SELECT_AllRal.IDRALCorps <> 0 ALORS
                    // Permet de récupèrer le RAL du Corps
                    HLitRecherche(RAL,ID, REQ_SELECT_AllRal.IDRALCorps)
                    // Ajout du Bon de Peinture Ral Corps dans l'impression
                    iEnchaînementAjoute(ETAT_BonPeintureMobilier,REQ_SELECT_idLigneCommandeParCommande.ID, Milieu(RAL.NumRAL,5,Taille(RAL.NumRAL)),REQ_SELECT_idLigneCommandeParCommande.IdArticle)
               FIN
               
               //POUR i = 1 À NB_QteArticle
               iEnchaînementAjoute(ETAT_BonColisageMobilier,REQ_SELECT_idLigneCommandeParCommande.ID, RefChantier, NoteEtiquette, Groupage, Export, EmballageCarton, EmballageIndividuel)
               //FIN     
          FIN
     FIN
     
     // Pemet de lire la prochaine ligne récupérée
     HLitSuivant(REQ_SELECT_idLigneCommandeParCommande)
     
     //boucle de toute les ligne de commande
     nCpt++
FIN

// Execution de la requête qui permet de récupérer les informations de la table BonAdressage en fonctione de l'IDCommande
HExécuteRequête(REQ_SELECT_BonAdressage_WHERE_IDCommande,hVérifieIntégrité,gnIDcom)
// Permet de lire la 1ère valeur
HLitPremier(REQ_SELECT_BonAdressage_WHERE_IDCommande)     

// Si on trouve une valeur
SI HTrouve(REQ_SELECT_BonAdressage_WHERE_IDCommande)
     // On ajoute le Bon d'Adressage à l'impression en passant en paramètre l'IDCommande
     iEnchaînementAjoute(ETAT_BonAdressage, gnIDcom)
FIN

// Exécution de la requête qui permet de récupérer le Besoin_Profil uniquement des profils sur mesure PR25T / PR25R / PR25L / PR15R
HExécuteRequête(REQ_SELECT_BonProfil_SurMesure,hVérifieIntégrité,gnIDcom,"3919","3920","3921","3922")
// Permet de lire la 1ère valeur
HLitPremier(REQ_SELECT_BonProfil_SurMesure)     

SI HTrouve(REQ_SELECT_BonProfil_SurMesure) ALORS
     POUR i = 1 À 3
          // Bon de Profil pour chaque Profil Trouvé
          iEnchaînementAjoute(ETAT_BonProfil_SurMesure,gnIDcom)
     FIN
FIN

// Exécution de la requête qui permet de récupérer le Besoin_Profil uniquement différent des profils sur mesure PR25T / PR25R / PR25L / PR15R
HExécuteRequête(REQ_SELECT_BonProfil,hVérifieIntégrité,gnIDcom,"3919","3920","3921","3922")
// Permet de lire la 1ère valeur
HLitPremier(REQ_SELECT_BonProfil)     

SI HTrouve(REQ_SELECT_BonProfil) ALORS
     POUR i = 1 À 3
          // Bon de Profil pour chaque Profil Trouvé
          iEnchaînementAjoute(ETAT_BonProfil,gnIDcom)
     FIN
FIN

// On imprime tous les bons ajouter à l'impression
iEnchaînementImprime()

QUAND EXCEPTION DANS
     LanceAppliAssociée( "C:\Tmp\MonPDF.PDF")
FAIRE
     ToastAffiche("Impossible d'ouvrir le document d'aperçu, vérifier qu'une autre commande ne soit pas déjà ouverte en PDF!",toastLong,cvMilieu,chCentre,RougePastel)     
FIN

Message envoyé le 13-04-2024 par charlie (France)  
tu liberes pas les requêtes?

Message envoyé le 15-04-2024 par david80100 (FR)  
non jamais
je dois faire un HLibèreRequête

cela devrait aller mieux ?


Pour répondre à ce message vous devez être membre

Entrée membre    Enregistrer




Retour © 1996-2024 forum.acam.ca