Salut à tous!
Cette discussion complète ma première qui a porté sur
État croisé et paramétré avec rubrique calculé
A voir ici:http://http://www.developpez.net/forums/d1386896/environnements-developpement/windev/etat-croise-parametre-rubrique-calcule/
Une discussion résolue par Laurent que je ne cesserai de remercier.
J'ai essayé d' analyser ses codes pour créer les miens mais je n'y parviens
toujours pas, je ne veux pas être un copieur des codes mes plutôt comprendre
ce que je fais, c'est pourquoi je viens demander votre aide sur deux choses:
1. Si possibles expliquez moi chaque ligne des codes de Laurent ci-après:
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
PROCEDURE AfficheJournalCaisse()
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_début + "' 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_début + "' 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. Aidez-moi à trouver un tutoriel qui me permettra de bien maitriser la programmation windev.
A tous et à Laurent à particulier je dis merci d'avance