Salut à tous!
Après une discussion résolue portant sur:
(Windev15 : État croisé et paramétré avec une rubrique calculé)
Une discussion résolue par Laurent que je ne cesserai de remercier.
J'ai voulu par la suite créer les autres requêtes avec les procédures
locales sur base de ce que Laurent m'avais montré mais je n'y arrive toujours
pas, conscient du fait que je ne suis pas fort en programmation Windev aussi,
motivé par la volonté d'apprendre plutôt que d'être un copieur des codes,
je viens solliciter d'avantage votre aide pour deux choses:
1. L'explication si possible de chaque ligne de cette procédure donné par laurent:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
PROCEDURE TCD_operations_periode()
 
nNb_colonne est un entier
sMa_requete est une chaîne
sdRQ1 est une Source de Données
sdRQ2 est une Source de Données
 
sMa_requete = [
SELECT DISTINCT 
	OPERATION.Cod_devise AS Cod_devise
FROM 
	OPERATION
WHERE 
]
sMa_requete += RC + TAB + "OPERATION.Dat_operation BETWEEN '" + SAI_Date_Debut + "' AND '" + SAI_Date_Fin + "'"
 
// Exécution de la requête
SI PAS HExécuteRequêteSQL(sdRQ1,MaConnexion1,hRequêteSansCorrection,sMa_requete) ALORS Erreur("Problème requête 1"); RETOUR
 
sMa_requete = [
SELECT  
	op.Num_compte,
	op.Dat_operation ,
	COMPTE.Lib_compte,
]
// Les colonnes de devise sont construites dynamiquement ici
POUR TOUT sdRQ1 
	sMa_requete += RC + TAB + "SUM(CASE op.Cod_devise WHEN '" + sdRQ1.Cod_devise + "' THEN op.Mont ELSE 0 END) AS " + sdRQ1.Cod_devise + ","	
FIN
 
// La sous requête "op" effectue les conversions des devises
sMa_requete += RC + [
	Sum(op.TOT) AS TOT
FROM 
	(
		SELECT  
			OPERATION.Num_compte,
			OPERATION.Dat_operation,
			OPERATION.Cod_devise,
			OPERATION.mont,
			Taux_USD,
			DEVISE.Taux,
			OPERATION.mont * Taux_USD / DEVISE.Taux AS TOT
		FROM 
			OPERATION,
			DEVISE,
			(	SELECT	Taux AS Taux_USD
			FROM		DEVISE
			WHERE	Cod_devise = 'USD'
			) AS	USD
		WHERE 
			OPERATION.Cod_devise = DEVISE.Cod_devise
]
sMa_requete += RC + TAB + "AND	OPERATION.Dat_operation BETWEEN '" + SAI_Date_Debut + "' AND '" + SAI_Date_Fin + "'"
sMa_requete += RC + [
	) AS op,
	COMPTE
WHERE 
		op.Num_compte = COMPTE.Num_compte
GROUP by Num_compte,Dat_operation,Lib_compte
]
 
// Exécution de la requête
SI PAS HExécuteRequêteSQL(sdRQ2,MaConnexion1,hRequêteSansCorrection,sMa_requete) ALORS Erreur("Problème requête 2"); RETOUR
 
// remplit la table TCD
ConstruitTableFichier(TABLE_TCD_operation_periode,sdRQ2,taRemplirTable)
 
// renomme les colonnes
{"TABLE_TCD_operation_periode._COL1"}..Titre = "N° compte"
{"TABLE_TCD_operation_periode._COL2"}..Titre = "Date"
{"TABLE_TCD_operation_periode._COL3"}..Titre = "Libellé compte"
 
nNb_colonne = TableOccurrence(TABLE_TCD_operation_periode,toColonne)
{"TABLE_TCD_operation_periode._COL"+nNb_colonne}..Titre = "TOT (USD)"
2. Aider moi à trouver un tutoriel qui me permettant de bien maitriser la programmation Windev.
Pour plus de détails, voyez la discussion ici: http://http://www.developpez.net/forums/d1386896/environnements-developpement/windev/etat-croise-parametre-rubrique-calcule/
Merci d'avance!!!