#define A_CLIFO LF_CLIFO
#define A_COMUNI LF_COMUNI

#define G_TOTAGE  10
#define G_TOTCLI  20
#define G_TOTDOC  30

USE LF_PROVV BY CODAGE CODCLI CODNUM NDOC NRATA

JOIN LF_CLIFO INTO TIPOCF="C"|CODCF=CODCLI
JOIN LF_COMUNI TO LF_CLIFO INTO STATO==STATOCF|COM==COMCF

JOIN LF_AGENTI INTO CODAGE==CODAGE
JOIN LF_CLIFO TO LF_AGENTI ALIAS A_CLIFO INTO TIPOCF="F"|CODCF=CODFORN 
JOIN LF_COMUNI TO A_CLIFO@ ALIAS A_COMUNI INTO STATO==STATOCF|COM==COMCF 

END

SECTION HEADER ODD 7

STRINGA 1 40 1
BEGIN
 KEY "nome ditta"
 PROMPT  1 1 "Ditta "
 MESSAGE _DITTA, !RAGSOC
END

STRINGA 2 10
BEGIN
 KEY "Data"
 PROMPT  126 1 "Data "
 MESSAGE _TODAY
END

NUMERO 3 7
BEGIN
 KEY "Nr. pagina"
 PROMPT  145 1 "Pagina "
 MESSAGE _PAGENO
END

STRINGA 4
BEGIN
  KEY "TITOLO"
  PROMPT 60 3 "Stampa schede di provvigione"
END

END

SECTION BODY ODD 3 COLUMNWISE

STRINGA 1 20
BEGIN
 SPECIAL STRINGA INTESTAZIONE "Agente" "Agente"
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
 KEY "Descrizione"
 PROMPT 1 1 "Agente "
 MESSAGE RESET,G_TOTAGE@
 FIELD CODAGE
END

STRINGA 2 30
BEGIN
 SPECIAL STRINGA INTESTAZIONE "Rag.Soc." "Ragione Sociale"
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
 KEY "RSoc"
 PROMPT 2 1 ""
 FIELD LF_AGENTI->RAGSOC
 MESSAGE COPY,402
END

STRINGA 3 6
BEGIN
 SPECIAL STRINGA INTESTAZIONE "Valuta" "Codice valuta"
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
 KEY "RSoc"
 PROMPT 3 1 ""
END

VALUTA 103 15
BEGIN
  SPECIAL STRINGA INTESTAZIONE "@CTotale doc./rata" "Totale documento/rata"
  SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
  SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
  KEY "IMPORTO"
  PROMPT 4 1 ""
  DRIVENBY 3
END

VALUTA 104 14
BEGIN
 SPECIAL STRINGA INTESTAZIONE "@CTotale provvigione" "Totale provv."
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
 KEY "IMPORTO"
 PROMPT 5 1 ""
 DRIVENBY 3
END

NUMERO 105 6
BEGIN
 SPECIAL STRINGA INTESTAZIONE "@CPerc. prov." "Perc. provv."
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
 KEY "IMPORTO"
 PROMPT 6 1 ""
END

VALUTA 106 15
BEGIN
 SPECIAL STRINGA INTESTAZIONE "@CImporto   pagato" "Importo pagato"
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
 KEY "IMPORTO"
 PROMPT 7 1 ""
 DRIVENBY 3
END

VALUTA 107 14
BEGIN
 SPECIAL STRINGA INTESTAZIONE "@CProvvigione pagata" "Provv. pagata"
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
 KEY "IMPORTO"
 PROMPT 8 1 ""
 DRIVENBY 3
END

VALUTA 108 15
BEGIN
 SPECIAL STRINGA INTESTAZIONE "@CImporto maturato" "Importo maturato"
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
 KEY "IMPORTO"
 PROMPT 9 1 ""
 DRIVENBY 3
END

