При программном вызове формы
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")