Hi, could you extend on what do you mean with checking that the "on"
between tables equals?
The grid itself looks good.
Thank you.
Iago
El jueves, 1 de diciembre de 2016, 1:08:02 (UTC-5), Iago Pinal escribió:
>
> Hello,
> I am using an SQLFORM.grid to interact with a database. When I use the
> LEFT JOIN with this form the search fields in the SQLFORM.grid repeats the
> search fields (see screen capture).
>
> Did you any of you have any clue why this could be happening and how to
> solve it?
>
> Thank you
>
> Iago
>
>
> *#MODEL*
> db = DAL('sqlite://storage.myositis_db')
>
> db.define_table('d_dx',
> Field('dx_code', 'string', label='Diagnosis code'),
> Field('dx_descr', 'string', label='Diagnosis'))
>
> db.define_table('d_subdx',
> Field('subdx_code', 'integer', label='Subdiagnosis code'),
> Field('subdx_descr', 'string', label='Subdiagnosis'))
>
> db.define_table('d_atb',
> Field('atb_code', 'integer', label='Antibody code', notnull=True,
> unique=True),
> Field('atb_descr', 'string', label='Antibody', notnull=True,
> unique=True))
>
> db.define_table('general',
> Field('general_id', 'id', label='ID', notnull=True, unique=True),
> Field('mrn', 'string', label='MRN', notnull=True, unique=True),
> Field('first_name', 'string'),
> Field('last_name', 'string'),
> Field('serum_number', 'integer'),
> Field('clinical_dx', 'reference d_dx', 'string', label='Clinical
> diagnosis', default='Unknown'),
> Field('clinical_subdx', 'string', label='Clinical subdiagnosis',
> default='Unknown'),
> Field('atb_dx', 'string', label='Antibody', default='Unknown'))
>
> #Enforce rules
> db.general.mrn.requires = [IS_NOT_EMPTY(error_message='The medical record
> field cannot be empty'),
> IS_MATCH('^BV\d{8}$', error_message='Medical
> record number is in the wrong format'),
> IS_NOT_IN_DB(db, db.general.mrn,
> error_message='The medical record is already in the database')]
> db.general.clinical_dx.requires = IS_IN_DB(db, db.d_dx.dx_code,
> '%(dx_descr)s', zero=None)
> db.general.clinical_subdx.requires = IS_IN_DB(db, db.d_subdx.subdx_code,
> '%(subdx_descr)s', zero=None)
> db.general.atb_dx.requires = IS_IN_DB(db, db.d_atb.atb_code,
> '%(atb_descr)s',zero=None)
>
> auth = Auth(db)
> auth.define_tables()
> auth.settings.registration_requires_verification = False
> auth.settings.registration_requires_approval = True
> auth.settings.reset_password_requires_verification = False
>
> *#CONTROLLER*
> @auth.requires_login()
> def patients_list():
>
> fields=[db.general.general_id,
> db.general.mrn,
> db.general.first_name,
> db.general.last_name,
> db.general.serum_number,
> db.d_dx.dx_descr,
> db.d_subdx.subdx_descr,
> db.d_atb.atb_descr]
>
> links=[dict(header='Edit', body=lambda row:
> A(T('Edit'),_href=URL('default', 'test',args=[row.get('general',
> row).general_id])))]
>
> left = [db.d_dx.on(db.general.clinical_dx==db.d_dx.dx_code),
> db.d_subdx.on(db.general.clinical_subdx==db.d_subdx.subdx_code),
> db.d_atb.on(db.general.clinical_dx==db.d_atb.atb_code)]
>
> grid = SQLFORM.grid(db.general.id>0,
> fields=fields,
> left=left,
> links=links,
> orderby=[db.general.id],
> exportclasses=dict(csv_with_hidden_cols=False,
> xml=False, tsv_with_hidden_cols=False, tsv=False, json=False, html=False),
> deletable=True,
> editable=True,
> details=True,
> paginate=50)
>
> return locals()
>
>
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.