VALUTA 109 14
BEGIN
 SPECIAL STRINGA INTESTAZIONE "@CProvvigione maturata" "Provv. maturata"
 SPECIAL NUMERO OFFSET "0" "Offset iniziale campo"
 SPECIAL STRINGA FINCATURA "XX" "Fincatura sinistra e destra"
 KEY "IMPORTO"
 PROMPT 10 1 ""
 DRIVENBY 3
END

SECTION CLIENTI 2 0 0 FILE LF_PROVV GROUP CODAGE
// **************************
// clienti dello stesso agente

  //  Header clienti
  SECTION HCLIENTI 1 1 1 GROUP
    STRINGA 1 20
    BEGIN
     KEY "Descrizione"
     PROMPT 1 1 "  Cliente "
     SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
     FIELD LF_PROVV->CODCLI
     MESSAGE RESET,G_TOTCLI@
    END

    STRINGA 2 30
    BEGIN
     KEY "RSoc"
     PROMPT 2 1 ""
     SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
     FIELD LF_CLIFO->RAGSOC
     MESSAGE COPY,302
    END
  END

  SECTION DOCUMENTI 1 0 0 FILE LF_PROVV GROUP CODCLI
  //  body cliente: docs dello stesso cliente
    //  Header docs
    SECTION HDOCUMENTI 1 1 1 GROUP
      STRINGA 1 20
      BEGIN
       KEY "ndoc"
       SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
       PROMPT 1 1 "    Documento"
       MESSAGE RESET,G_TOTDOC@
      END
  
      STRINGA 2 30
      BEGIN
       KEY "DATADOC"
       PROMPT 2 1 ""
       SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
       MESSAGE _STREXPR,CODNUM+"/"+NDOC+" del "+DATADOC
       MESSAGE COPY,202
      END
    END

    SECTION RATEDOC 1 0 0 FILE LF_PROVV GROUP CODNUM+NDOC
    //  body doc: rate  dello stesso documento
      NUMERO 666 10
      BEGIN
        KEY "FATTORE DI CONVERSIONE"
        FLAGS "H"
        MESSAGE _STREXPR,IF(CODVAL=="",1,CAMBIO)
      END

      SECTION RATA_DAPAGARE 1 1 1  STREXPR LF_PROVV->SALDATA!="X"
        STRINGA 101 20
        BEGIN
          KEY "nrata"
          SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
          PROMPT 1 1 "      Rata "
          FIELD LF_PROVV->NRATA
        END
      
        STRINGA 102 30
        BEGIN
         KEY "DATADOC"
         SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
         PROMPT 2 1 "del "
         FIELD LF_PROVV->DATASCAD
        END
        
		STRINGA 3 6
        BEGIN
         KEY "CODVAL"
         PROMPT 3 1 ""
         FIELD LF_PROVV->CODVAL
        END
        VALUTA 103 15
        BEGIN
          KEY "IMPORTO rata"
          PROMPT 4 1 ""
          DRIVENBY 3
          PICTURE "###.###.###.###"
          MESSAGE _BASECALCOLO
          MESSAGE ADD,203
        END
        VALUTA 104 14
        BEGIN
         KEY "IMPORTO provvigione"
         PROMPT 5 1 ""
         DRIVENBY 3
         MESSAGE _NUMEXPR,LF_PROVV->IMPPROVV*#666
         MESSAGE ADD,204
        END
        NUMERO 105 6 2
        BEGIN
         KEY "perc. provv."
         PROMPT 6 1 ""
         PICTURE "##@,@@"
         MESSAGE _NUMEXPR,IF(#103,#104*100/#103,0)
        END
        VALUTA 106 15
        BEGIN
         KEY "IMPORTO pagato"
         PROMPT 7 1 ""
         DRIVENBY 3
         FIELD PAGATO
         MESSAGE ADD,206
        END
        VALUTA 107 14
        BEGIN
         KEY "provv pagata"
         PROMPT 8 1 ""
         DRIVENBY 3
         MESSAGE _NUMEXPR, PROVVPAG*#666
         MESSAGE ADD,207
        END
        VALUTA 108 15
        BEGIN
         KEY "IMPORTO"
         PROMPT 9 1 ""
         DRIVENBY 3
         MESSAGE _NUMEXPR, PAGMAT*#666
         MESSAGE ADD,208
        END
        VALUTA 109 14
        BEGIN
         KEY "provv mat"
         PROMPT 10 1 ""
         DRIVENBY 3
         MESSAGE _NUMEXPR, PROVVMAT*#666
         MESSAGE ADD,209
        END
      END  // RATA

      SECTION RATA_PAGATA 1 1 1  STREXPR LF_PROVV->SALDATA=="X"
        STRINGA 101 20
        BEGIN
          KEY "nrata"
          PROMPT 1 1 "      Rata "
          SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
          FIELD LF_PROVV->NRATA
        END
      
        STRINGA 102 30
        BEGIN
         KEY "DATADOC"
         SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
         PROMPT 2 1 "del "
         FIELD LF_PROVV->DATASCAD
        END
        STRINGA 3 6
        BEGIN
         KEY "CODVAL"
         PROMPT 3 1 ""
         FIELD LF_PROVV->CODVAL
        END
        VALUTA 103 15
        BEGIN
          KEY "IMPORTO rata"
          PROMPT 4 1 ""
          PICTURE "###.###.###.###"
          MESSAGE _BASECALCOLO
          MESSAGE ADD,203
        END
        VALUTA 104 14
        BEGIN
         KEY "totale provv"
         PROMPT 5 1 ""
         DRIVENBY 3
         MESSAGE _NUMEXPR, LF_PROVV->IMPPROVV*#666
         MESSAGE ADD,204
        END
        NUMERO 105 6
        BEGIN
         KEY "perc provv"
         PROMPT 6 1 ""
         PICTURE "##@,@@"
         MESSAGE _NUMEXPR,IF(#103,#104*100/#103,0)
        END
        VALUTA 106 15
        BEGIN
         KEY "IMPORTO pagato"
         PROMPT 7 1 ""
         DRIVENBY 3
         MESSAGE _NUMEXPR,PAGATO*#666
         MESSAGE ADD,206
        END
        VALUTA 107 14
        BEGIN
         KEY "provv pagata"
         PROMPT 8 1 ""
         DRIVENBY 3
         MESSAGE _NUMEXPR, PROVVPAG*#666
         MESSAGE ADD,207
        END
        STRINGA 108 15
        BEGIN
         KEY "flag saldato"
         PROMPT 9 1 "   SALDATA   "
        END
      END  // RATA

    END // fine rate stsso doc

    //  Footer docs
    SECTION FDOCUMENTI 2 1 1 GROUP
      STRINGA 201 20
      BEGIN
       KEY "ndoc"
       SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
       PROMPT 1 1 "    Totale documento"
      END
      STRINGA 202 30
      BEGIN
       KEY "DESCR"
       SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
       PROMPT 2 1 ""
      END
      STRINGA 3 6
      BEGIN
       KEY "CODVAL"
       PROMPT 3 1 ""
      END
      VALUTA 203 15
      BEGIN
       KEY "IMPORTO"
       PROMPT 4 1 ""
       DRIVENBY 3
       MESSAGE ADD,303
       GROUP G_TOTDOC
      END
      VALUTA 204 14
      BEGIN
       KEY "IMPORTO"
       PROMPT 5 1 ""
       DRIVENBY 3
       MESSAGE ADD,304
       GROUP G_TOTDOC
      END
      NUMERO 205 6
      BEGIN
        KEY "PERCENTUALE"
        prompt 6 1 ""
        PICTURE "##@,@@"
        MESSAGE _NUMEXPR,IF(#203,#204*100/#203,0)
      END
      VALUTA 206 15
      BEGIN
        KEY "IMPORTO"
        PROMPT 7 1 ""
        DRIVENBY 3
        MESSAGE ADD,306
        GROUP G_TOTDOC
      END
      VALUTA 207 14
      BEGIN
        KEY "IMPORTO"
        PROMPT 8 1 ""
        DRIVENBY 3
        MESSAGE ADD,307
        GROUP G_TOTDOC
      END
      VALUTA 208 15
      BEGIN
       KEY "IMPORTO"
       PROMPT 9 1 ""
       DRIVENBY 3
       MESSAGE ADD,308
       GROUP G_TOTDOC
      END
      VALUTA 209 14
      BEGIN
       KEY "IMPORTO"
       PROMPT 10 1 ""
       DRIVENBY 3
       MESSAGE ADD,309
       GROUP G_TOTDOC
      END
    END

  END // end documenti

  //  Footer clienti
  SECTION FCLIENTI 2 1 1 GROUP
    STRINGA 301 20
    BEGIN
     KEY "cli"
     SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
     PROMPT 1 1 "  Totale cliente "
    END
    STRINGA 302 30
    BEGIN
     KEY "DESCR"
     SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
     PROMPT 2 1 ""
    END
    STRINGA 3 6
    BEGIN
     KEY "CODVAL"
     PROMPT 3 1 ""
    END
    VALUTA 303 15
    BEGIN
     KEY "IMPORTO"
     PROMPT 4 1 ""
     MESSAGE ADD,403
     GROUP G_TOTCLI
    END
    VALUTA 304 14
    BEGIN
     KEY "IMPORTO"
     PROMPT 5 1 ""
     MESSAGE ADD,404
     GROUP G_TOTCLI
    END
    NUMERO 305 6
    BEGIN
     KEY "IMPORTO"
     PROMPT 6 1 ""
     PICTURE "##@,@@"
     MESSAGE _NUMEXPR,IF(#303,#304*100/#303,0)
    END
    VALUTA 306 15
    BEGIN
      KEY "IMPORTO"
      PROMPT 7 1 ""
      MESSAGE ADD,406
      GROUP G_TOTCLI
    END
    VALUTA 307 14
    BEGIN
      KEY "IMPORTO"
      PROMPT 8 1 ""
      MESSAGE ADD,407
      GROUP G_TOTCLI
    END
    VALUTA 308 15
    BEGIN
     KEY "IMPORTO"
     PROMPT 9 1 ""
     MESSAGE ADD,408
     GROUP G_TOTCLI
    END
    VALUTA 309 14
    BEGIN
     KEY "IMPORTO"
     PROMPT 10 1 ""
     MESSAGE ADD,409
     GROUP G_TOTCLI
    END
  END

END // end clienti

  VALUTA 401 20
  BEGIN
   SPECIAL STRINGA FINCATURA "X " "Fincatura sinistra e destra"
   PROMPT 1 2 "Totale agente"
  END
  
  STRINGA 402 30
  BEGIN
   KEY "DESCR"
   SPECIAL STRINGA FINCATURA " X" "Fincatura sinistra e destra"
   PROMPT 2 2 ""
  END
  VALUTA 403 15
  BEGIN
   KEY "IMPORTO"
   PROMPT 4 2 ""
   GROUP G_TOTAGE
  END
  VALUTA 404 14
  BEGIN
   KEY "IMPORTO"
   PROMPT 5 2 ""
   GROUP G_TOTAGE
  END
  NUMERO 405 6
  BEGIN
   KEY "IMPORTO"
   PROMPT 6 2 ""
   PICTURE "##@,@@"
   MESSAGE _NUMEXPR,IF(#403,#404*100/#403,0)

   GROUP G_TOTAGE
  END
  VALUTA 406 15
  BEGIN
    KEY "IMPORTO"
    PROMPT 7 2 ""
    GROUP G_TOTAGE
  END
  VALUTA 407 14
  BEGIN
    KEY "IMPORTO"
    PROMPT 8 2 ""
    GROUP G_TOTAGE
  END
  VALUTA 408 15
  BEGIN
   KEY "IMPORTO"
   PROMPT 9 2 ""
   GROUP G_TOTAGE
  END
  VALUTA 409 14
  BEGIN
   KEY "IMPORTO"
   PROMPT 10 2 ""
   GROUP G_TOTAGE
  END

END    // Fine body

SECTION FOOTER ODD 3
END    // Fine footer

END    // Fine Form