Straker Interactive

Benutzerdefiniertes Objekt Abfragen in ZoomFlex

Dieser Artikel befasst sich, wie Sie benutzerdefinierte Abfragen in ZoomFlex verwenden, um Daten vom Server-Side-Objekte zurückgeben.

In den generierten Code ZoomFlex unter der & # # 39; events & # # 39; Ordner ist ein [Klassenname] GetObjectsEvent.as Datei. Dieses Ereignis hat 3 Eigenschaften, die Spalten, und fieldName fieldValue sind. Dies bedeutet, wenn Sie die Veranstaltung, die Sie in den Spalten passieren können Sie aus der Datenbank zurück Versendung, den Feldnamen und Feld Wert, der in SQL Begriffe etwas aussehen würde

Wählen Sie Spalten aus myclasstable wo fieldname = Feldwert

Das ist in Ordnung, wenn Sie die Filter nur auf einem Feld-Wert-Paar, aber was passiert, wenn man auf mehreren Namen Paar Werte filtern möchten?

Die Antwort ist recht einfach und ist eine schnelle 5 Minuten Arbeit. Man muss einfach nur eine neue Eigenschaft, die Veranstaltung, fügen die entsprechenden Argumente für den Befehl und delegieren und machen Sie einen schnellen Wechsel an den Delegaten getVOsByFilter Funktion.

Hier sind die Schritte

Öffnen Sie das generierte [Klassenname] GetObjectsEvent.as Datei

Fügen Sie eine zusätzliche Eigenschaft namens whereClause


öffentlichen var Säulen: String = "";
öffentlichen var fieldName: String = "";
öffentlichen var fieldValue: String = "";
öffentlichen var whereClause: String = "";

Auch die anderen Funktionen Update für den Fall,


public function RssGetObjectsEvent (EventID: String, fieldName: String = "", fieldValue: String = "", whereClause: String = "", Spalten: String = "LABEL, OBJ_UUID, geschaffen", Handler: Rückrufe = null) (
super (eventID, Handler, true, true);

this.fieldName = fieldName;
this.fieldValue = fieldValue;
this.columns = Spalten;
this.whereClause = whereClause;
)

überschreiben public function clone (): Event (
return new RssGetObjectsEvent (this.type). CopyFrom (this);
)

überschreiben public function CopyFrom (ev: Event): Event (
/ / Kopie benutzerdefinierte Attribute
if (eV ist RssGetObjectsEvent) (
this.columns = (ev als RssGetObjectsEvent). Spalten;
this.fieldName = (ev als RssGetObjectsEvent). fieldName;
this.fieldValue = (ev als RssGetObjectsEvent). fieldValue;
this.whereClause = (ev als RssGetObjectsEvent). whereClause;
)
Rückkehr super.copyFrom (this);
)
   

Öffnen Sie nun den Befehl / [Klassenname] Command.as

Finden Sie die getVO & # # 39; sByFilter Funktion und fügen Sie das Argument whereClause


public function getVOsByFilter (event: RssGetObjectsEvent): void (

var Handler: Rückrufe = new Callbacks (onResults_getVOsByFilter, this.onFault);
var delegieren: RssDelegate = new RssDelegate (Handler);

delegate.getVOsByFilter (event.fieldValue,
event.fieldName,
event.columns,
__model.blockSize,
__model.maxRows,
__model.startRow,
event.whereClause);

)

Öffnen Sie nun die Delegierten / [cassname] Delegate.as

Finden Sie die getVOsByFilter Funktion und fügen Sie das Argument whereClause

public function getVOsByFilter (filterValue: String,
Filtername: String,
Spalten: String,
Blockgröße: int,
maxRows: int,
StartRow: int,
whereClause: String): void (

finden, wo das whereClause als Argument an den Server in der getVOsByFilter Funktion übergeben wird und setzen ihn auf den Wert des übergebenen Arguments whereClause

oArgs ["whereClause"] = whereClause;

 

Jetzt in Ihrem Profil können Sie fügen Sie den Code, um das Event Dispatch

dispatchEvent (neu RssGetObjectsEvent (RssGetObjectsEvent.GETBYFILTER ,"",""," label = # & # 39; & # x # 39; und schuf = & # # 39; Test & # # 39 ;","*", null)) ;

Wie Sie sehen, ich bin auf dem Etikett Filterung = "x" und schuf = "test" sowie der Rückkehr alle Spalten mit Hilfe der "*" in meiner select-Klausel.

Zur Prüfung der Veranstaltung ist Dispatching richtig auf Ihre Bewerbung gehen und führen Sie es so, dass das Ereignis (i & # # 39 Depeschen; m vorausgesetzt, Sie sind mit dem Benutzer interagieren mit einem Eingang, wie ein Button). Öffnen Sie die ZoomFlex Debug-Bildschirm und suchen Sie nach der Veranstaltung. Wenn Sie auf die Veranstaltung klicken Sie sollten Ihren whereClause an den Server übergeben wird.

 

------------- Remote Object Argumente ---------------------------
Preis:
whereClause: label = & # # 39; & # x # 39; und schuf = & # # 39; Test & # # 39;
Blockgröße: 200
className: com.a3.model.vo: RssVO
useBlockFactor: true
selectFields: *
StartRow: 1
filterValueText:
filterValuefilterName:

 

 

 

 

 

 


Comments

Add a comment









Add Comment

Categories