2016-12-14 4 views
-1

ich ein Datenblock-Objekte mit vier Elemente haben:Oracle Forms - auf einer nicht-Datenbank Artikel suchen

  • ID
  • TYPE_ID (Fremdschlüssel, mit dem Namen ID in den Tabellentypen)
  • TYPE_DESCRIPTION (nicht-Datenbankelement, mit dem Namen Beschreibung in den Tabellentypen)
  • STA_ID (nicht relevant)

in Form I auf TYPE_DES abfragen können, wollen CRIPTION (Nicht-Datenbankelement), indem Sie eine Phrase wie "S%" oder "% P" eingeben und ein Ergebnis für alle Spalten erhalten, gefiltert nach TYPE_DESCRIPTION.

Screenshots: https://imgur.com/gallery/UbDnH

+0

Was meinen Sie mit „alle Felder den Satz passend“? Wie sollte die finale Auswahl aussehen? Wenn OPIS_TYPU kein Datenbankelement ist, sehe ich nur den Artikel KOMENTARZ als verwendbar. –

+0

Können Sie ein Datenmodell bereitstellen? –

Antwort

0

fand ich für das Problem eine Lösung. Hier ist der Code für die PRE_QUERY Trigger:

declare 
where_str varchar2(512) := 'where 1 = 1'; 
begin 

if (:OBJECTS.TYPE_DESCRIPTION is not null) then 
    if instr(:OBJECTS.TYPE_DESCRIPTION, '%') <> 0 then 
    where_str := where_str || 
    'and OBJECTS.TYPE_ID in (select TYPES.ID from TYPES ' || 
    'where TYPES.DESCRIPTION like '''|| replace(:OBJECTS.TYPE_DESCRIPTION, '''', '''''') ||''')'; 
    else 
    where_str := where_str || 
    'and OBJECTS.TYPE_ID in (select TYPES.ID from TYPES ' || 
    'where TYPES.DESCRIPTION='''|| replace(:OBJECTS.TYPE_DESCRIPTION, '''', '''''') ||''')'; 
    end if; 
end if; 

set_block_property('OBJECTS', default_where, where_str); 

end; 

http://oracleebsgeeks.blogspot.com/2011/12/querying-on-non-database-field-in.html

Verwandte Themen