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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 29.03.2016, 12:12   #9  
Skolos is offline
Skolos
Участник
 
56 / 13 (1) ++
Регистрация: 06.01.2016
Цитата:
Сообщение от Skolos Посмотреть сообщение
Спасибо) Уже смотрю и делаю.
Цитата:
Сообщение от greench Посмотреть сообщение
. То что у вас показывается сейчас вообще не имеет никакого отношения к таблице OfficialsTable. Вы просто показываете все значения из энама.
Посмотрите ссылку, которую я привел выше. Вам нужно сделать по аналогии.
Вроде и сделал все по аналогии. Но не могу разобраться в паре вещей.
В диалоговом окне есть 4 поля, из них для 2 делается лукап. одно из них работает правильно. А вот в другом лукап не отрабатывает. Подскажите пожалуйста что я сделал не так. весь день сижу, не могу понять Вот сам код класса UIbilder
CodePublicLookup отрабатывает
ResponsibilityLookup нет. Ставил в нем брекпоинт, даже не заходит

X++:
class CustTransOpenRptUIBuilder extends SrsReportDataContractUIBuilder
{
    DialogField     dialogReportDate;
    DialogField     dialogOrderNumber;
    DialogField     dialogResponsibility;
    DialogField     dialogCodePublic;
}

public void build()
{
    CustTransOpenRptContract rdpContract = this.dataContractObject() as CustTransOpenRptContract;

    dialogReportDate        = this.addDialogField(methodStr(CustTransOpenRptContract, parmReportDate), rdpContract);
    dialogOrderNumber       = this.addDialogField(methodStr(CustTransOpenRptContract, parmOrderNumber), rdpContract);
    dialogResponsibility    = this.addDialogField(methodStr(CustTransOpenRptContract, parmResponsibility), rdpContract);
    dialogCodePublic        = this.addDialogField(methodStr(CustTransOpenRptContract, parmCodePublic), rdpContract);

}
public void CodePublicLookup(FormStringControl _ctrl)
{
    Query query = new Query();
    QueryBuildDataSource queryBuildDataSource;
    QueryBuildRange queryBuildRange;

    SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(TaxAuthorityAddress), _ctrl);

    sysTableLookup.addLookupField(fieldNum(TaxAuthorityAddress, GniCode_RU));
    //sysTableLookup.addLookupField(fieldNum(TaxAuthorityAddress, Name));

    queryBuildDataSource = query.addDataSource(tableNum(TaxAuthorityAddress));

    //queryBuildRange = queryBuildDataSource.addRange(fieldNum(TaxAuthorityAddress, AccountNum));
    //queryBuildRange.value("Zhed-000006");

    sysTableLookup.parmQuery(query);

    sysTableLookup.performFormLookup();

}
public void ResponsibilityLookup(FormStringControl _ctrl)
{
    Query query = new Query();
    QueryBuildDataSource queryBuildDataSource;
    QueryBuildRange queryBuildRange;

    SysTableLookup sysTableLookup = SysTableLookup::newParameters(tableNum(OfficialsTable_RU), _ctrl);

    sysTableLookup.addLookupField(fieldNum(OfficialsTable_RU, ReportType));
    //sysTableLookup.addLookupField(fieldNum(TaxAuthorityAddress, Name));

    queryBuildDataSource = query.addDataSource(tableNum(OfficialsTable_RU));

    queryBuildRange = queryBuildDataSource.addRange(fieldNum(OfficialsTable_RU, Position));
    queryBuildRange.value(enum2str(OffPosition_RU::Responsible));

    sysTableLookup.parmQuery(query);

    sysTableLookup.performFormLookup();

}

public void postRun()
{
    //Dialog          dialogLocal = this.dialog();
    DialogField     dialogResponsibilityPR;
    DialogField     dialogCodePublicPR;

    super();

    //dialogLocal.dialogForm().formRun().controlMethodOverload(false);
    //dialogLocal.dialogForm().formRun().design().caption("Customer open transactions"); //Use a label

    dialogResponsibilityPR = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(CustTransOpenRptContract, parmResponsibility));
    dialogResponsibilityPR.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(CustTransOpenRptUIBuilder, ResponsibilityLookup), this);

    dialogCodePublicPR = this.bindInfo().getDialogField(this.dataContractObject(), methodStr(CustTransOpenRptContract, parmCodePublic));
    dialogCodePublicPR.registerOverrideMethod(methodStr(FormStringControl, lookup), methodStr(CustTransOpenRptUIBuilder, CodePublicLookup), this);
}
А это код класса контракта

X++:
[
    DataContractAttribute,
    SysOperationContractProcessingAttribute(classStr(CustTransOpenRptUIBuilder))
]
class CustTransOpenRptContract
{
    TransDate           reportDate;
    OrderNum_KZ         orderNumber;
    OffReportType_RU    responsibility;
    GniCode_RU          codePublic;
}

[
    DataMemberAttribute('codePublic')
]
public GniCode_RU parmCodePublic(GniCode_RU _value= codePublic)
{
    codePublic = _value;
    return codePublic;
}
[
    DataMemberAttribute('responsibility')
]
public OffReportType_RU parmResponsibility(OffReportType_RU _value = responsibility)
{
    responsibility = _value;
    return responsibility;
}
//функции даты и ордер нам не привожу. Они аналогичные.
У меня уже кончились идеи...
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
bojensen: Filter Second lookup based on First Value – Ax 2012 SSRS | Vasanth Arivali’s Space Blog bot DAX Blogs 0 24.09.2015 18:11
vasantharivali: Filter Second lookup based on First Value – Ax 2012 SSRS Blog bot DAX Blogs 0 24.09.2014 13:11
Создание Lookup формы Maxim Gorbunov DAX: База знаний и проекты 9 26.06.2007 16:44
Русская локализация Axapta 3 ? SlavaK DAX: Администрирование 59 01.07.2003 22:38
Динамические Lookup формы. Андрей Василюк DAX: База знаний и проекты 0 07.12.2001 07:07

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

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

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