+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 19

Discussione: Evento Forrmat

  1. #1
    Piero_Bo non è in linea Scolaretto
    Post
    50

    Evento Forrmat

    Buongiornio Forum,
    tempo fa Alex mi aveva aiutato e portato a una soluzione per evitare la stampa dopo una interruzione di pagina in un report con il seguente codice:
    codice:
    Option Compare Database
    Option Explicit
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
       If Me.Articoli_Qta > 0 Then 'Controllo del campo interessato
            Me.Section("ppR").Visible = True
        Else
            Me.Section("ppR").Visible = False
        End If
    End Sub
    Ora vorrei adattarlo a un'altro db con la differenza che il campo interessato presente in pagina 2 da 1 passa a 3, quindi 3 controlli.

    Ho provato a editarlo ma ovviamente non riesco ad andare oltre a quello fatto, il debug mi evidenza la riga del controlo campo 1 dkcendo Neccessario Oggetto:
    codice:
    Option Compare Database
    Option Explicit
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
       If Me.img01 Is Not Null Then 'Controllo campo 1
            Me.Section("ppR").Visible = True
        Else
            Me.Section("ppR").Visible = False
        End If
        If Me.img02 Is Not Null Then 'Controllo campo 2
            Me.Section("ppR").Visible = True
        Else
            Me.Section("ppR").Visible = False
        End If
        If Me.img03 Is Not Null Then 'Controllo campo 3
            Me.Section("ppR").Visible = True
        Else
            Me.Section("ppR").Visible = False
        End If
        
        End Sub
    Piero

  2. #2
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,143
    Cosa contiene quel Controllo...?
    La tua logica è a prescindere errata... devi spiegare se la condizione per rendere visibile la sezione è ALMENO 1 Controllo oppure TUTTI e 3...

    Non sapendo cosa devi fare farei così(Almeno 1 controllo valorizzato):
    codice:
    Option Compare Database
    Option Explicit
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
            Me.Section("ppR").Visible =  Len(Me.img01 & Me.img2 & Me.img3 & vbNullstring)>0
    End Sub
    Ho una passione per la sintesi del codice...!

    Se, devono essere TUTTI valorizzati così:
    codice:
    Option Compare Database
    Option Explicit
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
            Me.Section("ppR").Visible =  (Len(Me.img01 & vbNullstring)>0) AND  (Len(Me.img03 & vbNullstring)>0) AND  (Len(Me.img03 & vbNullstring)>0)
    End Sub
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  3. #3
    Piero_Bo non è in linea Scolaretto
    Post
    50
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Cosa contiene quel Controllo...?
    La tua logica è a prescindere errata... devi spiegare se la condizione per rendere visibile la sezione è ALMENO 1 Controllo oppure TUTTI e 3...
    Grazie per la risposta Alex, ho omesso, mea culpa, di specificare che se uno dei 3 campi contiene dati, e non numeri, come era nel caso del codice originale dell'altro topic, di stampare, e se tutti e 3 sono vuoti, di NON stampare, cosi si evita una foglio a vuoto.

    Ho provato il secondo codice, ma in debug esce, propietà o metodo non supportati dall'oggetto evidenziando la riga di codice, anche il primo, anche correggendo errori di battitura imgxx

  4. #4
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,143
    Non hai risposto alla prima domanda...!
    Cosa contiene quel controllo...? Io ho ipotizzato fosse una TextBox... non un controllo Immagine... che sarebbe poco intelligente usare come discriminante, oltretutto di solito i controlli Immagine si popolano con i Percorsi...!!!
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  5. #5
    Piero_Bo non è in linea Scolaretto
    Post
    50
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Non hai risposto alla prima domanda...!
    Cosa contiene quel controllo...? Io ho ipotizzato fosse una TextBox... non un controllo Immagine... che sarebbe poco intelligente usare come discriminante, oltretutto di solito i controlli Immagine si popolano con i Percorsi...!!!
    Pardon, tipo dati: testo breve

  6. #6
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,143
    Se tutti e 3 sono vuoti significa che devi usare il primo codice... in quanto è la negazione di "Se almeno UNO è valorizzato" ...!!!!!!
    Fai DEBUG...?
    FALLO.
    Prova così:
    codice:
    Option Compare Database
    Option Explicit
    
    Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer)
        Dim blState as Boolean
        blState = Len(Me.img01.Value + Me.img2.Value + Me.img3.Value + vbNullstring)>0
        Debug.PRint blState
        Me.Section("ppR").Visible = blState 
    End Sub
    Metti n BreackPOINT all'altezza dell'Ultima riga, quando si apre la Finestra del VBA, verifica con [CTRL+G] nella Finestra Immediata, quella sotto, che valore leggi... se leggi -1(TRUE) se leggi 0(FALSE)
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  7. #7
    Piero_Bo non è in linea Scolaretto
    Post
    50
    Quote Originariamente inviato da @Alex Visualizza il messaggio
    Se tutti e 3 sono vuoti significa che devi usare il primo codice... in quanto è la negazione di "Se almeno UNO è valorizzato" ...!!!!!!
    Fai DEBUG...?
    FALLO.
    Prova così:
    Ho inserito il codice, ho messo il BreakPOINT su Me.Section("ppR").Visible = blState, ho tolto il controllo dalle opzioni, premendo F8 non succede nulla, cosi ho fatto lavorare il Report, mi va in debug evidenziando di giallo Private Sub Corpo_Format(Cancel As Integer, FormatCount As Integer) e di Blu il primo .Value.
    Schermata CTRL + G "immediata" vuota

  8. #8
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,143
    Ovviamente sarebbe IMPOSSIBILE se tutto fosse giusto...
    Sei sicuro che il controllo [img01] sia una TextBox...?

    Purtroppo oltre a suggerirti di controllare bene... non so come altro indirizzarti alla cieca...
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

  9. #9
    Piero_Bo non è in linea Scolaretto
    Post
    50
    Convinto che parlavi della tabella ho scritto Testo Breve ...

    Ho cambiato il .value in .Picture ed ora con CTRL+G esce Vero

    Ho provato a stampare in .pdf per simulare la stampa, dopo il foglio iniziale ne escono altri 2 vuoti

  10. #10
    L'avatar di @Alex
    @Alex non è in linea Very Important Person
    Post
    16,143
    non ho proprio modo di capire... credo che in assenza di prove... tu debba fare qualche test come la scorsa volta...
    @Alex
    Il CROSSPOST è VIETATO
    Mirror al vecchio sito WEB(salvare i Demo riassegnando l'estensione (.Zip/.Rar/.Exe in base all'icona...):
    http://mirror.masterdrive.it/alessandrobaraldi/
    Leggi il
    Regolamento del Forum e nel comprenderne la filosofia rispettalo.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi