// form stampa schede per articolo
#include "mg3300.h"
USE LF_ANAMAG BY CODART
SORT LF_RMOVMAG BY CODART[1,2] NUMREG 
  USING LF_MOVMAG INTO NUMREG==NUMREG 
JOIN TO LF_ANAMAG KEY 2 INTO CODART==CODART 
JOIN LF_MAG TO LF_RMOVMAG KEY 2    INTO ANNOES==1990 CODMAG==CODMAG CODART==CODART LIVELLO==LIVGIAC
JOIN LF_MOVMAG TO LF_RMOVMAG       INTO NUMREG==NUMREG
//JOIN %CAU TO LF_RMOVMAG   ALIAS ALIAS_CAU_RIGHE INTO CODTAB==CODCAUS
//JOIN %CAU TO LF_MOVMAG ALIAS ALIAS_CAU_MOV   INTO CODTAB==CODCAUS

JOIN MAG TO LF_RMOVMAG ALIAS ALIAS_MAG         INTO CODTAB==CODMAG[1,3]
JOIN MAG TO LF_RMOVMAG ALIAS ALIAS_DEP         INTO CODTAB==CODMAG
JOIN GMC TO LF_ANAMAG  ALIAS ALIAS_CATMER      INTO CODTAB==GRMERC[1,3]
JOIN GMC TO LF_ANAMAG  ALIAS ALIAS_SOTTOCATMER INTO CODTAB==GRMERC[1,5]

JOIN LF_UMART TO LF_ANAMAG  INTO CODART==CODART 
JOIN LF_UMART TO LF_RMOVMAG KEY 2 ALIAS 349 INTO CODART==CODART UM==UM

JOIN LF_CLIFO TO LF_MOVMAG INTO TIPOCF==TIPOCF CODCF==CODCF

END
  
DESCRIPTION
BEGIN
    47->* "Anagrafica articoli"
    109->* "Archivio Giacenze"
    MAG->* "Tabella magazzini"
    110->* "Movimenti di magazzino"
    111->* "Righe Movimenti di magazzino"
    49->* "Unit� di misura articoli"
END

GENERAL
BEGIN
    OFFSET 0 1
END

SECTION GRAPHIC
BEGIN
END

SECTION HEADER ODD 5
  STRINGA 1 40 1
  BEGIN
   KEY "nome ditta"
   PROMPT  1 1 "Ditta "
   MESSAGE _DITTA, !RAGSOC
  END
  
  STRINGA 2 10
  BEGIN
   KEY "Data"
   PROMPT  65 1 "Data "
   MESSAGE _TODAY
  END
  
  NUMERO 3 7
  BEGIN
   KEY "Nr. pagina"
   PROMPT  81 1 "Pagina "
   MESSAGE _PAGENO
  END

  DATA 20
  BEGIN
   KEY "Data inizio"
   PROMPT 1 2 "Dal " 
   MESSAGE _USER,DADATA
  END

  DATA 21
  BEGIN
   KEY "Data fine"
   PROMPT 17 2 "Al " 
   MESSAGE _USER,ADATA
  END

  STRINGA 4 45
  BEGIN
   KEY "Intestazione stampa"
   PROMPT  45 2 "Stampa schede di magazzino :"
   MESSAGE _USER,TIPOSCHEDA
  END
  
  STRINGA 5 95
  BEGIN
    KEY "Separatore (iniziale)"
    PROMPT 1 3 "-----------------------------------------------------------------------------------------------"
  END                     
  STRINGA 6 12
  BEGIN
    PROMPT 42 4 "UM"
  END
  NUMERO 7 12
  BEGIN
    PROMPT 50 4 "Quantit�"
  END
  VALUTA 8 12
  BEGIN
    PROMPT 66 4 "Prezzo"
    FLAGS "U"
  END
  VALUTA 9 12
  BEGIN
    PROMPT 81 4 "Valore"
  END
  STRINGA 5 95
  BEGIN
    KEY "Separatore (iniziale)"
    PROMPT 1 5 "-----------------------------------------------------------------------------------------------"
  END
END

