![]() |
#1 |
совсем зелен
|
![]()
у меня такая проблема...есть отчет "оборотно-сальдовая ведомость" в модуле "Расчеты с клиентами" (CustBalanceTurnoverRegister_RU) нужно в диапазоне на форме указать по какому договору отбирать...но показывается список всех договор заведенных по клиентам...а как отфильтровать этот список по выбранному клиенту???
надеюсь понятно описал проблему... ![]() да кстати Dynamics AX 4.0 |
|
![]() |
#2 |
SAP
|
А по моему вам проще нажать кнопку выбор, и установить фильтр по нужному для Вас договору.
|
|
![]() |
#3 |
совсем зелен
|
![]() |
|
![]() |
#4 |
Боец
|
Цитата:
А по моему вам проще нажать кнопку выбор, и установить фильтр по нужному для Вас договору.
Цитата:
как отфильтровать этот список по выбранному клиенту???
X++: range = findOrCreateRange_W(ds, fieldnum(CustTrans, AccountNum)); range.value("XXXX"); Последний раз редактировалось DSPIC; 15.04.2008 в 15:52. |
|
![]() |
#5 |
SAP
|
Цитата:
проще для программеров...но не для пользователей...
Последний раз редактировалось konopello; 15.04.2008 в 15:57. Причина: описка |
|
![]() |
#6 |
совсем зелен
|
тоесть вложенный датасоурс не нужен???
|
|
![]() |
#7 |
Боец
|
Если нужен фильтр только по клиентам то не нужен
Цитата:
... а через неделю они попросят еще одно поле в диалог добавить....... И снова садись и программируй
![]() Последний раз редактировалось DSPIC; 15.04.2008 в 16:06. |
|
![]() |
#8 |
совсем зелен
|
|
|
![]() |
#9 |
совсем зелен
|
Цитата:
Сообщение от DSPIC
![]() Найдите метод createQueryRun() и вставьте код перед "return": X++: range = findOrCreateRange_W(ds, fieldnum(CustTrans, AccountNum)); range.value("XXXX"); |
|
![]() |
#10 |
совсем зелен
|
блин я со своими правками в конец запутался...ситуация такая...стандартно в CustTrans поле RContractAccount имеет тип текст...соответственно когда я по кнопке выбрать пытаюсь выбрать номер договора он не дает...выпадающий список не появляется...
я поменял ему типа на RContractAccount и он стал давать выбирать договора а не просто руками писать номер, но в выпадающем списке отображаются все договора по всем клиентам...как сделать что бы в выпадающем списке были договора тока клиента которого я выбрал...мне не понятно... ![]() |
|
![]() |
#11 |
SAP
|
Цитата:
блин я со своими правками в конец запутался...ситуация
Ну вот что то похожее что вам нужно: X++: client static void lookupRContractCode(Object _lookupCtrl, RContractPartnerType _rcontractPartnerType) { SysTableLookup sysTableLookup; Query query = new Query(); QueryBuildDataSource queryBuildDataSource; QueryBuildRange queryBuildRange; ; sysTableLookup = SysTableLookup::newParameters(tableNum(RContractTypes), _lookupCtrl); queryBuildDataSource = query.addDataSource(tableNum(RContractTypes)); queryBuildRange = queryBuildDataSource.addRange(fieldNum(RContractTypes, ContractPartnerType)); queryBuildRange.value(queryvalue(_rcontractPartnerType)); sysTableLookup.addLookupfield(fieldNum(RContractTypes, ContractCode)); sysTableLookup.addLookupfield(fieldNum(RContractTypes, ContractCodeName)); sysTableLookup.addLookupfield(fieldNum(RContractTypes, ContractPartnerType)); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); } X++: client static void lookupRContractAccount(Object _lookupCtrl, RContractPartnerType _rcontractPartnerType, RContractCode _rcontractCode, RContractPartnerCode _rcontractPartnerCode, boolean _onlyActive = true) { SysTableLookup sysTableLookup; Query query = new Query(); QueryBuildDataSource queryBuildDataSource; QueryBuildRange queryBuildRange; ; sysTableLookup = SysTableLookup::newParameters(tableNum(RContractTable), _lookupCtrl); queryBuildDataSource = query.addDataSource(tableNum(RContractTable)); queryBuildRange = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractPartnerType)); queryBuildRange.value(queryvalue(_rcontractPartnerType)); queryBuildRange = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractCode)); queryBuildRange.value(queryvalue(_rcontractCode)); queryBuildRange = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractPartnerCode)); queryBuildRange.value(queryvalue(_rcontractPartnerCode)); if (_onlyActive) { queryBuildRange = queryBuildDataSource.addRange(fieldNum(RContractTable, RContractStatus)); queryBuildRange.value(queryvalue(RContractStatus::Active)); } sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractAccount)); sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractCode)); sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractPartnerCode)); sysTableLookup.addLookupfield(fieldNum(RContractTable, ContractDate)); sysTableLookup.addLookupfield(fieldNum(RContractTable, RContractNumber)); sysTableLookup.parmQuery(query); sysTableLookup.performFormLookup(); } |
|
![]() |
#12 |
совсем зелен
|
а эти методы где должны находиться??? на query???
|
|
![]() |
#13 |
совсем зелен
|
или имеется ввиду что мне на саму форму отчета новый лукап закинуть нада???
|
|
![]() |
#14 |
SAP
|
Цитата:
или имеется ввиду что мне на саму форму отчета новый лукап закинуть нада???
|
|
![]() |
#15 |
SAP
|
А да и эти методы советую создать соответственно на таблицах RContractTypes и RContractTable они могу много еще где пригодиться : )
|
|
![]() |
#16 |
Боец
|
Да, нужно на форму добавить контрол с Lookup'ом. Но проблема в том что формы-то нет, в этом репорте используется Dialog. => по-хорошему, нужно написать форму, перетащить туда все контролы с уже существующего диалога и добавить свой с перекрытым lookup'ом. (можно правда перекрыть lookup и без дополнительной формы, но этот способ не совсем привычен для стандартного Ax программирования). Я бы посоветовал обратиться к более опытным коллегам по работе или к DevGuide, иначе ещё много вопросом возникнет, всего на форуме не расскажешь
|
|
![]() |
#17 |
совсем зелен
|
а как создать свою форму??? и как привязать ее к отчету??? я до этого только передавал элементы в форму Dialog...уж извините за такие вопросы...не знаю я ничего...
![]() |
|
![]() |
#18 |
совсем зелен
|
Цитата:
![]() |
|
![]() |
#19 |
SAP
|
Цитата:
как это можно сделать??? более опытного нет пока...приходится самому возиться...именно поэтому и пишу сюда...
X++: DialogRunbase dialog = super(); dialogOperationTax.visible(false); dialogPrintCVTrans = dialog.addFieldValue(typeId(NoYes), printCVTrans, "@DIS10796", "@DIS10803"); dlgExcelPrintFullAccount = dialog.addFieldValue(typeId(NoYes), excelPrintFullAccount, "@Excel полное имя контрагента", "@Excel полное имя для контрагента"); return dialog; |
|
![]() |
#20 |
совсем зелен
|
хм...я в этом коде мало что понял...но сделал...ругается что переменная DialogRunbase не объявлена...
|
|
Теги |
ax4.0 |
|
![]() |
||||
Тема | Ответов | |||
Помогите с отчетом | 6 | |||
Помогите новичку (Работа с таблицами) | 4 | |||
Помогите новичку: импорт | 6 | |||
помогите новичку | 16 | |||
Помогите новичку Security keys | 4 |
|