Buongiorno a tutti,
ho un db impiegato per la registrazione dei materiali in arrivo: ogni lotto viene registrato in una form tabellare assieme ad altre informazioni, tra cui il nr di colli ricevuti (normalmente bancali), che può andare da 1 a n, n che corrisponde al nr di etichette stampate
Per soddisfare un requisito del ns. controllo qualità, dobbiamo effettuare un campionamento ogni tot colli in base alle specifiche del materiale ( variabile intLblNr)
Ho risolto aggiungendo una routine nel corpo del report che in base alla frequenza di prelievo calcola su quali quanto evidenziare o meno la label lblPickSample (“prelevare da questo collo”)
Nel codice che ho postato potete vedere le varie casistiche: da un prelievo solo a prelievo su tutti i colli (case Else)
Ora, vorrei se possibile, fare in modo che le etichette “di prelievo” vengano stampate due volte. Ho provato a fare qualche prova aggiungendo un altro ciclo contatore ma non ne vengo fuori..
Oppure posso dividere la stampa in due job? il primo stampa tutte le etichette come ora, il secondo solo quelle doppie “di prelievo”
qualche idea di approccio possibile?
Grazie
Private Sub Corpo_Print(Cancel As Integer)
Dim intRMPrnFreq, intLblNr as integer
intRMPrnFreq = CInt(intLblNr / 2) - 1
Select Case intRMSamplFreq
Case 1 '1 prelievo
Me.txNrCollo = intCount
If intCount = intRMPrnFreq Then
Me.lblPickSample.visible = True
Else
Me.lblPickSample.visible = False
End If
Case 2 '2 prelievi inizio e fine
Me.txNrCollo = intCount
If intCount = 1 _
Or intCount = intLblNr Then
Me.lblPickSample.visible = True
Else
Me.lblPickSample.visible = False
End If
Case 3 '3 prelievi inizio, metà e fine
Me.txNrCollo = intCount
If intCount = 1 _
Or intCount = intLblNr _
Or intCount = intRMPrnFreq Then
Me.lblPickSample.visible = True
Else
Me.lblPickSample.visible = False
End If
Case 4 '5 prelievi inizio, 1/4-1/2-3/4 e fine
Me.txNrCollo = intCount
If intCount = 1 _
Or intCount = intLblNr _
Or intCount = CInt((intLblNr / 5) * 1) _
Or intCount = CInt((intLblNr / 5) * 2) _
Or intCount = CInt((intLblNr / 5) * 3) _
Or intCount = CInt((intLblNr / 5) * 4) Then
Me.lblPickSample.visible = True
Else
Me.lblPickSample.visible = False
End If
Case Else
Me.txNrCollo = intCount
Me.lblPickSample.visible = True
End Select
If intCount < intLblNr Then Me.NextRecord = False
intCount = intCount + 1
End Sub