QPainter API, OK

  • Juaci

    Juaci - 2006-01-11

    ok,  how can I pass parameters to the parameterslist??
    If I want a report of only a customer passing just ID as parameter to the class.

    QStringList list;
    list << "10";
    orReport  report( "customer", list, db );

    and in my select how can I receiver this parameter??

    • Chris Ryan

      Chris Ryan - 2006-01-12

      The constructor and functions that take a QStringList of parameters is an older method that was kept for backwards compatibility. It still works but is not our recommened method. If you do use it then the Queries in report definition would reference the parameters by %1 for the first item in the list %2 for the second and so on. This is limited to a limited number of parameters and is ambigous as it relys on the order.

      Instead of a QStringList you will want to use ParameterList. ParameterList is a class that is part of the OpenRPT code, in /common, and is a list of QString and QVariant Pairs. This create a name value scheme.

      You could do the following:

      ParameterList params;
      params.append("cust_id", 10);
      orReport report("reportdef", params, db);

      In your report definition you would use the MetaSQL functionality that is built into the renderer code to access these values. There is documentation covering this and other features of MetaSQL however here is a short example:

      SELECT cust_name from cust where cust_id=<? value("cust_id");

    • Chris Ryan

      Chris Ryan - 2006-01-12

      There was a typo in my example sql. Here is the corrected version:

      SELECT cust_name from cust where cust_id=<? value("cust_id") ?>;


Log in to post a comment.