BarCode Makro

Programmierung unter AOO/LO (StarBasic, Python, Java, ...)

Moderator: Moderatoren

mamo
****
Beiträge: 116
Registriert: Do, 25.10.2012 14:20

BarCode Makro

Beitrag von mamo »

Ich habe ein schönes Makro gefunden, welches zwar unter MSO funktioniert, leider bekomme ich es unter OO nicht zum Laufen. :|

Könnt ihr da helfen??

Ihr benötigt die Schriftart: Code39

WIN 7
OO 3.41

Danke für Eure Hilfe.

Code: Alles auswählen

Sub Barcodes_erzeugen()
'
' Barcodes_erzeugen Makro
'
'

Dim i As Integer
Dim AnzahlProSeite As Integer
Dim Seitenzahl As Integer
Dim PENummer As Variant
Dim Datum As Date
Dim Zeichenkette As Variant
Dim Code As Variant
Datum = Date
AnzahlProSeite = 64
Seitenzahl = 1
PENummer = Eingabewerte.StartPENummer.Value
Datum = Eingabewerte.Druckdatum.Value
i = 1
j = 1
While j <= Seitenzahl
    While i <= AnzahlProSeite
        'Zeichenkette = "XXXXX_" & Datum
        Zeichenkette = "XXXXX_" & PENummer & "_" & Datum
        Code = "L-" & PENummer & "-" & Datum
        Selection.Font.Name = "Bar-Code 39"
        Selection.Font.Size = 12
        Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
        Selection.TypeText Text:=Code39(Code)
        Selection.Font.Name = "Arial"
        Selection.TypeText Text:=" "
        Selection.MoveDown Unit:=wdLine, Count:=1
        Selection.Font.Size = 9
        Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter

        Selection.TypeText Text:=Zeichenkette
        PENummer = PENummer + 1
        i = i + 1
        j = j + 1
        If i > AnzahlProSeite Then
            Application.Quit
        Else
            Feldwechsel
        End If
    Wend
Wend
End Sub
Function Code39(ByVal yourData As String) As String

    Code39 = "*" & yourData & "*"

End Function
Dateianhänge
XXXXX.docx
(17.24 KiB) 85-mal heruntergeladen
barcode.dot
(14.14 KiB) 91-mal heruntergeladen
juetho
******
Beiträge: 617
Registriert: Di, 20.04.2010 15:46
Wohnort: Berlin

Re: BarCode Makro

Beitrag von juetho »

mamo hat geschrieben:leider bekomme ich es unter OO nicht zum Laufen. :|
Das ist nicht mein Thema, deshalb kann ich keinesfalls helfen. Aber wenn du Hilfe erwartest, solltest du auf jeden Fall mehr Informationen liefern: Was hast du versucht? Woran erkennst du, dass es "nicht zum Laufen" kommt? Falscher Barcode, Text statt Barcode, Basic-Fehlermeldung beim Kompilieren, Abbruch des Makros zur Laufzeit, Fehlermeldung dabei und Stelle im Code, an der der Fehler auftritt, Inhalte der Variablen an dieser Stelle (erwartet und tatsächlich)?

Das sind nur die Punkte, die mir auf die Schnelle einfallen. Anderen fallen sicherlich weitere Unklarheiten auf. Also bitte: Hilf uns, damit wir helfen können! Jürgen

PS. Ein "schönes" Makro könnte es nur dann sein, wenn es ausreichend kommentiert wäre
Situation: LibO 3.6 auf Win 7 Home Premium (64-bit) mit MySQL (localhost) über JDBC
mamo
****
Beiträge: 116
Registriert: Do, 25.10.2012 14:20

Re: BarCode Makro

Beitrag von mamo »

Naja...hatte gestern den Ganzen Tag versuch Zeile für Zeile zu übersetzten....führte nur zu Frust! ^^

Code: Alles auswählen

Sub Barcodes_erzeugen()
'
' Barcodes_erzeugen Makro
'
'

Dim i As Integer
Dim AnzahlProSeite As Integer
Dim Seitenzahl As Integer
Dim PENummer As Variant
Dim Datum As Date
Dim Zeichenkette As String
Dim Code As Variant
Dim oStartPENummer as Object
Dim oDocument as Object
Dim oText as Object
Dim oCursor as Object
Dim oVCursor as Object
Dim oVC as Object

