Здравствуйте.

Я разрабатываю свое модально окно, по нажатию на кнопку в карточке, хочу открыть модальную форму, в которой есть ряд справочных полей. Каждое справочное поле описано в атрибутах как виртуальная колонка, я накладываю какие-то фильтры на них, но эти фильтры почему-то не срабатывают.

Как добавляю модальное окно: 

1) Создаю в пакете модель представления страницы и указываю в качестве родителя BaseModalBoxPage

2) Код страницы:

 define("NrbTestModalBox", [],

    function() {

        return {

            mixins: {},

            messages: {},

            attributes: {

                "Contact": {

                    isRequired: true,

                    dataValueType: Terrasoft.DataValueType.LOOKUP,

                    referenceSchemaName: "Contact",

                    type: Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,

                    lookupListConfig: {

                        filters: [

                            function () {

                                debugger;

                                var filterGroup = Ext.create("Terrasoft.FilterGroup");

                                filterGroup.add("ContactFilter",

                                                Terrasoft.createColumnFilterWithParameter(Terrasoft.ComparisonType.EQUAL, "CreatedById", null));

                                return filterGroup;

                            }

                        ]

                    }

                },

            },

            details: {},

            diff: /**SCHEMA_DIFF*/[

                {

                    "operation": "insert",

                    "name": "mainBoxContainerGrid",

                    "parentName": "CardContentWrapper",

                    "propertyName": "items",

                    "values": {

                        "itemType": Terrasoft.ViewItemType.GRID_LAYOUT,

                        "items": []

                    }

                },

                {

                    "operation": "insert",

                    "parentName": "mainBoxContainerGrid",

                    "propertyName": "items",

                    "name": "Contact",

                    "values": {

                        "bindTo": "Contact",

                        "caption": "Контакт",

                        "contentType": Terrasoft.ContentType.ENUM,

                        "layout": {

                            "column": 0,

                            "row": 0,

                            "colSpan": 24

                        }

                    },

                }

            ]/**SCHEMA_DIFF*/,

            methods: {

                init: function() {

                    this.callParent(arguments);

                },

 

                getLookupQuery: function(filter, column) {

                    var esq = this.callParent(arguments);

                    var lookupListConfig = this.getLookupListConfig(column);

                    if (lookupListConfig) {

                        this.Terrasoft.each(lookupListConfig.columns, function(column) {

                            if (!esq.columns.contains(column)) {

                                esq.addColumn(column);

                            }

                        }, this);

                    }

 

                    var schemaColumn = this.getColumnByName(column);

                    if (schemaColumn.lookupListConfig && schemaColumn.lookupListConfig.filter) {

                        esq.filters.addItem(schemaColumn.lookupListConfig.filter());

                    }

 

                    return esq;

                },

                getLookupListConfig: function(columnName) {

                    var schemaColumn = this.getColumnByName(columnName);

                    if (!schemaColumn) {

                        return null;

                    }

                    var lookupListConfig = schemaColumn.lookupListConfig;

                    if (!lookupListConfig) {

                        return null;

                    }

                    var excludedProperty = ["filters", "filter"];

                    var config = {};

                    this.Terrasoft.each(lookupListConfig, function(property, propertyName) {

                        if (excludedProperty.indexOf(propertyName) === -1) {

                            config[propertyName] = property;

                        }

                    });

                    return config;

                }

            }

        };

    });

 

3) Вызываю модальное окно так: 

this.sandbox.loadModule("ModalBoxSchemaModule", {

id: this.sandbox.id + "_NrbTestModalBox", //NrbCompleteCallModalBox

instanceConfig: {

     moduleInfo: {

           schemaName: "NrbTestModalBox",

     },          

 }

});

 

 

debugger не срабатывает при разворачивании справочника. Подскажите пожалуйста, в чем у меня ошибка?

Нравится

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

Добрый день, сложно сказать где именно ошибка. Для выявления точной причины следует провести отладку.

