Добрый день!

Подскажите, как решить данный вопрос:

Есть деталь, сформированная на объекте на базе VIEW. Этот VIEW берет данные из другой системы, следовательно, не имеет Id в формате GUID. Для соответствия форматов, подставляется некий Id, но он повторяется для всех записей. 

В таком виде всё работает отлично.

Но теперь необходимо получать записи, которые пользователь выделил в этой детали. И использование grdData.SelectedIDs не годится. Можно ли каким-то другим способом получить выделенные записи (или вытащить не Id, а значения других колонок)?

Нравится

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

Ничего не мешает сделать во view уникальный Id на основе значения других колонок.

select  cast(HashBytes('MD5', 'hello'+'world') as uniqueidentifier)

 

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

Terrasoft 3.4.0.138
Есть TreeGrid, на скрипт

function grdDataOnDblClick(Control) {
        var Window = Self;
        var grdData = Window.ComponentsByName('grdData');
        var SelectedIDs = grdData.SelectedIDs;
        Log.Write(1, SelectedIDs.Count);
        if (SelectedIDs.Count) {
                Log.Write( 1, SelectedIDs[0] == null ? 'null' : SelectedIDs[0]);
        }
}

по двойному клику, получаю count = 1, а id-шник равен null, почему такое может быть?
В датасете ключевое поле стоит (родительсок тоже)

Нравится

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

Александр, так SelectedIDs - это не массив. Идентификаторы записей находятся в параметре CommaText в виде строки идентификаторов разделенных запятой.
Чтобы получить массив используйте сплит:

var SelectedIDs = grdData.SelectedIDs.CommaText.split(',');

Помогло, спасибо.
Но я вроде делал как я описал выше раньше, и получалось. Или мое воображение разыгралось?

Не могу утверждать, возможно, на старых версиях..

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