Вопрос

Здравствуйте, подскажите пожалуйста как можно добавить условия в выборку записей в секции, например:

...
where isActive = 0
...

То есть чтобы именно загружались те записи которые нужны изначально, сейчас все делается по кривому(загружаются все записи, фильтруются нужные, и применяются фильтры)

 

Спасибо!

У меня такой же вопрос

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

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

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

//можно ещё использовать функцию getFilters
initQueryFilters: function(esq) {
	var filters = this.callParent(arguments);
	//добавляем свои фильтры
	return filters;
}

 

Фильтр?

 

Алексей-Карягин пишет:

Фильтр?

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

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

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

//можно ещё использовать функцию getFilters
initQueryFilters: function(esq) {
	var filters = this.callParent(arguments);
	//добавляем свои фильтры
	return filters;
}

 

Сериков Асхат Кайратович пишет:
Сейчас так и работает, через фильтр. Но они не всегда срабатывают быстро, бывает что подгружает все записи, потом моргает и показывает только нужные. То есть сначала выгрузил все и только потом применил фильтрацию.

Нет, фильтры работают не так. По условиям фильтрации класс EntitySchemaQuery формирует SQL-запрос, который и идёт от сайта в базу. А уже по нему из базы возвращается коллекция записей-результатов.

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

 

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

Если у вас нет багов в логике страницы, то фильтр как раз и выберет только то, что нужно на уровне БД, не на уровне страницы. Представьте себе, что у вас миллион записей, сколько бы времени занимала их выборка и фильтрация на клиенте?

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

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

Стоит задача в invoiceSection в грид для каждой записи добавить 2 собственных кнопки "печать 1" и "печать 2", которые будут открывать 2 различных отчета.
Также необходимо либо подменить отчет, который печатается по кнопке печать, либо скрыть её.

Подскажите, пожалуйста, как можно реализовать данную задачу?

У меня такой же вопрос

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

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Здравствуйте, Александр!

Рекомендации предоставлены в дублирующемся топике

Войдите или зарегистрируйтесь, чтобы комментировать
Вопрос

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

Стоит задача в invoiceSection в грид для каждой записи добавить 2 собственных кнопки "печать 1" и "печать 2", которые будут открывать 2 различных отчета.
Также необходимо либо подменить отчет, который печатается по кнопке печать, либо скрыть её.

Подскажите, пожалуйста, как можно реализовать данную задачу?

У меня такой же вопрос

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

Спасибо за Ваше обращение. Мы зарегистрировали его в Службе технической поддержки и назначили специалиста, который сможет Вас компетентно проконсультировать по данному вопросу.

Прошу прощения за дубль.
http://www.community.terrasoft.ru/forum/topic/11408

Здравствуйте, Александр!
Отчеты регистрируются в справочнике "Печатные формы". Базовая кнопка добавляется следующим образом:

			diff: /**SCHEMA_DIFF*/[
				{
					"operation": "insert",
					"name": "DataGridActiveRowPrintAction",
					"parentName": "DataGrid",
					"propertyName": "activeRowActions",
					"values": {
						"className": "Terrasoft.Button",
						"style": Terrasoft.controls.ButtonEnums.style.GREY,
						"caption": {"bindTo": "Resources.Strings.PrintRecordGridRowButtonCaption"},
						"tag": "print"
					}
				}
			]/**SCHEMA_DIFF*/

Добавляйте свои по аналогии.
Обработка нажатия определяется в методе "onActiveRowAction" в BaseSectionV2:

				onActiveRowAction: function(buttonTag, primaryColumnValue) {
					switch (buttonTag) {
						case "edit":
							this.editRecord(primaryColumnValue);
							break;
						case "copy":
							this.copyRecord(primaryColumnValue);
							break;
						case "delete":
							this.deleteRecords();
							break;
						case "print":
							this.printRecord(primaryColumnValue);
							break;
						case "processEntryPoint":
							this.onProcessEntryPointGridRowButtonClick();
							break;
					}
				},
Войдите или зарегистрируйтесь, чтобы комментировать