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
|