Профильтровать ADO DS

Здравствуйте, имеется АДО датасет, текст sql такой:

SELECT
       OpReport.ContactName AS [ContactName],
       OpReport.ContactID AS [ContactID],
       OpReport.OrderCreate AS [OrderCreate],
       OpReport.IsCard AS [IsCard],
       OpReport.OrdersExport AS [OrdersExport],
       OpReport.OrderAnullate AS [OrderAnnulate],
       OpReport.StatusRPOBack AS [StatusRPOBack],
       OpReport.StatusRPORay AS [StatusRPORay],
       OpReport.CrossOrdersExport AS [CrossOrderExport],
       OpReport.AllCrossPayMail AS [AllCrossPayMail],
       OpReport.CrossOrdersAnnulate AS [CrossOrdersAnnulate],
       OpReport.StatusRPOBackCross AS [StatusRPOBackCross]                
FROM [TTS-1C].AnaliticReports.dbo.tbl_CallCenterReport AS OpReport
WITH(nolock)

Скрипт окна:

function wnd_BaseGridAreaOnPrepare(Window) {
        var Dataset = dlData.Dataset;
        Dataset.Open();
}

function wnd_OpReportGridOnActivate(Window) {
                //var Dataset = dlData.Dataset;
        //Dataset.Open();
}

function ApplyFilterOnClick(Control) {
        var Dataset = dlData.Dataset;
        Dataset.Close();
        edtFilterParam.Value = Connector.CurrentUser.ContactName;
        var ContactID = '3a56495b-16d1-45ae-b579-0fab81904168';//edtFilterParam.Value;
        ApplyDatasetFilter(Dataset, 'ContactID', ContactID, true);
        Dataset.Open();
}

При нажатии на кнопку по идее ведь должны выводится все записи с указанным контактИД. Однако, вместо этого, грид полностью очищается. В параметрах создал одноименный и одного типа. Не понимаю, что я упустил?

Нравится

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

"Нестеров Артем Валерьевич" написал:SELECT
OpReport.ContactName AS [ContactName],
OpReport.ContactID AS [ContactID],
OpReport.OrderCreate AS [OrderCreate],
OpReport.IsCard AS [IsCard],
OpReport.OrdersExport AS [OrdersExport],
OpReport.OrderAnullate AS [OrderAnnulate],
OpReport.StatusRPOBack AS [StatusRPOBack],
OpReport.StatusRPORay AS [StatusRPORay],
OpReport.CrossOrdersExport AS [CrossOrderExport],
OpReport.AllCrossPayMail AS [AllCrossPayMail],
OpReport.CrossOrdersAnnulate AS [CrossOrdersAnnulate],
OpReport.StatusRPOBackCross AS [StatusRPOBackCross]
FROM [TTS-1C].AnaliticReports.dbo.tbl_CallCenterReport AS OpReport
WITH(nolock)

Но в запросе нету условие же. Разве не так должно быть

"Нестеров Артем Валерьевич" написал:SELECT
OpReport.ContactName AS [ContactName],
OpReport.ContactID AS [ContactID],
OpReport.OrderCreate AS [OrderCreate],
OpReport.IsCard AS [IsCard],
OpReport.OrdersExport AS [OrdersExport],
OpReport.OrderAnullate AS [OrderAnnulate],
OpReport.StatusRPOBack AS [StatusRPOBack],
OpReport.StatusRPORay AS [StatusRPORay],
OpReport.CrossOrdersExport AS [CrossOrderExport],
OpReport.AllCrossPayMail AS [AllCrossPayMail],
OpReport.CrossOrdersAnnulate AS [CrossOrdersAnnulate],
OpReport.StatusRPOBackCross AS [StatusRPOBackCross]
FROM [TTS-1C].AnaliticReports.dbo.tbl_CallCenterReport AS OpReport
Where OpReport.ContactID = :ContactID
WITH(nolock)

Ну так пустой датасет все равно открывается

Артем, попробуйте открыть DataSet перед наложением фильтра и в дебаггере посмотреть RowsCount. Если данные загружаются, то нужно смотреть, что не так с фильтром, если нет, то с DataSet'ом.

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