{"id":118,"date":"2017-03-07T10:27:45","date_gmt":"2017-03-07T10:27:45","guid":{"rendered":"http:\/\/hahne-software.de\/?p=118"},"modified":"2018-05-24T12:16:36","modified_gmt":"2018-05-24T12:16:36","slug":"eine-lookup-liste-definieren","status":"publish","type":"post","link":"https:\/\/hahne-software.de\/?p=118","title":{"rendered":"Eine Lookup Liste definieren"},"content":{"rendered":"<p>Eine Auswahlliste f\u00fcr ein Eingabefeld erstellen:<\/p>\n<h4>Definition der Klasse die die Elemente der Auswahlliste enth\u00e4lt:<\/h4>\n<pre>TUser = <strong>class<\/strong>(TStorableObject)\r\n<strong>private<\/strong>\r\n  sName : <strong>String<\/strong>;\r\n<strong>public\r\n  <\/strong>[SOFieldAttribute('USERS.USR_ID', ftAutoInc, 0, [sflPrimaryKey])]\r\n  <strong>property <\/strong>ID;\r\n  [SOFieldAttribute('USERS.USR_NAME', ftString, 50)]\r\n  <strong>property <\/strong>Name : <strong>String<\/strong> <strong>read <\/strong>sName <strong>write <\/strong>sName;\r\n<strong>end<\/strong>;<\/pre>\n<h4 class=\"western\">Liste anlegen und das Lookup definieren:<\/h4>\n<p>Definition der Klasse f\u00fcr die Auswahlliste die TUser enthalten soll:<\/p>\n<pre>TUserList =\u00a0class(TStorableObjectList); \r\n\r\nul\u00a0:= TUserList.Create(TUser, sp);\r\nul.DefineLookup(vmComboBox, 'USERS.USR_NAME', 'USERS.USR_ID,USERS.USR_NAME', '10,90');<\/pre>\n<h4>Erl\u00e4uterung:<\/h4>\n<p>Die Tabelle USERS enth\u00e4lt die USR_ID als Autowert Feld und das Feld USR_NAME als VARCHAR(50) f\u00fcr den Benutzernamen.<\/p>\n<p>TUserlist wird als Alias von TStorableObjectList angelegt. Diese Vorgehensweise ist sinnvoll falls sp\u00e4ter die Klasse TUserList um Funktionalit\u00e4t erweitert werden soll.<\/p>\n<p>Im n\u00e4chsten Schritt wird eine Instanz von TUserList angelegt. Hierbei wird \u00fcbergeben f\u00fcr welche Klasse, hier TUser, die Liste verwendet werden soll und welcher StorageProvider benutzt wird. Anschlie\u00dfend erfolgt die Definition der Ansicht der Daten per DefineLookup. Der Parameter vmComboBox besagt, dass die Liste als Dropdown Combobox angezeigt wird. Die Parameterangabe \u201eUSERS.USR_NAME\u201c ist das Feld dessen Inhalt bei der Anzeige der Combobox dargestellt wird. Die Parameterangabe \u201e USERS.USR_ID,USERS.USR_NAME\u201c beschreibt die Felder die in der Ausklappliste angezeigt werden. Die Parameterangabe \u201e10,90\u201c beschreibt die Breite der Spalten in Prozent f\u00fcr die Ausklappliste. Der Inhalt der Lookup-Liste wird automatisch geladen sobald SOView die Daten ben\u00f6tigt. Soll die Liste direkt geladen werden, so muss die Load Methode von TUserList aufgerufen werden.<\/p>\n<p>&nbsp;<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Eine Auswahlliste f\u00fcr ein Eingabefeld erstellen: Definition der Klasse die die Elemente der Auswahlliste enth\u00e4lt: TUser = class(TStorableObject) private sName : String; public [SOFieldAttribute(&#8218;USERS.USR_ID&#8216;, ftAutoInc, 0, [sflPrimaryKey])] property ID; [SOFieldAttribute(&#8218;USERS.USR_NAME&#8216;, ftString, 50)] property Name : String read sName write sName; end; Liste anlegen und das Lookup definieren: Definition der Klasse f\u00fcr die Auswahlliste die TUser [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[6,3],"tags":[],"class_list":["post-118","post","type-post","status-publish","format-standard","hentry","category-delphi","category-storableobjects"],"blocksy_meta":[],"_links":{"self":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/118","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=118"}],"version-history":[{"count":17,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/118\/revisions"}],"predecessor-version":[{"id":288,"href":"https:\/\/hahne-software.de\/index.php?rest_route=\/wp\/v2\/posts\/118\/revisions\/288"}],"wp:attachment":[{"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=118"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=118"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/hahne-software.de\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=118"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}