設定可能なレポート
設定可能なレポート | |
---|---|
タイプ | ブロック |
セット | 該当なし |
ダウンロード | https://moodle.org/plugins/view.php?plugin=block_configurable_reports |
問題点 | https://tracker.moodle.org/browse/CONTRIB/component/10753 |
討論 | https://moodle.org/mod/forum/view.php?id=7979 |
メンテナ | フアンレイバ |
内容
インストール
- Configurable Reportsのインストールファイルをダウンロードして、あなたのMoodleフォルダの\ blocksディレクトリに解凍してください。
- ディレクトリの最終的な名前がconfigurable_reportsであることを確認してください。あなたのMoodleインストールのフルパスはblocks / configurable_reportsになります。
- 管理者としてMoodleにログインし、サイト管理の下にある通知をクリックしてください。
詳しくは、 貢献モジュールまたはプラグインのインストールを参照してください。
概要
このブロックはMoodleカスタムレポートビルダーです。また、 サンプルレポートのパブリックリポジトリにも接続されています (バージョン2.3以降のプラグインのみ)。
開発者が1時間以内に新しいプラグインを作成できるようにモジュール式に設計されています。
誰がカスタムレポートを作成できますか?
SITEレベルまたはCOURSEレベルでblock、managereports、またはmanageownreports権限を持つユーザー。
どのような種類のレポートを作成できますか?
- コースに関する情報を含むコースレポート。
- カテゴリに関する情報を含むカテゴリレポート。コースレポートはこのタイプのレポートに埋め込むことができます。
- ユーザーレポート、コース内のユーザーとその活動に関する情報。
- タイムラインレポート。これはタイムラインを表示する特別なタイプのレポートです。現在の行の開始時刻と終了時刻に応じてデータを表示するコースまたはユーザーレポートをこのタイムラインに埋め込むことができます。
- カスタムSQLレポート、カスタムSQLクエリ。このブロックはTim HuntのカスタムSQLクエリプラグインと同じSQLクエリを使用できます。
開発者への注意:あなたはあなた自身のタイプのレポートを作成することができます。
誰がレポートを閲覧できますか?
レポートを作成するときに、表示できるユーザーを選択できます。
レポートはコースまたはサイトのフロントページのブロックに表示されます。
レポートを作成する
これはとても簡単なプロセスです。
コースのレポートを作成する場合は、コースにブロックを追加して[レポートの管理]リンクをクリックする必要があります。
一方、サイトレポートの場合は、フロントページにブロックを追加して[レポートの管理]リンクをクリックします。
名前、オプションの説明を入力する必要があります。また、レポートの種類、ページ区切り、およびエクスポート形式を選択する必要があります。
選択したレポートに応じて、タブが増減します。これらは、コースおよびユーザーレポート用のタブです。
列 :ここでは、レポートの種類に応じてレポートの異なる列を選択できます。 (コース名、ユーザー名など)
条件 :ここで条件を定義できます(つまり、このカテゴリのコースのみ、スペインのユーザーのみなど)。
注文 :ここでは、フィールドと指示を使用してレポートを注文する方法を選択できます。
フィルタ :ここでどのフィルタを表示するかを選択できます。
テンプレート :テンプレートを作成してレポートのレイアウトを変更できます。
権限 :ここで、レポートを閲覧できる人を選択できます。
計算 :ここでは、列の計算を追加できます。つまり、コースに登録されているユーザーの平均数です。
プロット :ここで、レポートの列と値に基づいてレポートにグラフを追加できます。
レポートを表示 :自明
チュートリアル
ユーザーのレポートを作成する
必要条件: このコースでは、スペインからのユーザーで、マドリードからのユーザーではありません。このレポートはスペインのユーザーだけが閲覧できます。ユーザーの市区町村に基づいたフィルターを表示する必要があります。ユーザーの都市を示す円グラフが必要です。フォーラム投稿の合計ビューを示す計算表が必要です。レポートはユーザーの姓の順に並べてください。
それがどれほど簡単か見てみましょう!
まず最初に、ブロックを取り付けます。
レポートが作成されるコースに進みます。
Custom Reportsブロックのインスタンスを追加します。
「レポートの管理」をクリックしてください。
「レポート追加」をクリック
名前、説明を入力し、[レポートの種類]として[ユーザーレポート]を選択します。
レポートが保存され、「列」という名前の最初のタブにリダイレクトされます。
列を追加する
ここでは、レポートテーブルのプロパティ、幅、配置、セルの余白、セルの間隔などを定義できます。
「ユーザープロファイルフィールド」という列を追加します。
"firstname"フィールドを選択して、テキストフィールドに列の名前を入力します。残りの要素は空白のままにできます。
姓と市区町村のフィールドに対して上記のプロセスを繰り返します。
"User module actions"という名前の列を追加します。
リストからモジュール、この例ではフォーラムを選択してください。
条件を追加する
条件タブをクリックします。
「ユーザーフィールド条件」という名前の条件を追加します。
列 "国"、演算子 "="を選択し、値 "ES"を入力します(これはMoodleが格納するスペインの国際コードです)。
「ユーザーフィールド条件」という名前の条件を追加します。
列 "city"、演算子 "<>"を選択し、値 "Madrid"を入力してください。
「現在のレポートコースのユーザー」という名前の条件を追加します。
これらがレポートの主な条件です。このテキストと共に、一番下にconditionというテキストボックスがあります。
"c2とc1とc3"
ここで論理条件を定義できます。この場合、この条件を編集する必要はありませんが、次のような複雑な式を作成できます。
(c1とc2)または(c4とc3)
注文を追加する
注文タブをクリックします。
「ユーザーフィールドの順序」という名前の順序を追加します。
列 "姓"と順序 "ASC"(昇順)を選択します。
フィルタを追加する
フィルタタブをクリックします。
「ユーザーフィールドフィルター」という名前のフィルターを追加します。
市を選択してください。
権限を追加する
Permissionsタブをクリックしてください。
"ユーザ項目値"を選択してください。
列 "国"を選択し、値 "ES"を入力してください。
ここであなたはより多くの許可と達成されるべき論理条件を追加することができます。
計算を追加する
Calculationsタブをクリックしてください。
合計を選択します。
列 "ユーザモジュールアクション"を選択してください。
プロットを追加する
プロットタブをクリックします。
"Pie"を選びます。
名前と値として列「市」を選択します。
最後に、スペインの国々、マドリード、バルセロナ、セビリアなどのさまざまな都市のMoodleに数人のユーザを追加し、レポートをテストします。
レポートはさまざまな形式(odsとxls)でダウンロードできます。レポートページでこれらのオプションを必ず確認してください。
SQLレポートの作成
あなたはここにSQLレポートの多くを見つけることができます: アドホックレポートを拠出しました
このブロックはTim HuntのCustomSQLクエリレポートをサポートしているので、任意のクエリを使用できます。
時間トークン付きのレポートを使用する予定の場合は、「時間フィルタ」を追加することを忘れないでください。
まず最初に、ブロックを取り付けます。
レポートが作成されるコースに進みます。
Custom Reportsブロックのインスタンスを追加します。
「レポートの管理」をクリックしてください。
「レポートを追加」をクリック
名前、説明を入力し、レポートの種類として「SQL」を選択します。
レポートが保存され、 "カスタムSQL"という名前の最初のタブにリダイレクトされます。
この質問を追加する( コース活動 ):
SELECT COUNT(L。ID)ヒット、L。コースcourseId 、 c 。フルネームクールセナム prefix_log L から インナー L 上 prefix_course Cに参加します。コース= c 。 id GROUP BY courseId ORDER BYヒットDESC
計算タブに移動します
Sum計算を追加し、hits列を選択します
プロットへ
名前としてcoursenameを選択し、値としてhitsを選択して、円グラフを追加します。
したがって、ここではグラフとSQLクエリに基づく計算を含むレポートがあります。
コースフィルタを追加できます。とても簡単です。
フィルターに行き、コースを選択してください
カスタムSQLクエリを編集します。
SELECT COUNT(L。ID)ヒット、L。コースcourseId 、 c 。フルネームクールセナム prefix_log L から インナー L 上 prefix_course Cに参加します。コース= c 。 id %% FILTER_COURSES:l 。コース%% GROUP BY courseId ORDER BYヒットDESC
%% FILTER_COURSES:l.courseid %%というトークンを追加していることに注意してください。
[レポートの表示]に移動すると、コースフィルタが表示され、コースを選択して[追加]をクリックします。ここでは、レポートがフィルタ処理されています。
開始時間と終了時間のフィルタを追加することもできます。
フィルタに移動し、開始日/終了日フィルタを選択します。
[カスタムSQL]タブに移動します。これは新しいクエリです。
SELECT COUNT(L。ID)ヒット、L。コースcourseId 、 c 。フルネームクールセナム prefix_log L から インナー L 上 prefix_course Cに参加します。コース= c 。 id %% FILTER_COURSES:l 。コース%% %% FILTER_STARTTIME:L。時間:> %% %% FILTER_ENDTIME:L。時間: < %% GROUP BY courseId ORDER BYヒットDESC
テキストをフィルタリングしたい場合(たとえば、姓)
フィルタに移動し、検索テキストフィルタを選択します。
[カスタムSQL]タブに移動してクエリを入力します。これは、ユーザーテーブルを照会するための例です。
U]を投票します。ファーストネーム、 u 。苗字 FROM prefix_userから WHERE 1 = 1 %% FILTER_SEARCHTEXT:U。姓:〜%% U BY ORDER。苗字
WHERE 1 = 1をあなたのWHERE基準に置き換えてください。 where条件がなく、WHERE 1 = 1を指定していない場合は、SQLエラーが発生します。
もう1つの例(カテゴリによってコースのグループをフィルタリングするための)
SELECT COUNT(L。ID)ヒット、C。フルネームASコース、 c 。 id ASコースID 、(SELECT COUNT(RA。ユーザーID)Ra と prefix_role_assignmentsユーザーから AS RA ON CTX AS prefix_context 登録しよう 。 contextid = ctx 。 id WHERE RA。 roleid = 5 AND ctx 。インスタンスID = C。 id ) ASの学生 prefix_log L から インナー L 上 prefix_course Cに参加します。コース= c 。 id %% FILTER_CATEGORIES:c 。カテゴリー%% リットルBY GROUP。コース ORDER BYヒットDESC
レポートの表示に移動します。今度は時間でもフィルターできます
SQL変数あなたがSQLクエリにこの文字列を入れると、適切な値(現在のコースID、現在のユーザーID、Moodle www root(url))に置き換えられます。
- %% COURSEID %%
- %%ユーザーID%%
- %% WWWROOT %%
タイムラインレポートの作成
このレポートは、少なくとも1つのユーザーレポートまたはコースレポートを作成していることを前提としています
タイムラインレポートは特別な種類のレポートです。タイムラインレポートには、コースレポートまたはユーザーレポートを埋め込むことができるタイムラインが表示されます。
この例では、先月(1日当たり)の間にユーザーがサイトにログインしたことを示すレポートを作成します。
3つの列(名、姓、ユーザー統計)でユーザーレポートを作成します(上記のチュートリアルを参照)。
統計を選択します(ユーザーログイン)
タイムラインレポートを作成します。[タイムライン]タブで、レポートの日付または日数(この場合は過去30日間)と各行の時間間隔を選択できます。
以前のユーザーレポート列をすべて選択して、[その他のレポート列]列を3つ追加します。
これですべてです。新しい種類のプロット(折れ線グラフ)を作成できます。このグラフは時間に依存するデータに適しています。
高度なオプション
レポートのエクスポートとインポート
レポートに別のレポートへの参照が含まれているため、埋め込みレポートのエクスポートは機能しません。回避策は、インポートしたレポートを編集して[その他のレポートフィールド]列の参照を変更することです。
ユーザモジュールのアウトライン列を使用するレポートもエクスポートできません
異なるコースで同じレポートを使用する
(構成可能レポートバージョン2.3以上でのみ使用可能)
異なるコースで同じレポートを使用するには、新しいレポートを作成する際に[グローバルレポート]オプションをチェックする必要があります。このレポートは、構成可能なレポートブロックが表示され、ブロックインスタンス設定が[グローバルレポートの表示]に設定されているすべてのコースに表示されます。
特定のブロックインスタンスのグローバルレポートを表示したくない場合は、[グローバルレポートの表示]ブロック設定で[いいえ]を選択するためにインスタンス設定をいつでも編集できます。
これらの種類のレポートは、表示されるコースのコンテキストを継承するため、レポート内のコースに関連する条件は、レポートが表示されているコースを使用して計算されます。
レポートは現在の(本番)DBとは異なるDBで実行できます。
(構成可能レポートバージョン2.3以上でのみ使用可能)
この機能は同じMoodleデータベースのコピーを使用するためのもので、他のデータベースソースへのクエリ用ではありません。
[管理] - > [プラグイン] - > [ブロック] - > [設定可能なレポート]設定に移動します。
レポートテーブルのデータテーブル
(構成可能レポートバージョン2.3以上でのみ使用可能)
この機能を有効にするには、[管理] - > [プラグイン] - > [ブロック] - > [設定可能なレポート]の設定に移動します。
SQLクエリコードを強調表示するためのCodeMirror.js
(構成可能レポートバージョン2.3以上でのみ使用可能)
この機能を無効にするには、[管理] - > [プラグイン] - > [ブロック] - > [設定可能なレポート]の設定に移動します。
共有可能なSQLクエリを配布および管理するためのリポジトリとしてGITHUBを使用する
(構成可能レポートバージョン2.3以上でのみ使用可能)
[管理] - > [プラグイン] - > [ブロック] - > [設定可能なレポート]設定に移動して、自分のリポジトリを指定します。
Cron SQLクエリ
(構成可能レポートバージョン2.3以上でのみ使用可能)
SQLクエリのセキュリティを制御するための設定
(構成可能レポートバージョン2.3以上でのみ使用可能)
セキュリティレベルを変更するには、[管理] - > [プラグイン] - > [ブロック] - > [設定可能なレポート]の設定に移動します。
テンプレート
テンプレートを使用してレポート出力をカスタマイズできます。
同じ名前のタブでテンプレートオプションを有効にするだけです。
これは、ユーザーのリストを表示するためのHTMLコードの例です。
ヘッダ:
< p align = "center" > < b > ##レポート名## < / b > < / p > < table width = "60%" align = "center" > < tr > < td >
記録:
< table width = "100%" > < tr > < td > < img src = "https://yourmoodle.com/user/pix.php/[[id]]/f1.jpg" > < / td > < td > < h2 > [[名]] [[姓]] < / h2 > 市区町村:[[市区町村]] < / td > < / tr > < / table > <br>
フッター:
< / td > < td valign = "top" > ##グラフ## <BR /> <BR /> ## exportoptions ## < / td > < / table >
埋め込みレポート
埋め込みレポートは、別のレポートに埋め込まれているレポートの列のセットで構成されています。
ユーザーレポートをコースレポートに埋め込むことができます。この場合、結果の行は各ユーザーの各行を複製して展開されます。
報告の種類 | 埋め込むことができるレポート |
---|---|
コース | ユーザー |
カテゴリー | コース |
タイムライン | ユーザー、コース |
コースレポートがあるとします。ユーザーレポートを埋め込むことができます。コースレポートの各行は各ユーザーに対して複製されます。
レポートを埋め込むには、「その他のレポート」列を追加するだけで、レポートのリストが表示されます。
コースレポートの中には、ユーザーレポートなどを埋め込むことができます。
タイムラインレポート
タイムラインレポートは特別な種類のレポートです。タイムラインレポートには、コースレポートまたはユーザーレポートを埋め込むことができるタイムラインが表示されます。
タイムラインレポートは、ユーザーまたはコースレポートに統計(コース統計またはユーザー統計列)が含まれている場合に使用する必要があります。すなわち:あなたは1週間または1ヶ月間のサイトへのユーザーログインの数を示すレポートを作成することができます。
レポートリポジトリ
構成可能レポートは、2つの異なるリポジトリーに接続されています。
- https://github.com/jleyva/moodle-configurable_reports_repositoryあらゆる種類のレポート(ユーザー、コース、SQLなど)のリポジトリ。
- https://github.com/jleyva/moodle-custom_sql_report_queries SQLレポータータイプで使用されるSQLクエリーのみのレポジトリ
この指示に従ってあなたのカスタムリポジトリを使用することができます。
- まず、githubアカウントが必要です(無料)
- GITHUBフォークツールを使用して、以前のリポジトリをフォークします。
- GITを使用して、カスタムレポートを追加するためにリポジトリをコンピュータに複製します(GITの知識が必要です)。
- Administration / Plugins / Blocks / Configurable reportsに行き、あなたのリポジトリを指すように設定を変更してください(githubアカウント+ / +リポジトリ名)
- あなたが公式のリポジトリに貢献したいのなら、GithubのPull request機能を使ってください(だから私はあなたのレポートを簡単に追加することができます)
開発者向けドキュメント
新しいレポートタイプ、コンポーネント、プラグインを作成するのはとても簡単です。
レポート :レポートプラグインは/ reportにあるフォルダーです。このフォルダにはreport_baseの子クラスを持つ.class.phpファイルが含まれています。
新しいレポートタイプを追加するには、いくつかの方法を変更するだけで済みます。最新のレポートをご覧ください。 SQLレポートは一般的ではないレポートの一例ですが、ユーザーおよびコースレポートは標準レポートです。
レポートを作成する最善の方法は、既存のレポートを複製することです。
コンポーネント :コンポーネントはレポートの一部です。コンポーネントは複数のレポートで使用できます。メインのComponentはColumnsコンポーネントです。これはレポートの列を追加するために使用されます。
他のコンポーネントはフィルタ、パーミッション、プロット、計算です。
コンポーネントを作成する最善の方法は、既存のコンポーネントを複製することです。
プラグイン :プラグインはコンポーネントモジュールです。コンポーネント列には、いくつかのプラグイン(coursefield、userfieldなど)があります。通常、プラグインは固有のレポートに対して機能しますが、複数のレポートに対して機能するプラグインもあります。プラグインを作成する最良の方法は既存のものを複製することです。
新しい機能を要求する方法
- プラグイントラッカーhttps://tracker.moodle.org/browse/CONTRIB/component/10753にアクセスしてください。
- あなたの機能がすでに要求されている場合は、未解決の問題をチェックインしてください。https://tracker.moodle.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+CONTRIB+AND+component+%3D+%22Block%3A+Configurable+ %22 + AND +ステータス+%3D +開く+ ORDER + BY +優先度+ DESC&mode = hideを報告
- そうでない場合は、新しい号を作成してください(コンポーネント:コアではない貢献モジュール号のタイプ:新機能)(あなたはトラッカーに登録する必要があります)
- コンポーネントブロック:選定可能レポートとあなたのMoodleバージョンを選択してください
- Descriptionフィールドであなたの必要性を説明しなさい
- 資金がある場合は、フォーラムまたはMoodle内部メッセージングシステムを使用して私に連絡することができます。Moodleパートナーに勤務しているため、私はあなたの要求に応じることができます。
- 作成した課題に投票して監視する
クレジット
Juan Leyva Moodleプロフィール
スクリーンショット
ユーザーレポート
SQLレポート
参照
- CONTRIB-2386
- ブロック:構成可能レポートトラッカーコンポーネント
- モジュールとプラグインデータベースエントリ
- ヘルプフォーラム
- 寄稿された報告書 (プレーンSQL)
- GitHubの設定可能なレポートリポジトリ
- Learning Analyticsツールとしての設定可能なレポート - Elizabeth DaltonによるiMoot 2015のプレゼンテーション
- すべての変数とフィルタ - レポートで使用できる変数とフィルタを一覧表示します。