![]() |
#25 |
Сенбернар
|
Проверяю.
На форме Dimensions кнопа "Переименовать" недоступна. Как же так? У таблицы Dimensions свойство PrimaryIndex - пустое. О как... Лезем в коттт... Форма SysRecordInfo.init() : X++: void init() { #admin FormDataSource formDataSource; DictField dictField2; SysRecordTemplateSelect SysRecordTemplateSelect; super(); callerForm = this.args().caller(); formObjectSet = callerForm.objectSet(); formDataSource = callerForm.dataSource(); formQueryRun = formDataSource.queryRun(); if (!callerForm) { throw error("@SYS22996"); } this.setTexts(); if (formObjectSet) { common = formObjectSet.cursor(); dictTable = new SysDictTable(common.tableId); dictField = new SysDictField(dictTable.id(), dictTable.primaryKeyField()); dictField2 = new DictField(tableNum(userInfo), fieldNum(userInfo, password)); if (!dictField || common.tableId == tableNum(DataArea) || dictField.rights() < AccessType::Edit || (common.tableId == tableNum(UserInfo) && common.(fieldNum(UserInfo, Id)) == #AdminUser) || (common.tableId == tableNum(UserGroupInfo) && common.(fieldNum(UserGroupInfo, Id)) == #AdminUserGroup) || (common.tableId == tableNum(DomainInfo) && common.(fieldNum(DomainInfo, Id)) == #AdminDomain) || (common.tableId == tableNum(UserInfo) && dictField2.rights() < AccessType::Delete) || (common.tableId == tableNum(UserInfo) && !domainAccess()) || (common.tableId == tableNum(UserGroupInfo) && !domainAccess()) || (common.tableId == tableNum(DomainInfo) && !domainAccess()) || !dictTable.getIndexIdsOfUniqueOneFieldIndexes().elements() ) { renameGrp.visible(false); merge.visible(false); primaryKey.backgroundColor(4); // Menu background } else { primaryKey.label(dictField.label()); primaryKey.text(strFmt('%1', common.(dictTable.primaryKeyField()))); if (!common.(dictTable.primaryKeyField())) renameGrp.visible(false); } if (dictTable.rights() < AccessType::Delete) { merge.visible(false); } if (dictTable.rights() < AccessType::Add || !common.RecId) { renameGrp.visible(false); } if (dictTable.rights() < AccessType::View) { printGrp.visible(false); } if (dictTable.rights() >= AccessType::Add && dictTable.isRecordTemplateEnabled() && FormDataSource.allowCreate()) { mainTables = SysRecordTemplate::mainTables(callerForm, common.TableId); if (mainTables.elements() && (mainTables.elements()<=1 || common.RecId)) //either saved or only one mainTable { templateGrp.visible(true); if (!dictTable.dataPrCompany()) { if (DomainAccess()) SetAsCompanyTemplate.text("@SYS72288"); else SetAsCompanyTemplate.visible(false); } SysRecordTemplateSelect = SysRecordTemplateSelect::newTableId(common.TableId); SysRecordTemplateSelect.load(); if (!SysRecordTemplateSelect.parmPrompt()) { PromptTemplate.visible(true); } } } } else { throw error("@SYS22996"); } mainGroup.caption(dictTable.label()); } ![]() === UPD: Может, что опять не так делаю? Я ж сказал изначально - тупой я. Чиста программер, без изысков.
__________________
Best Regards, Roman Последний раз редактировалось RVS; 17.11.2009 в 03:27. |
|