Printing
Home ] Up ] Client Server ] Crittografia ] ERP ] SQL ] TCP-IP ] E-Commerce ] Query Manager ] Automating Microsoft Outlook 98 ] BarCode ] Asp ] Il Modello Relazionale ] Studies for a Virus ] Utilizzo e creazione ] Virus ] Metodi Ottimali di Progettazione Sul WEB ] Printing ] [ Printing ] Masterizzare ] Strumenti ] OOP ] Backup ] Applicativi in Licenza ] Sicurezza ] Idee e Spunti ]

 

Subject: Re: Codici a barre
From: RoDAgo <rodagonospam@tiscalinet.it>
Newsgroup:it.comp.appl.access

GIORGIO scrisse...
> E' possibile stampare su un report di access dei codici a barre ??

Ceeerrrrto che si pò fa!
Donque creati un report di nome "Stampa codici a barre", inserisci una casella di testo (io l'ho chiamata NomeProdotto) con OrigineControllo impostata al codice che deve esser ricreato.
Appioppa nell'evento Su stampa del Corpo il seguente codicillo riferito al codice a barre Interleaved 2x5 (è un vecchio codice che lavora con codici di otto cifre numeriche, puoi sfruttare la Sub per ricrearti gli altri
standard, ti basta cercare su internet e trovi le regole di creazione barre per gli altri codici)

Private Sub Corpo_Print(Cancel As Integer, PrintCount As Integer)
Dim CODICE As String 'Codice a barre Interleaved 2x5 by RoDAgo
Dim CODE, N, R, X, AC, I, C1, C2, K, J, H, DISTANZADASINISTRA, DISTANZADAALTO, ALTEZZACODICE As Integer
Dim rpt As Report
Dim s As Integer
    Set rpt = Reports![stampa codici a barre]
    DISTANZADAALTO = 4
    ALTEZZACODICE = 12
    DISTANZADASINISTRA = 5
    CODE = Array(6, 17, 9, 24, 5, 20, 12, 3, 18, 10)
    CODICE = [NomeProdotto]
        If Val(CODICE) = 0 Then
            MsgBox ("Codice errato")
        Else
        If Len(CODICE) / 2 <> Int(Len(CODICE) / 2) Then CODICE = "0" + CODICE
            N = Len(CODICE)
            R = 2
            X = 0.5 'Distanza tra una barra e la Prossima
            rpt.ScaleMode = 6
            rpt.Line (DISTANZADASINISTRA, DISTANZADAALTO)-(DISTANZADASINISTRA + X,
                            DISTANZADAALTO + ALTEZZACODICE), , BF
            rpt.Line (DISTANZADASINISTRA + X * 2,
                            DISTANZADAALTO)-(DISTANZADASINISTRA + X * 3, DISTANZADAALTO +
                            ALTEZZACODICE), , BF
            AC = DISTANZADASINISTRA + X * 4
            For I = 1 To N / 2
            C1 = CODE(Val(Mid(CODICE, I * 2 - 1, 1)))
            C2 = CODE(Val(Mid(CODICE, I * 2, 1)))
            K = 16
            For J = 1 To 5
                If (C1 And K) > 0 Then H = R Else H = 1
                    rpt.Line (AC, DISTANZADAALTO)-(AC + H * X, DISTANZADAALTO +
                                    ALTEZZACODICE), , BF
                                    AC = AC + X * H
                    If (C2 And K) > 0 Then H = R Else H = 1
                        AC = AC + X * H
                        K = K / 2
            Next J
            Next I
                rpt.Line (AC, DISTANZADAALTO)-(AC + R * X, DISTANZADAALTO +
                                ALTEZZACODICE), , BF
                AC = AC + (R + 1) * X
                rpt.Line (AC, DISTANZADAALTO)-(AC + X, DISTANZADAALTO + ALTEZZACODICE),
                                , BF
        End If
End Sub

Ciao
RoDAgo