Проблема Многоуровневый массив на Lotusscript

Ficoos

Lotus Team
15.03.2016
184
5
Доброго всем дня! Появилась проблема с многоуровневым массивом. Дело в том, что в начале задачи я знаю только, что на первом уровне массив состоит из 16 элеменов, на втором уровне - из 31, на третьем уровне - из 22 элеметов. А вто как заполнять каждый уровень в отдельности - не могу понять. Помогите одолеть этого зверя!!
Код:
sub SetArray(users as variant, days as variant, tikets as variant)
    dim arr(0 to 16, 0 to 30, 0 to 21
    foall v in users
        'Нужно заполнить 1 уровень'
    end forall
    forall z in days
        'Нужно заполнить 2 уровень'
    end forall
    Forall n in tikets
        'Надо заполнить 3 уровень'
    end forall
end sub
Каждый сотрудник получает талон на обед. В месяце - 30 дней. Рабочих дней или талонов получеено каждым сотрудником 22. Вот для каждого сотрудника (1 уровень массива) создается еще два уровня - это календарный день месяца и сумма в талоне.
Или это делается как-то по-другому?
 
Последнее редактирование:
Ну многомерные массивы это всегда приключение.

Код:
    Dim vars(0 To 5, 0 To 6, 0 To 2) As Variant
    
    Dim i As Integer, j As Integer, k As Integer
    
    For i = 0 To 5
        For j = 0 To 5
            For k = 0 To 2
                
                vars(i, j, k) =  "*" & i & "*" & j & "*" & k
                
            Next k
        Next j
    Next i
    
    For i = 0 To 5
        For j = 0 To 5
            For k = 0 To 2
                
                Print vars(i, j, k)
                
            Next k
        Next j
    Next i

А так, я бы наверное делал класс, а в нём уже поля.
Класс наверное "Рабочий", внутри list класса "Обед" + какой-то идентификатор, пусть табельный номер
"Обед" это уже "Дата" и "Сумма".
List "Рабочих".

Так-то потом проще будет с ними работать, а не думать про индексы массивы и где можно вылететь.
 
А так, я бы наверное делал класс, а в нём уже поля.
Класс наверное "Рабочий", внутри list класса "Обед" + какой-то идентификатор, пусть табельный номер
"Обед" это уже "Дата" и "Сумма".
List "Рабочих".

Так-то потом проще будет с ними работать, а не думать про индексы массивы и где можно вылететь.
Спасибо! Классы еще не создавал, но с чего-то надо начинать. Может заодно и по-легче путь найду. )
 
Не осилил... Сделал так, что загнал в одноуровневый массив записи "сотрудник"-"дата"-"сумма". 1) Циклом перебираю сотрудников из другого массива, в котором только сотрудники (хотя можно было сделать и из справочника персонала). 2) В другом цикле перебираю числа месяца циклом. Делаю ключ поиска "элемент первого цикла (сотрудник)" + "-" + элемент второго цикла (дата) + "-"+ сумма. с помощью функции ArrayGetIndex( source, search , method ) получаю или не получаю индекс в массиве (source). По этому индексу беру запись. и т.д.
 
Последнее редактирование:
Задайте задачу Gemini, только максимально точно - что есть и что хочется. Но лучше то же самое в Claude. Даже бесплатный Gemini жахнет сразу весь код, нужно будет его немного причесать.
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab