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)

Reply via email to