Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

FastReport Discussion :

Script, est il possible de faire une boucle ?


Sujet :

FastReport

  1. #1
    Rédacteur/Modérateur

    Script, est il possible de faire une boucle ?
    Bonjour,

    difficile de trouver le titre adéquat, je voudrai remplacer ce code

    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
      if <Lignes."QTE_1"> >0 then ptqt:=ptqt+<Lignes."PT_1">+':'+IntTostr(<Lignes."QTE_1">)+' ';
      if <Lignes."QTE_2"> > 0 then ptqt:=ptqt+<Lignes."PT_2">+':'+IntToStr(<Lignes."QTE_2">)+' ';
      if <Lignes."QTE_3"> > 0 then ptqt:=ptqt+<Lignes."PT_3">+':'+IntToStr(<Lignes."QTE_3">)+' ';                                                                    
      if <Lignes."QTE_4"> > 0 then ptqt:=ptqt+<Lignes."PT_4">+':'+IntToStr(<Lignes."QTE_4">)+' ';                                                                    
      if <Lignes."QTE_5"> > 0 then ptqt:=ptqt+<Lignes."PT_5">+':'+IntToStr(<Lignes."QTE_5">)+' ';                                                                    
      if <Lignes."QTE_6"> > 0 then ptqt:=ptqt+<Lignes."PT_6">+':'+IntToStr(<Lignes."QTE_6">)+' ';                                                                    
      if <Lignes."QTE_7"> > 0 then ptqt:=ptqt+<Lignes."PT_7">+':'+IntToStr(<Lignes."QTE_7">)+' ';                                                                    
      if <Lignes."QTE_8"> > 0 then ptqt:=ptqt+<Lignes."PT_8">+':'+IntToStr(<Lignes."QTE_8">)+' ';                                                                    
      if <Lignes."QTE_9"> > 0 then ptqt:=ptqt+<Lignes."PT_9">+':'+IntToStr(<Lignes."QTE_9">)+' ';                                                                    
      if <Lignes."QTE_10"> > 0 then ptqt:=ptqt+<Lignes."PT_10">+':'+IntToStr(<Lignes."QTE_10">)+' ';                                                                    
      if <Lignes."QTE_11"> > 0 then ptqt:=ptqt+<Lignes."PT_11">+':'+IntToStr(<Lignes."QTE_11">)+' ';                                                                    
      if <Lignes."QTE_12"> > 0 then ptqt:=ptqt+<Lignes."PT_12">+':'+IntToStr(<Lignes."QTE_12">)+' ';                                                                    
      if <Lignes."QTE_13"> > 0 then ptqt:=ptqt+<Lignes."PT_13">+':'+IntToStr(<Lignes."QTE_13">)+' ';                                                                    
      if <Lignes."QTE_14"> > 0 then ptqt:=ptqt+<Lignes."PT_14">+':'+IntToStr(<Lignes."QTE_14">)+' ';                                                                    
      if <Lignes."QTE_15"> > 0 then ptqt:=ptqt+<Lignes."PT_15">+':'+IntToStr(<Lignes."QTE_15">)+' ';                                                                    
      if <Lignes."QTE_16"> > 0 then ptqt:=ptqt+<Lignes."PT_16">+':'+IntToStr(<Lignes."QTE_16">)+' ';                                                                    
      if <Lignes."QTE_17"> > 0 then ptqt:=ptqt+<Lignes."PT_17">+':'+IntToStr(<Lignes."QTE_17">)+' ';                                                                    
      if <Lignes."QTE_18"> > 0 then ptqt:=ptqt+<Lignes."PT_18">+':'+IntToStr(<Lignes."QTE_18">)+' ';                                                                    
      if <Lignes."QTE_19"> > 0 then ptqt:=ptqt+<Lignes."PT_19">+':'+IntToStr(<Lignes."QTE_19">)+' ';                                                                    
      if <Lignes."QTE_20"> > 0 then ptqt:=ptqt+<Lignes."PT_20">+':'+IntToStr(<Lignes."QTE_20">)+' ';                                                                    
      if <Lignes."QTE_21"> > 0 then ptqt:=ptqt+<Lignes."PT_21">+':'+IntToStr(<Lignes."QTE_21">)+' ';                                                                    
      if <Lignes."QTE_22"> > 0 then ptqt:=ptqt+<Lignes."PT_22">+':'+IntToStr(<Lignes."QTE_22">)+' ';                                                                    
      if <Lignes."QTE_23"> > 0 then ptqt:=ptqt+<Lignes."PT_23">+':'+IntToStr(<Lignes."QTE_23">)+' ';                                                                    
      if <Lignes."QTE_24"> > 0 then ptqt:=ptqt+<Lignes."PT_24">+':'+IntToStr(<Lignes."QTE_24">)+' ';


    pour le mettre dans une boucle de type for i:=1 to 24 mais je ne vois pas comment faire ?
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

  2. #2
    Rédacteur/Modérateur

    Comme quoi, c'est toujours quand on pose la question que peu de temps après on trouve la réponse !

    après avoir lu
    the “Get” function can be used for accessing DB fields (in fact, this function is used implicitly by FastReport when calculating expressions enclosed in angle brackets).
    j'ai tout décomposé (pour des facilités de lecture) et obtenu le résultat escompté

    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
    procedure Memo10OnBeforePrint(Sender: TfrxComponent);
    var ptqt,pt,namevar : String;
        i,q : integer;                                              
    begin
      ptqt:='';
      for i := 1 to 24 do
       begin
         namevar:='lignes."QTE_'+ inttostr(i)+'"';                                        
         q:=Get(namevar);                                                                                   
         namevar:='Lignes."PT_'+ inttostr(i)+'"';
         pt:=Get(namevar);  
         if q >0 then ptqt:=ptqt+pt+':'+IntTostr(q)+' ';
       end;             
      Memo10.text:=ptQt;                                                                
    end;
    La seule chose absolue dans un monde comme le nôtre, c'est l'humour. » Albert Einstein

    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Tokyo, Rio, Sidney) et peut être quelques autres
    SGBD : Firebird 2.5, 3, SQLite
    générateurs Etats : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Ubuntu, Androïd

###raw>template_hook.ano_emploi###