Cargar datos en una nueva columna a un SQLFORM.grid

64 views
Skip to first unread message

Jorge Rodrigo Bugueño Montalva

unread,
May 16, 2012, 9:44:54 AM5/16/12
to web2py-...@googlegroups.com
Estimados Listeros....

En un SQLFORM.grid que ya tiene información, necesito agregar una nueva columna con la información de otra consulta.
Ej:

1) En el controlador, tengo el siguiente query con el que lleno el SQLFORM.grid, con sus encabezados, lo cual me lo llena muy bien

@auth.requires_login()
def infor():
    rute = db(db.auth_user.id == auth.user_id).select(db.auth_user.empresa, db.auth_user.tipo)
    gl_rut_emp = rute[0].empresa        
    gl_tipo_usu = rute[0].tipo

    query = (db.contratos1.socio == gl_rut_emp) \
               & (db.det_contratos.contrato_id == db.contratos1.id) \
               & (db.orden_contra.contrato == db.contratos1.id)           

    fields =[db.contratos1.id, .......]

    headers = {'contratos1.id': 'Contrato N°', ......]

    grid = SQLFORM.grid(query, fields=fields, headers=headers, orderby=default_sort_order, deletable=False, editable=False, create=False, details=False, searchable=True, paginate=20)

return dict(grid=grid)

2) Quiero agregar una nueva columna al SQLFORM.grid, con la información de otra consulta

prov = ' '
contratos = db(db.contratos1.socio == gl_rut_emp).select()
for cont in contratos:
     prov = prov  + '  ' +  busca_proveedor(cont.proveedor, request.folder)

**Tengo creada una consulta en un modulo que se conecta a BD Oracle la cual me trae el "nombre" del proveedor (busca_proveedor)

Con la consulta 1) me trae solo el rut del proveedor, con la consulta 2) rescato el nombre con el rut.... necesito agregar a la grid el nombre

Muchas Gracias

PD: Adjunto resultado del SQLFORM.grid al cual deseo agregar nueva columna con el nombre del Proveedor
Pantallazo.png
Message has been deleted

Alan Etkin

unread,
May 17, 2012, 8:15:16 AM5/17/12
to web2py-usuarios
Creo que lo que podés utilizar es campos virtuales:

http://www.latinuxpress.com/books/drafts/web2py/caps/cap6.html#campos-virtuales

O sea agregarle el campo virtual proveedor a la tabla original y hacer
la consulta extra en la función
que maneja ese campo.

On 16 mayo, 10:44, Jorge Rodrigo Bugueño Montalva
>  Pantallazo.png
> 72 KVerDescargar
Reply all
Reply to author
Forward
0 new messages