Build CandidateFinder

Issue #1387 resolved
Brian Lewis repo owner created an issue

a finder control , very similar to studentFinder, but based on ExamCandidates table. Support the contraints year, schoolNo, and examCode, all taken from Exams.

Support this control is JasperReports dialog, when uri of input control = Input_Controls/CandidateID

Comments (4)

  1. Brian Lewis reporter

    This work makes the Student Exam Report possible, but these changes are needed to the report:

    remove the ExamIDByYear input control and parameter. Replace this with examTypes control, that is a standard lookup control like all the others in that folder. name this examType - corresponding to the property of the lookups object in the client.

    Modify the CandidateID input - change the query to reference both the Year and the examType param, rather than what it does now which is find the exID ( we get the examCandidate and exam records from CandidateID (excID) examYear (exYear) and examType (exCode). Put this control in Input Controls, rather than Input Controls/Lookups (it’s not actually a “lookup”

    Note that this is a full fledged implementation that will work in both Jasperserver and Pacific EMIS client. For illustration, if you are not bothered about full support in Jasper, you could do it this way:

    Create the new Input Control ‘examType’ as a singleText input. As its description, put lookup>examType.

    This setting will trigger the dialog to render the input control as a lookupSelector component. Note you can still run the report in Jasper, but you’ll have to directly key the examType code into the singleText input .

  2. Brian Lewis reporter

    Regarding hosting all 3 sites' reports on the one server:

    the Reports themselves are straightforward - they appear un Reports/FEMEDIS Reports/MIEMIS Reports/KEMIS. The app has always looked for reports under Reports/<context> for this reason.

    Input Controls are more of a problem, becuase they are shard between reports at the moment, but select list (in particular lookup lists) embed a datasource in the Input_Control, so it is tied to a specific site implementation.

    A simple way around this is to use the description lookup>(lookupcode) on the Input Control. As mentioned above this will cause the parameters dialog to render a LookupSelector component bound to (lookupcode) .

    So the list is read at runtime on the client, producing a localised result regardless of any internal reference to a specific datasource.

    This lookup>code behaviour applies to input controls of type singleText or singleselectText, so you can adapt the exisitng controls in Input_Controls/Lookups.

    Alternatively, you could replace all the singleselectText in input_Controls/lookups with singleText inputs (ie simple text boxes) with description suitably tagged e.g. lookup>districts. This will then work in JasperServer as a simple text box entry - you enter the code directly - but will still be a dropdown in the Report Parameters dialog.

    So in the test environment, all reports will work in both the app, and in JasperServer.

    Note that the control SchoolNo, CandidateID, StudentID TeacherID are all rendered as Finder controls, so they source data locally as well.

  3. Log in to comment