Однако, возможно дело в том, как вы в атрибуте работаете со значением CreatedBy.

Для теста создал подобный фильтр для поля Owner:

attributes: {
			"Owner": {
                "dataValueType": Terrasoft.DataValueType.LOOKUP,
                "lookupListConfig": {
                    "filters": [
                        function() {
                            var filterGroup = Ext.create("Terrasoft.FilterGroup");
                            filterGroup.add("TestSd",
                                Terrasoft.createColumnIsNullFilter("[Contact:Id].CreatedBy")
										   );
                            return filterGroup;
                        }
                    ]
                }
			}
		},

Обратите внимание каким образом я ищу контакты с CreatedBy null:

Terrasoft.createColumnIsNullFilter("[Contact:Id].CreatedBy").

Возможно данный пример вам поможет.

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

Есть необходимость записывать в объект File поля Name и Notes через всплывающее окно. Не могу определить что нужно использовать, ModalBox или MiniPage. Вкратце задача состоит в том, чтобы при вводе поля Name генерировать ссылку и записывать её в поле Notes. 

Получилось создать ModalBox, но не удалось найти как сохранять поля в базу данных, также как через метод this.save(); в BasePage.

А вызывать MiniPage своей же кнопкой, совсем не удалось

Буду благодарен за подробный ответ и конкретные статьи с примерами. Спасибо.

Нравится

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

Здравствуйте, Илья!

 

Как программно открыть мини-карточку описано тут. Но для того, чтобы этом метод работал, Вам необходимо зарегистрировать мини-карточку - это описано тут

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

Здравствуйте всем!

вопрос такого характера, а что может быть причиной не отображения данных в гриде детали? которая отображается в модуле (наследуется от Базовой схемы карточки NUI), а модуль в свою очередь расположен в модальном окне. Когда я делаю экспорт в exel, то в файле отображаются все те данные которые приходят по filterMethod для детали. Но Грид пустой там нету ни одной записи. Подскажите в чем секрет? Как эти данные отобразить?

Нравится

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

Вот в этой детали ничего не отображается хотя по итогам видно, что количество записей равно 24.

Это то что выгружено в exel файл:

А это та самая деталь расположена на обычной странице без всяких там модальных окон:

 

Андрей, проверьте, какой запрос уходит к DataService для считывания данных для детали с сервера и что приходит на него в ответ. Возможно, условия фильтрации такие, что там 0 записей?

 

Либо же произошла ошибка, которую видно в консоли (но Вы писали, что нет).

 

Точно отличается только то, что окно модальное, а для немодального такая же деталь с наполнением данными?

Зверев Александр, для не модального окна, а именно тогда как я ее располагаю на станице контрагента как отдельную деталь, то все данные отображаются именно в соответсвии с установленным фильтром в filterMethod. Данные там есть это даже видно из ответа на вкладке network в консоле. И ошибки не прилетают. А хотелось хоть одну увидеть)))

Нужно смотреть в элементах открывшейся страницы, есть ли там вообще элементы с записями. Может, их кто-то сверху закрывает или сдвинулись вне области отображения. Или попытаться отладить, корректно ли отрабатывает вся JS-логика. Не видя развёрнутого сайта и кода страниц, сложно сказать.

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

Коллеги всем доброго времени суток!

Подскажите кто нибудь сталкивался с такой реализацией, в модальном окне есть справочное поле с типом Terrasoft.ContentType.LOOKUP?

Если задаю данный тип то не работает, при нажатии на лупу открывается модуль справочника но в нем пусто: http://prntscr.com/m0klnc http://prntscr.com/m0kmde

если делать через Terrasoft.ContentType.ENUM то все работает.

 

