4 class MoviesReportDetail : Detail
7 font = { "Arial", 10 };
11 Label movieName { this, anchor = { left = 4, top = 2, right = 0.60, bottom = 2 } };
12 Label mediaType { this, anchor = { left = 0.40, top = 2, right = 0.45, bottom = 2 } };
13 Label dateAdded { this, anchor = { left = 0.55, top = 2, right = 0.30, bottom = 2 } };
14 Label borrowerName { this, anchor = { left = 0.70, top = 2, right = 4, bottom = 2 } };
19 RowMovies row = (RowMovies)report.groupings[0].row;
21 s = row.name; movieName.text = s; delete s;
22 s = PrintString(row.mediaType); mediaType.text = s; delete s;
23 s = PrintString((ShortDate)row.dateAdded); dateAdded.text = s; delete s;
24 s = row.borrower.name; borrowerName.text = s; delete s;
29 class MoviesReportPageHeader : Detail
32 font = { "Arial", 10, bold = true };
34 Label movieName { this, anchor = { left = 4, top = 9, right = 0.60, bottom = 2 }, text = "Movie Name" };
35 Label mediaType { this, anchor = { left = 0.40, top = 9, right = 0.45, bottom = 2 }, text = "Media Type" };
36 Label dateAdded { this, anchor = { left = 0.55, top = 9, right = 0.30, bottom = 2 }, text = "Date Added" };
37 Label borrowerName { this, anchor = { left = 0.70, top = 9, right = 4, bottom = 2 }, text = "Borrower Name" };
39 void OnRedraw(Surface surface)
41 int x = clientSize.w - 1, y = clientSize.h - 1;
42 surface.Rectangle(0, 5, x, y);
46 class MoviesReport : CommonReport
48 title = "All my movies";
49 pageHeader = class(MoviesReportPageHeader);
50 rowDetail = class(MoviesReportDetail);
52 bool ExecuteData(Database db)
55 row.query = "SELECT ROWID, * FROM `Movies` ORDER BY `Media Type`, `Name`;";
57 groupings[0].row = row;