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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 15.07.2004, 14:14   #1  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
? как вывести номер строки в гриде?
необходимо в форме salesTable в гриде для salesline вывести номера строк по порядку 1,2,3 ...
(поле linrnum было модифицировано при создании строк и зранит длугие значения)
Старый 15.07.2004, 14:34   #2  
maxsmirnov is offline
maxsmirnov
экс-модератор
 
268 / 25 (1) +++
Регистрация: 08.07.2003
Адрес: Москва
ну считайте все лайннумы и присвойте им номера по порядку.
Старый 15.07.2004, 14:45   #3  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
поле лайннум мне менять нельзя
оно используется для сортировки по приоритету
Старый 15.07.2004, 15:17   #4  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
вот что меня всегда удивляло - как беспечно народ относится к быстродействию.

funnut, во-первых грид обычно не содержит ВСЕ строки. Это значит, что если вы смотрите середину таблицы, то грид ничего не знает о первых записях таблицы.
поэтому грид вы упоминаете совершенно напрасно. вам они никак не поможет.

Значит номера строк надо хранить в таблице.

Далее, ответьте пожалуйста, как вы собираетесь вставлять строчку в середину длинного (в несколько тысяч строк) заказа, если у вас есть целочисленная нумерация строчек?

Если же вы запретили вставлять строчки в середину - то рассчитывайте max по вашему полю и инициализируйте его при создании.

А можно главный вопрос? Зачем вам это в заказе?
Старый 15.07.2004, 15:22   #5  
Hamster is offline
Hamster
Участник
 
687 / 13 (2) ++
Регистрация: 15.05.2003
>А можно главный вопрос? Зачем вам это в заказе?

Дай угадаю зачем.....

