Фильтры

Как: при установленном флажке вносить в форму для печати только данные регистрации адреса, а если выбрано, не вносить одновременно данные регистрации адреса и данные адреса проживания

 

Нравится

0 комментариев
Показать все комментарии

Всем доброго времени суток.

Есть класс SideBar и я создал модуль NrbSideBarWithCountersModule который наследуется от него. 

define("NrbSideBarWithCountersModule", ["terrasoft", "ext-base"], function() {
	Ext.define("Terrasoft.controls.NrbSideBarWithCountersModule", {
		extend: "Terrasoft.SideBar",
		alternateClassName: "Terrasoft.NrbSideBarWithCountersModule",
		Ext: null,
		sandbox: null,
		Terrasoft: null,
		itemTplMap: [
			"caption",
			"imageUrl",
			"href",
			"domAttributes",
			"availableEntities"
		],
 
		itemTpl: [
			"<tpl if=\"visible != false\">",
			"<li data-item-index=\"{itemIndex}\"",
			"<tpl if=\"isSelected == true\">",
			"class=\"ts-sidebar-selected-item\"",
			"</tpl>",
			">",
			"<span class=\"vertical-strip\"></span>",
			"<tpl if=\"href\"><a target=\"_self\" class=\"sidebar-item-link\" href=\"{href}\"></tpl>",
			"<div id=\"sidebar-item-wrapper-{itemIndex}\" class=\"ts-sidebar-item-wrapper\">",
			"<div id=\"sidebar-item-image-{itemIndex}\" class=\"ts-sidebar-item-image\" data-item-marker=\"{caption}\" " +
			"style=\"background-image:url({imageUrl})\" <tpl foreach=\"domAttributes\">{$}=\"{.}\"</tpl>></div>",
			"<div id=\"sidebar-item-text-{itemIndex}\" class=\"ts-sidebar-item-text\"> {caption} ",
			"<div id=\"sidebar-item-counter-{itemIndex}\" class=\"ts-sidebar-item-counter\"> {availableEntities} ",
			"</div>",
			"</div>",
			"<tpl if=\"href\"></a></tpl>",
			"</li>",
			"</tpl>"
		],
 
	});
	return Terrasoft.NrbSideBarWithCountersModule;
});

В нём я добавил поле которое должно будет передаваться из модуля SectionMenuModule, также я создал новый модуль NrbSectionMenuModule в котором переопределил нужные методы.

define("NrbSectionMenuModule", ["ServiceHelper", "NrbSectionMenuModuleResources", "ModuleUtils", "MaskHelper",
		"LeftPanelUtilitiesV2", "CheckModuleDestroyMixin"],
	function (resources, ModuleUtils, ServiceHelper, MaskHelper, LeftPanelUtilities) {
		Ext.define("Terrasoft.configuration.NrbSectionMenuModule", {
			alternateClassName: "Terrasoft.NrbSectionMenuModule",
			override: "Terrasoft.SectionMenuModule",
			render: function (renderTo) {
				if (!Ext.isEmpty(viewModel) && !Ext.isEmpty(sideBar)) {
					sideBar.destroy();
				}
				sideBar = Ext.create("Terrasoft.NrbSideBarWithCountersModule", Terrasoft.deepClone(sideBarConfig));
				sideBar.bind(viewModel);
				sideBar.render(renderTo);
				MaskHelper.HideBodyMask();
			},
			getSideBarItems: function () {
				var config = [];
				var moduleStructure = Terrasoft.configuration.ModuleStructure;
				var modules = info && info.modules ? info.modules : Object.keys(moduleStructure);
				if (!modules) {
					return;
				}
				var availableSections = info.AvailableSections;
				var defaultIconUrl = Terrasoft.ImageUrlBuilder.getUrl(resources.localizableImages.DefaultIconSvg);
				modules.forEach(function (module) {
					if (module.moduleId !== Terrasoft.GUID_EMPTY) {
						var moduleName = module.moduleName ? module.moduleName : module;
						var moduleConfig = moduleStructure[moduleName];
						if (moduleConfig.hide !== "true") {
							if (!Ext.isArray(availableSections) || availableSections.indexOf(moduleName) >= 0) {
								var caption = moduleStructure[moduleName].moduleCaption;
								var tag = ModuleUtils.getModuleTag(moduleName);
								var imageId = moduleStructure[moduleName].imageId;
								var imageUrl = imageId ? getImageUrl(imageId) : defaultIconUrl;
								var itemUrl = Terrasoft.workspaceBaseUrl + "/Nui/ViewModule.aspx#" + tag;
								var count = this.getCountOfAvailableProjects();
								var itemConfig = {
									caption: caption,
									tag: tag,
									imageUrl: imageUrl,
									href: itemUrl,
									domAttributes: { "module-name": module.moduleName },
									availableEntities: count
								};
								if (!Terrasoft.Features.getIsEnabled("SectionMenuLink")) {
									itemConfig.href = null;
								}
								config.push(itemConfig);
							}
						}
					}
				});
				return config;
			},
 
			getCountOfAvailableProjects: function () {
				var requestConfig = {
					serviceName: "NrbProjectCounterService",
					methodName: "GetNumberOfAvailableProjects",
					callback: this.showResult
				};
				this.callService(requestConfig, this);
			},
 
			showResult: function (result) {
				console.log(result);
			},
		});
 
		return Terrasoft.NrbSectionMenuModule;
	});

