|
![]() |
#1 |
Участник
|
Цитата:
![]() Цитата:
![]() X++: UtcDateTime dateTimeStart; ; dateTimeStart = DateTimeUtil::utcNow(); // лопатим контролы... info( strfmt( @"%1 мс", DateTimeUtil::getDifference( DateTimeUtil::utcNow(), dateTimeStart ) * 10 ) ); Цитата:
Цитата:
![]() Цитата:
\Classes\SysSetupFormRun\DEV_getSetOfFormNames2TweakGrid X++: // возвращает множество названий форм, на Grid'ах которых нужно отключить austoSizeColumns protected Set DEV_getSetOfFormNames2TweakGrid() { Set ret = infolog.globalCache().get( classstr(SysSetupFormRun), funcname(), null ); ; if (!( ret && ret.typeId() == Types::String )) { ret = new Set( Types::String ); // собственно здесь нужно перечислить названия форм, которые нужно автоматом "допиливать" при старте ret.add( formstr(OfficialsTable_RU) ); ret.add( formstr(PurchTable) ); ret.add( formstr(SalesTable) ); // запоминаем множество в globalCache, чтоб не создавать каждый раз infolog.globalCache().set( classstr(SysSetupFormRun), funcname(), ret ); } return ret; } X++: // дополнительное допиливание дизайна формы после инициализации protected void DEV_initDesignPost() { // UtcDateTime dateTimeStart; identifiername formName = this.name(); ; if (this.DEV_getSetOfFormNames2TweakGrid().in( formName )) { // dateTimeStart = DateTimeUtil::utcNow(); DEV_iterateThroughFormControls( this.design(), null, staticmethodstr(DEV_FormHelpers, setGridAutoSizeColumnsOff), DEV_FormHelpers::addGridCtrlId2Set() ); // info( strfmt( @"%1 мс", DateTimeUtil::getDifference( DateTimeUtil::utcNow(), dateTimeStart ) * 10 ) ); } } X++: // дополнительное допиливание дизайна формы до инициализации protected void DEV_initDesignPre() { // ACHTUNG! Эта модификация к проблеме grid'ов никакого отношения не имеет! // опционально вертаем окна взад в рамки основного окна клиента (точнее, текущего workspace'а) if ( this.form().design().windowType() == FormWindowType::Standard && DEV_UserInfoParameters::find().DefaultFormWindowType == DEV_DefaultFormWindowType::Workspace ) { this.form().design().windowType( FormWindowType::Workspace ); } } X++: public void init() { // <GEEU> this.raiseEvent_W(methodstr(FormRunListener_W, beforeInit)); // </GEEU> this.DEV_initDesignPre(); // наши модификации super(); SysSecurityFormSetup::loadSecurity(this); this.dimensionFieldCtrls(); this.inventStorageDimFieldCtrls(); if (this.isWorkflowEnabled()) { workflowControls = SysWorkflowFormControls::construct(this); workflowControls.initControls(); } this.DEV_initDesignPost(); // наши модификации // <GEEU> this.raiseEvent_W(methodstr(FormRunListener_W, afterInit)); // </GEEU> } |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#2 |
Роман Долгополов (RDOL)
|
ок, постараюсь
![]() ![]() ребята, не усложняйте без причин. не нужен крутой перфоратор и модные анкеры чтобы привесить картонку к фанерной стене на даче. достаточно обычного гвоздя и дедушкиного молотка ![]() |
|
|
За это сообщение автора поблагодарили: mazzy (2). |
![]() |
#3 |
Участник
|
Цитата:
Если бы в Х++ была встроенная поддержка делегатов, не требующая разного рода костылей и игр с механизмами отражения, думаю, многи задачи решались бы с куда меньшими накладными расходами на кодирование и/или объемом copy-paste'а. |
|
![]() |
#4 |
Участник
|
Цитата:
|
|
Теги |
ax2009, grid, syssetupformrun, грид, законченный пример, полезное, производительность, ширина |
|
|