![]() |
#15 |
Участник
|
тогда буду вопросы задавать, я еще жить хочу
![]() ![]() 1. Перекрываю метод датасорса главной формы create(): X++: void create(boolean _append = false) { if (salesForm.create()) // в классе реализована super(_append); } // salesForm.create() X++: boolean create() { Args _args = new Args(); FormRun CreateSales; ; _args.name(formstr(CreateSales)); _args.caller(this); CreateSales = ClassFactory.formRunClass(_args); CreateSales.init(); CreateSales.run(); CreateSales.wait(); if (CreateSales.closedOk()) return true; else return false; } 2. Перекрываю метод init() вызываемой формы: X++: public void init() { super(); if (!element.args().caller()) { throw error("@SYS22539"); } salesForm = element.args().caller(); } X++: public boolean validateWrite() { boolean ret; if (!element.closedOK()) return true; ret = super(); return ret; } public void write() { //super(); if (!element.closedOK()) return; try { ttsbegin; SalesTable.insert(); ttscommit; } catch(Exception::error) { SalesTable.recid = 0; element.close(); throw Exception::error; } SalesTable_ds.research(); SalesTable_ds.refresh(); salesForm.newSalesId(salesTable.salesId); } X++: boolean canClose() {; if (element.closedOk() && !salesTable_ds.validateWrite()) { return false; } salesTable_ds.write(); if (!element.closedOk()) { return true; } return super(); } ![]() |
|