{
					"operation": "insert",
					"name": "Contact",
					"parentName": "WaChangeResponsibleModulePageSelectionEditContainer",
					"propertyName": "items",
					"values": {
						"layout": {
							"colSpan": 23,
							"rowSpan": 1,
							"column": 0,
							"row": 0,
							"layoutName": "WaChangeResponsibleModulePageSelectionEditContainer"
						},
						"bindTo": "Contact",
						"contentType": Terrasoft.ContentType.ENUM,
						"labelConfig": {"visible": false},
						"hasClearIcon": false,
						"enableRightIcon": true,
						"controlConfig": {
							"placeholder": "$Resources.Strings.WaContactPlaceholderText",
							"classes": ["placeholderOpacity"],
						},
						"minSearchCharsCount": 1,
						"searchDelay": 50
					}
				},

 

Нравится

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

Все всплывающие окна реализованы через ModalBox и, грубо говоря, нельзя ими спамить. Активно всегда только 1 окно. Именно поэтому в миникарточках одни ENUM-ы)

Все всплывающие окна реализованы через ModalBox и, грубо говоря, нельзя ими спамить. Активно всегда только 1 окно. Именно поэтому в миникарточках одни ENUM-ы)

Варфоломеев Данила,

понял, благодарю

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

Добрый день,

Возможно ли отфильтровать справочное поле внутри модального окна? Я попробовал обычным путем через атрибуты, но это не сработало, бпм даже не зашла в реализацию "lookupListConfig". В справочнике просто отображались абсолютно все значения

 

После решил попробовать заполнить справочник вручную нужными значениями

//attributes
"RIBDocType": {
    "dataValueType": Terrasoft.DataValueType.ENUM,
    "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
    "caption": "RIBDocType"
},
"documentTypeList": {
    "dataValueType": Terrasoft.DataValueType.ENUM,
    "type": Terrasoft.ViewModelColumnType.VIRTUAL_COLUMN,
    "isCollection": true
}
 
//diff
{
	"operation": "insert",
	"parentName": "Header1",
	"propertyName": "items",
	"name": "RIBDocType",
	"values": {
		"bindTo": "RIBDocType",
		"caption": "Тип документа",
		"classes": {"wrapperClass": ["base-edit"]},
		"layout": {"column": 0, "row": 3, "colSpan": 24},
		"textSize": "Default",
		"contentType": Terrasoft.ContentType.ENUM,
		"labelConfig": {
			"visible": true
		},
		"controlConfig": {
			"className": "Terrasoft.ComboBoxEdit",
			"list": {
				"bindTo": "documentTypeList"
			},
			"change": {
				"bindTo": "onMyValueChange"
			},
			"prepareList": {
				"bindTo": "prepareDocumentTypeList"
			}
		}
	},
	"index": 3
}
 
//methods
 
onRender: function() {
	if (!this.get("documentTypeList")) {
		this.set("documentTypeList", this.Ext.create("Terrasoft.Collection"));
	}
 
},
 
prepareDocumentTypeList: function(filter, list) {
	if (list === null) {
		return;
	}
	list.clear();
	var columns = {};
	var value1 = {
		displayValue: "Type1",
		value: "e8670398-603b-43ca-820d-03e5b03fc275"
	};
	var value2 = {
		displayValue: "Type2",
		value: "14fcef3a-7d9e-4737-810f-52d57db3673a"
	};
	var value3 = {
		displayValue: "Type3",
		value: "672606f8-da25-40bd-a4ef-95c958331743"
	};
	columns[1] = value1;
	columns[2] = value2;
	columns[3] = value3;
	list.loadAll(columns);
	console.log(list);
},
 
onMyValueChange: function(val) {
	if (val && val.displayValue) {
		console.log("you pick: ", val.displayValue);
	}
},

Однако таким образом данные не отображаются в выборке совсем, просто пустой справочник.

Изображение удалено.

 

Нравится

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

Сериков Асхат Кайратович,

Вот, например, код страницы с проекта. Если в attributes добавить lookupListConfig для поля Contact, всё подтянется

