Problem mit auslesen von UDF Feld in Ansprechpartner

Hallo zusammen,
Ich habe ein wohl ein ganz simples Problem. Gerne möchte ich einen Function Button bei den Ansprechpartnern hinterlegen, welcher mir ein UDT Form öffnet, dort dann nach diesem Wert sucht und anzeigt. Nun schaffe ich es aber nicht, auf dieses UDF Feld zuzugreifen. Verschiedene Sachen habe ich versucht:

  • Per Feld Definition, welche auch in FMS verwendet wird
  • UID des Fensters versucht zu ermitteln

Das Feld befindet sich ja eigentlich nicht mehr in der OCRD Tabelle, sondern in OCPR. Auch ist das Pane ein anderes. Nur, wie greife ich auf dieses Feld zu? Mit BP Feldern klappt es natürlich.

Zudem möchte ich, dass nachher quasi mit Enter nach diesem Wert im Form gesucht wird.


Vielleicht gibt es aber auch einen einfacheren Weg?
Vielen lieben Dank für die Hilfe!

Der Code basiert auf dem coresuite customize Beispiel. Bei U_XYZ käme das Feld hinein
Try
Dim PersID As String = TextEdit.GetFromUID(pVal.Form, "U_XYZ").Value 
MenuItem.GetFromUID("47651").Activate() 'activate new object by menu item
Dim form As Form = Form.GetFormFromUID(customize.B1Connector.GetB1Connector().Application.Forms.ActiveForm.UniqueID)
TextEdit.GetFromUID(form, "0_U_E").Value = PersID 'set PersID to new form
--> ENTER Funktion
Catch ex As Exception
End Try

0

Comments

2 comments
  • Hallo Fabrizio,

    ob es es einen Weg per Objekt auf das Feld in der UDT zuzugreifen gibt, weiß ich nicht. Ich hole mir solche Daten per SQL Abfrage.

    string query_Item = string.Format("SELECT [Fieldname] FROM [dbo].[@UDT_Name] WHERE [Field Name]='{0}'", PersID);

    if (SwissAddonFramework.Global.DbType == SwissAddonFramework.Global.DATABASE.HANA)
    {
         // execute query
         query_Item = SwissAddonFramework.Utils.Hana.ConvertSqlQuery2HanaQuery(query_Item);
    }
    System.Text.StringBuilder output = new System.Text.StringBuilder();

    using (System.Data.Common.DbDataReader rdr = SwissAddonFramework.Utils.SQL.ExecuteReader(query_Item))
    {
       if (rdr.Read())
       {
          string strFound = rdr[0].ToString();
          // handle strFound...
       }
    }

    0
    Comment actions Permalink
  • Hallo Sebastian,

    Vielen Dank für die Hilfe! Sorry, dass ich erst jetzt zurückmelde.

    Ich konnte das Problem jetzt anders lösen und zwar greife ich jetzt einfach auf die Position in der Matrix zu:

    Dim matx AS Matrix = Matrix.GetFromUID(pVal.Form, "107")
    Dim PersID As String = mtxRows.GetValue("U_IDPerson", 0)

    Einfach, aber hat Zeit gebraucht um auf die Lösung zu kommen.

    Nochmals vielen Dank für die Hilfe!

     

    0
    Comment actions Permalink

Please sign in to leave a comment.

Didn't find what you were looking for?

New post