Datum = Date
AnzahlProSeite = 64
Seitenzahl = 1
rem PENummer = Eingabewerte.StartPENummer.Value
PENummer = DlgEingabewerte.getControl("StartPENummer").Text
Datum = DlgEingabewerte.getControl("Druckdatum").Text
i = 1
j = 1
While j <= Seitenzahl
    While i <= AnzahlProSeite
    	
    	REM erste Zeile
    	
        'Zeichenkette = "XXXXX_" & Datum
        Zeichenkette = "XXXXX_" & PENummer & "_" & Datum
        Code = "L-" & PENummer & "-" & Datum
        
        oDocument = thisComponent
        oVC = oDocument.getCurrentController.getViewCursor
        oText = oVC.text

        oDocument.GetCurrentController.ViewCursor.CharFontName = "Bar-Code 39"
        oDocument.GetCurrentController.ViewCursor.CharHeight = "12"
        oDocument.GetCurrentController.ViewCursor.ParaAdjust = "center"
        oText.insertString(oVC, Code39(Code), false)
        oDocument.GetCurrentController.ViewCursor.CharFontName = "Arial"
        oText.insertString(oVC, " ", false)
        oDocument.GetCurrentController.ViewCursor.goDown(1, false)
        oDocument.GetCurrentController.ViewCursor.CharHeight = "9"
        oDocument.GetCurrentController.ViewCursor.ParaAdjust = "center"       
        oText.insertString(oVC, Code39(Code), false)
        
        
        rem oText = thisComponent.getText
        rem oCursor = oText.createTextCursorByRange(oText.getStart)
        
        rem oCursor.string = "blabla" 'Code39(Code)
        rem oDocument.GetCurrentController.ViewCursor.text = "blabls"
        
        
        rem Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
        rem Selection.TypeText Text:=Code39(Code)
        
        REM nächste Zeile
        rem Selection.Font.Name = "Arial"
        rem Selection.TypeText Text:=" "
        rem Selection.MoveDown Unit:=wdLine, Count:=1
        rem Selection.Font.Size = 9
        rem Selection.ParagraphFormat.Alignment = wdAlignParagraphCenter
        rem Selection.TypeText Text:=Zeichenkette



        PENummer = PENummer + 1
        i = i + 1
        j = j + 1
        If i > AnzahlProSeite Then
            Application.Quit
        Else
            Feldwechsel
        End If
    Wend
Wend
End Sub
Function Code39(ByVal yourData As String) As String

    Code39 = "*" & yourData & "*"

End Function
Function Feldwechsel()
REM If Selection.Information(wdWithInTable) = True Then
REM     Selection.MoveRight Unit:=wdCell, Count:=1, Extend:=wdMove
REM End If
End Function
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: BarCode Makro

Beitrag von Karolus »

Hallo
Ich brauch jetzt auch keinen stundenlangen Frust + dutzende Rückfragen an dich um irgendeinen **** VBA-code zu übersetzen.

Wenn ich dein Beispiels-doc richtig interpretiere, sollte sich das alles (makrofrei) und relativ einfach in Form eines Serienbriefdokuments( Etiketten ) umsetzen lassen.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
mamo
****
Beiträge: 116
Registriert: Do, 25.10.2012 14:20

Re: BarCode Makro

Beitrag von mamo »

ok...kann ich dann auch den Code individualisieren....z.B. 5 Buchstaben, danach lfd Nr. von der ich den Start bestimmen kann und danach das Datum..?
Karolus
********
Beiträge: 7535
Registriert: Mo, 02.01.2006 19:48

Re: BarCode Makro

Beitrag von Karolus »

Hallo

Für ein Etikettendoc brauchst du eine Datenquelle , zum Beispiel ein Calcdokument mit entsprechenden Datensätzen.

Karolus
LO7.4.7.2 debian 12(bookworm) auf Raspberry5 8GB (ARM64)
LO25.2.3.2 flatpak debian 12(bookworm) auf Raspberry5 8GB (ARM64)
mamo
****
Beiträge: 116
Registriert: Do, 25.10.2012 14:20

Re: BarCode Makro

Beitrag von mamo »

Karolus hat geschrieben:Hallo

Für ein Etikettendoc brauchst du eine Datenquelle , zum Beispiel ein Calcdokument mit entsprechenden Datensätzen.

Karolus

soso....hätte ich nu nicht vermutet! :)


aber wenn ich das gerne automatisiert machen möchte, mit nur einer Datei??
Antworten