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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 12.04.2002, 10:57   #41  
Viper is offline
Viper
Участник
 
5 / 10 (1) +
Регистрация: 08.04.2002
Адрес: С-Петербург
Да но всегда можно изхитриться. Например привязать объект к нескольким классам.

Зато можно использовать более понятный код.
Старый 18.07.2002, 08:12   #42  
jonin is offline
jonin
Участник
 
1 / 10 (1) +
Регистрация: 12.07.2002
Установили Классификатор, но лезут ошибки такие-же как у Андре, по совету Alexey Smirnov закоментил строки, но теперь новые проблемы, при выборе в дереве класса в форме Управление запасами/Номенктлатура вылазит ошибка

Невозможно выбрать запись в таблице 'Картотека номенклатуры' ('InventTable')
Временные таблицы должны быть вложенными (inner), когда вы объединяете их оператором join с постоянными таблицами.

и информация

(C) [ 0: 47] \Jobs\
(C) [ 0: 2992] \Classes\HB_ACUtils\RunTableFilter
(C) [ 0: 130] \Classes\HB_ACUtils\TreeLookUp_selectionChanged
(C) [ 0: 85] \Classes\FormTreeControl\SelectionChanged

т.к. коментирование строк было в RunTableFilter, следовательно ошибка точно связана с коментированием

Как лечить ?
Старый 23.09.2002, 12:30   #43  
VadimD is offline
VadimD
Участник
 
4 / 10 (1) +
Регистрация: 01.07.2002
Абстрактный классификатор
Устранение очередного бага Абстрактного классификатора.
Описание бага:
Невозможность применения при наличии Ranges.
Причина:
В методе HB_ACUtils::RunTableFilter в случае отсутствия у Ranges value вместо '*'
вставляется пустая строка.
Один из путей ререшения:
добавить условие if(q.dataSourceNo(1).range(i).value()) на формирование строки QStr.
то есть вместо кода
PHP код:
    q table_ds.queryRun().query();
    for (
i=1<= q.dataSourceNo(1).rangeCount(); i++)
    {

        
qbr q.dataSourceNo(1).range(i);
        
QStr += " && T." fieldid2name(q.dataSourceNo(1).table(),qbr.field()) + " like '" q.dataSourceNo(1).range(i).value() + "'";
    } 
вставить код
PHP код:
    q table_ds.queryRun().query();
    for (
i=1<= q.dataSourceNo(1).rangeCount(); i++)
    {
    
//если поле пусто - НЕ ВЫВОДИТЬ!!!
        
if(q.dataSourceNo(1).range(i).value())
        {
        
qbr q.dataSourceNo(1).range(i);
        
QStr += " && T." fieldid2name(q.dataSourceNo(1).table(),qbr.field()) + " like '" q.dataSourceNo(1).range(i).value() + "'";
        }
    } 
Старый 26.09.2002, 10:09   #44  
VadimD is offline
VadimD
Участник
 
4 / 10 (1) +
Регистрация: 01.07.2002
Устранение очередного недостатка работы абстрактного классификатора. При прокрутке фильтруемой таблицы
к последней строке фильтрация выключается. Для устранения необходимо в фильтруемой таблице переопределить метод

public int last()
{
int ret;
ret = super();

AC.RunTableFilter(true);

Return ret;

}
Старый 26.09.2002, 10:22   #45  
VadimD is offline
VadimD
Участник
 
4 / 10 (1) +
Регистрация: 01.07.2002
Устранение очередного недостатка работы абстрактного классификатора. При изменении имени ключевого поля запись
исчезает из классификатора. Для устранения добавлен код в метод SysRecordInfo/renamePrimaryKey, изменяющий
ключевое поле и в таблице HB_AClassLinkTable:

