Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1538 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  [Progress] Fonction Accumulate qui marche pas

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Progress] Fonction Accumulate qui marche pas

n°270125
burgergold
5$? va chez l'diable!
Posté le 15-12-2002 à 23:19:32  profilanswer
 

Bon jsais que c pas tres répendu le progress sur ce forum mais je tente le coup parce que là jsuis vraiment découragé
 

Code :
  1. DEF VAR VD-Date AS DATE FORMAT 99/99/9999.
  2.     DEF VAR VC-Marque AS CHAR.
  3.    
  4.     ASSIGN VD-DATE = DATE(INPUT fln_Date).
  5.     FOR EACH Facture WHERE Facture.I-SousGarantie <> 0 AND Facture.D-DateFacture >= DATE(INPUT fln_Date):
  6.         FIND FIRST Vehicule OF Facture NO-LOCK NO-ERROR.
  7.        
  8.         CREATE TFacture.
  9.         ASSIGN  TFacture.C-Marque = Vehicule.C-Marque
  10.                 TFacture.I-NoFacture = Facture.I-NoFacture
  11.                 TFacture.N-TempsMainOeuvre = Facture.N-TempsMainOeuvre
  12.                 TFacture.I-SousGarantie = Facture.I-SousGarantie.
  13.     END.
  14.    
  15.     OUTPUT TO CR0044.txt PAGED.
  16.    
  17.     FIND FIRST CieParam NO-LOCK NO-ERROR.
  18.    
  19.     FOR EACH TFacture BREAK BY TFacture.C-Marque:
  20.    
  21.         IF TFacture.C-Marque <> VC-Marque THEN
  22.         DO:   
  23.             PUT "CR 0044  Réclamation au fabricant pour la période débutant le  ".
  24.             PUT VD-DATE SKIP.
  25.             PUT "Date:  ".
  26.             PUT TODAY.
  27.             PUT " à ".
  28.             PUT String(TIME,"HH:MM" ).
  29.             PUT "Page:" AT 50.
  30.             PUT PAGE-NUMBER AT 55 SKIP(1).
  31.             PUT "Fabricant :  " AT 5.
  32.             PUT TFacture.C-Marque.
  33.             PUT "# Date" AT 9 SKIP.
  34.             PUT "  facture facture".
  35.             PUT "Frais MO Cout pieces" AT 24 SKIP.
  36.             PUT "--------- ---------- ---------- -----------" SKIP.
  37.            
  38.             VC-Marque = TFacture.C-Marque.
  39.         END.
  40.        
  41.         FOR EACH Facture OF TFacture, EACH Vehicule OF Facture WHERE Vehicule.C-Marque = TFacture.C-Marque:
  42.             PUT TFacture.I-NoFacture TO 9.
  43.             PUT Facture.D-Date AT 11.
  44.             IF TFacture.I-SousGarantie = 1 THEN
  45.             DO:
  46.                 ACCUMULATE TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire (TOTAL).
  47.                 PUT TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire TO 31.
  48.             END.
  49.             ELSE
  50.                 PUT "0.00" TO 31.
  51.             FOR EACH Detail OF Facture:
  52.                 FIND FIRST Piece OF Detail NO-LOCK NO-ERROR.
  53.                 ACCUMULATE Detail.I-QuantiteRequise * Piece.N-Prix (TOTAL).         
  54.             END.
  55.             PUT ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix TO 43 SKIP.
  56.             ACCUMULATE (ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix) (TOTAL).
  57.            
  58.             IF LAST-OF (TFacture.C-Marque) THEN
  59.             DO:
  60.                 DEF VAR N-SousTotal AS DECIMAL.
  61.                 N-SousTotal = (ACCUM TOTAL TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire) + (ACCUM TOTAL (ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix)).
  62.                
  63.                 PUT "---------- -----------" AT 25 SKIP.
  64.                 PUT ACCUM TOTAL TFacture.N-TempsMainOeuvre * CieParam.N-TauxHorraire TO 31.
  65.                 PUT ACCUM TOTAL (ACCUM TOTAL Detail.I-QuantiteRequise * Piece.N-Prix) TO 43 SKIP(1).
  66.                 PUT "Sous Total:" TO 42.
  67.                 PUT N-SousTotal TO 52 SKIP.
  68.                 PUT "TPS:" TO 42.
  69.                 PUT CieParam.N-TPS * N-SousTotal TO 52 SKIP.
  70.                 PUT "TVQ:" TO 42.
  71.                 PUT CieParam.N-TVQ * (N-SousTotal + (CieParam.N-TPS * N-SousTotal)) TO 52 SKIP.
  72.                 PUT "GRAND Total:" TO 42.
  73.                 PUT N-SousTotal + CieParam.N-TVQ * (N-SousTotal + (CieParam.N-TPS * N-SousTotal)) + CieParam.N-TPS * N-SousTotal TO 52 SKIP.
  74.                 OUTPUT CLOSE.
  75.                 OUTPUT TO CR0044.txt PAGED APPEND.
  76.             END.
  77.            
  78.         END.
  79.        
  80.        
  81.        
  82.     END.
  83.    
  84.  
  85.     OUTPUT CLOSE.
  86.    
  87.     MESSAGE "Impression terminée.".


 
ce dode devrait me permettre de faire un rapport, ca marche plutot bien sauf pour 2 trucs
 
les sous-totaux de ma colonne Frais MO et Cout piece ne fonctionne pas, ca me donne le prix de la derniere piece alors que mon Accumulate est selon moi correctement fait
 
la 2e question c pour connaitre une fonction de saut de page, parce que présentment jfais une fermeture et ouverture de fichier, sauf que ca reset mon # de page, donc jai tjrs 1 comme # de page
 
merci


---------------
http://www.boincstats.com/signature/user_664861.gif
mood
Publicité
Posté le 15-12-2002 à 23:19:32  profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  [Progress] Fonction Accumulate qui marche pas

 

Sujets relatifs
COOKIE => marche pô avec free ???!!!! [ - Job's Done - ]Chmod ne marche pas sous free ?
Dev c++ ca marche ou ce compilateur est une blague ?Poukoi "./" marche pas dans Access pour le rep courant ??
.Net/C#, ça marche sous Wion98?[algo] fonction qui genere une ligne 3d aleatoire...
Plusieurs petites questions et demande de fonction sur Delphi[ PERL ] Fonction pour ouvrir un fichier html
[delphi] débutant : quitter une fonctionpb avec la fonction DELETE ds une BdD
Plus de sujets relatifs à : [Progress] Fonction Accumulate qui marche pas


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR