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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 22.07.2002, 16:35   #1  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Перейти к основной таблице
Таблица VendTrans -> браузер таблиц -> поле Voucher -> Перейти к основной таблице.

Открылась какая-то "левая" форма без каких либо данных. А нужно чтобы работало. Причем в зависимости от строки должна открываться та или иная форма (например LedgerJournalTrans, VendInvoiceJour).

У кого-нибудь есть идеи хотя бы в каком направлении разбираться ?
Старый 23.07.2002, 08:55   #2  
slava is offline
slava
сибиряк
Самостоятельные клиенты AX
 
468 / 23 (1) +++
Регистрация: 28.12.2001
Адрес: Москва
...... соображения есть, может даже верные
кажется безусловный переход к основной таблице, в зависимости от конкретных значений в строке, строится на основе Relations, а в формах он может перекрываться методом jumpRef() того контрола, из которого вы переходите по ссылке. причем переход происходит не к конкретной таблице, а к <i>форме</i>, которая проставлена в ее свойствах, как FormRef.
Ну и еще вносит свою лепту тип поля, из которого вы "перепрыгиваете". Если у него стоит какой-либо ЕДТ, который связан с таблицей (а именно ссылается на поле), то переход будет осуществлен к <i>форме</i> той таблицы, на которую ссылается ЕДТ.
Нда... Запутанно очень, но, кажется, верно
__________________
С уважением, Вячеслав.
Старый 23.07.2002, 10:35   #3  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Добрый день.

Итак,

Цитата:
кажется безусловный переход к основной таблице, в зависимости от конкретных значений в строке, строится на основе Relations
К одной из двух указанных мною таблиц этот Relation есть (VendTrans.Voucher==VendInvoiceJour.LedgerVoucher). Но переход на эту таблицу не работает.

Цитата:
а в формах он может перекрываться методом jumpRef() того контрола, из которого вы переходите по ссылке. причем переход происходит не к конкретной таблице, а к форме, которая проставлена в ее свойствах, как FormRef.
Создал свою форму, вытащил на нее VendTrans. У VendTrans свойство FormRef установил равным VendInvoiceJournal. Не помогает
jumpRef() - перекрыл, посмотрел - да, он вызывается. Но могу ли я в нем как-нибудь повлиять на результат перехода ?

Цитата:
Ну и еще вносит свою лепту тип поля, из которого вы "перепрыгиваете". Если у него стоит какой-либо ЕДТ, который связан с таблицей (а именно ссылается на поле), то переход будет осуществлен к форме той таблицы, на которую ссылается ЕДТ.
Тип поля Voucher - никаких Relation на него не наложено.
Старый 23.07.2002, 10:42   #4  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Попробую упрастить себе задачу. Пусть есть форма с информацией из VendTrans и на форме есть кнопка, при нажатии на которую я должен переходить на одну из форм - LedgerJournalTransVendPayment или VendInvoiceJournal в зависимости от вида проводки. Причем на открытой форме должен показываться только тот документ, который вызвал эту проводку.

Тогда может при нажатии на кнопку определять какую из форм открывать, ну например так:

PHP код:
void clicked()
{
    
QueryRun qr;
    
VendTrans vt;
    
VendInvoiceJour vij;
    
LedgerJournalTrans ljt;
    
Voucher vch;
    
int type;
    ;
    
super();

    
qr VendTrans_ds.queryRun();
    
vt qr.get(tableNum(VendTrans));
    print 
vt.Voucher;
    
vch vt.Voucher;

    
select from vij where vij.LedgerVoucher == vch;
    
select from ljt where ljt.Voucher == vch;

    if (
vij)
        
type 1;
    else if (
ljt)
        
type 2;
    else 
type 3;

    print 
type;

А затем в зависимости от типа вызывать через MenuFunction нужную форму, передавая в Args свой параметр.

Затем в Init() этих двух форм анализировать, откуда они были вызваны. И если причиной их вызова являлась моя форма, то накладывать фильтр на DataSource.

Вроде все звучит логично, но для решения такой простой задачи выглядит слишком громоздко.

Что Вы думаете насчет этого ?
Старый 23.07.2002, 12:44   #5  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
1.
По-моему, вы зря углубляетесь в программирвание.
Если возникла задача динамически изменять основную таблицу, то скорее всего в консерватории что-то поправить надо. Статическое определение основной таблицы делается в типах.

2.
Если нужно сделать именно динамическое переопределение,
то посмотрите на форму общего журнала, на поле Счет.
В зависимости от типа счета переход к основной таблице будет выполняться по разному (Тип "главная книга" - переход к плану счетов, тип "клиент" - переход к таблице клиентов и т.п.)

Уверен, что скорее всего в постановке есть какие-то дыры, если возникла задача динамической работы с основной таблицей.
Старый 23.07.2002, 13:56   #6  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Уверен, что скорее всего в постановке есть какие-то дыры, если возникла задача динамической работы с основной таблицей.
Почему же. Скорее дело в структуре данных Аксапты.

Есть форма VendTrans в которой хранятся проводки. У пользователя возникает естественное желание посмотреть, на основании чего сделана эта проводка. Проводки создаются на основании того или иного документа. В зависимости от вида документа он хранится в той или таблице, а проводки все складываются все в одну таблицу.

По моему с постановкой задачи тут уже ничего не поделаешь, надо как-то реализовывать этот требование.
Старый 23.07.2002, 14:46   #7  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
ага. извини. я невнимательно вопрос понял.
да в стандартной открывается таблица со счетами-фактурами на суммовые разницы.
Дело в Relation, который добавили в российской версии. Вот и появилась возможность перехода к основной таблице. В международной версии такой возможности нет.

В исходной версии предполагается, что пользователь нажмет на кнопку "документ ГК" или на "документ-основание". А уж оттуда пойдет куда ему надо.
Старый 23.07.2002, 14:52   #8  
PlasticinE is offline
PlasticinE
Смотрящий поверх деревьев (Варварский отморозок)
 
243 / 10 (1) +
Регистрация: 06.12.2001
<Зохавано мудератором>
за неуплату
__________________
It's a dirty job, but someone's got to do it. So?
Старый 23.07.2002, 15:56   #9  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Мне как-то всегда хватало в данной конкретной ситуации использования кнопок "Документ ГК" и "Документ-источник".

Или я что-то не догоняю?...
Золотые слова. Нет, это я торможу. Для просмотра проводок использовалась использовалась не VendTrans, a своя форма, на которой, соответственно не было этих кнопок.

P.S. Теперь есть где посмотреть, как это по нормальному делается.
Старый 05.08.2003, 13:38   #10  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
? а вот такое
Есть две таблицы. Parent и Child.
у Parent-а поле id, а у Сhild-а parentId, у которого в соотв. EDT прописано, что child.parentid=parent.id.
есть форма, в которой есть parentId из Child.
Если мы перейдем к основной таблице - то откроется форма, которая прописана в formRef для Parent-a. И это правильно.

Но вот такой вопрос: можно ли без программирования(то бишь без переопределения jumpRef) заставить систему переходить к formRef Child-a?
Старый 06.08.2003, 13:47   #11  
Andronov is offline
Andronov
Участник
 
108 / 10 (1) +
Регистрация: 10.11.2002
Адрес: г. Пермь
Может не правильно понял... Нужно стоя на поле - ссылке на Parent переходить на FormRef Child'а? Для чего?
Можно определить поле-ссылку на самого себя и тогда переходить по "Перейти к основной таблице" без проблем.
Старый 06.08.2003, 14:12   #12  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
Цитата:
Изначально опубликовано Andronov
Может не правильно понял... Нужно стоя на поле - ссылке на Parent переходить на FormRef Child'а?
именно

Цитата:

Для чего?
надо

Цитата:

Можно определить поле-ссылку на самого себя и тогда переходить по "Перейти к основной таблице" без проблем.
спасибо. попробую, пока переопределил jumpRef.
Старый 06.08.2003, 15:47   #13  
Андре is offline
Андре
Moderator
Сотрудники компании GMCS
 
2,375 / 464 (20) +++++++
Регистрация: 03.12.2001
Цитата:
Но вот такой вопрос: можно ли без программирования(то бишь без переопределения jumpRef) заставить систему переходить к formRef Child-a?
Может я не так понял вопрос, но попробую ответить.... Перекрыв jumpRef можно "провалить" любой контрол на любую нужную форму.

Вот для stringEdit - контрола, который должен проваливаться в справочник номенклатуры:



PHP код:
public void jumpRef() 

Args args
FormRun formRun
InventTable inventTable


select inventTable where inventTable.ItemId == this.text(); 

args = new Args(formstr(InventTable)); 
args.record(inventTable); 
formRun classFactory.formRunClass(args); 
formRun.init(); 
formRun.run(); 
formRun.detach(); 

super(); 

Старый 07.08.2003, 04:54   #14  
Антон Солдатов is offline
Антон Солдатов
Соучастник
Аватар для Антон Солдатов
 
386 / 27 (1) +++
Регистрация: 29.12.2002
Адрес: Новосибирск
Цитата:
Изначально опубликовано Андре

Может я не так понял вопрос, но попробую ответить.... Перекрыв jumpRef можно "провалить" любой контрол на любую нужную форму.
это то понятно %) так и сделано. вопрос был как можно обойтись без этого.
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Фильтрование записей при "переходе к основной таблице" demID DAX: Программирование 10 18.11.2015 12:52
Засада с позиционированием при переходе к основной таблице. В чем дело? AK9 DAX: Программирование 17 30.11.2007 14:42
Переход к основной таблице договоров KolesOlya DAX: Программирование 12 11.04.2007 10:28
Переход на правильную запись при Переходе к основной таблице. - 2 Anais DAX: Программирование 2 01.11.2004 17:14
Переход на правильную запись при Переходе к основной таблице. Anais DAX: Программирование 11 29.06.2004 19:16
Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

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

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

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