/*jshint ignore: start*/
define("UsrSchema", [],
	function() {
		return {
			mixins: {},
			messages: {},
			attributes: {},
			details: {},
			diff: /**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"name": "mainBoxContainer",
					"values": {
						"id": "mainBoxContainer",
						"itemType": Terrasoft.ViewItemType.CONTAINER,
						"items": []
					}
				},
				{
					"operation": "insert",
					"name": "mainBoxContainerGrid",
					"parentName": "mainBoxContainer",
					"propertyName": "items",
					"values": {
						"itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
						"items": []
					}
				},
				{
					"operation": "insert",
					"parentName": "mainBoxContainerGrid",
					"propertyName": "items",
					"name": "Contact",
					"values": {
						"bindTo": "Contact",
						"caption": "Контакт",
						"contentType": Terrasoft.ContentType.ENUM,
						"layout": {
							"column": 0,
							"row": 0,
							"colSpan": 24
						}
					},
				}
			]/**SCHEMA_DIFF*/,
			methods: {
				init: function() {
					this.callParent(arguments);
				},
 
				getLookupQuery: function(filter, column) {
					var esq = this.callParent(arguments);
					var lookupListConfig = this.getLookupListConfig(column);
					if (lookupListConfig) {
						this.Terrasoft.each(lookupListConfig.columns, function(column) {
							if (!esq.columns.contains(column)) {
								esq.addColumn(column);
							}
						}, this);
					}
 
					var schemaColumn = this.getColumnByName(column);
					if (schemaColumn.lookupListConfig && schemaColumn.lookupListConfig.filter) {
						esq.filters.addItem(schemaColumn.lookupListConfig.filter());
					}
 
					return esq;
				},
				getLookupListConfig: function(columnName) {
					var schemaColumn = this.getColumnByName(columnName);
					if (!schemaColumn) {
						return null;
					}
					var lookupListConfig = schemaColumn.lookupListConfig;
					if (!lookupListConfig) {
						return null;
					}
					var excludedProperty = ["filters", "filter"];
					var config = {};
					this.Terrasoft.each(lookupListConfig, function(property, propertyName) {
						if (excludedProperty.indexOf(propertyName) === -1) {
							config[propertyName] = property;
						}
					});
					return config;
				}
			}
		};
	});
/*jshint ignore: end*/

 

1) Я бы попробовал 

columns[value1.value] = value1;
columns[value2.value] = value2;
columns[value3.value] = value3;

+ в каждом объекте продублировал 

var value1 = {
	displayValue: "Type1",
        name: "Type1",
	value: "e8670398-603b-43ca-820d-03e5b03fc275"
};

чисто на всякий случай

2) Если это своё модальное окно, не унаследованное от basePage, то придётся копировать логику из getLookupQuery (BasePageV2). Там как раз таки и идёт перебор аттрибутов на фильтры, доп колонки и т.п.

Варфоломеев Данила,

Спасибо, да не наследованное, пойду пробовать 

Сериков Асхат Кайратович,

Вот, например, код страницы с проекта. Если в attributes добавить lookupListConfig для поля Contact, всё подтянется

