Генератор случайного числа

отредактировано March 2017 Раздел: FastReport VCL
Я не программист.Есть отчёт в прилагаемом файле, как номер наряда [DocumID] умножить на любое случайное число(как на картинке)? Можно проще... как дату [DocumDate] умножить на любое число чтобы потом из него сделать 5значное в пределах 9999-99999.зы. Никак архив не могу приложить https://yadi.sk/d/cTCd7QzX3FaZJN ps.ps. Ну никак у меня не получается умножить(разделить, сложить и тд) на число ни [DocumID] ни [DocumDate]

Комментарии

  • gpigpi
    отредактировано 20:01
    Используйте [Round(Random * 99999)]
  • отредактировано 20:01
    gpi написал: »
    Используйте [Round(Random * 99999)]
    работает :) а как на число умножить и вероятность повтора как исключить?
  • gpigpi
    отредактировано 20:01
    написал:
    а как на число умножить
    Используйте *
    написал:
    вероятность повтора как исключить
    Создаёте массив сгенерированных значений, генерируете новое значение, проходите по массиву в поиске уже сгенерированного значения, если совпадений нет - заносите в массив и используете, если есть - генерируете повторно.
    Вместо массива можете использовать список
  • отредактировано March 2017
    gpi написал: »
    Используйте *

    Создаёте массив сгенерированных значений, генерируете новое значение, проходите по массиву в поиске уже сгенерированного значения, если совпадений нет - заносите в массив и используете, если есть - генерируете повторно.
    Вместо массива можете использовать список
    Повторюсь ... я не программер но за повторяемость уточнить хотелось (отсутствие простого решения типа добавить какие-то символы к команде) но не критично (это внутри конторский шифр одноразовый на выдачу товара) чтобы этот код хотя бы в 100 комбинациях не повторялся.зы.зы. Действие(уможить сложить и тд) ни как не работает, что на что как умножить выглядит [DocumID] на 5....(уможить сложить и тд) может скобки не правильно ставлю....я в блокноте редактирую.ps. Генератор если умножить на номер документа это будет регенрат 100% отличный от повторяемого.
  • gpigpi
    отредактировано 20:01
    написал:
    Действие(уможить сложить и тд) ни как не работает, что на что как умножить выглядит [DocumID] на 5....(уможить сложить и тд) может скобки не правильно ставлю....
    [<DocumID> * Round(Random * 99999)]
  • отредактировано March 2017
    gpi написал: »
    [<DocumID> * Round(Random * 99999)]
    я тоже так думал просто.... докумиде в какие только скобки не ставил...ошибка чтения формата.зы. [<DocumID> *5] тоже не прокатывает.зы.Как я понял все регенраторы от время системного работают? тогда в принципе достаточно
  • gpigpi
    отредактировано 20:01
    Какой тип данных у DocumID? Числовой или строковый? Какие значения принимает?
    Попробуйте [StrToInt(VarToStr(<DocumID>)) * Round(Random * 99999)]
  • отредактировано March 2017
    gpi написал: »
    Какой тип данных у DocumID? Числовой или строковый? Какие значения принимает?
    Попробуйте [StrToInt(VarToStr(<DocumID>)) * Round(Random * 99999)]
    strtoint ..пробовал не работает...никакое действие не работает по отношению к строке DocumID ( это номер документа числовой).ps. Задача свелась к простому действию КАК [DokumID] умножить(разделить прибавить и тд) на 2 например?зы.Теоретически нужно номер документа (наряд-заказ который в приложенном файле) умножить на любое число ... а дальше генерацию случайного числа можно придумать и оно будет привязано во всех документах и отчётах одинаковое.
  • gpigpi
    отредактировано 20:01
    написал:
    strtoint ..пробовал не работает...никакое действие не работает по отношению к строке DocumID ( это номер документа числовой)
    Для начала пришлите Ваш текущий шаблон (fr3)
    Если [StrToInt(VarToStr(<DocumID>)) * Round(Random * 99999)] в TfrxMemoView не работает, обращайтесь к разработчикам программы. А уж они обратятся в поддержку FR в случае бага
  • отредактировано March 2017
    gpi написал: »
    Для начала пришлите Ваш текущий шаблон (fr3)
    Если [StrToInt(VarToStr(<DocumID>)) * Round(Random * 99999)] в TfrxMemoView не работает, обращайтесь к разработчикам программы. А уж они обратятся в поддержку FR в случае бага
    шаблон в в архиве темы https://yadi.sk/d/cTCd7QzX3FaZJN ..разработчик программы тоже самое пишет.. я его тоже спрашиваю как умножить [DokumID] на число он тоже самое отвечает но не работает это.зы. конкретно пишет strtoInt(<DocumID>)*5]

    сами упростили вопрос - сами бы и нашли ответ. материалов полно - компонент fastreport5 ... НЕ РАБОТАЕТ.зы. может это реально косяк что нельзя командой strtolnt преобразавоть строку с целым значением в числовое(хотя DocumID и так вроде числовое) чтобы потом простое математическое действие над ним совершить
  • gpigpi
    отредактировано 20:01
    написал:
    шаблон в в архиве темы https://yadi.sk/d/cTCd7QzX3FaZJN
    Нужен текущий шаблон, в котором не работает умножение
    написал:
    материалов полно
    Нужен тестовый проект или шаблон. Такой, как test.fr3 в http://my-files.ru/bhv45o
    В test.fr3 умножение работает. Там же приложил Ваш шаблон с исправленным выражением в Memo3
  • отредактировано March 2017
    gpi написал: »
    Нужен текущий шаблон, в котором не работает умножение

    Нужен тестовый проект или шаблон. Такой, как test.fr3 в http://my-files.ru/bhv45o
    В test.fr3 умножение работает. Там же приложил Ваш шаблон с исправленным выражением в Memo3
    Всё работает Спасибо!!! уж извините я не програмист проблема в этих скобках и ковычках...их надо правильно расставить и ещё добавить что то о чём я не сведушь StrToInt(VarToStr(<DocumID>))*х вот эти < вещи...зы во как это даже на сайте не отображается а воспринимается как код

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

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.