Reports

4.13 Formattazione condizionale nei report.
  dido
Vorrei rendervi partecipi di una piccola soluzione, forse banale, per risolvere il problema di rendere i report e quindi la stampa più chiara e priva di tutta una serie di zeri inutili per la vista ma che devono esserci per eventuali calcoli.

Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
' QUESTO CICLO SERVE PER DARE UN COLORE DI TESTO NELLE CASELLE DI
' TESTO DI UN REPORT IN FUNZIONE DI UNA CONDIZIONE: se il valore è numerico ed è uguale a ZERO
' il colore del testo è bianco come lo sfondo e quindi non si legge il numero e la casella visivamente risulta vuota
' in questo modo si possono eseguire ugualmente delle somme o altro OPPURE CAMBIANDO LA CONDIZIONE ED IL COLORE
' si possono evidenziare il valori negativi IF VALORE < 0 THEN
    Dim ctl As Control
    Dim valore As Variant
    For Each ctl In Report.Corpo.Controls
        If ctl.ControlType = acTextBox Then
            valore = ctl.value
            If IsNumeric(valore) Then
                If valore = 0 Then
                    ctl.ForeColor = 16777215
                Else
                    ctl.ForeColor = 0
                End If
            End If
        End If
    Next ctl
End Sub

Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
' QUESTO CILO SERVE PER SCRIVERE I VALORI DECIMALI SOLO NEL CASO SIANO PRESENTI
' PRATICAMENTE LA CONDIZIONE E': se i primi due valori decimali sono diversi da 00 il formato è con due decimali
' altrimenti il formato è senza decimali
    Dim valore
    Dim valore1
    Dim valore2 As String
    For Each ctl In Report.Corpo.Controls
        If ctl.ControlType = acTextBox Then
            valore = ctl.value
            If IsNumeric(valore) Then
                valore1 = valore * 100
                valore2 = right(valore1, 2)
                If valore2 <> "00" Then
                    ctl.Format = "0.00"
                Else
                    ctl.Format = 0
                End If
            End If
        End If
    Next ctl
End Sub


Se pensate di avere del materiale freeware interessante e volete pubblicarlo, allora leggete qui.