15.04.2008, 14:14 | #1 |
совсем зелен
|
Помогите новичку с отчетом
у меня такая проблема...есть отчет "оборотно-сальдовая ведомость" в модуле "Расчеты с клиентами" (CustBalanceTurnoverRegister_RU) нужно в диапазоне на форме указать по какому договору отбирать...но показывается список всех договор заведенных по клиентам...а как отфильтровать этот список по выбранному клиенту???
надеюсь понятно описал проблему... да кстати Dynamics AX 4.0 |
|
15.04.2008, 15:34 | #2 |
SAP
|
А по моему вам проще нажать кнопку выбор, и установить фильтр по нужному для Вас договору.
|
|
15.04.2008, 15:47 | #3 |
совсем зелен
|
|
|
15.04.2008, 15:49 | #4 |
Боец
|
Цитата:
А по моему вам проще нажать кнопку выбор, и установить фильтр по нужному для Вас договору.
Цитата:
как отфильтровать этот список по выбранному клиенту???
X++: range = findOrCreateRange_W(ds, fieldnum(CustTrans, AccountNum)); range.value("XXXX"); Последний раз редактировалось DSPIC; 15.04.2008 в 15:52. |
|
15.04.2008, 15:56 | #5 |
SAP
|
Цитата:
проще для программеров...но не для пользователей...
Последний раз редактировалось konopello; 15.04.2008 в 15:57. Причина: описка |
|
15.04.2008, 16:00 | #6 |
совсем зелен
|
тоесть вложенный датасоурс не нужен???
|
|
15.04.2008, 16:02 | #7 |
Боец
|
Если нужен фильтр только по клиентам то не нужен
Цитата:
... а через неделю они попросят еще одно поле в диалог добавить....... И снова садись и программируй
Последний раз редактировалось DSPIC; 15.04.2008 в 16:06. |
|
15.04.2008, 16:08 | #8 |
совсем зелен
|
|
|
15.04.2008, 16:11 | #9 |
совсем зелен
|
Цитата:
Сообщение от DSPIC
Найдите метод createQueryRun() и вставьте код перед "return": X++: range = findOrCreateRange_W(ds, fieldnum(CustTrans, AccountNum)); range.value("XXXX"); |
|
15.04.2008, 16:21 | #10 |
совсем зелен
|
блин я со своими правками в конец запутался...ситуация такая...стандартно в CustTrans поле RContractAccount имеет тип текст...соответственно когда я по кнопке выбрать пытаюсь выбрать номер договора он не дает...выпадающий список не появляется...
я поменял ему типа на RContractAccount и он стал давать выбирать договора а не просто руками писать номер, но в выпадающем списке отображаются все договора по всем клиентам...как сделать что бы в выпадающем списке были договора тока клиента которого я выбрал...мне не понятно... |
|
15.04.2008, 16:30 | #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(); } |
|
15.04.2008, 16:33 | #12 |
совсем зелен
|
а эти методы где должны находиться??? на query???
|
|
15.04.2008, 16:37 | #13 |
совсем зелен
|
или имеется ввиду что мне на саму форму отчета новый лукап закинуть нада???
|
|
15.04.2008, 16:42 | #14 |
SAP
|
Цитата:
или имеется ввиду что мне на саму форму отчета новый лукап закинуть нада???
|
|
15.04.2008, 16:43 | #15 |
SAP
|
А да и эти методы советую создать соответственно на таблицах RContractTypes и RContractTable они могу много еще где пригодиться : )
|
|
15.04.2008, 16:44 | #16 |
Боец
|
Да, нужно на форму добавить контрол с Lookup'ом. Но проблема в том что формы-то нет, в этом репорте используется Dialog. => по-хорошему, нужно написать форму, перетащить туда все контролы с уже существующего диалога и добавить свой с перекрытым lookup'ом. (можно правда перекрыть lookup и без дополнительной формы, но этот способ не совсем привычен для стандартного Ax программирования). Я бы посоветовал обратиться к более опытным коллегам по работе или к DevGuide, иначе ещё много вопросом возникнет, всего на форуме не расскажешь
|
|
16.04.2008, 10:20 | #17 |
совсем зелен
|
а как создать свою форму??? и как привязать ее к отчету??? я до этого только передавал элементы в форму Dialog...уж извините за такие вопросы...не знаю я ничего...
|
|
16.04.2008, 10:22 | #18 |
совсем зелен
|
Цитата:
|
|
16.04.2008, 10:39 | #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; |
|
16.04.2008, 10:48 | #20 |
совсем зелен
|
хм...я в этом коде мало что понял...но сделал...ругается что переменная DialogRunbase не объявлена...
|
|
Теги |
ax4.0 |
|
Похожие темы | ||||
Тема | Ответов | |||
Помогите с отчетом | 6 | |||
Помогите новичку (Работа с таблицами) | 4 | |||
Помогите новичку: импорт | 6 | |||
помогите новичку | 16 | |||
Помогите новичку Security keys | 4 |
|