Wiki Markup |
---|
{anchor:top} {toc: class=contents} h2. Overview概要 {styleclass: Class=topLink}[topページトップ|#top]{styleclass} Ifコンテンツのロードを詳細にコントロールしたり、レポートまたはダッシュボードを適宜呼び出したり、(ユーザー入力に基づいて)表示オプションをダイナミックに設定したりする場合は、独自のスクリプトでAPIを直接呼び出すことができます。 you wantAPI呼び出しを実行する前に、Javascript to have more control over the loading of content, call reports or dashboards on demand, or set display options dynamically (based on user input), you can call the API directly from your own script. The Javascript API must be included before any API calls can be made: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> {code} A specific version of the API may be requested using the {{version}} parameter: {code:javascript} <script src="http://localhost/JsAPI?version=2.1" type="text/javascript"></script> {code} If the browser is unable to load the API, any calls to load reports or dashboards will fail. If you wish to detect whether the API has loaded successfully, you should check the variable {{window.yellowfin}} is available: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script type="text/javascript"> if (!window.yellowfin) { alert('Error loading API'); } </script> {code} h2. Server Information {styleclass: Class=topLink}[top|#top]{styleclass} After loading the API, some server information is made available: h3. {expand:title=Expand here...} || ||Description|| |{{yellowfin.apiVersion}}|The version of the API being used by the server.| |{{yellowfin.baseURL}}|The base URL used to connect to the API on the server| |{{yellowfin.serverInfo.releaseVersion}}|The release version of Yellowfin running on the server (eg. "6.1")| |{{yellowfin.serverInfo.buildVersion}}|The build version of Yellowfin running on the server (eg. "20120601")| |{{yellowfin.serverInfo.javaVersion}}|The java version installed on the server| |{{yellowfin.serverInfo.operatingSystem}}|The Operating System running on the server| |{{yellowfin.serverInfo.operatingSystemArch}}|The Operating System architecture on the server| |{{yellowfin.serverInfo.operatingSystemVersion}}|The Operating System version on the server| |{{yellowfin.serverInfo.schemaVersion}}|The schema version of the Yellowfin configuration database| {expand} h3. Example {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script type="text/javascript"> if (window.yellowfin) { alert('Yellowfin API loaded. Version: ' + yellowfin.apiVersion); } </script> {code} h2. Loading a Report {styleclass: Class=topLink}[top|#top]{styleclass} A report is loaded by calling the {{yellowfin.loadReport}} function: {code:javascript} yellowfin.loadReport(options); {code} Options are passed to the function as a Javascript object. These include a report identifier for the report you are loading, the elementId of the HTML element in which to load the report (or the element itself), and other options that alter the way the report is displayed. The available options are: h3. {expand:title=Expand here...} ||Option||Description|| |{{reportUUID}}|Either {{reportUUID}}, {{reportId}} or {{wsName}} must be present. The unique ID identifying the dashboard to load.| |{{reportId}}|Either {{reportUUID}}, {{reportId}} or {{wsName}} must be present. The numeric reportId identifying the report to load. It is recommended to use the {{reportUUID}} parameter instead.| |{{wsName}}|Either {{reportUUID}}, {{reportId}} or {{wsName}} must be present. The Web Service name identifying the report to load. It is recommended to use the {{reportUUID}} parameter instead.| |{{elementId}}|Either {{elementId}} or {{element}} must be present. The id of the html element in which to load the report.| |{{element}}|Either {{elementId}} or {{element}} must be present. The html element in which to load the report.| |{{showTitle}}|Default: {{true}} Set to {{false}} to omit the title bar at the top of the report. All interactive buttons included in the title bar will also be omitted.| |{{showInfo}}|Default: {{true}} Set to {{false}} to omit the Info button in the title bar.| |{{showFilters}}|Default: {{true}} Set to {{false}} to omit the Filters button in the title bar. Any user-prompt filters will not be displayed.| |{{showSections}}|Default: {{true}} Set to {{false}} to omit the Sections button in the title bar (for reports with tabbed or multi-page sections).| |{{showSeries}}|Default: {{true}} Set to {{false}} to omit the Series button in the title bar (for reports with the series selection option).| |{{showPageLinks}}|Default: {{true}} Set to {{false}} to omit the previous page/next page button in the title bar (for reports with multiple pages). | |{{showExport}}|Default: {{true}} Set to {{false}} to omit the Export button in the title bar.| |{{height}}|Default: automatically detected from the dimensions of the enclosing element Set this to a numeric value to override the report height.| |{{width}}|Default: automatically detected from the dimensions of the enclosing element Set this to a numeric value to override the report width.| |{{display}}|Default: {{chart}} Set to {{table}} to display the report initially as a table. Set to {{chart}} to display the report initially as a chart. This is ignored for reports that do not have both table and chart available.| |{{fitTableWidth}}|Default: {{true}} Set to {{true}} to attempt to scale the report to the width of the enclosing element.| |{{canChangeDisplay}}|Default: {{true}} Set to {{false}} to omit the buttons that allow the user to switch between chart and table display.| |{{filters}}|Set to an object containing filter values to pass to the report. | |{{username}}|Set this along with the {{password}} parameter to authenticate as a particular user when loading the report. This avoids the need for users to enter their login details before viewing restricted reports.| |{{password}}|Set this along with the {{username}} parameter to authenticate as a particular user when loading the report.| {expand} h3. Examples This example loads a report into an element specified by its universal id, setting some initial display options: {code:javascript} var options = {}; options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63'; options.elementId = 'myReport'; options.showFilters = 'false'; options.showSeries = 'false'; options.display = 'chart'; options.fitTableWidth = 'false'; yellowfin.loadReport(options); {code} This example does the same thing with an anonymous options object: {code:javascript} yellowfin.loadReport({ reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', elementId: 'myReport', showFilters: 'false', showSeries: 'false', display: 'chart', fitTableWidth: 'false' }); {code} This example passes the element directly rather than just its id: {code:javascript} yellowfin.loadReport({ reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', element: document.getElementById('myReport') }); {code} h2. Loading Report Filters {styleclass: Class=topLink}[top|#top]{styleclass} Filters used by a report can be loaded by calling the {{yellowfin.reports.loadReportFilters}} function. To use this function, load the reports sub-API into your page along with the main API: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script src="http://localhost/JsAPI?api=reports" type="text/javascript"></script> {code} Then call the {{loadReportFilters}} function: {code:javascript} yellowfin.reports.loadReportFilters(reportId, callback, arg); {code} The first argument is the unique identifier for the report, which may either be a {{reportUUID}} or a {{reportId}}. We recommend using the {{reportUUID}} where possible. The second argument is a callback function that will be called by the API when the filters for the report have been loaded. The first argument to the callback function will be the list of filters in the report. The second argument to the callback function will be the third argument supplied to the {{loadReportFilters}} function (if specified). The filters object returned as the first argument to the callback function is an array containing any filters used in the report. Each element in the array is an object containing information about that filter. These filter objects contain the properties: h3. {expand:title=Expand here...} ||Property||Description|| |{{filterUUID}}|A unique identifier for the filter.| |{{filterId}}|A numeric identifier for the filter.| |{{nativeType}}|The native data type of the filter.| |{{description}}|The description of the filter.| |{{operator}}|The operator used with the filter.| |{{display}}|The display style used by the filter.| |{{dependencies}}|Set to true if other filters in the report are dependent on this one.| |{{list}}|Set to true if the filter is a list style (allows multiple values).| |{{between}}|Set to true if the filter is a between style (requires a start and end value).| |{{listValues}}|If the filter is displayed as a drop-down list, this property contains a list of available options.| {expand} h3. Examples This example loads the report filters and displayed them to the user: {code:javascript} function filterCallback(filters) { for (var i = 0; i < filters.length; i++) { alert('Filter ' + filters[i].description + ' (' + filters[i].filterUUID + '), display style: ' + filters[i].display); } } yellowfin.reports.loadReportFilters( 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback); {code} This function can be used to load the available filters, and then pass them back to the {{loadReport}} function to set up initial filter values for the report when it is loaded into the page. For example: {code:javascript} function filterCallback(filters) { var filterValues = {}; for (var i = 0; i < filters.length; i++) { if (filters[i].description == 'Country') { filterValues[filters[i].filterUUID] = 'Australia'; } else if (filters[i].description == 'Start Date') { filterValues[filters[i].filterUUID] = '2011-01-01'; } else if (filters[i].description == 'Invoiced Amount') { filterValues[filters[i].filterUUID] = 6400; } } // set up other options to load the report var options = {}; options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63'; options.elementId = 'myReport'; // add the filter values options.filters = filterValues; // load the report yellowfin.loadReport(options); } yellowfin.reports.loadReportFilters( 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback); {code} Filter values passed to the {{loadReport}} function should be specified as simple values as above. If the filter is a list style, multiple values can be set using an array: {code:javascript} filterValues[filterUUID] = ['Australia', 'China', 'Italy']; {code} If the filter is a between style, the start and end values should be set using an array: {code:javascript} filterValues[filterUUID] = [500, 600]; {code} The {{options.filters}} element passed to the {{loadReport}} function should contain values keyed either by {{filterUUID}} or {{filterId}}. We recommend using {{filterUUID}} where possible. h2. Loading a Dashboard {styleclass: Class=topLink}[top|#top]{styleclass} A dashboard is loaded by calling the {{yellowfin.loadDash}} function: {code:javascript} yellowfin.loadDash(options); {code} Options are passed to the function as a Javascript object. These include an identifier for the dashboard you are loading, the elementId of the HTML element in which to load the dashboard (or the element itself), and other options that alter the way the dashboard is displayed. The available options are: h3. {expand:title=Expand here...} ||Option||Description|| |{{dashUUID}}|Must be present. The unique identifier for the dashboard to load.| |{{elementId}}|Either {{elementId}} or {{element}} must be present. The id of the html element in which to load the dashboard.| |{{element}}|Either {{elementId}} or {{element}} must be present. The html element in which to load the dashboard.| |{{showTitle}}|Default: {{true}} Set to {{false}} to omit the title bar at the top of the dashboard. All interactive buttons included in the title bar will also be omitted.| |{{showInfo}}|Default: {{true}} Set to {{false}} to omit the Info button in the title bar.| |{{showFilters}}|Default: {{true}} Set to {{false}} to omit the Filters button in the title bar. Any analytical filters will not be displayed.| |{{showExport}}|Default: {{true}} Set to {{false}} to omit the Export button in the title bar.| |{{height}}|Default: automatically set from the dimensions of the reports in the dashboard. Set this to a numeric value to override the dashboard height. If the reports in the dashboard require more space, a vertical scrollbar will be added.| |{{width}}|Default: automatically set from the logged-in user's preferences or the system configuration setting Set this to a numeric value to override the dashboard width. Set this to {{auto}} to use the full width of the enclosing element.| |{{filters}}|Set to an object containing filter values to pass to the dashboard. | |{{username}}|Set this along with the {{password}} parameter to authenticate as a particular user when loading the dashboard. This avoids the need for users to enter their login details before viewing restricted dashboards.| |{{password}}|Set this along with the {{username}} parameter to authenticate as a particular user when loading the dashboard.| {expand} h3. Examples This example loads a dashboard into an element specified by its id, setting some initial display options. {code:javascript} var options = {}; options.dashUUID = '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9'; options.elementId = 'myDash'; options.showFilters = 'false'; options.showExport = 'false'; yellowfin.loadDash(options); {code} This example does the same thing with an anonymous options object: {code:javascript} yellowfin.loadDash({ dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9', elementId: 'myDash', showFilters: 'false', showExport: 'false' }); {code} This example passes the element directly, rather than just its id: {code:javascript} yellowfin.loadDash({ dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9', element: document.getElementById('myDash') }); {code} h2. Loading Dashboard Filters {styleclass: Class=topLink}[top|#top]{styleclass} Filters used by a dashboard can be loaded by calling the {{yellowfin.dash.loadDashFilters}} function. To use this function, load the dashboard sub-API into your page along with the main API: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script src="http://localhost/JsAPI?api=dash" type="text/javascript"></script> {code} Then call the {{loadDashFilters}} function: {code:javascript} yellowfin.dash.loadDashFilters(dashUUID, callback, arg); {code} The first argument is the unique identifier for the dashboard. The second is a callback function that will be called by the API when the filters for the dashboard have been loaded. The first argument to the callback function will be the list of filters in the dashboard. The second argument to the callback function will be the third argument supplied to the {{loadReportFilters}} function (if specified). The filters object returned as the first argument to the callback function is an array containing any analytical filters used in the dashboard, as well as filter group separators. Each element in the array is an object containing information about that filter or filter group. These objects contain the properties: h3. {expand:title=Expand here...} ||Properties||Description|| |{{key}}|A unique key for this filter or filter group.| |{{type}}|Set to {{FILTERGROUP}} if this object represents a filter group. Other values indicate a type of analytic filter.| |{{description}}|The description of the filter or filter group.| |{{groupId}}|For filter groups: a numeric identifier for the group.| |{{state}}|For filter groups: set to {{OPEN}} if the group is currently opened.| |{{display}}|For filters: the display style used by the filter.| |{{dependencies}}|For filters: set to {{true}} if other filters in the dashboard are dependent on this one.| |{{list}}|For filters: set to {{true}} if the filter is a list style (allows multiple values).| |{{between}}|For filters: set to {{true}} if the filter is a between style (requires a start and end value).| |{{listValues}}|For filters: if the filter is displayed as a drop-down list, this property contains a list of available options.| {expand} h3. Examples This example loads the dashboard filters and displays them to the user:APIを含める必要があります: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> {code} versionパラメーターを使用して、特定バージョンのAPIをリクエストすることができます: {code:javascript} <script src="http://localhost/JsAPI?version=2.1" type="text/javascript"></script> {code} ブラウザーがAPIをロードできない場合、レポートまたはダッシュボードをロードするすべての呼び出しが失敗します。APIが正常にロードされたかどうかを検出するには、変数window.yellowfinが使用可能かどうかを確認します: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script type="text/javascript"> if (!window.yellowfin) { alert('Error loading API'); } </script> {code} h2. サーバー情報 {styleclass: Class=topLink}[ページトップ|#top] {styleclass} APIをロードすると、一部のサーバー情報を使用できるようになります: h3. {expand:title=ここを展開...} || || 説明 || | {{yellowfin.apiVersion}} | サーバーで使用しているAPIのバージョンです。 | | {{yellowfin.baseURL}} | サーバー上のAPIに接続するために使用されるベースとなるURLです。 | | {{yellowfin.serverInfo.releaseVersion}} | サーバーで実行しているYellowfinのリリースバージョンです(例:「6.1」)。 | | {{yellowfin.serverInfo.buildVersion}} | サーバーで実行しているYellowfinのビルドバージョンです(例:「20120601」)。 | | {{yellowfin.serverInfo.javaVersion}} | サーバーにインストールされているJavaのバージョンです。 | | {{yellowfin.serverInfo.operatingSystem}} | サーバーで実行しているオペレーティングシステムです。 | | {{yellowfin.serverInfo.operatingSystemArch}} | サーバーのオペレーティングシステムアーキテクチャです。 | | {{yellowfin.serverInfo.operatingSystemVersion}} | サーバーのオペレーティングシステムバージョンです。 | | {{yellowfin.serverInfo.schemaVersion}} | Yellowfin構成データベースのスキーマバージョンです。 | {expand} h3. 例 {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script type="text/javascript"> if (window.yellowfin) { alert('Yellowfin API loaded. Version: ' + yellowfin.apiVersion); } </script> {code} h2. レポートのロード {styleclass: Class=topLink}[ページトップ|#top] {styleclass} レポートは、yellowfin.loadReport関数を呼び出してロードします: {code:javascript} yellowfin.loadReport(options); {code} オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているレポートのレポート識別子、レポートをロードするHTML要素のelementId(またはelementそのもの)、およびレポートの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです: h3. {expand:title=ここを展開...} || オプション || 説明 || | {{reportUUID}} | reportUUID、reportId、wsNameのいずれかが存在する必要があります。 ロードするダッシュボードを識別する固有のIDです。 | | {{reportId}} | reportUUID、reportId、wsNameのいずれかが存在する必要があります。 ロードするレポートを識別する数値のreportIdです。代わりにreportUUIDパラメーターを使用することをお勧めします。 | | {{wsName}} | reportUUID、reportId、wsNameのいずれかが存在する必要があります。 ロードするレポートを識別するWebサービス名です。代わりにreportUUIDパラメーターを使用することをお勧めします。 | | {{elementId}} | elementIdとelementのいずれかが存在する必要があります。 レポートをロードするHTML要素のIDです。 | | {{element}} | elementIdとelementのいずれかが存在する必要があります。 レポートをロードするHTML要素です。 | | {{showTitle}} | デフォルト: {{true{}}} falseに設定すると、レポート上部のタイトルバーが省略されます。タイトルバーに含まれるすべての対話型ボタンも省略されます。 | | {{showInfo}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーの情報ボタンが省略されます。 | | {{showFilters}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーのフィルターボタンが省略されます。ユーザープロンプトフィルターは表示されません。 | | {{showSections}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーのセクションボタンが省略されます(タブ形式または複数ページのセクションを使用するレポートの場合)。 | | {{showSeries}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーのシリーズボタンが省略されます(シリーズ選択オプションを使用するレポートの場合)。 | | {{showPageLinks}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーの前のページ/次のページボタンが省略されます(複数ページを使用するレポートの場合)。 | | {{showExport}} | デフォルト: {{true{}}}falseに設定すると、タイトルバーのエクスポートボタンが省略されます。 | | {{height}} | デフォルト:囲み要素の寸法から自動的に検出します。 レポートの高さを上書きするには、数値を設定します。 | | {{width}} | デフォルト:囲み要素の寸法から自動的に検出します。 レポートの幅を上書きするには、数値を設定します。 | | {{display}} | デフォルト: {{chart{}}} tableに設定すると、レポートの初期状態がテーブルで表示されます。 chartに設定すると、レポートの初期状態がグラフで表示されます。 テーブルとグラフの両方が使用可能でないレポートでは無視されます。 | | {{fitTableWidth}} | デフォルト: {{true{}}} trueに設定すると、レポートを囲み要素の幅に合わせようとします。 | | {{canChangeDisplay}} | デフォルト: {{true{}}} falseに設定すると、ユーザーがグラフ表示とテーブル表示を切り替えできるボタンが省略されます。 | | {{filters}} | レポートに渡すフィルター値が格納されているオブジェクトに設定します。 | | {{username}} | passwordパラメーターと共に設定することで、レポートをロードするときに特定のユーザーとして認証されます。ユーザーは制限されているレポートを表示する前に、ログインの詳細を入力する必要がありません。 | | {{password}} | usernameパラメーターと共に設定することで、レポートをロードするときに特定のユーザーとして認証されます。 | {expand} h3. 例 ユニバーサルIDで指定された要素にレポートをロードし、初期の表示オプションをいくつか設定する例を示します: {code:javascript} var options = {}; options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63'; options.elementId = 'myReport'; options.showFilters = 'false'; options.showSeries = 'false'; options.display = 'chart'; options.fitTableWidth = 'false'; yellowfin.loadReport(options); {code} 匿名オプションオブジェクトを使用して同様の処理を行う例を示します: {code:javascript} yellowfin.loadReport({ reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', elementId: 'myReport', showFilters: 'false', showSeries: 'false', display: 'chart', fitTableWidth: 'false' }); {code} IDではなく要素を直接渡す例を示します: {code:javascript} yellowfin.loadReport({ reportUUID: 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', element: document.getElementById('myReport') }); {code} h2. レポートフィルターのロード {styleclass: Class=topLink}[ページトップ|#top] {styleclass} レポートで使用されるフィルターは、yellowfin.reports.loadReportFilters関数を使用してロードすることができます。この関数を使用するには、メインAPIと共にレポートサブAPIをページにロードします: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script src="http://localhost/JsAPI?api=reports" type="text/javascript"></script> {code} その後loadReportFilters関数を呼び出します: {code:javascript} yellowfin.reports.loadReportFilters(reportId, callback, arg); {code} 1番目の引数はレポートの固有識別子で、reportUUIDとreportIdのいずれかです。可能な限りreportUUIDを使用することをお勧めします。2番目の引数はコールバック関数で、レポートのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、レポートのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters関数に渡される3番目の引数になります(指定した場合)。 コールバック関数の1番目の引数として返されるフィルターオブジェクトは、レポートで使用されるあらゆるフィルターが格納された配列です。配列の各要素は、そのフィルターに関する情報が格納されたオブジェクトです。これらのフィルターオブジェクトには以下のプロパティがあります: h3. {expand:title=ここを展開...} || プロパティ || 説明 || | {{filterUUID}} | フィルターの固有識別子です。 | | {{filterId}} | フィルターの数値識別子です。 | | {{nativeType}} | フィルターのネイティブデータタイプです。 | | {{description}} | フィルターの説明です。 | | {{operator}} | フィルターで使用される演算子です。 | | {{display}} | フィルターで使用される表示スタイルです。 | | {{dependencies}} | レポートの他のフィルターがこのフィルターに従属している場合はtrueに設定します。 | | {{list}} | フィルターがリストスタイル(複数の値を許可する)の場合はtrueに設定します。 | | {{between}} | フィルターが範囲スタイル(開始値と終了値が必要)の場合はtrueに設定します。 | | {{listValues}} | フィルターがドロップダウンリストとして表示される場合は、このプロパティに使用可能なオプションのリストが格納されます。 | {expand} h3. 例 レポートフィルターをロードしてユーザーに表示する例を示します: {code:javascript} function filterCallback(filters) { for (var i = 0; i < filters.length; i++) { alert('Filter ' + filters[i].description + ' (' + filters[i].filterUUID + '), display style: ' + filters[i].display); } } yellowfin.reports.loadReportFilters( 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback); {code} この関数は、使用可能なフィルターをロードしてloadReport関数に戻し、レポートがページにロードされるときのレポートのフィルター初期値を設定するために使用できます。例: {code:javascript} function filterCallback(filters) { var filterValues = {}; for (var i = 0; i < filters.length; i++) { if (filters[i].description == 'Country') { filterValues[filters[i].filterUUID] = 'Australia'; } else if (filters[i].description == 'Start Date') { filterValues[filters[i].filterUUID] = '2011-01-01'; } else if (filters[i].description == 'Invoiced Amount') { filterValues[filters[i].filterUUID] = 6400; } } // set up other options to load the report var options = {}; options.reportUUID = 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63'; options.elementId = 'myReport'; // add the filter values options.filters = filterValues; // load the report yellowfin.loadReport(options); } yellowfin.reports.loadReportFilters( 'e5e5aaf3-c3b8-4f9b-8280-e21e4d848e63', filterCallback); {code} loadReport関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます: {code:javascript} filterValues[filterUUID] = ['Australia', 'China', 'Italy']; {code} フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります: {code:javascript} filterValues[filterUUID] = [500, 600]; {code} loadReport関数に渡されるoptions.filters要素は、filterUUIDまたはfilterIdでキー設定された値を含む必要があります。可能な限りfilterUUIDを使用することをお勧めします。 h2. ダッシュボードのロード {styleclass: Class=topLink}[ページトップ|#top] {styleclass} ダッシュボードは、yellowfin.loadDash関数を呼び出してロードします: {code:javascript} yellowfin.loadDash(options); {code} オプションは、Javascriptオブジェクトとして関数に渡されます。ロードしているダッシュボードの識別子、ダッシュボードをロードするHTML要素のelementId(またはelementそのもの)、およびダッシュボードの表示方法を変更するその他のオプションなどがあります。使用可能なオプションは以下のとおりです: h3. {expand:title=ここを展開...} || オプション || 説明 || | {{dashUUID}} | 必須です。 ロードするダッシュボードの固有識別子です。 | | {{elementId}} | elementIdとelementのいずれかが存在する必要があります。 ダッシュボードをロードするHTML要素のIDです。 | | {{element}} | elementIdとelementのいずれかが存在する必要があります。 ダッシュボードをロードするHTML要素です。 | | {{showTitle}} | デフォルト: {{true{}}} falseに設定すると、ダッシュボード上部のタイトルバーが省略されます。タイトルバーに含まれるすべての対話型ボタンも省略されます。 | | {{showInfo}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーの情報ボタンが省略されます。 | | {{showFilters}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーのフィルターボタンが省略されます。分析フィルターは表示されません。 | | {{showExport}} | デフォルト: {{true{}}} falseに設定すると、タイトルバーのエクスポートボタンが省略されます。 | | {{height}} | デフォルト:ダッシュボード内のレポートの寸法から自動的に設定します。 ダッシュボードの高さを上書きするには、数値を設定します。ダッシュボードのレポートが多くのスペースを必要とする場合は、縦方向のスクロールバーが追加されます。 | | {{width}} | デフォルト:ログインユーザーの設定またはシステム設定から自動的に設定されます。 ダッシュボードの幅を上書きするには、数値を設定します。 autoに設定すると、囲み要素の幅全体を使用します。 | | {{filters}} | ダッシュボードに渡すフィルター値が格納されているオブジェクトに設定します。 | | {{username}} | passwordパラメーターと共に設定することで、ダッシュボードをロードするときに特定のユーザーとして認証されます。ユーザーは制限されているダッシュボードを表示する前に、ログインの詳細を入力する必要がありません。 | | {{password}} | usernameパラメーターと共に設定することで、ダッシュボードをロードするときに特定のユーザーとして認証されます。 | {expand} h3. 例 IDで指定された要素にダッシュボードをロードし、初期の表示オプションをいくつか設定する例を示します。 {code:javascript} var options = {}; options.dashUUID = '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9'; options.elementId = 'myDash'; options.showFilters = 'false'; options.showExport = 'false'; yellowfin.loadDash(options); {code} 匿名オプションオブジェクトを使用して同様の処理を行う例を示します: {code:javascript} yellowfin.loadDash({ dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9', elementId: 'myDash', showFilters: 'false', showExport: 'false' }); {code} IDではなく要素を直接渡す例を示します: {code:javascript} yellowfin.loadDash({ dashUUID: '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9', element: document.getElementById('myDash') }); {code} h2. ダッシュボードフィルターのロード {styleclass: Class=topLink}[ページトップ|#top] {styleclass} ダッシュボードで使用されるフィルターは、yellowfin.dash.loadDashFilters関数を使用してロードすることができます。この関数を使用するには、メインAPIと共にダッシュボードサブAPIをページにロードします: {code:javascript} <script src="http://localhost/JsAPI" type="text/javascript"></script> <script src="http://localhost/JsAPI?api=dash" type="text/javascript"></script> {code} その後loadDashFilters関数を呼び出します: {code:javascript} yellowfin.dash.loadDashFilters(dashUUID, callback, arg); {code} 1番目の引数は、ダッシュボードの固有識別子です。2番目はコールバック関数で、ダッシュボードのフィルターがロードされたときにAPIによって呼び出されます。コールバック関数の1番目の引数は、ダッシュボードのフィルターリストです。コールバック関数の2番目の引数はloadReportFilters関数に渡される3番目の引数になります(指定した場合)。 コールバック関数の1番目の引数として返されるフィルターオブジェクトは、ダッシュボードで使用されるあらゆる分析フィルターと、フィルターグループ区切り文字が格納された配列です。配列の各要素は、そのフィルターまたはフィルターグループに関する情報が格納されたオブジェクトです。これらのオブジェクトには以下のプロパティがあります: h3. {expand:title=ここを展開...} || プロパティ || 説明 || | {{key}} | このフィルターまたはフィルターグループの固有キーです。 | | {{type}} | このオブジェクトがフィルターグループを表す場合はFILTERGROUPに設定します。その他の値は、分析フィルターの種類を示します。 | | {{description}} | フィルターまたはフィルターグループの説明です。 | | {{groupId}} | フィルターグループ用:グループの数値識別子です。 | | {{state}} | フィルターグループ用:グループが現在オープンの場合はOPENに設定します。 | | {{display}} | フィルター用:フィルターで使用される表示スタイルです。 | | {{dependencies}} | フィルター用:ダッシュボードの他のフィルターがこのフィルターに従属している場合はtrueに設定します。 | | {{list}} | フィルター用:フィルターがリストスタイル(複数の値を許可する)の場合はtrueに設定します。 | | {{between}} | フィルター用:フィルターが範囲スタイル(開始値と終了値が必要)の場合はtrueに設定します。 | | {{listValues}} | フィルター用:フィルターがドロップダウンリストとして表示される場合は、このプロパティに使用可能なオプションのリストが格納されます。 | {expand} h3. 例 ダッシュボードフィルターをロードしてユーザーに表示する例を示します: {code:javascript} function filterCallback(filters) { for (var i = 0; i < filters.length; i++) { alert('Filter ' + filters[i].description + ' (' + filters[i].key + '), display style: ' + filters[i].display); } } yellowfin.reports.loadReportFilters(1234, filterCallback); {code} This function can be used to load the available filters, and then pass them back to the {{loadDash}} function to set up initial filter values for the dashboard when it is loaded into the page: (' + filters[i].key + '), display style: ' + filters[i].display); } } yellowfin.reports.loadReportFilters(1234, filterCallback); {code} この関数は、使用可能なフィルターをロードしてloadDash関数に戻し、ダッシュボードがページにロードされるときのダッシュボードのフィルター初期値を設定するために使用できます: {code:javascript} function filterCallback(filters) { var filterValues = {}; for (var i = 0; i < filters.length; i++) { if (filters[i].description == 'Country') { filterValues[filters[i].key] = 'Australia'; } else if (filters[i].description == 'Start DateCountry') { filterValues[filters[i].key] = '2011-01-01Australia'; } else if (filters[i].description == 'InvoicedStart AmountDate') { filterValues[filters[i].key] = 6400'2011-01-01'; } else if (filters[i].description == }'Invoiced Amount') // set up other options to load the dashboard var options = {};{ options.dashUUID = '3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9'; options.elementIdfilterValues[filters[i].key] = 'myDash'6400; // add the filter values} options.filters =} filterValues; // set up other options to load the dashboard yellowfin.loadDash(options)var options = {}; } options.dashUUID = yellowfin.dash.loadDashFilters('3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9', filterCallback); {code} Filter values passed to the {{loadDash}} function should be specified as simple values as above. If the filter is a list style, multiple values can be set using an array:; options.elementId = 'myDash'; // add the filter values options.filters = filterValues; // load the dashboard yellowfin.loadDash(options); } yellowfin.dash.loadDashFilters('3b0b6c9a-9dfb-41f0-b85a-eb17bb8aeeb9', filterCallback); {code} loadDash関数に渡されるフィルター値は、上記のように単純な値として指定する必要があります。フィルターがリストスタイルの場合は、配列を使用して複数の値を設定できます: {code:javascript} filterValues[key] = ['Australia', 'China', 'Italy']; {code} If the filter is a between style, the start and end values should be set using an array: ]; {code} フィルターが範囲スタイルの場合は、配列を使用して開始値および終了値を設定する必要があります: {code:javascript} filterValues[key] = [500, 600]; {code} The {{options.filters}} element passed to the {{loadDash}} function should contain values keyed by the {{keys}} returned from the {{loadDashFilters}} function. loadDash関数に渡されるoptions.filters要素は、loadDashFilters関数から返されるkeysでキー設定された値を含む必要があります。 \\ \\ {horizontalrule} {styleclass: Class=topLink}[topページトップ|#top] {styleclass} |
Page Comparison
General
Content
Integrations