При программном вызове формы
def formPrn(mem):
def realDo():
if not mem.heap.browser.t.eof():
rep=getReportByName(mem.heap.browser.t.r.report)
if rep:
rep.param['docsuid']=mem.t.r.uid
rep.run()
return realDo
mem.heap.browser=mem.getSc("spr_doc_frm", u"doc='%s'" % mem.t.r.doc)
mem.heap.browser.addAction(u"Выполнить",formPrn(mem), QIcon("images/print.png"), u"Выполнить", "Enter")
mem.heap.browser.runBrowse()
или
rs=mem.getSc("rec", filter=u"""rec_number like '%s%%' and
rec_number not in (select rec_number from purchase) and status=4 and date>='%s'
""" % (gi("spr_cln","cln",mem.s.cln,"unp"),mem.s.date))
def doSelect(mem=mem,rs=rs):
def realDo(PK):
mem.s.rec_number=rs.t.r.rec_number
mem.w.rec_number.setEnabled(True)
mem.w.rec_number.checkBox.setChecked(True)
return realDo
rs.addAction(u"Выбор",doSelect(), QIcon("images/print.png"), u"Выполнить", "Enter")
rs.runBrowse()
При создании экрана (_e_action — модуль вызывается перед созданием очередного пункта меню)
if "mem" in locals() and "scname" in dir(mem):#убедимся, что мы в нужном месте
if mem.scname=="plist":
if u"Витрина" in text:
def runMCSReport(mem):#
def realDo():
mem #не удалять - магия!
zzMess(mem.title)
###
return realDo
mem.heap.runMCSReport=runMCSReport
mem.addEAction(u"-")#разделитель
mem.addEAction(u"МЧС",mem.heap.runMCSReport(mem),"images/Shopping cart",mess=u"отчет-работа")
"""параметры метода addAction
addAction(self, text, proc=None, icon="", mess="",key="", dtl_sc="",
mst_fld="", dtl_fld="", dtl_noshow="", dtl_copymode="", not_eof="", restore_row="", opt="",
dtl_sc_object=None)
"""
При создании экрана (_e_action — модуль вызывается перед созданием очередного пункта меню)
с добавлением подчиненной таблицы
if "mem" in locals() and "scname" in dir(mem):#убедимся, что мы в нужном месте
if mem.scname=="spr_tsp":
if u"События" in text:
def runLimit(mem):
def realDo():
mem.runSc("_tsp_lim",filter="tsp=%s" % mem.t.r.tsp)
return realDo
mem.heap.runLimit=runLimit(mem)
mem.addEAction(u"Лимиты", proc=mem.heap.runLimit, icon="", mess="",key="", dtl_sc="_tsp_lim",
mst_fld="tsp", dtl_fld="tsp", dtl_noshow="", dtl_copymode="1", not_eof="1", restore_row="1", opt="V H H",
dtl_sc_object=None)
При создании экрана (_e_browse — модуль вызывается после создания всего меню)
if "mem" in locals() and "scname" in dir(mem):#убедимся, что мы в нужном месте
if mem.scname=="lmar":
def getBV(mem):#здесь код для импорта выписки
def realDo():
###
mem #не удалять - магия!
runProg('_igeo',globals(),locals())
###
return realDo
mem.heap.getBV=getBV
mem.addAction(u"-")#разделитель
mem.addAction(u"Импорт маршрута",mem.heap.getBV(mem),"images/Shopping cart",mess=u"Импорт данных из спутниковой системы")
"""параметры метода addAction
addAction(self, text, proc=None, icon="", mess="",key="", dtl_sc="",
mst_fld="", dtl_fld="", dtl_noshow="", dtl_copymode="", not_eof="", restore_row="", opt="",
dtl_sc_object=None)
"""
Добавление автоматически отображаемой подчиненной таблицы
if "mem" in locals() and "scname" in dir(mem):#убедимся, что мы в нужном месте
if mem.scname=="spr_tmc":
def mo(mem):
def realDo():
if mem.t.rowCount()>0:
mem.runSc("spr_tmc_nrm",filter=u"izd='%s'" % mem.t.r.tmc)
return realDo
mem.addAction(u"Нормы", mo(mem),dtl_sc="spr_tmc_nrm",mst_fld="tmc", dtl_fld="izd")