/*jshint ignore: start*/
define("UsrSchema", [],
	function() {
		return {
			mixins: {},
			messages: {},
			attributes: {},
			details: {},
			diff: /**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"name": "mainBoxContainer",
					"values": {
						"id": "mainBoxContainer",
						"itemType": Terrasoft.ViewItemType.CONTAINER,
						"items": []
					}
				},
				{
					"operation": "insert",
					"name": "mainBoxContainerGrid",
					"parentName": "mainBoxContainer",
					"propertyName": "items",
					"values": {
						"itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
						"items": []
					}
				},
				{
					"operation": "insert",
					"parentName": "mainBoxContainerGrid",
					"propertyName": "items",
					"name": "Contact",
					"values": {
						"bindTo": "Contact",
						"caption": "Контакт",
						"contentType": Terrasoft.ContentType.ENUM,
						"layout": {
							"column": 0,
							"row": 0,
							"colSpan": 24
						}
					},
				}
			]/**SCHEMA_DIFF*/,
			methods: {
				init: function() {
					this.callParent(arguments);
				},
 
				getLookupQuery: function(filter, column) {
					var esq = this.callParent(arguments);
					var lookupListConfig = this.getLookupListConfig(column);
					if (lookupListConfig) {
						this.Terrasoft.each(lookupListConfig.columns, function(column) {
							if (!esq.columns.contains(column)) {
								esq.addColumn(column);
							}
						}, this);
					}
 
					var schemaColumn = this.getColumnByName(column);
					if (schemaColumn.lookupListConfig && schemaColumn.lookupListConfig.filter) {
						esq.filters.addItem(schemaColumn.lookupListConfig.filter());
					}
 
					return esq;
				},
				getLookupListConfig: function(columnName) {
					var schemaColumn = this.getColumnByName(columnName);
					if (!schemaColumn) {
						return null;
					}
					var lookupListConfig = schemaColumn.lookupListConfig;
					if (!lookupListConfig) {
						return null;
					}
					var excludedProperty = ["filters", "filter"];
					var config = {};
					this.Terrasoft.each(lookupListConfig, function(property, propertyName) {
						if (excludedProperty.indexOf(propertyName) === -1) {
							config[propertyName] = property;
						}
					});
					return config;
				}
			}
		};
	});
/*jshint ignore: end*/

 

Варфоломеев Данила,

Спасибо

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

Добрый день, 

Подскажите пожалуйста как сделать стили для модального окна по стандартному гриду как на любой другой странице,

У меня по нажатию кнопки вызывается модальное окно

var sandbox = this.sandbox;
var config = {
    heightPixels: 550,
    widthPixels: 950
};
var moduleName = "UsrMyModalModule";
var moduleId = sandbox.id + "_" + moduleName;
var renderTo = ModalBox.show(config, function() {
    sandbox.unloadModule(moduleId, renderTo);
});
sandbox.loadModule(moduleName, {
    id: moduleId,
    renderTo: renderTo
});

Само модальное окно  было создано через "Схема модели представления карточки" ни от кого не наследовано.

на выходе получается так:

Изображение удалено.

на странице окна добавлял обычным средством:

 

{
	"operation": "insert",
	"name": "HeaderContainer",
	"propertyName": "items",
	"values": {
		"itemType": Terrasoft.ViewItemType.CONTAINER,
		"items": []
	}
},
{
	"operation": "insert",
	"parentName": "HeaderContainer",
	"propertyName": "items",
	"name": "Header",
	"values": {
		"itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
		"items": []
	}
},
{
	"operation": "insert",
	"parentName": "Header",
	"propertyName": "items",
	"name": "TestText",
	"values": {
		"bindTo": "TestText",
		"caption": "Test text",
		"layout": {"column": 0, "row": 0, "colSpan": 10}
	}
},
{
	"operation": "insert",
	"parentName": "Header",
	"name": "CloseButton",
	"propertyName": "items",
	"values": {
		"itemType": Terrasoft.ViewItemType.BUTTON,
		"style": Terrasoft.controls.ButtonEnums.style.BLUE,
		"click": {bindTo: "onCloseButtonClick"},
		"markerValue": "CloseButton",
		"caption": "OK",
		"layout": { "column": 0, "row": 1, "colSpan": 3 }
	}
}

 

Нравится

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

Открываете модуль UsrMyModalModule, в нём на вкладке Less прописываете стили для элементов.

В странице в define, в перечислении подгружаемых модулей добавляете "css!UsrMyModalModule"

Варфоломеев Данила,

Вручную придется стили добавлять, а можно как нибудь грид сетку из страниц редактирования взять? 

 

Сериков Асхат Кайратович пишет:

а можно как нибудь грид сетку из страниц редактирования взять?

 Так вы же её уже добавили)

{
	"operation": "insert",
	"parentName": "HeaderContainer",
	"propertyName": "items",
	"name": "Header",
	"values": {
		"itemType": Terrasoft.ViewItemType.GRID_LAYOUT,
		"items": []
	}
},

 

