SI PAS ChampSuivant()~="BTN_Supprimer" ALORS SI MoiMême = 0 ALORS Info("Ce champ est obligatoire !") RepriseSaisie(MoiMême) FIN FIN
Archives par catégorie : Windev
Récupérer le total d’une colonne
Table_Facture.Prix[LigneTotal]
Modifier un champ en haut de rupture
Pour mettre à jour un champ figurant dans le haut de rupture d’une table mémoire
TableTrie(TABLE,"+COL_Prestataire","+COL_Client") TableAffiche(TABLE,taCourantBandeau) POUR TOUTE LIGNE nLigne DE TABLE nIndice = TableIndiceRupture(RUPT_HautRupture1,nLigne) TABLE[nIndice].SAI_Prestataire = TABLE.COL_Prestataire[nLigne] FIN TableAffiche(TABLE,taCourantBandeau)
Créer votre compilateur
Compile("P1",SAI_Saisie) ExécuteTraitement("P1",trtProcédure)
Renvoyer le nom d’un objet sous forme de chaîne
MaProcédureOuvreFenetre("NomDeLaFenêtre")
Peut s’écrire
MaProcédureOuvreFenetre(NomDeLaFenêtre..nom)
Avantage : si on renomme la fenêtre, l’éditeur change automatiquement le nom dans l’appel de la procédure alors que dans le premier cas, on doit penser à modifier le nom de la fenêtre entre guillemets
Retrouver le contexte d’un fichier
nContexte est un entier = hSauvePosition(Pays)
... Traitement qui déplace le pointeur
hRetourPosition(nContexte)
Requêtes multi-bases
Pour effectuer une requête sur 2 connexions différentes, il suffit de faire une jointure sur deux requêtes séparées.
Exemple : sur une base Oracle, la requête suivante (nommée MaReq1) est exécutée grâce à la fonction HExécuteRequêteSQL. Cette requête permet de sélectionner les numéros d’enregistrement des clients.
HExecuteRequeteSql(MaReq1,hmodifieFichier,"SELECT Client.IDClient,Client.Name,Client.Adresse FROM Client")
Sur une base HFSQL, la requête suivante (nommée MaReq2) est exécutée grâce à la fonction HExécuteRequêteSQL. Cette requête permet de sélectionner les numéros d’enregistrement des clients et leur numéro de commande.
HExecuteRequeteSql(MaReq2,HRequêteDéfaut,"SELECT IDClient,Commande.NoCommande AS NoCommande FROM Commande")
La requête multi-bases exécutée est la suivante :
HExecuteRequeteSql(MaReq3,HRequêteDéfaut,"SELECT * FROM MaReq1, MaReq2 WHERE MaReq2.IDClient=MaReq1.IDClient AND MaReq2.NoCommande = '37348'")
Cette requête est elle-même exécutée grâce à la fonction HExécuteRequêteSQL.
Connexion Windev-Mysql
MaConnexion est une Connexion
MaConnexion..Utilisateur = "root"
MaConnexion..MotDePasse = ""
MaConnexion..Serveur ="127.0.0.1"
MaConnexion..BaseDeDonnées = "MaBaseDeDonnees"
MaConnexion..Provider = hAccèsNatifMySQL
MaConnexion..Accès = hOLectureEcriture
HouvreConnexion(MaConnexion)
HChangeConnexion("*",MaConnexion)
HCréationSiInexistant("*")
Charger un fichier texte contenant des champs multi-lignes
Description
Lecture d’un fichier texte dont chaque ligne est délimitée par un retour de chariot (<RC>).
Dans la ligne les champs sont séparés par une tabulation (<TAB>) ou un point-virgule (<;>).
Chaque champ peut contenir lui-même des <RC>, <TAB> ou <;>. ces champs sont alors délimités par des guillemets
PROCEDURE TraiteMultiligne(sTexte est une chaîne) sExtrait est une chaîne sTexteTraité est une chaîne nRang est un entier = 1 // remplace les guillemets doublés par la balise <GLM> sTexte=Remplace(sTexte,Caract(34)+Caract(34),"<GLM>") BOUCLE sExtrait=ExtraitChaîne(sTexte,nRang,Caract(34)) SI sExtrait=EOT ALORS SORTIR SI EstPair(nRang) ALORS // remplace les retours de chariot par la balise <RC> sExtrait=Remplace(sExtrait,RC,"<RC>") // remplace les tabulations par la balise <TAB> sExtrait=Remplace(sExtrait,TAB,"<TAB>") FIN sTexteTraité+=sExtrait nRang++ FIN RENVOYER sTexteTraité
Source : Erick Bavut
Créer et lancer un batch Dos depuis Windev
sTexteBatch est une chaine sTexteBatch= "xcopy c:\MesDocuments\*.* x:\Réseau\MesDocuments /s" sTexteBatch += [RC] + "xcopy c:\MesImages\*.* x:\Réseau\MesImages /s" fSauveTexte("C:\Temp\CopieFichiers.bat", sTexteBatc h) Pour lancer le .BAT : DDELANCE("c:\Temp\ CopieFichiers.bat")