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 76 77 78 79 80 81 82 83 84 85 86 87 88 89
| 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 + "'" + SAI_Date_fin
SI COMBO_Opération <> "" ALORS
sMa_requete += RC + TAB + "AND OPERATION.Typ_operation + '" + COMBO_Opération + "'"
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
SI COMBO_Opération <> "" ALORS
sMa_requete += RC + TAB + "AND OPERATION.Typ_operation + '" + COMBO_Opération + "'"
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)"
nNb_ligne est un entier
TableAjouteLigne(TABLE_TCD_operation_periode)
nNb_ligne = TableOccurrence(TABLE_TCD_operation_periode)
{"TABLE_TCD_operation_periode._COL1"}[nNb_ligne] = "TOTAUX"
POUR i = 4 A nNb_colonne
{"TABLE_TCD_operation_periode._COL" + i}[nNb_ligne] = {"TABLE_TCD_operation_periode._COL" + i}[ligneTotal]
FIN
{"TABLE_TCD_operation_periode"}[nNb_ligne]..CouleurFond = GrisFoncé |
Partager