Vai al contenuto

Stampa di una griglia con il riepilogo dei codici doganali

Aggiornato il 15.10.2025
Le funzionalità descritte sono disponibili da Ready Pro v2025.8.
Questo script genera del testo nel formato utilizzabile con la funzionalita' "Stampa speciale come griglia" in modo da consentire la stampa di una griglia riepilogativa dei codici doganali utilizzati su un documento.
Option Explicit
 
Dim RigaDoc
Dim ChiaveRaggruppamento
Dim CodiceDoganale
Dim CodicePaese
Dim NomePaese
Dim UM
Dim Quantita
Dim Valore
Dim Peso
Dim trovato
Dim i
Dim numElementi
Dim aChiave()
Dim aCodiceDoganale()
Dim aCodicePaese()
Dim aNomePaese()
Dim aUM()
Dim aQuantita()
Dim aValore()
Dim aPeso()
 
numElementi = 0
 
' raggruppamento valori del corpo
For Each RigaDoc In Doc.DocRows
    CodiceDoganale = RigaDoc.CustomField(595)
    CodicePaese = RigaDoc.CustomField(592)
NomePaese = RigaDoc.CustomField(593)
UM = RigaDoc.CustomField(25)
    Quantita = RigaDoc.Quantity
    Valore = Rdy.toDouble(RigaDoc.CustomField(61)) ' Totale scontato senza IVA
    Peso = Rdy.toDouble(RigaDoc.CustomField(501)) ' peso netto totale
 
    If CodiceDoganale<>"" Then
        ' raggruppamento per codice doganale, paese ed unita' di misura
        ChiaveRaggruppamento = CodiceDoganale & "-" & CodicePaese & "-" & UM
 
        trovato = 0
        For i = 1 to numElementi
            If ChiaveRaggruppamento = aChiave(i) Then
                trovato = i
            End If
        Next
        If trovato>0 Then
            ' trovato un elemento con stessa chiave su cui cumulare i valori
   aQuantita(trovato) = aQuantita(trovato) + Quantita
            aValore(trovato) = aValore(trovato) + Valore
            aPeso(trovato) = aPeso(trovato) + Peso
        Else
            ' nuovo elemento
            numElementi = numElementi +1
            Redim Preserve aChiave(numElementi)
            Redim Preserve aCodiceDoganale(numElementi)
            Redim Preserve aCodicePaese(numElementi)
            Redim Preserve aNomePaese(numElementi)
            Redim Preserve aUM(numElementi)
            Redim Preserve aQuantita(numElementi)
            Redim Preserve aValore(numElementi)
      Redim Preserve aPeso(numElementi)
      aChiave(numElementi)=ChiaveRaggruppamento
            aCodiceDoganale(numElementi) = CodiceDoganale
            aCodicePaese(numElementi) = CodicePaese
            aNomePaese(numElementi) = NomePaese
            aUM(numElementi) = UM
            aQuantita(numElementi) = Quantita
            aValore(numElementi) = Valore
            aPeso(numElementi) = Peso
        End If
    End If
Next
 
 
If numElementi>0 Then
    ' Stampa la griglia solo se ci sono elementi
 
    ' intestazione griglia
    Response.Write("Codice|Paese|UM|Quantita|Valore|Peso" & vbCrLf)
    For i = 1 to numElementi
        Response.Write(aCodiceDoganale(i) & "|" & aCodicePaese(i) & " " & aNomePaese(i) & "|" & aUM(i) & "|" & Rdy.FormatDecimalPoint(aQuantita(i),3) & "|" & Rdy.FormatCurrency(aValore(i)) & "|" & Rdy.FormatDecimalPoint(aPeso(i)) & vbCrLf)
    Next
End If
Sul modello di stampa andranno poi adattate le dimensioni e allineamento delle colonne, la stampa dei bordi delle celle, ecc.

Personalizzando lo script e' inoltre possibile decidere quali valori stampare (ad esempio se stampare i pesi e/o il valore) ed il metodo di raggruppamento.
Stampa di una griglia con il riepilogo dei codici doganali – immagine 1