Логистика заказчика использует номер строки заказа при всех движениях товара, угадал?
Старый 15.07.2004, 15:26   #6  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Универсальный способ для любого FormDataSource
PHP код:
display LineNum lineNum(SalesLine _salesLine)
{
    
SalesLine   line;
    
LineNum     ret;
    ;
    
line this.getFirst();
    
ret 1;
    while (
line && !line.equal(_salesLine)) {
        
line this.getNext();
        
ret++;
    }

    return 
ret;

P.S: Разумеется, при переходе к последней записи таблицы быстродействие значительно снизится (при больших наборах данных), так как будут считываться все записи.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 15.07.2004, 15:32   #7  
ppson is offline
ppson
Участник
Аватар для ppson
Ex AND Project
1C
 
2,102 / 114 (8) +++++
Регистрация: 25.06.2002
Адрес: SPb, Msk
Цитата:
Изначально опубликовано Hamster
Логистика заказчика использует номер строки заказа при всех движениях товара, угадал?
Есть и такое счастье у менеджеров по продажам .
Но в этом случае важно отслеживать не сам заказ, строки, т.е. вполне возможно необходимо осуществлять сквозную номерацию строк заказов ... ? при помощи номерной серии ... ? групп нумерации ... ? recId ... ?
__________________
Старый 15.07.2004, 15:47   #8  
Hamster is offline
Hamster
Участник
 
687 / 13 (2) ++
Регистрация: 15.05.2003
>вполне возможно необходимо осуществлять сквозную номерацию строк заказов ... ?
Возможно.... Если хватит сил объяснить этим менеджерам что такое "сквозная нумерация"
Старый 15.07.2004, 15:54   #9  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
а вы не объясняйте термин "сквозная нумерация"

Скажите что вот это (и покажите пальцем) код строки. Код строки никогда не изменяется в заказе.

Цитата:
Логистика заказчика использует номер строки заказа при всех движениях товара, угадал?
Во всех движениях и во всех документах? Это ж сколько в Аксапте перепахивать придется...

Тем более номер строки использовать НЕЛЬЗЯ!
Представьте, что вы создали заказ перенумеровали строки по порядку, а затем выписали частичную накладную. В этой частичной накладной номера строк будут с дырками. Или НЕ БУДУТ совпадать с номерами строк в заказах

Спрашивается. А нафига?
Старый 15.07.2004, 15:54   #10  
mazzy is offline
mazzy
Участник
Аватар для mazzy
Лучший по профессии 2015
Лучший по профессии 2014
Лучший по профессии AXAWARD 2013
Лучший по профессии 2011
Лучший по профессии 2009
 
29,472 / 4494 (208) ++++++++++
Регистрация: 29.11.2001
Адрес: Москва
Записей в блоге: 10
Цитата:
Изначально опубликовано Hamster
Логистика заказчика использует номер строки заказа при всех движениях товара, угадал?
Кстати, в Аксапте такая фигня уже есть.
Называется Лот (inventTransID)
Старый 15.07.2004, 16:06   #11  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
пасиба

ну хотят менеджеры видеть номера строк и всё тут
х.. с ними пусть тормозят
Старый 15.07.2004, 16:18   #12  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
Re: Универсальный способ для любого FormDataSource
Цитата:
Изначально опубликовано Maxim Gorbunov
PHP код:
display LineNum lineNum(SalesLine _salesLine)
{
    
SalesLine   line;
    
LineNum     ret;
    ;
    
line this.getFirst();
    
ret 1;
    while (
line && !line.equal(_salesLine)) {
        
line this.getNext();
        
ret++;
    }

    return 
ret;

P.S: Разумеется, при переходе к последней записи таблицы быстродействие значительно снизится (при больших наборах данных), так как будут считываться все записи.
глючит это дело:
переходишь к последней строке цифры начинаются с единицы
с низу вверх
Старый 15.07.2004, 16:20   #13  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
Цитата:
Изначально опубликовано mazzy
вот что меня всегда удивляло - как беспечно народ относится к быстродействию.

funnut, во-первых грид обычно не содержит ВСЕ строки. Это значит, что если вы смотрите середину таблицы, то грид ничего не знает о первых записях таблицы.
поэтому грид вы упоминаете совершенно напрасно. вам они никак не поможет.

Значит номера строк надо хранить в таблице.

Далее, ответьте пожалуйста, как вы собираетесь вставлять строчку в середину длинного (в несколько тысяч строк) заказа, если у вас есть целочисленная нумерация строчек?

Если же вы запретили вставлять строчки в середину - то рассчитывайте max по вашему полю и инициализируйте его при создании.

А можно главный вопрос? Зачем вам это в заказе?
грид ведь знает номер текущей строки
Старый 15.07.2004, 16:35   #14  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Цитата:
Изначально опубликовано funnut
грид ведь знает номер текущей строки
Цитата:
Изначально опубликовано funnut
переходишь к последней строке цифры начинаются с единицы
Вы сами себе и ответили. Grid может максимум узнать номер строки в display-буфере.

Про переход к последней записи в предыдущем сообщении, я, конечно, ошибся. Axapta работает интеллектуальнее
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 15.07.2004, 16:42   #15  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
но ведь когда нажиманшь на скрол бар в гриде он всегда показывает номер строеки
независимо от того перешел ты к ней пролистав все или сразу перешел скажем к последней строке
Старый 15.07.2004, 17:16   #16  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
при переходе к последней записи, номер не пишется
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 15.07.2004, 17:18   #17  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
и что делать?
Старый 15.07.2004, 17:23   #18  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 645 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Лучший вариант - использовать номер лота
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me
Старый 15.07.2004, 17:36   #19  
funnut is offline
funnut
Участник
 
17 / 10 (1) +
Регистрация: 08.07.2004
Адрес: mscw
Цитата:
Изначально опубликовано Maxim Gorbunov
Лучший вариант - использовать номер лота
номер лота не рулит
мне нужно именно цифры от 1 до количество строк в заказе
Старый 16.07.2004, 12:31   #20  
dn is offline
dn
Участник
Самостоятельные клиенты AX
 
486 / 159 (6) ++++++
Регистрация: 26.03.2003
Адрес: Москва
На вскидку, на методе active() источника данных SalesTable формируешь map для строк этого заказа - (номер лота строки - порядковый номер). А в дисплей методе на источнике данных SalesLine возвращаешь по номеру лота порядковый номер.
Теги
grid, x++

 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
ComExcelDocument_RU по именнованной ячейки вывести номер ее строки. Poleax DAX: Программирование 37 15.10.2008 14:06
Открытие формы с деталями активной записи в гриде sweeper DAX: Программирование 4 19.09.2008 15:55
Отследить момент создания строки в гриде dreamer DAX: Программирование 2 20.06.2007 13:38
Как задать высоту строки в гриде в символах. Logger DAX: Программирование 8 11.08.2005 13:03
Выбраные строки в гриде. bagyr DAX: Программирование 28 25.03.2005 10:01

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

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

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