Adobe Airを使用してSalesForceからデータを取得し、DataGridに表示しています。Adobe Flex SalesforceでアカウントIDをアカウント名に変換するときの問題
データを取得するためにクエリを使用していて、データグリッドにバインドされている配列コレクションに配置すると、正しく動作し、データが表示されます。
問題は、イベントのアカウントIDをアカウント名を表示するように変換することです。私は、次のコードを使用していますこれを行うには: -
これは動作し、アカウント名を表示し_serviceWrapper.query("Select * From Event order by StartDateTime asc", new mx.rpc.Responder(eventQueryHandler, faultHandler))}
protected function eventQueryHandler(qr:ArrayCollection):void {
var acctIdss:String = "";
for each(var contact:DynamicEntity in qr) {
if (contact.AccountId != null && acctIdss.indexOf(contact.AccountId) == -1) {
acctIdss += "'" + contact.AccountId + "',";
}
//contact.AccountName = ""; // Add field to contact for account name
TempGridProvider.addItem(contact); // Add contact to temp grid data data provider
//TempGridProvider.contact.AccountName = "";
}
acctIdss = acctIdss.substr(0, acctIdss.length - 1);
// Query for the accounts based on the account ids found in the contact list
_serviceWrapper.query("Select Id, Name, BillingCity From Account Where Id in (" + acctIdss + ")",
new SfdcAsyncResponder(Event2QueryHandler, faultHandler));
}
protected function Event2QueryHandler(accounts:ArrayCollection):void {
for each (var account:DynamicEntity in accounts) {
for each(var contact:DynamicEntity in TempGridProvider) {
if (contact.AccountId == account.Id) {
contact.AccountName = account.Name + " - " + account.BillingCity;
}
}
}
onQueryResult(TempGridProvider);
private function onQueryResult(rows : ArrayCollection) : void {
// release previous query results
_serviceWrapper.releaseQueryResults(_gridDataProvider);
// populate datagrid
_gridDataProvider = rows;
// show message in status bar
var status : F3Message = new F3Message(F3Message.STATUS_INFO, "Query came back with " + (_gridDataProvider == null ? 0 : _gridDataProvider.length) + " " + _selectedEntity + "s");
showStatus(status);
TempGridProvider = new ArrayCollection();;
}
、問題は、私は、このスクリプトとSalesforceへその後、同期の変更を使用したときに表示されているすべてのレコードが識別されていることですたとえそれらが表示されただけであっても同期化される必要があるからである。
関数eventQueryHandlerをスキップして、クエリをOnQueryResult関数にリンクすると、問題はありませんが、アカウントIDだけが表示されます。
これらのレコードに変更があったとマークするAirを停止するにはどうすればよいですか、これを実現するにはより良い方法がありますか?
ご協力いただきありがとうございました。
Roy
異なる配列の異なるオブジェクトのフィールドを表示するDataGridを使用したいと思いますか? –
はい、私ができることをしたいのは、イベントの詳細を含むデータグリッドを表示することですが、アカウントIDを表示するだけではなく、実際のアカウント名を表示したいのです。 問題は、基になるデータグリッド配列にアカウント名を追加すると、イベントデータの変更としてフラグが立てられ、レプリケートすると表示されたすべてのイベントがレプリケートされるということです – RoyK