Главная » Айтида » Айтида. Алгоритмы округления
Русфонд

Айтида. Алгоритмы округления

24 ноября 2012 - Рубрики Айтида

1580 просмотров

В сайдбар справа добавлена кнопка Google+. Если вам поможет данный материал, прошу вас нажмите на кнопку - порекомендуйте сайт в Google.

Привет всем!

Недавно на форуме обсуждалась тема округления цен в документе переоценки Айтиды. Продублирую эту тему здесь. Сегодня мы посмотрим алгоритмы настройки округления под определенные задачи, которые невозможно решить стандартными методами округления, преднастроенными в Айтиде.

Итак, заходим в справочник алгоритмов округления (Параметры — Алгоритмы округления)

1) округление до 5 рублей

2) округление до «красивых цен», по типу 9999.99

3) настраиваем несколько кнопок для различных видов округления

Сначала идем в точку зрения и для документа Переоценка ТМЦ в расширенных реквизитах добавляем новую кнопку

Текст для каждого алгоритма округления прописывается свой. На примере, для округления до 50 копеек

ОтправитьСообщение(_ДЕСКРИПТОРОКНА, _СООБЩЕНИЕВЫПОЛНИТЬКОМАНДУ, "БЛОКИРОВАТЬПЕРЕРИСОВКИ", 1 );
ОтправитьСообщение(_ДЕСКРИПТОРОКНА, _СООБЩЕНИЕВЫПОЛНИТЬКОМАНДУ, "ПЕРЕЙТИВНАЧАЛО" );
While (!_КОНЕЦФАЙЛА)
     {    
          ОтправитьСообщение( _ДЕСКРИПТОРОКНА, _СООБЩЕНИЕПОЛУЧИТЬЗНАЧЕНИЕПОЛЯВСТРОКЕ, "Cena");
          ЦЕНА = _ЗНАЧЕНИЕПОЛЯ;
        рез = 0.00;
         ЦелаяЧасть = ЗАПРОС("SELECT CAST("+ЦЕНА+" AS INT)");
         Разница = ЦЕНА-ЦелаяЧасть;
      if (Разница<0.5)
      {
         if(Разница>=0.25)
         {
            рез = ЦелаяЧасть+0.5;
         }
         if(Разница<0.25)
         {
             рез = ЦелаяЧасть;
         }
       }
        if(Разница>=0.5)
       {
         if(Разница>=0.75)
         {
            рез = ЦелаяЧасть+1;
         }
         if(Разница<0.75)
         {
            рез = ЦелаяЧасть+0.5;
         }
       }
       НОВАЯЦЕНА = рез;     
          ОтправитьСообщение(_ДЕСКРИПТОРОКНА, _СООБЩЕНИЕУСТАНОВИТЬЗНАЧЕНИЕПОЛЯВСТРОКЕ, "cena", НОВАЯЦЕНА);
          ОтправитьСообщение(_ДЕСКРИПТОРОКНА, _СООБЩЕНИЕВЫПОЛНИТЬКОМАНДУ, "ПРОПУСТИТЬ");
     }
ОтправитьСообщение(_ДЕСКРИПТОРОКНА, _СООБЩЕНИЕВЫПОЛНИТЬКОМАНДУ, "БЛОКИРОВАТЬПЕРЕРИСОВКИ", 0 );

Использованы материалы, предоставленные на форуме участниками F736SN и Rulan87, за что им большое спасибо.

Если этот материал оказался вам полезен, порекомендуйте его в в Google, нажав кнопку Google+ справа в сайдбаре или через кнопки социальных сервисов ниже.

П.С. не забудьте оставить комментарий к статье, а также поделиться ссылкой с друзьями и коллегами через социальные сервисы или скопировав ссылку на статью ниже. Кроме того, вы можете предложить тему статьи через кнопку слева "Предложить тему статьи". Там же можно оставить пожелания, идеи по развитию сайта, а также благодарности (ну а вдруг)
П.П.С. предлагаю вам также вступить в Группа Вконтакте!группу Вконтакте, где вы сможете пообщаться с участниками на интересующие вас темы. Смелее!!!
Если вы больше времени проводите в Twitter, то за обновлениями на сайте можно следить, подписавшись на мою лентуTwitter: follow me!

 

Возможно вам также будут интересны статьи :

 

Предыдущие материалы из данной категории:

Комментариев: 3 , , , , , ,

Понравилась статья? Поделитесь ссылкой




Комментарии к «Айтида. Алгоритмы округления»:

  1.  Александр 19 марта 2013 13:06:50

    Добрый день! А округление в большую сторону до 10 рублей(110/770/1120/5460 и.т.д.) Как прописать?

    •  Руслан 19 марта 2013 15:11:04

      Добрый день!
      в полях
      добавить до округления — 4.9999
      умножить до округления — 0.1000
      умножить после округления — 10.0000

Оставьте комментарий:




:wink: :twisted: :roll: :oops: :mrgreen: :lol: :idea: :evil: :cry: :arrow: :?: :-| :-x :-o :-P :-D :-? :) :( :!: 8-O 8)

Я человек, а не бот.