Варфоломеев Данила,

Добавить добавил, но как видите на картинке, сами поля скукожены, хотя width в процентном соотношении выставляется верно.

Проблема решается если унаследовать от Базовой схемы карточки, но тогда ругается на getCardInfo message, что нет такого сообщения

Сериков Асхат Кайратович пишет:

сами поля скукожены,

 Тогда вам нужно прописать стили(собственно говоря, с чего вы и начали тему). Я обычно прописываю width/height модуля, потом width/height главного контейнера (в вашем случае HeaderContainer)

Варфоломеев Данила,

Жаль, я надеялся, что есть способ как то унаследовать именно разметку, Спасибо

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

Добрый день. Возник вопрос какими средствами удобнее всего реализовать модальное окно при нажатии на кнопку. На странице активности добавлена кнопка "информация о продаже" при нажатии на которую должно появляться примерно такое окно, в которое будет подтягиваться информация из активности и связанной продажи. 

Как реализовать само окно и его вызов по нажатии на кнопку?

 Изображение удалено.

Нравится

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

Владислав, вы можете реализовать его используя ModalBox. Посмотрите каким образом реализован ModalBox и его использование (на примере lookupPage)

Суть простая. ModalBox возвращает вам контейнер, в который вы загрузите требуемый модуль.

Что-то типа этого:

var modal_box_container = ModalBox.show();
sandbox.loadModule("MyModule", {
    renderTo: modal_box_container
})

 

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

Подскажите как создать модальное окно с двумя полями типа "Дата", пробовал делать по шаблону во вложении получаю ошибку:

ConfigurationBootstrap.js:21948 Uncaught TypeError: Cannot read property 'entitySchemaName' of undefined

    at i. (ConfigurationBootstrap.js:21948)

    at all-combined.js:477

    at Object.execCb (require.js:1693)

    at Module.check (require.js:881)

    at Module. (require.js:1136)

    at require.js:134

    at require.js:1186

    at each (require.js:59)

    at Module.emit (require.js:1185)

    at Module.check (require.js:936)

(anonymous) @ ConfigurationBootstrap.js:21948

(anonymous) @ all-combined.js:477

execCb @ require.js:1693

check @ require.js:881

(anonymous) @ require.js:1136

(anonymous) @ require.js:134

(anonymous) @ require.js:1186

each @ require.js:59

emit @ require.js:1185

check @ require.js:936

enable @ require.js:1173

init @ require.js:786

callGetModule @ require.js:1200

completeLoad @ require.js:1608

onScriptLoad @ require.js:1714

core.js:579 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647

 file: http://localhost:82/0/Nui/ViewModule.aspx

 line: 3

 column: 1

 message: Uncaught SyntaxError: Unexpected token < 

 date: Thu Sep 07 2017 13:02:25 GMT+0300 (RTZ 2 (зима))

 stack: SyntaxError: Unexpected token <

writeErrorMessage @ core.js:579

(anonymous) @ core.js:740

execCb @ require.js:1693

check @ require.js:881

enable @ require.js:1173

init @ require.js:786

(anonymous) @ require.js:1457

setTimeout (async)

(anonymous) @ require.js:1812

localRequire @ require.js:1446

errorHandler @ core.js:716

