Announcement

Collapse
No announcement yet.

B-PAC Brother Anwendung

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • B-PAC Brother Anwendung

    Hallo,

    ich brauche mal eure Hilfe.

    http://www.brother.com/bpac/de/bpac_samples.html

    Ich wollte eine Anwendung programmieren wie sie auf der Seite von Brother beschrieben ist. Die installation von der B-PAC bringt einige Samples mit sich, welche sich auch mit VB bearbeiten lassen.

    Die Oberfläche hab ich soweit schon bearbeiten können, welches auch kein Problem ist. Mein Problem ist nur das beim Debuggen der Fehler kommt das ich eine Objektinstanz mit dem Schlüsselwort New erstellen soll.

    '************************************************* ******************
    '
    ' b-PAC 3.0 Component Sample (Badge)
    '
    ' (C)Copyright Brother Industries, Ltd. 2009
    '
    '************************************************* ******************
    Option Explicit On

    Public Class Badge
    Const sPath = "C:\Program Files\Brother bPAC3 SDK\Templates\TestTestTestTestTest.lbx"

    '************************************************* *******
    ' Open and Print a spcified file.
    '************************************************* *******
    Public Sub DoPrint()
    Dim objDoc As bpac.Document
    objDoc = CreateObject("bpac.Document")
    If (objDoc.Open(sPath) <> False) Then
    objDoc.GetObject("objName").Text = txtName.Text

    'objDoc.SetMediaByName(objDoc.Printer.GetMediaName , True)
    objDoc.StartPrint("BadgeSample", bpac.PrintOptionConstants.bpoAutoCut)
    objDoc.PrintOut(1, bpac.PrintOptionConstants.bpoAutoCut)
    objDoc.EndPrint()
    objDoc.Close()
    End If
    End Sub

    Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click
    DoPrint()
    End Sub

    Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
    Me.Close()
    End Sub

    Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click

    End Sub
    End Class
    Ausserdem wäre hierbei noch die Frage, wie ich definieren kann mit welchem Drucker die Vorlage gedruckt werden soll.

    Wäre euch für eure Hilfe sehr dankbar.

    MfG, Giersch

  • #2
    Mein Problem ist nur das beim Debuggen der Fehler kommt das ich eine Objektinstanz mit dem Schlüsselwort New erstellen soll.
    Ja und der Debugger hat dir bestimmt auch gezeigt an welcher Stelle und bezogen auf welche Variable. Hast du richtig geprüft ob bei

    Code:
    objDoc = CreateObject("bpac.Document")
    auch ein Object erzeugt wurde? Wenn nicht ist vermutlich dir COM-Komponente zu der bpac.Document gehört nicht richtig installiert.

    Comment


    • #3


      Hier mal ein Screenshot beim Debuggen

      Comment


      • #4
        Dann wird wohl

        Code:
        objDoc.GetObject("objName")
        nothing(was meint der Debugger dazu?) sein und der Zugriff auf die Text Property knallt dann. Was sollte den objName sein? Ohne zu wissen worum es geht hört sich das für mich nur nach einem Platzhalter für eine sinnvolleren Bezeichner an.

        Ich rate jetzt mal vor mich hin wenn das hier irgendeine Art von Reportdrucker darstellt und deine lbx Datei ein Report ist sollte es wohl auf dem Report ein Object geben das objName heißt. Tut es das auch?

        Comment


        • #5
          Könnte es sein, dass txtName der Schuldige ist......


          Es müsste ja dann schon bei "Open" eine NPE gegeben haben, wenn objDoc null wäre
          Christian

          Comment


          • #6


            So soll die Anwendung aussehen.

            Es soll mit einer Vorlage (.lbx Dateien) von dem Brother P-Touch Editor verknüpft. Brtoher P-Touch ist ein Etiketten Drucker.

            So wie es auch auf der Internetseite von Brother steht, will ich einfach nur in die Windows Anwenung eine Zahl eingeben und der druckt mir die Nummer aus dem Etikettendrucke aus, ohne den Editor o.ä. öffnen zu müssen.

            Comment


            • #7
              Das hilft uns jetzt überhaupt nicht um dir zu helfen

              Debug deinen Code, sieh nach welcher Teil da zu nothing wird, also entweder meine Vermutung oder die von Christian und dann sehen wir weiter.

              Comment


              • #8
                Fehler 1 Syntaxfehler. C:\Program Files\Brother bPAC3 SDK\Samples\VBNET\Badge\Form1.vb 20 12 Badge

                Ab da geht der Debuggvorgang auch nicht weiter. Der hängt wieder hier: objDoc.GetObject("objName").Text = txtName.Text

                Comment


                • #9
                  Du solltest an deinen Debugging-Fähigkeiten arbeiten. Die sind essentiell wichtig beim programmieren und noch wichtiger wenn du von und Hilfe willst. Ohne das du das richtig debuggst können wir dir auch nur ganz schwer helfen.

                  1. Setzt eine Breakpoint auf die Zeile an der die NullReferenceException aufgetreten ist (die die du im Screenshot zeigst)
                  2. Starte die Anwendung im Debugger und löse DoPrint aus, die Anwendung sollte nun an besagter Stelle halten aber bevor die Exception auftritt.
                  3. Öffne das Contextmenü auf einem der Schlüsselbegriffe (wie z.B. txtName oder objDoc).
                  4. Wähle dort den Punkt 'Add Watch' aus. Keine Ahnung wie der in Deutsch heißt, hat aber in jeder Sprache eine Brille als Icon.
                  5. Nun solltest du im Watchfenster (oder wie dieses Fenster auch immer in Deutsch heißen mag) den Inhalt der Variablen angezeigt bekommen.
                  6. Suche nach der Variablen die als Inhalt nothing hat. (Kann eigentlich nur 'objDoc.GetObject("objName")' oder txtName sein).
                  7. Wenn du den schuldigen hast frage dich (oder uns) was du eigentlich in dieser Variablen erwartet hättest und warum das da jetzt nicht drin steht.

                  Comment


                  • #10
                    Code:
                    objDoc.GetObject("objName").Text
                    Sollte nicht für "objName" irgendein sinnvoller Bezeichner stehen?

                    Was sagt die Doku, wie heißt das Objekt wirklich, dessen Text - Eigenschaft verändert werden soll?
                    Ich habs gleich!
                    ... sagte der Programmierer.

                    Comment


                    • #11
                      [highlight=vbnet]Informationen über das Aufrufen von JIT-Debuggen
                      anstelle dieses Dialogfelds finden Sie am Ende dieser Meldung.

                      ************** Ausnahmetext **************
                      System.NullReferenceException: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt.
                      bei Badge.Badge.DoPrint() in C:\Program Files\Brother bPAC3 SDK\Samples\VBNET\Badge\Form1.vb:Zeile 20.
                      bei Badge.Badge.btnPrint_Click(Object sender, EventArgs e) in C:\Program Files\Brother bPAC3 SDK\Samples\VBNET\Badge\Form1.vb:Zeile 32.
                      bei System.Windows.Forms.Control.OnClick(EventArgs e)
                      bei System.Windows.Forms.Button.OnClick(EventArgs e)
                      bei System.Windows.Forms.Button.OnMouseUp(MouseEventAr gs mevent)
                      bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
                      bei System.Windows.Forms.Control.WndProc(Message& m)
                      bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
                      bei System.Windows.Forms.Button.WndProc(Message& m)
                      bei System.Windows.Forms.Control.ControlNativeWindow.O nMessage(Message& m)
                      bei System.Windows.Forms.Control.ControlNativeWindow.W ndProc(Message& m)
                      bei System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)


                      ************** Geladene Assemblys **************
                      mscorlib
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
                      CodeBase: file:///C:/WINDOWS/Microsoft.NET/Framework/v4.0.30319/mscorlib.dll.
                      ----------------------------------------
                      Badge
                      Assembly-Version: 1.0.0.0.
                      Win32-Version: 1.0.0.0.
                      CodeBase: file:///U:/Ordner%20von%20Philipp/VBNET/Badge/bin/Debug/Badge.exe.
                      ----------------------------------------
                      Microsoft.VisualBasic
                      Assembly-Version: 10.0.0.0.
                      Win32-Version: 10.0.30319.1 built by: RTMRel.
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/Microsoft.VisualBasic/v4.0_10.0.0.0__b03f5f7f11d50a3a/Microsoft.VisualBasic.dll.
                      ----------------------------------------
                      System
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 built by: RTMRel.
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System/v4.0_4.0.0.0__b77a5c561934e089/System.dll.
                      ----------------------------------------
                      System.Core
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 built by: RTMRel.
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Core/v4.0_4.0.0.0__b77a5c561934e089/System.Core.dll.
                      ----------------------------------------
                      System.Windows.Forms
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 built by: RTMRel.
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms/v4.0_4.0.0.0__b77a5c561934e089/System.Windows.Forms.dll.
                      ----------------------------------------
                      System.Drawing
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 built by: RTMRel.
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Drawing/v4.0_4.0.0.0__b03f5f7f11d50a3a/System.Drawing.dll.
                      ----------------------------------------
                      System.Runtime.Remoting
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Runtime.Remoting/v4.0_4.0.0.0__b77a5c561934e089/System.Runtime.Remoting.dll.
                      ----------------------------------------
                      Badge.resources
                      Assembly-Version: 1.0.0.0.
                      Win32-Version: 1.0.0.0.
                      CodeBase: file:///U:/Ordner%20von%20Philipp/VBNET/Badge/bin/Debug/de-DE/Badge.resources.DLL.
                      ----------------------------------------
                      Interop.bpac
                      Assembly-Version: 1.1.0.0.
                      Win32-Version: 1.1.0.0.
                      CodeBase: file:///U:/Ordner%20von%20Philipp/VBNET/Badge/bin/Debug/Interop.bpac.DLL.
                      ----------------------------------------
                      mscorlib.resources
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 (RTMRel.030319-0100).
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/mscorlib.resources/v4.0_4.0.0.0_de_b77a5c561934e089/mscorlib.resources.dll.
                      ----------------------------------------
                      System.Windows.Forms.resources
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 built by: RTMRel.
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Windows.Forms.resources/v4.0_4.0.0.0_de_b77a5c561934e089/System.Windows.Forms.resources.dll.
                      ----------------------------------------
                      System.Xml
                      Assembly-Version: 4.0.0.0.
                      Win32-Version: 4.0.30319.1 built by: RTMRel.
                      CodeBase: file:///C:/WINDOWS/Microsoft.Net/assembly/GAC_MSIL/System.Xml/v4.0_4.0.0.0__b77a5c561934e089/System.Xml.dll.
                      ----------------------------------------

                      ************** JIT-Debuggen **************
                      Um das JIT-Debuggen (Just-In-Time) zu aktivieren, muss in der
                      Konfigurationsdatei der Anwendung oder des Computers
                      (machine.config) der jitDebugging-Wert im Abschnitt system.windows.forms festgelegt werden.
                      Die Anwendung muss mit aktiviertem Debuggen kompiliert werden.

                      Zum Beispiel:

                      <configuration>
                      <system.windows.forms jitDebugging="true" />
                      </configuration>

                      Wenn das JIT-Debuggen aktiviert ist, werden alle nicht behandelten
                      Ausnahmen an den JIT-Debugger gesendet, der auf dem
                      Computer registriert ist, und nicht in diesem Dialogfeld behandelt.

                      [/highlight]

                      Kommt als Fehlermeldung im Windows.

                      Ihr wisst aber was ich mit dieser Anwendung erzwecken will ja?

                      Die Anwendung öffnet sich ja, aber sobald ich eien Geräte ID in das Eingabefesnter eingebe, kommt diese Fehlermeldung
                      Zuletzt editiert von Giersch; 08.09.2010, 14:50.

                      Comment


                      • #12
                        Das ist ja alles schön und gut...

                        aber wie sieht denn dein Labeltemplate aus? Gibt es dort einen Text oder irgendein anderes Element das "ObjName" heißt?

                        Funktioniert dein Code mit dem Original - Template?
                        Ich habs gleich!
                        ... sagte der Programmierer.

                        Comment


                        • #13


                          So sieht das Template/Vorlage für die Drucksoftware aus. Der Barcode hat ein extra Feld in dem Template, welches ich objName als titelname gegeben hab.

                          Das gut ist, der Drucker wirft jetzt einen Ausdruck raus. Es ist soweit alles drauf, ausser der Barcode. Das FEld ID: bleibt leer, wenn ich in der Anwendung eine variable Nummer eingebe. Wisst ihr evtl weiter?

                          Comment


                          • #14
                            Das heißt, das Eingang beschriebene Problem ist gelöst?

                            Das FEld ID: bleibt leer..
                            ich denke, das muss auch zugewiesen werden:

                            [highlight=vb]
                            objDoc.GetObject("objName").Text = txtName.Text
                            objDoc.GetObject("ID").Text = txtName.Text
                            [/highlight]
                            Ich habs gleich!
                            ... sagte der Programmierer.

                            Comment


                            • #15
                              Glaub ich nicht, da ID: einfach nur ein ganz normales Textfeld ist.

                              Hab das Barcodefeld nochmal makiert, vllt. hilft dir das ja.

                              Also wie gesagt soweit geht alles, nur der überträgt den Barcode in den Moment nicht.
                              Zuletzt editiert von Christian Marquardt; 25.11.2015, 21:47.

                              Comment

                              Working...
                              X