FAQ TBarCode OCX
Codes-barres dans Crystal Reports 8
Codes-barres dans Crystal Reports 8
Il n'est pas possible d'ajouter TBarCode directement dans un état, mais vous pouvez créer une image de code-barres « à la volée » et la charger dans un Picture Box. Suivez les instructions ci-dessous pour voir comment intégrer TBarCode dans Crystal Reports 8.
Intégration via Picture Box (exemple VB6)
Dans un formulaire (nommé « Form1 »), intégrez un contrôle TBarCode (nommé « tbc ») et un Picture Box (nommé « TmpPicture1 »). Ajoutez ensuite le code de fonction ci-dessous au formulaire. Il crée une image de code-barres « à la volée » et utilise le PictureBox comme surface de dessin.
Public Function BarcodeGenerate(Id As String, Width As Long, Height As Long) As PictureBox
Dim nSizing, cm
tbc.Text = Id
cm = tbc.CountModules
TmpPicture1.Cls
TmpPicture1.ScaleMode = vbPixels
Form1.ScaleMode = vbPixels
Width = ScaleX(Width, vbTwips, vbPixels)
Height = ScaleY(Height, vbTwips, vbPixels)
nSizing = Int(Width / cm)
If nSizing < 1 Then nSizing = 1
TmpPicture1.Width = cm * nSizing
TmpPicture1.Height = Height
DoEvents
tbc.BCDraw TmpPicture1.hDC, 0, 0, TmpPicture1.Width, TmpPicture1.Height
Set BarcodeGenerate = TmpPicture1
End Function
Dans le code d'événement de l'état (événement Format), appelez la fonction de génération de code-barres et assignez l'image de code-barres nouvellement créée au Picture Box (nommé Picture1) dans l'état.
Private Sub Section3_Format(ByVal pFormattingInfo As Object)
'create the barcode for each record set
Dim data As String
data = Field1.Value
Set Me.Picture1.FormattedPicture =
Form1.BarcodeGenerate(data, Me.Picture1.Width, Me.Picture1.Height).Image
End Sub
Intégration via un fichier bitmap (exemple VB6)
Dans un formulaire (nommé « Form1 »), intégrez un contrôle TBarCode (nommé « TBarCode ») et ajustez le type de code-barres ainsi que tous les autres paramètres souhaités. Cet objet code-barres sera utilisé pendant l'exécution de l'état pour la génération de code-barres « à la volée ».
Dans le code d'événement de l'état (événement Format), créez une image de code-barres dynamique dans un dossier temporaire et chargez cette image dans le Picture Box (nommé pictBarCode) de l'état.
Private Sub Section3_Format(ByVal pFormattingInfo As Object)
' Simulate data binding
' by saving the barcode as bitmap with data from fldArticleID
' then reload it to a picture control
On Error Resume Next
Dim nWidth
Dim path
Dim fso
' here we use hard coded temp path (must exist!)
path = "c:\temp\CR8_" & Me.fldArticleID.Value & ".bmp"
' reference the TBarCode Control in the Form1
Form1.TBarCode.Text = Me.fldArticleID.Value
Form1.TBarCode.PrintDataText = False
nWidth = Form1.TBarCode.CountModules * 3 'adapt width to number of graphical modules
Form1.TBarCode.SaveImage path, eIMBmp, nWidth, 100, 96, 96
Me.pictBarcode.SetOleLocation (path)
End Sub
Si vous ne souhaitez pas ajouter de contrôle de code-barres sur le formulaire, vous pouvez également créer une instance de TBarCode en mémoire et appliquer les paramètres par programmation.