I think something like this:
notice not all options are covered.
def check(type1,type2,type3):
query1 =
db.archives.symbol.like('%'+request.vars.txtSoKyHieu+'%')
query2 = db.archives.key.like('%'+request.vars.txtTuKhoa
+'%')
query3 = db.archives.archives_type ==
db.archives_type.id
query4 = db.archives.time.year() >=
request.vars.txtTuNam
query5 = db.archives.time.year() <=
request.vars.txtDenNam
query6 = db.archives_type.id == type1
query7 = db.organization.id == type2
query8 = db.author.id == type3
query9 = db.archives.organization == db.organization.id
query10 = db.archives.author == db.author.id
if (type1) and (type2) and (type3):
query = query1 & query2 & query3 & query4 & query5
if (not type1) and (type2) and (type3):
query = query1 & query2 & query3 & query4 & query5 &
query6
if (type1) and (not type2) and (type3):
query = query1 & query2 & query3 & query4 & query5 &
query7 & query9
if (type1) and (type2) and (not type3):
query = query1 & query2 & query3 & query4 & query5 &
query8 &
query10
if (not type1) and (not type2) and (not type3):
query = query1 & query2 & query3 & query4 & query5 &
query6 & query7
& query8 & query9 & query10
return query
def adv_search_():
rows=None
query=None
if request.vars.txtSoKyHieu:
if request.vars.slTangGiam == '0':
if request.vars.slSapXep =='tg_TaiLieu':
query =
check(request.vars.slLoaiTaiLieu ,request.vars.CoQuanBanHanh
,request.vars.slNguoiKy)
rows = db(query).select(orderby=
~db.archives.time)
On Nov 21, 9:51 am, tan le <[email protected]> wrote:
> i have 2 function in controler/vnstoragedoc.py
>
> def check(type1,type2,type3):
> query1 =
> db.archives.symbol.like('%'+request.vars.txtSoKyHieu+'%')
> query2 = db.archives.key.like('%'+request.vars.txtTuKhoa+'%')
> query3 = db.archives.archives_type == db.archives_type.id
> query4 = db.archives.time.year() >= request.vars.txtTuNam
> query5 = db.archives.time.year() <= request.vars.txtDenNam
> query6 = db.archives_type.id == type1
> query7 = db.organization.id == type2
> query8 = db.author.id == type3
> query9 = db.archives.organization == db.organization.id
> query10 = db.archives.author == db.author.id
> if (type1 == 0)& (type2 == 0) & (type3 == 0):
> query = query1 & query2 & query3 & query4 & query5
> if (type1 != 0)& (type2 == 0) & (type3 == 0):
> query = query1 & query2 & query3 & query4 & query5 & query6
> if (type1 == 0)& (type2 != 0) & (type3 == 0):
> query = query1 & query2 & query3 & query4 & query5 & query7 &
> query9
> if (type1 == 0)& (type2 == 0) & (type3 != 0):
> query = query1 & query2 & query3 & query4 & query5 & query8 &
> query10
> if (type1 != 0)& (type2 != 0) & (type3 != 0):
> query = query1 & query2 & query3 & query4 & query5 & query6 &
> query7
> & query8 & query9 & query10
> return dict(query=query)
>
> i want to call check() function in to the adv_searh() funtion because
> i want query object .how to i do it
> who cant heple me!
> thank
> def adv_search_():
> rows=None
> query=None
> if request.vars.txtSoKyHieu:
> if request.vars.slTangGiam == '0':
> if request.vars.slSapXep =='tg_TaiLieu':
>
> check(request.vars.slLoaiTaiLieu ,request.vars.CoQuanBanHanh
> ,request.vars.slNguoiKy)
> rows = db(query).select(orderby=
> ~db.archives.time)