AXForum  
Вернуться   AXForum > Microsoft Dynamics AX > DAX: Программирование
All
Забыли пароль?
Зарегистрироваться Правила Справка Пользователи Сообщения за день Поиск

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 21.05.2010, 13:38   #1  
LEXAR is offline
LEXAR
Участник
 
27 / 17 (1) ++
Регистрация: 11.09.2009
DAX2009 EP: Работа с данными в C#
Добрый день!

Необходимо работать с данными напрямую из кода.

Но AxDataSource возвращает данные по страницам, т.е. по умолчанию по 10 записей.

Свойство dataSetView.Count возвращает 10. Хотя записей 13. Функция dataSetView.GetTotalNumberOfRows() возвращает при этом 13. Если добавить AxGridView, то на первой странице отображается 10 записей, на второй странице 3.

Метод dataSet.DataSetViews[0].SetPagingParameters(new PagingParameters(false, 0, 0));
не срабатывает...

Код:
using System;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Dynamics.Framework.Portal.UI.WebControls;
using Microsoft.Dynamics.Framework.Portal.UI.WebControls.WebParts;
using Microsoft.Dynamics.Framework.Portal.UI;
using Microsoft.Dynamics.Framework.BusinessConnector.Session;
using Microsoft.Dynamics.Framework.Data.Ax;
using Microsoft.Dynamics.Framework.BusinessConnector.Adapter;

public partial class ObjectMap : System.Web.UI.UserControl
{
    /// <summary>
    /// Returns the current webpart session
    /// </summary>
    ISession AxSession
    {
        get
        {
            AxBaseWebPart webpart = AxBaseWebPart.GetWebpart(this);
            return webpart == null ? null : webpart.Session;
        }
    }

    /// <summary>
    /// Returns the current webpart
    /// </summary>
    private AxBaseWebPart WebPart
    {
        get
        {
            return AxBaseWebPart.GetWebpart(this);
        }
    }

    private void BuildObjectMap()
    {
        DataSet dataSet = this.AxDataSource1.GetDataSet();
        dataSet.DataSetViews["Apartment"].SetPagingParameters(new PagingParameters(false, 0, 0));
        DataSetView dataSetView = dataSet.DataSetViews["Apartment"];

        #region Print error message
        IAxaptaRecordAdapter currentRecord = this.WebPart.ExternalRecord;

        if (currentRecord == null)
        {
            TableRow _row1 = new TableRow();
            TableCell _cell1 = new TableCell();
            _cell1.Text = "External Record is null.";
            _row1.Cells.Add(_cell1);
            ObjectMap.Rows.Add(_row1);
            return;
        }
        #endregion

        string lastEntrance = "";
        string lastFloor = "";
        TableRow _row = new TableRow();
        foreach (DataSetViewRow dataSetViewRow in dataSetView)
        {
            if (lastFloor != dataSetViewRow.GetFieldValue("FloorNum").ToString())
            {
                _row = new TableRow();
                ObjectMap.Rows.Add(_row);
            }
            TableCell _cell = new TableCell();
            _cell.Text = dataSetViewRow.GetFieldValue("ApartmentNum").ToString();
            _row.Cells.Add(_cell);
            lastFloor = dataSetViewRow.GetFieldValue("FloorNum").ToString();
            lastEntrance = dataSetViewRow.GetFieldValue("EntranceNum").ToString();
        }
    }

    protected void Page_Load(object sender, EventArgs e)
    {
        this.BuildObjectMap();
    }
}
Если обращаться к данным напрямую, не через AxDataSource
Код:
        DataSet dataSet = new DataSet(this.AxSession, "Apartment");
        dataSet.DataSetViews["Apartment"].SetPagingParameters(new PagingParameters(false, 0, 0));
        dataSet.Run();
то возващаются все записи, что не желательно, т.к. в случае обращения через AxDataSource, возвращаются только те записи, которые соответствуют внешнему контексту, т.к. переход на данную страницу происходит из родительской страницы.
Теги
ax2009, dataset, enterprise portal

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
вопросик по возможности EP на DAX2009 slava09 DAX: Функционал 6 11.08.2011 21:38
DAX2009 EP: Работа с меню QuickLaunch из User Control'а LEXAR DAX: Программирование 1 02.06.2010 09:24
EP Dax2009: добавление параметров к URL WebMenuItem'а LEXAR DAX: Программирование 4 01.04.2010 10:01
Solutions Monkey: Integrating EP Web Parts to non-EP SharePoint sites Blog bot DAX Blogs 0 04.04.2009 03:19
Solutions Monkey: Deploying Ax 2009 SP1 EP Blog bot DAX Blogs 0 05.02.2009 07:08

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

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход

Рейтинг@Mail.ru
Часовой пояс GMT +3, время: 01:02.