Переопределение не даёт нужного результата и возник такой вопрос. Правильно ли тут использовать переопределение или лучше использовать наследование? 
И как я понял мне надо будет переопределить все модули которые взаимодействовали с SectionMenuModule и поменять на NrbSectionMenuModule?

Нравится

2 комментария

Модули не замещаются как карточки. То что создали свой модуль NrbSideBarWithCountersModule это ваш модуль. А левую панель так и продолжает выводить SectionMenuModule.

Динар, для того, чтобы Ваш класс заменил стандартный, нужно в нём указать override и название того, что он замещает. А затем упомянуть название Вашего модуля в замещённом BootstrapModulesV2, который загружается при старте. Более подробно о таком подходе см. пример в этой теме.

Показать все комментарии

Я пытался переопределить кнопку копирования в разделе 
следующим образом , как показано тут https://community.terrasoft.ru/questions/pereopredelit-knopku-kopirovat

 getCopyRecordMenuItem: function() {
              return this.getButtonMenuItem({
                Caption: {"bindTo": "Resources.Strings.CopyMenuCaption"},
                Click: {"bindTo": "copyOrder"},
                Enabled: true,
                Visible: true
              });
            },

но при нажатии все равно вызывается стандартное поведение

Нравится

1 комментарий
Лучший ответ

getCopyRecordMenuItem судя по всему относится в действию "копировать в детали". Вам же нужно изменить кнопку копировать в разделе. Лучше всего заместить метод:

copyRecord: function(primaryColumnValue) {

//ваш код
 },

getCopyRecordMenuItem судя по всему относится в действию "копировать в детали". Вам же нужно изменить кнопку копировать в разделе. Лучше всего заместить метод:

copyRecord: function(primaryColumnValue) {

//ваш код
 },

Показать все комментарии

Прошу подсказать, в чем может быть дело.

Прикрепленные файлы

Нравится

5 комментариев

Процесс запускается? Сделайте скриншот диаграммы выполнения процесса.

В элементе изменить данные в фильтре одно условие лишние. Если у вас есть Id = читать историю.Id, вам больше никаких условий не нужно. Id это уникальный ключ, если он есть, то по нему конкретная запись находится 100%.

При чтении записи истории тоже сравнение с продажей лишнее, у вас в сигнале создания(изменения) уже пришел id записи, этот id всегда заполнен и поэтому запись всегда известна 100%.

Процесс должен быть такой после сигнала добавления изменения записи идет один элемент чтения данных записи истории. Фильтр по id в сигнале создания или id в сигнале изменения. Потом элемент читать данные продажи по продаже из записи истории.

А потом непонятно что вы хотите сделать.

Валентина, больше всего смущает, что в действии изменения идёт обращение к «читать продажу» и «читать историю», которые по порядку выполнения уже после него. Аналогично, в чтении обращаются к данным элемента добавления, который должен отработать позже.

Показать все комментарии

Доброго дня.

Під час виконання операції створення індекса виникає помилка 'Could not check index exists' . На скріншоті показано стек помилки. Чи можете порадити вирішення цієї проблеми

Нравится

1 комментарий

Юліє, зверніть увагу на аналогічну тему, опубліковану минулого тижня. Там автор запитання сам його вирішив шляхом повторного встановлення і налаштування компонентів пошуку. Якщо Вам це не допоможе, будь ласка, зверніться до служби підтримки для аналізу налаштувань системи.

Показать все комментарии