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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 27.11.2007, 00:20   #1  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Добрый вечер всем!

пару вопросов по этой форме:

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

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

2) сверху грида также на 1ой закладке добавить чек-бокс, по нажатию на который производилась бы фильтрация строк в гриде:
выбрали - показывать только с кол-вом > 0
отключили - снимать фильтр

Кто сталкивался с этой формой подскажите? или все-таки игра не стоит свеч и без глобального перепиливания формы не обойтись?
Старый 27.11.2007, 08:43   #2  
denny is offline
denny
Участник
 
93 / 29 (1) +++
Регистрация: 16.11.2003
Адрес: Novosibirsk
2sparur. По первому вопросу.
на datasource InventSum создайте вот такой edit-метод:

Код:
edit NoYes setQtyAvail_UTX(boolean _set, InventSum _inventSum, NoYes _value)
{
     select tmpFrmVirtual
        where   tmpFrmVirtual.tableNum      == _inventSum.tableId &&
                tmpFrmVirtual.itemId        == _inventSum.itemId &&
                tmpFrmVirtual.inventDimId   == _inventSum.inventDimId;

    if (_set)
    {
        if (_value)
        {
            InventSum_ds.salesQty(true, _inventSum, _inventSum.AvailPhysical);
        }
        else
        {
            InventSum_ds.salesQty(true, _inventSum, 0);
        }
        InventTable_ds.refresh();
        tmpFrmVirtual.NoYes= _value;
        tmpFrmVirtual.update();

    }
    return     tmpFrmVirtual.NoYes;


}
Перенесите его на грид первой закладки. Установите у элемента управления параметр datasource = InventSum

Должно работать.
__________________
Денис Балуев.

Последний раз редактировалось denny; 27.11.2007 в 08:47. Причина: Слегка исправил код
Старый 27.11.2007, 17:33   #3  
sparur is offline
sparur
Участник
 
334 / 25 (1) +++
Регистрация: 19.05.2006
Цитата:
Сообщение от denny Посмотреть сообщение
2sparur. По первому вопросу.
на datasource InventSum создайте вот такой edit-метод:

Код:
edit NoYes setQtyAvail_UTX(boolean _set, InventSum _inventSum, NoYes _value)
{
     select tmpFrmVirtual
        where   tmpFrmVirtual.tableNum      == _inventSum.tableId &&
                tmpFrmVirtual.itemId        == _inventSum.itemId &&
                tmpFrmVirtual.inventDimId   == _inventSum.inventDimId;

    if (_set)
    {
        if (_value)
        {
            InventSum_ds.salesQty(true, _inventSum, _inventSum.AvailPhysical);
        }
        else
        {
            InventSum_ds.salesQty(true, _inventSum, 0);
        }
        InventTable_ds.refresh();
        tmpFrmVirtual.NoYes= _value;
        tmpFrmVirtual.update();

    }
    return     tmpFrmVirtual.NoYes;


}
Перенесите его на грид первой закладки. Установите у элемента управления параметр datasource = InventSum

Должно работать.
Почти работает! Значение поля меняет, а вот при попытки сохранить выбранное значение(галку) вываливает мессагу - обновить запись втаблице tmpFrmVirtual невозможно. Запись не выбрана. Похоже select в начале метода не находит соответствующую запись в этой таблице
Старый 29.11.2007, 09:17   #4  
denny is offline
denny
Участник
 
93 / 29 (1) +++
Регистрация: 16.11.2003
Адрес: Novosibirsk
Странно, по идее edit-метод salesQty, существующий на том же InventSum, уже должен был создать запись. Версию Аксапты напишите, пожалуйста.
В любом случае, вот так должно работать:

X++:
edit NoYes setQtyAvail_UTX(boolean _set, InventSum _inventSum, NoYes _value)
{

    select tmpFrmVirtual
        where   tmpFrmVirtual.tableNum      == _inventSum.tableId &&
                tmpFrmVirtual.itemId        == _inventSum.itemId &&
                tmpFrmVirtual.inventDimId   == _inventSum.inventDimId;
    if (!tmpFrmVirtual)
    {
        tmpFrmVirtual.tableNum          = _inventSum.tableId;
        tmpFrmVirtual.itemId            = _inventSum.itemId;
        tmpFrmVirtual.inventDimId       = _inventSum.inventDimId;
        tmpFrmVirtual.write();
    }

    if (_set)
    {
        if (_value)
        {
            InventSum_ds.salesQty(true, _inventSum, _inventSum.AvailPhysical);
        }
        else
        {
            InventSum_ds.salesQty(true, _inventSum, 0);
        }
        InventTable_ds.refresh();
        tmpFrmVirtual.NoYes= _value;
        tmpFrmVirtual.update();

    }
    return     tmpFrmVirtual.NoYes;


}
__________________
Денис Балуев.
Старый 27.11.2007, 09:29   #5  
miklenew is offline
miklenew
Участник
Аватар для miklenew
MCBMSS
1C
Лучший по профессии 2009
 
1,688 / 433 (18) +++++++
Регистрация: 10.07.2006
Адрес: г. Ликино-Дулёво
Цитата:
Сообщение от sparur Посмотреть сообщение
Добрый вечер всем!

пару вопросов по этой форме:

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

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

2) сверху грида также на 1ой закладке добавить чек-бокс, по нажатию на который производилась бы фильтрация строк в гриде:
выбрали - показывать только с кол-вом > 0
отключили - снимать фильтр

Кто сталкивался с этой формой подскажите? или все-таки игра не стоит свеч и без глобального перепиливания формы не обойтись?
Вот проект над которым щас работаю. Вернее доделать его доделал, но тестирование он доконца не прошёл по этому могут где-то ещё быть мелкии не дочёты.
Там есть нужный вам пункт 2.
Насчет 1 заполните просто tmp таблицу. У вас есть inventsum пробегите по нему любым доступным средством либо QueryRun. Либо select к базе у вас будут invendimId, ItemId и колво, заполните ими tmp таблицу и будет счастье.
Вложения
Тип файла: xpo MRD_CreateInventJournalTrans_kmu.xpo (907.6 Кб, 454 просмотров)
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
лукап-форма с доп. фильтром patron DAX: Программирование 10 30.03.2007 12:19
Как передать параметры из одной web форма в другую dtsymbal DAX: Программирование 9 28.02.2006 10:31
новая форма расчета авансовых платежей Fedr Kuzmich DAX: Программирование 4 20.04.2005 09:57
LookUp форма и параметры SnowMan DAX: Программирование 7 18.09.2003 16:04
Произвольная Lookup форма Maxim Gorbunov DAX: База знаний и проекты 0 30.11.2001 21:59

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

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

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