Taiga 1058: Remove trailing spaces and extra blank lines in source files
[kohadocs.git] / source / reports.rst
1 .. include:: images.rst
2
3 Reports
4 =======
5
6 Reports in Koha are a way to gather data. Reports are used to generate
7 statistics, member lists, shelving lists, or any list of data in your
8 database.
9
10 -  *Get there:* More > Reports
11
12 .. _custom-reports-label:
13
14 Custom reports
15 -----------------------------------
16
17 Koha's data is stored in a MySQL database which means that librarians
18 can generate nearly any report they would like by either using the
19 :ref:`guided reports wizard <guided-report-wizard-label>` or writing their own
20 :ref:`SQL query <report-from-sql-label>`.
21
22 .. _add-custom-report-label:
23
24 Add custom report
25 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
26
27 .. _guided-report-wizard-label:
28
29 Guided report wizard
30 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
31
32 The guided report wizard will walk you through a six step process to
33 generate a report.
34
35 Step 1: Choose the module you want to report on. This will determine
36 what tables and fields are available for you to query.
37
38 'Report is public' should be left to the default of 'No' in most cases
39 especially if the report contains patron or other sensitive information.
40 A public report can be accessed using the
41 :ref:`JSON reports services <json-reports-services-label>` by anyone and without authentication.
42
43 |image881|
44
45     **Note**
46
47     If your system administrator has set up memcache on your server you
48     might see one more option for the Cache expiry. This is related to
49     your public reports. If you make the report public then it's
50     constantly running and will cause a large load on your system.
51     Setting this value prevents that.
52
53     |image1292|
54
55 Step 2: Choose a report type. For now, Tabular is the only option
56 available.
57
58 |image882|
59
60 Step 3: Choose the fields you want in your report. You can select
61 multiple fields and add them all at once by using CTRL+click on each
62 item you want to add before clicking the Add button.
63
64 |image883|
65
66 Step 4: Choose any limits you might want to apply to your report (such
67 as item types or branches). If you don't want to apply any limits,
68 simply click 'Next' instead of choosing an option.
69
70 |image884|
71
72 Step 5: Perform math functions. If you don't want to do any
73 calculations, simply click 'Next' instead of choosing an option.
74
75 |image885|
76
77 Step 6: Choose data order. If you want the data to print out in the
78 order it's found in the database, simply click 'Finish'.
79
80 |image886|
81
82 When you are finished you will be presented with the SQL generated by
83 the report wizard. From here you can choose to save the report by
84 clicking 'Save' or copy the SQL and make edits to it by hand.
85
86 |image887|
87
88 If you choose to save the report you will be asked to name your report,
89 sort it in to groups and subgroups and enter any notes regarding it.
90
91 |image888|
92
93 Once your report is saved it will appear on the 'Use saved' page with
94 all other saved reports.
95
96 |image889|
97
98 From here you can make edits, run the report, or schedule a time to have
99 the report run. To find the report you created you can sort by any of
100 the columns by clicking the on the column header (creation date is the
101 best bet for finding the report you just added). You can also filter
102 your results using the filter menu on the left or use the tabs to find
103 reports based on your custom groups.
104
105 .. _report-from-sql-label:
106
107 Report from SQL
108 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
109
110 In addition to the report wizard, you have the option to write your own
111 queries using SQL. To find reports written by other Koha users, visit
112 the Koha wiki: http://wiki.koha-community.org/wiki/SQL_Reports_Library.
113 You can also find your database structure in
114 /installer/data/mysql/kohastructure.sql or online at:
115 `http://schema.koha-community.org <http://schema.koha-community.org/>`__.
116
117 To add your query, click the link to 'Create from SQL' on the main
118 reports module or the 'New report' button at the top of the 'Saved
119 reports' page.
120
121 |image890|
122
123 Fill in the form presented
124
125 |image891|
126
127 -  The 'Name' is what will appear on the Saved Reports page to help you
128    identify the report later. It will also be searchable using the
129    filters found the left of the Saved Reports page.
130
131 -  You can use the 'Report group' to organize your reports so that you
132    can easily filter reports by groups. Report groups are set in the
133    `REPORT\_GROUP <#reportgroup>`__ authorized value category or can be
134    added on the fly when creating the report by choosing the 'or create'
135    radio button.
136
137    |image1293|
138
139    Report groups set up in the authorised value category
140    need to have unique authorised values and descriptions.
141
142    -  **Note**
143
144           If you're adding a report group on the fly, remember that you
145           code should be fewer than 10 characters and should not include
146           special characters or spaces.
147
148 -  You can use 'Report subgroup' to further organize your reports so
149    that you can easily filter reports by groups and subgroups. Report
150    subgroups are set in the `REPORT\_SUBGROUP <#reportsubgroup>`__
151    authorized value category or can be added on the fly when creating
152    the report by choosing the 'or create' radio button.  Report subgroups
153    are set up with unique values in 'Authorised value', and 'Description'.
154    The 'Description (OPAC)'' field needs to contain the authorised value for
155    the report group that the subgroup falls under.
156
157    |image892|
158
159    -  **Note**
160
161           If you're adding a report subgroup on the fly, remember that
162           you code should be fewer than 10 characters and should not
163           include special characters or spaces.
164
165 -  'Report is public' should be left to the default of 'No' in most cases
166     especially if the report contains patron or other sensitive information.
167     A public report can be accessed using the
168     :ref:`JSON reports services <json-reports-services-label>` by anyone and without authentication.
169
170 -  'Notes' will also appear on the saved reports page, this can be used
171    to provide more details about the report or tips on how to enter
172    values when it runs
173
174 -  The type should always be 'Tabular' at this time since the other
175    formats have not been implemented
176
177 -  In the 'SQL' box you will type or paste the SQL for the report
178
179     **Note**
180
181     If your system administrator has set up memcache on your server you
182     might see one more option for the Cache expiry. This is related to
183     your public reports. If you make the report public then it's
184     constantly running and will cause a large load on your system.
185     Setting this value prevents that.
186
187     |image1294|
188
189 Once everything is entered click the 'Save report' button and you'll be
190 presented with options to run it. Once a report is saved you do not have
191 to recreate it you can simply find it on the Saved Reports page and
192 :ref:`run <running-custom-reports-label>` or :ref:`edit <edit-custom-reports-label>` it.
193
194 .. _report-writing-tips-label:
195
196 Report writing tips
197 '''''''''''''''''''''''''''''''''''''
198
199 **Runtime parameters**
200
201
202 If you feel that your report might be too resource intensive you
203 might want to consider using runtime parameters to your query.
204 Runtime parameters basically make a filter appear before the report
205 is run to save your system resources.
206
207 There is a specific syntax that Koha will understand as 'ask for
208 values when running the report'. The syntax is <<Question to
209 ask\|authorized\_value>>.
210
211 -  The << and >> are just delimiters. You must put << at the
212    beginning and >> at the end of your parameter
213
214 -  The 'Question to ask' will be displayed on the left of the string
215    to enter.
216
217 -  The authorized\_value can be omitted if not applicable. If it
218    contains an authorized value category, 'branches', 'itemtype',
219    'categorycode', 'biblio\_framework', a list with the Koha authorized
220    values will be displayed instead of a free field.
221
222        **Note**
223
224        You can have more than one parameter in a given SQL query.
225
226        **Note**
227
228        You have to put "%" in a text box to 'leave it blank'. Otherwise,
229        it literally looks for "" (empty string) as the value for the
230        field.
231        For example entering nothing for: "title=<<Enter title>>" will
232        display results with title='' (no title).
233        If you want to have to have something not mandatory, use
234        "title like <<Enter title>>" and enter a % at run time instead
235        of nothing.
236
237        **Note**
238
239        To generate a date picker calendar to the right of the field when
240        running a report you can use the 'date' keyword like this:
241        <<Enter Date\|date>>
242
243        |image893|
244
245 List of parameters that can be used in runtime parameters
246
247 +-------------------------+---------------------------------------------------+------------------------------+
248 | Parameter               | What the user sees                                | What gets inserted in query  |
249 +-------------------------+---------------------------------------------------+------------------------------+
250 | date                    | date picker                                       | validly formatted date       |
251 | branches                | drop down of branch names                         | branch code                  |
252 | itemtypes               | drop down of item type names                      | item type                    |
253 | categorycode            | drop down of patron category descriptions         | borrower category code       |
254 | biblio\_framework       | drop down of MARC bibliographic frameworks        | framework code               |
255 | (auth-value-category)   | drop down of auth-value descriptions in category  | authorized value             |
256 | (nothing)               | text box                                          | entered text                 |
257 +-------------------------+---------------------------------------------------+------------------------------+
258
259 Examples:
260
261    -  SELECT surname, firstname FROM borrowers WHERE branchcode=<<Enter
262       patron's library\|branches>> AND surname like <<Enter filter for
263       patron surname (% if none)>>
264
265    -  SELECT \* FROM items WHERE homebranch = <<Pick your
266       branch\|branches>> and barcode like <<Partial barcode value here>>
267
268    -  SELECT title, author FROM biblio WHERE frameworkcode=<<Enter the
269       frameworkcode\|biblio\_framework>>
270
271
272 .. ****************************************
273 .. **************    TODO    **************
274 .. ****************************************
275
276 .. **Querying MARC**
277
278 .. It is possible to query the MARC records with the ExtractValue function.
279
280 .. **Links**
281
282 .. **Runtime variables**
283
284 .. **See more results**
285
286 .. There is a limit of 10,000 records put on SQL statements entered in
287    Koha. To get around this you want to add 'LIMIT 100000' to the end
288    of your SQL statement (or any other number above 10,000).
289
290
291 .. _mana-SQL-report-label:
292
293 SQL report from Mana
294 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
295
296 In the "Create report from SQL", you can search Mana KB for pre-made reports
297 by clicking on "New report" and choosing "New SQL from Mana".
298
299 |image1428|
300
301      **Note**
302
303      This option will only appear if you've :ref:`configured Mana KB <share-with-mana-kb-label>` in the administration module.
304
305 You will be prompted to enter keywords to search the knowledge base.
306
307 |image1429|
308
309 In the search results, you will see
310
311 -  the details of the report (name, notes and type)
312
313 -  how many people have used this entry (# of users)
314
315 -  when it was used for the last time (last import)
316
317 -  additional comments made by other Koha users (comments)
318
319 |image1430|
320
321 .. What does the orange mean??
322
323 Click on "Import" to import a copy of the report in your own saved reports.
324
325 You can then edit it, duplicate it, delete it, run it as you would any of
326 your own reports.
327
328 .. _duplicate-report-label:
329
330 Duplicate report
331 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
332
333 Reports can also be added by duplicating an existing report. Visit the
334 'Saved reports' page to see all of the reports listed on your system
335 already.
336
337 |image895|
338
339 To the right of every report there is an 'Actions' pull down. Clicking
340 that and choose 'Duplicate' to use an existing report as the basis for
341 your new report. That will populate the new report form with the
342 existing SQL for easy editing and resaving.
343
344 .. _edit-custom-reports-label:
345
346 Edit custom reports
347 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
348
349 Every report can be edited from the reports lists. To see the list of
350 reports already stored in Koha, click 'Use saved.'
351
352 |image896|
353
354 To find the report you'd like to edit you can sort by any of the columns
355 by clicking the on the column header. You can also filter your results
356 using the filter menu on the left or use the tabs to find reports based
357 on your custom groups.
358
359 From this list you can edit any custom report by clicking 'Actions' to
360 the right of the report and choosing 'Edit' from the menu that appears.
361
362 |image897|
363
364 The form to edit the report will appear.
365
366 |image898|
367
368 .. _running-custom-reports-label:
369
370 Running custom reports
371 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
372
373 Once custom reports are saved to Koha, you can run them by going to the
374 Saved Reports page and clicking the 'Actions' button to the right of the
375 report and choosing 'Run'.
376
377 |image899|
378
379 When you report runs you will either be asked for some values
380
381 |image900|
382
383 or you will see the results right away
384
385 |image901|
386
387 From the results you can choose to rerun the report by clicking 'Run
388 report' at the top, edit the report by clicking the 'Edit' button or
389 starting over and creating a new report by using the 'New' button. You
390 can also download your results by choosing a file type at the bottom of
391 the results next to the 'Download the report' label and clicking
392 'Download.'
393
394     **Note**
395
396     A comma separated text file is a CSV file and it can be opened by
397     any spreadsheet application.
398
399 .. _send-itemnumbers-to-batch-item-modification-label:
400
401 Send itemnumbers to batch item modification
402 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
403
404 After running a report that contains itemnumbers the list of numbers can be imported
405 directly into :ref:`Batch item modification` by clicking the batch modify button
406 in the report results.
407
408 |image1343|
409
410 .. _statistics-reports-label:
411
412 Statistics reports
413 --------------------------------------
414
415 Statistic reports will show you counts and sums. These reports are all
416 about numbers and statistics, for reports that return more detailed
417 data, use the :ref:`guided report wizard`. These
418 reports are limited in what data they can look at, so it's often
419 recommended to use :ref:`custom reports <custom-reports-label>` for official end
420 of the year statistics.
421
422 .. _acquisitions-statistics-label:
423
424 Acquisitions statistics
425 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
426
427     **Note**
428
429     These reports are limited in what data they can look at, so it's
430     often recommended to use :ref:`custom reports <custom-reports-label>` for
431     official end of the year statistics.
432
433 Using the form provided, choose which value you would like to appear in
434 the column and which will appear in the row.
435
436 |image902|
437
438 If you choose to output to the browser your results will print to the
439 screen.
440
441 |image903|
442
443 You can also choose to export to a file that you can manipulate to your
444 needs.
445
446 When generating your report, note that you get to choose between
447 counting or summing the values.
448
449 |image904|
450
451 Choosing amount will change your results to appear as the sum of the
452 amounts spent.
453
454 |image905|
455
456 .. _patron-statistics-label:
457
458 Patron statistics
459 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
460
461     **Note**
462
463     These reports are limited in what data they can look at, so it's
464     often recommended to use :ref:`custom reports <custom-reports-label>` for
465     official end of the year statistics.
466
467 Using the form provided, choose which value you would like to appear in
468 the column and which will appear in the row.
469
470 |image906|
471
472 If you choose to output to the browser your results will print to the
473 screen.
474
475 |image907|
476
477 Based on your selections, you may see some query information above your
478 results table. You can also choose to export to a file that you can
479 manipulate to your needs.
480
481 .. _catalog-statistics-label:
482
483 Catalog statistics
484 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
485
486     **Note**
487
488     These reports are limited in what data they can look at, so it's
489     often recommended to use :ref:`custom reports <custom-reports-label>` for
490     official end of the year statistics.
491
492 Using the form provided, choose which value you would like to appear in
493 the column and which will appear in the row.
494
495 |image908|
496
497 If you choose to output to the browser your results will print to the
498 screen.
499
500 |image909|
501
502 You can also choose to export to a file that you can manipulate to your
503 needs.
504
505 .. _circulation-statistics-label:
506
507 Circulation statistics
508 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
509
510     **Note**
511
512     These reports are limited in what data they can look at, so it's
513     often recommended to use :ref:`custom reports <custom-reports-label>` for
514     official end of the year statistics.
515
516 Using the form provided, choose which value you would like to appear in
517 the column and which will appear in the row.
518
519 |image910|
520
521 If you choose to output to the browser your results will print to the
522 screen.
523
524 |image911|
525
526 You can also choose to export to a file that you can manipulate to your
527 needs.
528
529     **Note**
530
531     To get a complete picture of your monthly or daily circulation, you
532     can run the report twice, once for 'Type' of 'Checkout' and again
533     for 'Renewal.'
534
535     This report uses 'Period,' or date, filtering that allows you to
536     limit to a month by simply selecting the first day of the first
537     month through the first day of the next month. For example, 10/1 to
538     11/1 to find statistics for the month of October.
539
540     -  To find daily statistics, set your date range.</br> Example: "I
541        want circulation data starting with date XXX up to, but not
542        including, date XXX."
543
544     -  For a whole month, an example range would be: 11/01/2009 to
545        12/01/2009
546
547     -  For a whole year, an example range would be: 01/01/2009 to
548        01/01/2010
549
550     -  For a single day, an example would be: 11/15/2009 to 11/16/2009
551        to find what circulated on the 15th
552
553 .. _tracking-in-house-use-label:
554
555 Tracking in house use
556 ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
557
558 Using the Circulation statistics reporting wizard you can run reports on
559 in house usage of items simply by choosing 'Local use' from the 'Type'
560 pull down:
561
562 |image912|
563
564 .. _serials-statistics-label:
565
566 Serials statistics
567 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
568
569     **Note**
570
571     These reports are limited in what data they can look at, so it's
572     often recommended to use :ref:`custom reports <custom-reports-label>` for
573     official end of the year statistics.
574
575 Using the form provided, choose how you would like to list the serials
576 in your system.
577
578 |image913|
579
580 If you choose to output to the browser your results will print to the
581 screen.
582
583 |image914|
584
585 You can also choose to export to a file that you can manipulate to your
586 needs.
587
588 .. _holds-statistics-label:
589
590 Holds statistics
591 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
592
593     **Note**
594
595     These reports are limited in what data they can look at, so it's
596     often recommended to use :ref:`custom reports <custom-reports-label>` for
597     official end of the year statistics.
598
599 Using the form provided you can see statistics for holds placed, filled,
600 cancelled and more at your library. From the form choose what value you
601 want to display in the column and what value to show in the row. You can
602 also choose from the filters on the far right of the form.
603
604 |image915|
605
606 If you choose to output to the browser your results will print to the
607 screen.
608
609 |image916|
610
611 You can also choose to export to a file that you can manipulate to your
612 needs.
613
614 .. _patrons-with-the-most-checkouts-label:
615
616 Patrons with the most checkouts
617 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
618
619 This report will simply list the patrons who have the most checkouts.
620
621 |image917|
622
623 If you choose to output to the browser your results will print to the
624 screen.
625
626 |image918|
627
628 You can also choose to export to a file that you can manipulate to your
629 needs.
630
631 .. _most-circulated-items-label:
632
633 Most circulated items
634 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
635
636 This report will simply list the items that have the been checked out
637 the most.
638
639 |image919|
640
641 If you choose to output to the browser your results will print to the
642 screen.
643
644 |image920|
645
646 You can also choose to export to a file that you can manipulate to your
647 needs.
648
649 .. _patrons-with-no-checkouts-label:
650
651 Patrons with no checkouts
652 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
653
654 This report will list for you the patrons in your system who haven't
655 checked any items out.
656
657 |image921|
658
659 If you choose to output to the browser your results will print to the
660 screen.
661
662 |image922|
663
664 You can also choose to export to a file that you can manipulate to your
665 needs.
666
667 .. _items-with-no-checkouts-label:
668
669 Items with no checkouts
670 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
671
672 This report will list items in your collection that have never been
673 checked out.
674
675 |image923|
676
677 If you choose to output to the browser your results will print to the
678 screen.
679
680 |image924|
681
682 You can also choose to export to a file that you can manipulate to your
683 needs.
684
685 .. _catalog-by-item-type-label:
686
687 Catalog by item type
688 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
689
690 This report will list the total number of items of each item type per
691 branch.
692
693 |image925|
694
695 If you choose to output to the browser your results will print to the
696 screen.
697
698 |image926|
699
700 You can also choose to export to a file that you can manipulate to your
701 needs.
702
703 .. _lost-items-label:
704
705 Lost items
706 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~
707
708 This report will allow you to generate a list of items that have been
709 marked as Lost within the system
710
711 |image927|
712
713 .. _average-loan-time-label:
714
715 Average loan time
716 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
717
718 This report will list the average time items are out on loan based on
719 the criteria you enter:
720
721 |image928|
722
723 If you choose to output to the browser your results will print to the
724 screen.
725
726 |image929|
727
728 You can also choose to export to a file that you can manipulate to your
729 needs.
730
731 .. _report-dictionary-label:
732
733 Report dictionary
734 ----------------------------------
735
736 The report dictionary is a way to pre-define common filters you'd like
737 to apply to your reports. This is a good way to add in filters that the
738 report wizard doesn't include by default. To add a new definition, or
739 filter, click 'New definition' on the reports dictionary page and follow
740 the 4 step process.
741
742 Step 1: Name the definition and provide a description if necessary
743
744 |image930|
745
746 Step 2: Choose the module that the will be queried.
747
748 |image931|
749
750 Step 3: Choose columns to query from the tables presented.
751
752 |image932|
753
754 Step 4: Choose the value(s) from the field(s). These will be
755 automatically populated with options available in your database.
756
757 |image933|
758
759 Confirm your selections to save the definition.
760
761 |image934|
762
763 Your definitions will all appear on the Reports Dictionary page
764
765 |image935|
766
767 Then when generating reports on the module you created the value for you
768 will see an option to limit by the definition at the bottom of the usual
769 filters.
770
771 |image936|