Stampa di una griglia con il riepilogo dei codici doganali

Creato il: 29.09.2025
Le funzionalita' descritte in questa pagina fanno riferimento ad una versione minima di 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

Login