SECTION BODY ODD 0

  NUMERO 100 1
  BEGIN
    FLAGS "H"
    MESSAGE RESET,FF_SALDO_GART|RESET,FF_VALORE_GART
  END
  
  SECTION HEADER_ARTICOLO 1 2 2 NORMAL GROUP
    FLAGS "N"
    SECTION HEADER_CATMER 1 2 1 GROUP
      STRINGA 10 20 1
      BEGIN
       KEY "CODICE CATMER"
       PROMPT 1 1 "Gruppo merceologico "
       MESSAGE _USER,CODCATMER|RESET,FF_STAMPASALDOPREC
      END
      STRINGA 12 50 1
      BEGIN
       KEY "DESCR."
       PROMPT 30 1 ""
       MESSAGE _USER,CATMER
      END
    END //HEADER catmer

    STRINGA 10 20 1
    BEGIN
      KEY "CODICE articolo"
      PROMPT 1 1 "Articolo "
      MESSAGE _USER,CODGRUPPOART|RESET,FF_STAMPASALDOPREC
    END
        
    STRINGA 11 50 1
    BEGIN
      KEY "DESCR.articolo"
      PROMPT 30 1 ""
      MESSAGE _USER,GRUPPOART
    END
    STRINGA 24 50 1
    BEGIN
      KEY "dep" 
      PROMPT 1 2 "-----------------------------------------------------------------------------------------------"
    END
  END //HEADER articolo 

  SECTION GRUPPI_ARTICOLO 1 0 0 FILE LF_ANAMAG BY CODART
    SECTION FILE_RMOVMAG 1 1 0 FILE LF_RMOVMAG 
      SECTION HEADER_GRMOV 1 2 2 NORMAL GROUP
        SECTION HEADER_LIVGIACCATMER 1 1 1 GROUP 
          STRINGA 10 20 1
          BEGIN
            KEY "CODICE CATMER"
           PROMPT 1 1 "Gruppo merceologico "
           MESSAGE _USER,CODCATMER|RESET,FF_STAMPASALDOPREC
          END
          STRINGA 12 50 1
          BEGIN
           KEY "DESCR."
           PROMPT 30 1 ""
           MESSAGE _USER,CATMER
          END
        END //HEADER catmer

        STRINGA 10 20 1
        BEGIN
         KEY "CODICE articolo"
         PROMPT 1 1 "Gruppo $[b,w]"
         MESSAGE _USER,CODGRUPPOART|RESET,FF_STAMPASALDOPREC
        END
        STRINGA 11 50 1
        BEGIN
         KEY "DESCR.articolo"
         PROMPT 30 1 "$[n,w]"
         MESSAGE _USER,GRUPPOART
        END
        SECTION HEADER_LIVGIAC 2 1 1 GROUP
          STRINGA 20 20 1
          BEGIN
           KEY "CODICE livello"
           PROMPT 1 1 ""
           MESSAGE _USER,CODGRUPPOGIAC
          END
          STRINGA 21 50 1
          BEGIN
            KEY "Livello giac" 
            PROMPT 23 1 ""
            MESSAGE _USER,GRUPPOGIAC
          END
        END

        SECTION HEADER_MAG 2 1 1 GROUP
          STRINGA 22 13 1
          BEGIN
            KEY "mag" 
            PROMPT 3 1 "Magazzino "
            FIELD ALIAS_MAG@->CODTAB[1,3]
          END
          STRINGA 23 50 1
          BEGIN
            KEY "mag" 
            PROMPT 17 1 ""
            FIELD ALIAS_MAG@->S0
          END
          SECTION HEADER_DEP 2 1 1 STR_EXPR ALIAS_MAG@->B0=="X"
            STRINGA 24 11 1
            BEGIN
              KEY "dep" 
              PROMPT 5 1 "Deposito "
              FIELD ALIAS_DEP@->CODTAB[4,5]
            END
            STRINGA 25 50 1
            BEGIN
              KEY "dep" 
              PROMPT 17 1 ""
              FIELD ALIAS_DEP@->S0
            END
          END // HEADER deposito
        END // HEADER magazzino

        STRINGA 26 95
        BEGIN
          KEY "dep" 
          PROMPT 1 2 "-----------------------------------------------------------------------------------------------"
        END
      END // HEADER raggruppamenti di movimenti
    
      STRINGA 10
      BEGIN
        FLAGS "H"
        MESSAGE RESET,FF_SALDO_GRMOV|RESET,FF_VALORE_GRMOV
      END

      SECTION GRUPPI_RMOVMAG 1 0 0 FILE LF_RMOVMAG GROUP CODART
    
        SECTION H_MOVS_INTERESSATI 1 0 0 STREXPR LF_MOVMAG->DATAREG>""
          NUMERO 10
          BEGIN
            FLAGS "H"
            FIELD LF_RMOVMAG->NUMREG
            MESSAGE COPY,FF_NUM_MOV
          END
          NUMERO 110
          BEGIN
            FLAGS "H"
            FIELD LF_MOVMAG->NUMREGST
            MESSAGE COPY,FF_NUM_MOV
          END
          NUMERO 11
          BEGIN
            FLAGS "H"
            FIELD LF_MOVMAG->DATAREG
            MESSAGE COPY,FF_DATA_MOV
          END
            
          STRINGA 12
          BEGIN
            FLAGS "H"
            FIELD LF_MOVMAG->DESCR
            MESSAGE COPY,FF_DESCR_MOV
          END

          STRINGA 13
          BEGIN
            FLAGS "H"
            FIELD LF_MOVMAG->TIPOCF
            MESSAGE COPY,FF_TIPOCF_MOV
          END

          NUMERO 14
          BEGIN
            FLAGS "H"
            FIELD LF_MOVMAG->CODCF
            MESSAGE COPY,FF_CODCF_MOV
          END

          STRINGA 15
          BEGIN
            FLAGS "H"
            FIELD LF_CLIFO->RAGSOC
            MESSAGE COPY,FF_CLIFO_MOV
          END

          NUMERO 16
          BEGIN
            FLAGS "H"
            MESSAGE RESET,FF_NUMRIGHE
          END
        END // header mov

        SECTION MOVIMENTO 1 0 0 FILE LF_RMOVMAG GROUP NUMREG 
      
          NUMERO FF_NUMRIGHE
          BEGIN
            KEY "Contatore del numero di righe raggruppate"
          END
          
          NUMERO 13
          BEGIN
            FLAGS "H"
            MESSAGE _USER,CAUSALERIGA|COPY,FF_CAUSALE_RIGA|RESET,FF_SALDO_MOV|RESET,FF_VALORE_MOV 
          END
          NUMERO 14
          BEGIN
            FLAGS "H"
            MESSAGE _USER,DESCRCAUSALE|COPY,FF_DESCRCAUSALE
          END
          NUMERO FF_QUANTRIGA 12
          BEGIN
            FLAGS "H"
            MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*349@->FC|_USER,*SEGNOCAUS,Q
          END
          SECTION MOVIMENTO_CAUSALE 1 0 0 FILE LF_RMOVMAG GROUP CAUS

            NUMERO FF_QUANTRIGA 12
            BEGIN
              FLAGS "H"
              MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*349@->FC|_USER,*SEGNOCAUS,Q
            END
  
            NUMERO FF_STAMPASALDOPREC  6
            BEGIN
              FLAGS "H"
            END
  
            NUMERO FF_CANPRINTSALDOPREC  6
            BEGIN
              FLAGS "H"
              MESSAGE _USER,CANPRINTSALDOPREC
            END

            SECTION MOVS_PRECEDENTI 1 0 0 STREXPR LF_MOVMAG->DATAREG<""
              NUMERO 103 30
              BEGIN
                PROMPT 31 1 "Quantita' a saldo prec:"
                PICTURE "###.##@,@##"
                MESSAGE _NUMEXPR,#FF_QUANTRIGA|ADD,FF_SALDOPREC
              END
            END
  
            SECTION MOVS_INTERESSATI 1 0 0 STREXPR LF_MOVMAG->DATAREG>=""
  
              STRINGA 100 30
              BEGIN
                PROMPT 1 1 ""
                MESSAGE _STREXPR,LF_RMOVMAG->CODART+"/"+LF_RMOVMAG->LIVGIAC+":"+LF_RMOVMAG->CODMAG
              END
      
              STRINGA 101 12
              BEGIN
                PROMPT 27 1 ""
                FIELD LF_RMOVMAG->UM
              END
  
              VALUTA 104 12
              BEGIN
                PROMPT 42 1 ""
                FLAGS "U"
                FIELD LF_RMOVMAG->PREZZO
              END
              NUMERO 103 12
                BEGIN
                PROMPT 31 1 ""
                PICTURE "###.##@,@##"
                MESSAGE _NUMEXPR,#FF_QUANTRIGA|ADD,FF_SALDO_MOV
              END
              VALUTA 105 12
              BEGIN
                PROMPT 57 1 ""
                MESSAGE _NUMEXPR,LF_RMOVMAG->QUANT*LF_RMOVMAG->PREZZO|_USER,*SEGNOCAUS,V|ADD,FF_VALORE_MOV
              END
            END // sezione movimenti di competenza
          END //  SEZIONE righe movimento di competenza ragg. per causale

          SECTION STAMPASALDOPREC 1 1 1 NUMEXPR (#FF_STAMPASALDOPREC==0)&&(#FF_CANPRINTSALDOPREC!=0)
            NUMERO 100 18
            BEGIN
              PROMPT 8 1 "Saldo precedente :"
            END
            NUMERO FF_SALDOPREC 15
            BEGIN
              PROMPT 46 1 ""
              PICTURE "##.###.##@,@##"
              MESSAGE _USER,SALDOPREC|ADD,FF_SALDO_GRMOV
            END
            NUMERO 101 12
            BEGIN
              FLAGS "H"
              MESSAGE RESET,FF_SALDOPREC |INC,FF_STAMPASALDOPREC
            END
            STRINGA 102 12
              BEGIN
              PROMPT 42 1 ""
              FIELD LF_UMART->UM
            END
          END // stampa saldo precedente
          SECTION TOTALI_MOV 1 1 1 NUMEXPR #FF_SALDO_MOV!=0

            SECTION HEADER_MOV 1 1 1 NUMEXPR (#FF_NUMRIGHE==0)
              NUMERO FF_NUM_MOV
              BEGIN
                PROMPT 1 1 "Mov.$[v,w] "
              END
              STRINGA FF_DATA_MOV 10
              BEGIN
                PROMPT 12 1 "$[n,w]del "
              END
              STRINGA FF_DESCR_MOV 40
              BEGIN
                PROMPT 27 1 ""
              END
              STRINGA FF_TIPOCF_MOV 1
              BEGIN
                PROMPT 63 1 ""
              END
              NUMERO FF_CODCF_MOV 6
              BEGIN
                PROMPT 65 1 ""
                PICTURE "######"
              END
              STRINGA FF_CLIFO_MOV 50
              BEGIN
                PROMPT 73 1 ""
              END
            END // header mov della scheda

            STRINGA FF_CAUSALE_RIGA 5
            BEGIN
              PROMPT 6 1 ""
            END
            STRINGA FF_DESCRCAUSALE 25
            BEGIN
              PROMPT 11 1 " "
            END
            STRINGA 100 2
            BEGIN
              PROMPT 42 1 ""
              FIELD LF_UMART->UM
            END
            NUMERO FF_SALDO_MOV 15
            BEGIN
              PROMPT 46 1 ""
              PICTURE "##.###.##@,@##"
              MESSAGE _USER,ADDQTA,FF_SALDO_GRMOV
            END
            VALUTA FF_VALORE_MOV 15
            BEGIN
              PROMPT 72 1 ""
              MESSAGE _USER,ADDVAL,FF_VALORE_GRMOV
            END
            VALUTA 190 12
            BEGIN
              PROMPT 60 1 ""
              MESSAGE _NUMEXPR,#FF_VALORE_MOV/#FF_SALDO_MOV|INC,FF_NUMRIGHE
            END
          END // totali mov

        END // loop movimento
      END // loop scheda
      SECTION TOTALI_GRMOV 1 1 3 GROUP //PG057 NUMEXPR #FF_SALDO_GRMOV!=0
            
        STRINGA 100 15
        BEGIN
          PROMPT 1 1 "Totale scheda"
        END
        STRINGA 100 2
        BEGIN
          PROMPT 42 1 ""
          FIELD LF_UMART->UM
          MESSAGE COPY,FF_UM_GART
        END
        NUMERO FF_SALDO_GRMOV 15
        BEGIN
          PROMPT 46 1 ""
          PICTURE "##.###.##@,@##"
          MESSAGE ADD,FF_SALDO_GART
        END
        VALUTA FF_VALORE_GRMOV 15
        BEGIN
          PROMPT 72 1 ""
          MESSAGE ADD,FF_VALORE_GART
        END
      END // TOTALI scheda per articolo   
    END // loop RMOVMAG

   

  END // ragg articolo (codice o catmer)
  SECTION TOTALI_GRUPPIART 1 1 3 GROUP //PG057 NUMEXPR #FF_SALDO_GART!=0
    STRINGA 100 15
    BEGIN
      PROMPT 1 1 "Totale scheda"
    END
    STRINGA FF_UM_GART 2
    BEGIN
      PROMPT 42 1 ""
      FIELD LF_UMART->UM
    END
    NUMERO FF_SALDO_GART 15
    BEGIN
      PROMPT 46 1 ""
      PICTURE "##.###.##@,@##"
    END
    VALUTA FF_VALORE_GART 15
    BEGIN
      PROMPT 72 1 ""
    END
  END // TOTALI scheda per articolo   

END // *****

SECTION FOOTER ODD 2

END