Home General
New Blog Posts: Merging Reports - Part 1 and Part 2

2 questions . . .

edited June 2002 in General
1. Security and end user reports

I have a security framework in my application (administratorsm users etc
with different rights). I have set up an end-user reporting system, but
everyone has the same rights to view/generate reports.

What I want is depending on their level they have different rights on what
reports they can create and access.

What is the best way of achieving this? I guess I can add different tables
into data dictionaries for different user levels, but can't see ways to get
much more control than that . . .

2. End user reports and input variables.

Suppose I let end-users create reports, and the reports require input
variables (eg start and end dates, patient record number, doctor name or
number, etc)

How does the input of this data work with end-users? If I design the report,
I would have a Delphi form which selects the info and has a 'generate
report' button. If end users design the report, how does this work?

Thanks,

Lauchlan Mackinnon.

Comments

  • edited June 2002
    1. You'll have to add a field to the rbItems table for the security level.
    We don't have a demo of this approach.

    2. The end user can create reports. If you don't want the end user to
    design the dataset in DADE, then you can create datamodules (DADE
    definitions as dtm which they can load) and save them in the report explorer
    tables. They will be visible just as a report template is in the report
    explorer. Maybe place them all in a Data folder. You can specify
    autosearch criteria on these dataviews. The user can then import these dtms
    into DADE (or you can load a dtm in code) when a user creates a new report.
    Then they can begin creating a new report based on some predefined datasets.
    The end user can also create the query and specifiy the search criteria as
    autosearch the same way that you do on a DADE query dataview.

    procedure TForm1.FormCreate(Sender: TObject);
    begin
    ppReport1.Template.OnNew := NewReportEvent;
    end;

    procedure TForm1.NewReportEvent(Sender: TObject);
    var
    lDataModule: TdaDataModule;
    begin

    lDataModule := daGetDataModule(ppReport1);

    lDataModule.Template.FileName := 'C:\DataModules\Customer.dtm';
    lDataModule.Template.LoadFromFile; {or LoadFromDatabase method}

    end;


    Cheers,

    Jim Bennett
    Digital Metaphors

  • edited June 2002
    "Jim Bennett (Digital Metaphors)" wrote in
  • edited June 2002
    Hi Lauchlan,

    simply filter the dataset.

    HTH,
    Chris Ueberall;

  • edited June 2002

  • edited June 2002
    Jim,

    I've looked at this again and am not sure what you mean.

    Say a user creates a report using DADE and RAP. I want the user to be able
    to specify parameters, say PatientID and start and end dates at report
    printing/preview time. This will require some sort of mechanism to

    (i) design the dataview with parameters
    (ii) Supply those parameters with values using some sort of interface when
    the report is run/printed.

    I am not clear on how to do (i) or (ii) with DADE/RAP.

    I have also posted this in the DADE newsgroup.

    Thanks,

    Lauchlan M.

    explorer
    dtms
    report.
    datasets.
  • edited June 2002
    Please do not cross post.

    You can have the user create searhc criteria on the DADE dataviews. When
    they do this they can set teh Autosearch checkbox on the criteria they have
    selected inside of the dataview. THat's all you have to do. When they run
    the report, they can select the autosearch icon in the previewer to filter
    the dataset based on the search criteria that they enter.


    Cheers,

    Jim Bennett
    Digital Metaphors

This discussion has been closed.