core.js:579 user: Supervisor/7f3b869f-34f3-4f20-ab4d-7480a5fdf647

 file: http://localhost:82/0/configuration/04a28bb938a0652641f26936a1b20234/Co…

 line: 21948

 column: 57

 message: Uncaught TypeError: Cannot read property 'entitySchemaName' of undefined 

 date: Thu Sep 07 2017 13:02:25 GMT+0300 (RTZ 2 (зима))

 stack: TypeError: Cannot read property 'entitySchemaName' of undefined

    at i. (http://localhost:82/0/configuration/04a28bb938a0652641f26936a1b20234/Co…)

    at http://localhost:82/core/9081d8eb154840ddc3ec408c11264ff4/combined/all-…

    at Object.execCb (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module.check (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module. (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…

    at http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…

    at each (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module.emit (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

    at Module.check (http://localhost:82/core/c3a883e5c39cffb863b2f781f396c705/requirejs/req…)

writeErrorMessage @ core.js:579

(anonymous) @ core.js:740

execCb @ require.js:1693

check @ require.js:881

enable @ require.js:1173

init @ require.js:786

(anonymous) @ require.js:1457

setTimeout (async)

(anonymous) @ require.js:1812

localRequire @ require.js:1446

errorHandler @ core.js:716

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

Нравится

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

Добрый день уважаемые коллеги!!!

столкнулся вот с какой трудностью, создал модальное окно, разместил на модальном окне поля LookupEdit, TextEdit, CheckBox, Label. Выполнил верстку, Здесь проблем никаких не возникло. Описал viewModel, разместил все поля так как мне требуется. и вот какую проблемку обнаружил, сходу не нашел в чем проблема. На размещенном на ModalBox поле LookupEdit, требуется чтобы нашав на Иконку "Лупа" открылась модальная форма Выбора из справочника, для этого описал функцию "loadVocabulary". И в результате получаю следующее:

модальная форма до нажатие на Выбор из справочника:

модальная форма после нажатие на Выбор из справочника:

Во вложение прикладываю текст схемы модуля, модального окна.

Прошу подсказать, кто сталкивался, что требуется еще допилить, чтобы окно модальное "Выбор из справочника открывалось". Мое первое предположение, что нужно или на что-то дополнительно подписаться, или что-то опубликовать дополнительно и передать параметры.

Нравится

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

Привет всем!!!

не выдержала душа поэта, сам все решил. И теперь сделал так что при открытии N-ного количества LookupPage можно их открывать последовательно в цепочке, каждый теперь у меня LookupPage открывается и генерируется в своем DOM. можно свободно в цепочке возвращаться назад. по умолчанию террасофт такого не умел именно для объекта LookupPage. Теперь научил :smile:

И что, теперь проклятье потеряло силу и есть методика, как открыть два справочника для выбора значения подряд? И получив таким образом два параметра запустить процесс...

Добрый день Александр!!!

у меня была задача Создать N-ое количество Lookup страниц (причем модальных), на данных страницах размещены LookupEdit поля и не только. Задача была чтобы не закрывая 1 Модальную Lookup страницу открыть N-ное количество Lookup страниц, причем в цепочке, чтобы можно было вернуться обратно. Первая проблема где я с этим столкнулся это было вызов "Выбора" из LookupEdit размещенного на Модальной Lookup странице. не работало в стандартном исполнении. Посмотрел в примерах по конфигурации, думал есть где уже данная проблема решалась, оказалось, что нет. Я немного помыслил и решил помимо Выбора чтобы можно было открывать Модальные карточки редактирования (вернее в них проваливаться). Вот 1 день труда и моя идея воплотилась в жизнь и работает в моем проекте.

"Власов Михаил Викторович" написал:

Добрый день Александр!!!

у меня была задача Создать N-ое количество Lookup страниц (причем модальных), на данных страницах размещены LookupEdit поля и не только. Задача была чтобы не закрывая 1 Модальную Lookup страницу открыть N-ное количество Lookup страниц, причем в цепочке, чтобы можно было вернуться обратно. Первая проблема где я с этим столкнулся это было вызов "Выбора" из LookupEdit размещенного на Модальной Lookup странице. не работало в стандартном исполнении. Посмотрел в примерах по конфигурации, думал есть где уже данная проблема решалась, оказалось, что нет. Я немного помыслил и решил помимо Выбора чтобы можно было открывать Модальные карточки редактирования (вернее в них проваливаться). Вот 1 день труда и моя идея воплотилась в жизнь и работает в моем проекте.


Добрый день Михаил!
Вы можете поделиться вашим решением?

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