Announcement

Collapse
No announcement yet.

Mostrar contador de registros como un campo en el grid

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Mostrar contador de registros como un campo en el grid

    Hola amigos,

    Acabo de iniciarme en el desarrollo con Scriptcase.
    He creado un grid de clientes y quiero añadir un campo que muestre el contador de registros vinculados de otra tabla llamada equipos
    Es decir, quiero mostrar el número de equpos que tiene cada cliente
    Normalmente lo haría con un JOIN en el SQL inicial pero no me funciona

    ¿Como lo puedo hacer?

    Gracias

  • #2
    Primero habría que evaluar por qué con el Join no te funciona, si lo pegas, podríamos ayudarte por ese lado.
    Igualmente, siempre tienes la opción de :
    Crea un campo virtual en tu grid llamado numequipos, y en el evento onRecord del grid
    PHP Code:
    $qry 'SELECT COUNT(*) FROM equipos where clienteid = ' . {campoiddelclientedelgrid};
    $sc_lookup(arr_count$qry);
    if (isset(
    $arr_count[0][0])) {
       {
    numequipos} = $arr_count[0][0];

    Obviamente, esta opción no es tan óptima cmo el join, ya que realizará una consulta por cada fila mostrada en pantalla.
    /Giuseppe

    Professional Scriptcase Services
    Some Customers opinions

    Comment


    • #3
      Hola Giu,

      El código que pongo en la sentencia SQL inicial es este, si lo ejecuto por phpmyadmin funciona correctamente en cambio con scriptcase me genera error

      PHP Code:
      SELECT
      clientes
      .id_cliente,
      clientes.codcli,
      clientes.cliente,
      tecnicos.tecnico,
      count(equipos.id_cliente) as num_equipos
      FROM
      clientes
      LEFT JOIN tecnicos ON clientes
      .id_tecnico tecnicos.id_tecnico
      LEFT JOIN equipos ON clientes
      .id_cliente equipos.id_cliente
      GROUP BY equipos
      .id_cliente
      ORDER BY
      clientes
      .cliente 

      Comment


      • #4
        Consigo realizarlo creando un campo nuevo con un lookup automático
        Pero como bien dices, entiendo que genera una consulta por cada registro

        PHP Code:
        SELECT COUNT(equipos.id_cliente)
        FROM equipos
        RIGHT JOIN clientes
        ON equipos
        .id_cliente clientes.id_cliente
        WHERE equipos
        .id_cliente '{clientes.id_cliente}'
        GROUP BY equipos.id_cliente 

        Comment

        Working...
        X