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

 
 
Опции темы Поиск в этой теме Опции просмотра
Старый 18.03.2003, 10:52   #1  
Sharky is offline
Sharky
Участник
 
118 / 10 (1) +
Регистрация: 10.12.2002
Progress Bar в CodeUnit Attain
Привет Всем!

Вопрос на засыпку:
Создаю CodeUnit , в котором в таблице для некоторых полей меняю какое-либо значение, и, хочу вывести прогресс бар....Как это можно сделать?
Старый 18.03.2003, 13:08   #2  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Окно -> Dialog
Всего -> Integer
Позиция -> Integer
Таблица -> Record

Окно.OPEN('Прогресс ' + '@1@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@');

Таблица.reset;
Всего:=Таблица.Count;
Позиция:=0;
if Таблица.find('-') then begin
repeat
Позиция+=1;
Окно.UPDATE(1,ROUND(Позиция/Всего*10000,1));
until Таблица.next()=0;
end;
Окно.CLOSE;
Старый 18.03.2003, 14:50   #3  
Sharky is offline
Sharky
Участник
 
118 / 10 (1) +
Регистрация: 10.12.2002
СПАСИБИЩЕ
Огромный Тебе сабж и, при случае, бутылку пива :-)
Старый 18.03.2003, 17:10   #4  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Нет проблем.
Кстати, на больших таблицах, для подсчета количества строк, вместо COUNT лучше использовать COUNTAPPROX. Будет немного быстрее.
Старый 19.03.2003, 13:27   #5  
Sharky is offline
Sharky
Участник
 
118 / 10 (1) +
Регистрация: 10.12.2002
Привет!
Слушай, мона задать тебе еще вопросик?

В общем ситуация такая:
общий заказ.
Набор строк в нем всегда одинаковый, известный и постоянный, к примеру 10 позиций.
Теперь, хочу сделать так:
На Header повесить еще одну закладку и повесить туда 10 CheckBox'ов, считая что первый чекбоск отображает первый товар, второй-второй и тд....
Далее:
При открытии формы хотся, чтобы все чекбоксы активировались, т е если колво соответствующего товара=1, то чекбокс был TRUE, если же =0, то, соответственно FALSE.
И, если изменить значение чекбокса, то, изменится и количество товара.

А теперь проблемы:
1 - На какой тригер повесить установку начального значения тригера, чтобы он настроился при открытии формы и пересчитывался при изменении кол-ва товара с строках заказа.
Код тригера я сделал такой:
PHP код:

SaleLineToChange
.SETFILTER("Document Type",'4');
SaleLineToChange.SETFILTER("Document No.","No.");
SaleLineToChange.SETFILTER("No.",'70071');
SaleLineToChange.FIND('-');
IF 
SaleLineToChange.Quantity <>0 THEN
  Fin1
:=TRUE
ELSE
  
Fin1:=FALSE
Тригер я повесил на OnActivate() , но работает он коряво

2- Как Сделать так, чтобы при изменении значения чекбокса не только изменилось количество товара в соответствующей строке, а запустился тригер строки продажи(он срабатывает, когда меняешь колво ручками....).(То есть подставились бы соотв количества для отгрузки, для выставления счета, пересчиталась сумма строки и тд и тп).

Вот такая вот задачка, если мысли будут какие нить, делись!
Заранее спасибо
Старый 19.03.2003, 16:17   #6  
Rungart is offline
Rungart
Участник
 
491 / 12 (1) ++
Регистрация: 13.01.2003
Адрес: Украина
Во-первых, для данной ситуации лучше использовать триггер OnAfterGetRecord в форме заголовка. Он выполняется всегда, когда ты получаешь запись из БД. Т.е. если пользователь нажмет Page Up или Page Down, произойдет его выполненте.
Далее, когда ты изменяешь количество в строках, выполняется триггер из таблицы Продажа Строка (Sales Line), в котором и прописаны все изменения в строке, т.е. пересчет скидок, сумм и т.д. Чтобы заставить его выполниться принудительно делаем следующее:
Validate(Quantity,1);
К сожалению, как сделать обратное преобразование, т.е. чтобы при изменении количества в строках изменялась галочка, я не знаю. Возможно, если ты добавишь эти поля (Fin1...Fin10) в таблицу Продажа Заголовок (Sales Header), то тогда в таблице Продажа Строка на триггер OnValidate для поля количества в самом конце можно сделать так:
SalesHeader.get("Document Type","Document No."); //получаем заголовок продажи
{ получаешь номер строки в текущем документе, к примеру, 5
...
}
if SalesHeader.Quantity<>0 then begin
SalesHeader."Fin5":=true;
end else begin
SalesHeader."Fin5":=false;
end;
SalesHeader.modify;
Старый 19.03.2003, 18:02   #7  
Sharky is offline
Sharky
Участник
 
118 / 10 (1) +
Регистрация: 10.12.2002
По поводу изменений строк из хедера: все сработало, КЛЕВА!!!!!!!!!
По поводу изменений хедера из строк: все работает, только пришлось повесить обработчик на тригер OnActivateForm().........


ПАСИБА!
Старый 02.07.2003, 06:56   #8  
Галина is offline
Галина
Участник
 
1,132 / 28 (3) +++
Регистрация: 01.07.2003
Извините, а не подскажите, что такое Progress bar? и где используют.
Заранее, спасибо.
Старый 02.07.2003, 09:50   #9  
Yoil is offline
Yoil
NavAx
NavAx Club
Лучший по профессии 2017
Лучший по профессии 2009
 
1,574 / 70 (6) ++++
Регистрация: 20.11.2002
Адрес: Msk
Progress Bar - это просто украшение по большому счету. Окошко, в котором нарисована полоска серого цвета, по ходу выполнения каких-то действий полоска потихоньку заполняется синим и поверх от нее отображается, насколько процентов она заполнена (цвета не обязательно такие). Используется например так : есть отчет, который обрабатывает таблицу, в таблице 10000 записей. Соответственно, в начале выполнения отчета прогрессбар будет заполнен на ноль процентов, в конце - на сто процентов (каждые 100 записей таблицы - 1%). Наблюдать прогресс бар можно даже в интернет эксплорере (пока страничка открывается, внизу окна синяя полоска растет, правда, процентики не пишутся).
 

Похожие темы
Тема Автор Раздел Ответов Посл. сообщение
Navision Attain через Citrix Alex_V NAV: Администрирование 2 15.12.2003 17:43
Переход на Navision Attain Makc_1 NAV: Прочие вопросы 3 30.07.2003 14:36
attain - Переход на attain Helen NAV: Прочие вопросы 8 04.06.2003 20:34
80 Codeunit Attain Sharky NAV: Программирование 5 31.03.2003 16:52
1С и Attain SlavaShevtsov NAV: Прочие вопросы 2 25.02.2003 17:20

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

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

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