Skip to main content

Function Button - Befüllung einer Zeile/Feld in einem neuen Beleg

Comments

3 comments

  • Lothar Hasenkämper

    Hallo Matthias,

    zum einen kannst du die Form 94 nicht befüllen weil das eine Matrix ist, und so weit ich das probiert habe musst du auch erst in den Reiter Artikel wechseln.

    Vielleicht geht es auch "schöner" aber so funktioniert es:

    Dim GPCodeCode As String = TextEdit.GetFromUID(pVal.Form, "48").Value
    Dim Serial As String = TextEdit.GetFromUID(pVal.Form, "43").Value
    MenuItem.GetFromUID("3585").Activate()
    MenuItem.GetFromUID("1282").Activate()
    Dim form As Form = Form.GetFormFromUID(customize.B1Connector.GetB1Connector().Application.Forms.ActiveForm.UniqueID)
    TextEdit.GetFromUID(form, "2").Value = GPCodeCode
    'Wechsle auf den Reiter Artikel
    SwissAddonFramework.B1Connector.GetB1Connector().Application.Forms.ActiveForm.Items.Item("50").Click()
    'Befülle die Matrix Spalte 5 Zeile 0 mit Seriennummer
    Matrix.GetFromUID(Form, "94").SetValue("5", 0, Serial)

    Gruß Lothar

    0
  • Matthias Wagner

    Servus Lothar

    funktioniert wirklich einwandfrei. 

    Hast du vielleicht noch einen Tipp bezüglich folgender Verbesserung:

    ==> Ein Popup Abfrage, welchen Wert man in ein Feld schreiben will.

    Z.B. Function Button fire ==> Welches Enddatum wollen Sie setzen? ==> User Eingabe ==> TextEdit.GetFromUID(form, "23").Value = EndDateEingabe durch User

    Damit könnte man die Servicevertragsanlage automatisieren?

    Gruß

    Matthias

    0
  • Sebastian Roehn

    Hallo Mathias,

    dazu müsste man sich eine eigene Form per Customize erstellen. Ich kenne bisher in CSHARP nur die MessageBox, mit der man nicht nur Textmeldungen ausgegeben kann, sondern z.B. auch Ja/Nein Dialoge. Ich weiß jedoch nicht, ob man die Messagebox mit Eingabefeldern starten kann. In VBCODE gäbe es dafür die InputBox.

    Bei der eigenen Form brauchst du dann aber eine Methode zum "Anhalten" des Codes. Startest du deinen eigene Form und wartest auf eine Eingabe des Benutzers, musst du quasi in einer Warteschleife deiner Form hängen.

    Da Function Buttons den Rückgabewert void haben, kann man nicht mit return true/false arbeiten. Bisher habe ich solche Anwendungen nicht gebraucht und arbeite nur mit der MessageBox. Wenn jemand eine Lösung dafür hat, wäre ich aber auch dankbar!

    Gruß

    Sebastian

     

    0

Please sign in to leave a comment.