void renamePrimaryKey()
{

HB_AClassLinkTable CLT;
HB_AClassLinkKeyValue _KeyValue;
...
;
...
//переименование ключевого поля в таблице HB_AClassLinkTable
_KeyValue = oldValue;
select firstonly * from CLT where CLT.KeyValue == _KeyValue;
if(CLT)
{
CLT.KeyValue = newValue;
CLT.update();
}
Старый 11.05.2004, 11:04   #46  
Firestarter is offline
Firestarter
Участник
 
49 / 10 (1) +
Регистрация: 11.11.2003
Установил я классификатор 1.1 на 3.0 sp1 и вылезло очень много ошибок при компиляции -- по беглому анализу мне показалось, что текущая версия расчитана на Аксапту 2.5? Возможно я ошибаюсь

У кого-нибудь был опыт внедрения на Аксапте 3.0? Возможно есть живой проектик...
Старый 13.09.2004, 15:34   #47  
Camper is offline
Camper
Участник
 
4 / 10 (1) +
Регистрация: 13.09.2004
Многоуважаемый All
еще один вопрос о классификаторе
Инструкции, представленные по установке и настройке - исчерпывающие, функционал потрясающий (отдельное спасибо автору), пользуемся около года, но есть одна проблемка, решить которую к сожалению самостоятельно не получается . На форме InventTable есть источники данных Purch, Invent, Sales (таблица InventTableModule). Эти источники связанны по InnerJoin с InventTable. При дезактивированном классификаторе записи в этих источниках ведут себя штатно, он стоит активировать классификатор, как источники начинает "клинить" т.е. они перестают обращать всякое внимание на курсор на InventTable.
если добавляем в метод \Forms\InventTable\Data Sources\InventTable\Methods\active код
PHP код:
...
/* Такое тоже не работает
    Purch_ds.query().dataSourceNo(2).addRange(fieldnum(InventTableModule, ItemId)).Value(inventTable.ItemId);
    Purch_ds.findValue(fieldName2id(TableName2id("InventTableModule"),"ItemId"),
          InventTableModule::find(inventTable.ItemId,ModuleInventPurchSales::Purch).ItemId);
с findRecord тоже самое.
*/
    
info(inventTable.ItemId " inventTable");
    
info(Purch.ItemId  " Purch");
    
info(Invent.ItemId " Invent");
    
info(Sales.ItemId  " Sales");
... 
и пощелкаем по классификатору, то получим такое сообщение:
НМ19601 inventTable
НМ00001 Purch
НМ00001 Invent
НМ00001 Sales
Как вариант, конечно, можно наделать edit методы на таблице inventTable, но уж очень не хочется
Заранее спасибо.
Старый 17.09.2004, 18:40   #48  
Camper is offline
Camper
Участник
 
4 / 10 (1) +
Регистрация: 13.09.2004
:(
Видимо никто не знает ответ, интересно, кто нибудь вообще пользуется формой InventTable + Абстрактный классификатор
Старый 20.09.2004, 12:11   #49  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
сами разработчики - точно пользовались
детали мне не известны
Старый 21.09.2004, 17:30   #50  
Camper is offline
Camper
Участник
 
4 / 10 (1) +
Регистрация: 13.09.2004
Lightbulb
Все таки наверное не пользовались, так как в случае использования, датасорсы на таблице InventTableModule, связанные по InnerJoin с InventTable перестают отображать реальные данные.
На всякий случай, если вдруг кого нибудь заинтересует мое решение. я сделал методы на inventTable_ds подобные приведенному.
PHP код:
// метод подтягивает среднескладскую цену
edit Price inventPrice (boolean      _set,
                       
InventTable  _inventTable,
                       
Price        _price)
{
    
InventTableModule   InventTableModule;
    
Price               price;
    ;
    
ttsbegin;
    
InventTableModule  InventTableModule::find_inventTable.ItemIdModuleInventPurchSales::Invent_set);

    
price InventTableModule.Price;

    if (
_set)
    {
        
InventTableModule.Price _price;
        
InventTableModule.write();
        
price InventTableModule.Price;
    }
    
ttscommit;
    return 
price;

Затем перекроил немного форму, чтобы отображались данные не из
Purch, Invent и Sales.
кривовато, кропотливо, но работает.
Старый 21.09.2004, 17:46   #51  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
пользовались, это 100% точные данные
просто на форуме выложена не последняя версия классификатора - он постоянно лечился от глюков и оптимизировался.
не относитесь к нему как к конечному продукту - он таковым не является.
Старый 21.09.2004, 17:56   #52  
Camper is offline
Camper
Участник
 
4 / 10 (1) +
Регистрация: 13.09.2004
тогда наверное решение по глюку со связанными таблицами - особо засекреченная тема, а по поводу конечного продукта - конечно, согласен, и не не обманывался. хотя тоже самое можно сказать про любой программный продукт
Старый 17.01.2005, 13:52   #53  
AKit_3 is offline
AKit_3
Участник
 
9 / 10 (1) +
Регистрация: 17.06.2004
Адрес: Moskow
?
PHP код:
//class HB_ACUtils
void TreeLookUp_selectionChanged ()
{
    
int recID this.TreeLookup().getSelection();
    ;

    if (
recID 0curClassID this.RecID2ClassID (recId);
    else 
curClassId recId;

    
this.RunTableFilter ();

    if (
bShowGridList)
    {
//        tableLookupClass_ds.
        
this.SelectedClassFilter();
        
tableLookupClass_ds.executeQuery();
    }
}
class 
HB_ACUtils 
подчеркивает tableLookupClass_ds.executeQuery();
Выдается ошибка Класс FormControl не содержит эту функцию.
В чем может быть дело?

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
lookup+Классификатор a-da DAX: Программирование 4 24.04.2009 11:55
Классификатор Azat DAX: Программирование 4 31.01.2005 18:32
Абстрактный классификатор Swetik DAX: База знаний и проекты 17 23.01.2004 16:00
Абстрактный классификатор (версия 1.1) Maxim Gorbunov DAX: База знаний и проекты 0 25.03.2002 19:03
Абстрактный классификатор (версия 1.0) Maxim Gorbunov DAX: База знаний и проекты 3 29.12.2001 06:15

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

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

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