QPainter API, OK

Juaci
2006-01-11
2013-04-26
  • 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") ?>;