Получить строки в подсетке crm2011 с помощью JScript - PullRequest
0 голосов
/ 03 декабря 2010

Как новичок в JScript, у меня проблема с подсеткой в ​​MS CRM 2011.

У меня есть форма с подсетью, и в OnSave этой формы я хочу перебрать все строки в подсетке.

Как я могу сделать это с JScript? Или это возможно по-другому, бывший плагин?

Thx

Ответы [ 4 ]

1 голос
/ 11 июня 2011

Вот пример кода, который вы можете сделать при сохранении формы

var gridControl = document.getElementById('grdrelatedcontacts').control;
for (var intRowNumber = 0; intRowNumber < gridControl.getRecordsFromInnerGrid().length; intRowNumber++)
    for (var intCellNumber = 0; intCellNumber < gridControl.getRecordsFromInnerGrid()[intRowNumber][3].cells.length; intCellNumber++)
        alert(gridControl.getRecordsFromInnerGrid()[intRowNumber][3].cells[intCellNumber].outerText);
0 голосов
/ 21 августа 2018

Вы можете сделать что-то вроде этого:

var req = new XMLHttpRequest();
req.open("GET", Xrm.Page.context.getClientUrl() + "/api/data/v8.0/pws_streedandhousenodatas?$filter=_pws_streetandhousenumberid_value eq " + Xrm.Page.data.entity.getId(), true);
req.setRequestHeader("OData-MaxVersion", "4.0");
req.setRequestHeader("OData-Version", "4.0");
req.setRequestHeader("Accept", "application/json");
req.setRequestHeader("Content-Type", "application/json; charset=utf-8");
req.setRequestHeader("Prefer", "odata.include-annotations=\"*\"");
req.onreadystatechange = function() {
    if (this.readyState === 4) {
        req.onreadystatechange = null;
        if (this.status === 200) {
            var results = JSON.parse(this.response);
            for (var i = 0; i < results.value.length; i++) {
                var pws_streedandhousenodataid = results.value[i]["pws_streedandhousenodataid"];
            }
        } else {
            Xrm.Utility.alertDialog(this.statusText);
        }
    }
};
req.send();

В этом случае Xrm.Page.data.entity.getId () дает вам ваш текущий идентификатор записи, и вы просматриваете все поиски (которые находятся во вспомогательной сетке), вы также можете добавить некоторые поля, чтобы выбрать больше информация от них.

0 голосов
/ 13 декабря 2013

Используйте вызов Rest и получите соответствующие записи: S

0 голосов
/ 03 мая 2011

Вы можете проверить значения подсетки при сохранении, выполнив следующие действия:

var gridControl = document.getElementById('subgrid_id').control;
var ids = gridControl.get_allRecordIds();
for(i = 0; i < ids.length; i++) {
    var cellValue = gridControl.getCellValue('column_name', ids[i]);
    // logic
}

Выполнить это при загрузке немного сложнее, так как подсетки загружаются асинхронно и, скорее всего, не будут загружаться при срабатывании события onload формы. Однако вы можете периодически проверять сетку, чтобы увидеть, когда она закончит загрузку, вызвав функцию, подобную следующей, в форме загрузки:

function subGridOnload() {
    var grid = document.getElementById('subgrid_id');
    if (grid.readyState!="complete") {
        // delay one second and try again.  
        setTimeout(subGridOnload, 1000);
        return;
    }

    // logic
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...