|
Как в СКД получить случайное число? | ☑ | ||
---|---|---|---|---|
0
RedTop
27.01.16
✎
06:37
|
Собственно сабж. Как СКД построчко получить случайное число? Остаток мне нужно уменожить на число от 1 до 10
Про ГСЧ = Новый ГенераторСлучайныхЧисел(255); ГСЧ.СлучайноеЧисло(0, 10000); знаю, но как в СКД это засунуть? |
|||
1
los_hooliganos
27.01.16
✎
06:42
|
В СКД можно использовать внешние функции. Главное чтобы функции были в общем модуле.
|
|||
2
los_hooliganos
27.01.16
✎
06:42
|
Погугли язык выражений скд
|
|||
3
RedTop
27.01.16
✎
07:17
|
Сделал функцию. Запихнул ее вызов в СКД в Вычисляемые поля. Работает. НО. Случайное поле вычисляется ОДИН раз! видать только при инициализации, а мне нужно чтобы случайное число расчитывалось для КАЖДОЙ строчки отчета (
|
|||
4
sda553
27.01.16
✎
07:24
|
Функцию от номера строки или от любого значения в строке выборки можно сделать?
|
|||
5
Лодырь
27.01.16
✎
07:27
|
(3) Метод середины квадрата можно использовать ) И вычислять на основе предыдущего значения.
|
|||
6
фобка
27.01.16
✎
07:30
|
(3) Задержку может надо реализовать?
|
|||
7
mehfk
27.01.16
✎
07:37
|
(3) Потому что если ты сделал как в (0), то у тебя начальное число всегда одинаковое. Делай без указания начального значения Новый ГенераторСлучайныхЧисел().
|
|||
8
RedTop
27.01.16
✎
07:43
|
(7) Спасибо!
|
|||
9
RedTop
27.01.16
✎
08:10
|
а вот и нет.. один фик...
отчет формируется за секунду, и если указать диапазон от 1 до 4, то число на весь отчет будет одно... 1.2.3.4 полистал гугл. проблема не новая, но решения нет... |
|||
10
ЧеловекДуши
27.01.16
✎
08:15
|
(9) Зачем?
А так можно отчет разделить. Сперва заполнить ТЗ, а потом подсунуть в СКД :) |
|||
11
LordCMEPTb
27.01.16
✎
08:21
|
(9) Скорее всего проблема в том, что при отсутствующем параметре конструктора генератора случайных чисел, берется значение текущей даты (ну или что-то похожее). Если нужно за одну секунду наклепать много конструкторов, то лучше явно указывать параметр конструктора (передавать, к примеру, номер строки отчета), что-то вроде
ГСЧ = Новый ГенераторСлучайныхЧисел(НомерСтроки); Ну или обнаглеть и делать конструктор на основании времени: ГСЧ = Новый ГенераторСлучайныхЧисел(ТекущаяУниверсальнаяДатаВМиллисекундах()); |
|||
12
mehfk
27.01.16
✎
08:31
|
(9) Сделай переменную глобального модуля типа глГенераторСлучайныхЧисел и не создавай новый ГСЧ каждый раз в своей функции.
|
Форум | Правила | Описание | Объявления | Секции | Поиск | Книга знаний | Вики-миста |