Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

Форум поддержки пользователей. LibreOffice, Apache OpenOffice, OpenOffice.org

4 Март 2021, 18:31 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
Новости: Часто задаваемые вопросы по LibreOffice и Apache OpenOffice.org
 
   Начало   Помощь Поиск Войти Регистрация    задать вопрос  
Страниц: « 1 2 3 4   Вниз
  Печать  
Автор Тема: Поле со списком  (Прочитано 8860 раз)
0 Пользователей и 1 Гость смотрят эту тему.
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #45: 29 Октябрь 2019, 16:23 »

UniqueColl - это параметр в функции. Он объявлен в строке
Код:
Function CheckDup(rowStr As String, byRef UniqueColl)
и не нуждается в дальнейших объявлениях.

Но всё это не имеет значения. Имеет значение то, что нельзя пытаться исправлять ошибки, не видя код.


* 20191029_162021.jpg (1312.7 Кб, 1913x628 - просмотрено 19 раз.)
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 049


« Ответ #46: 29 Октябрь 2019, 16:34 »

Нужен ещё код самой функции - нет ли там проблемы.
Записан

С уважением,
Михаил Каганский
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #47: 29 Октябрь 2019, 16:54 »

Нужен ещё код самой функции - нет ли там проблемы.


* 20191029_165313.jpg (750.67 Кб, 1610x394 - просмотрено 16 раз.)
Записан
Bigor
Мастер
*****
Offline Offline

Пол: Мужской
Сообщений: 1 065


« Ответ #48: 29 Октябрь 2019, 17:06 »

Смотри
CheckDup дважды присвоено True 

ps скриншот удалил, слишком тяжелый получился.
« Последнее редактирование: 29 Октябрь 2019, 17:22 от Bigor » Записан

Поддержать разработчиков LibreOffice можно можно тут, а наш форум вот тут
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #49: 29 Октябрь 2019, 17:11 »

Смотри
Поменял на Fаlse, ничего не изменилось.
Записан
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #50: 29 Октябрь 2019, 17:44 »

Наверно лучше будет загнать значения ячеек в коллекцию, а потом коллекцию в Список?
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 049


« Ответ #51: 29 Октябрь 2019, 17:50 »

Ну, кроме изменения True на False (чтобы было как в исходном ответе 37), надо ещё и имена писать как в исходном коде. А то имя функции переделали в ChekDup, а внутри True присваивается локальной переменной CheckDup. Программирование предполагает внимание.
Записан

С уважением,
Михаил Каганский
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #52: 29 Октябрь 2019, 18:41 »

Ну, кроме изменения True на False (чтобы было как в исходном ответе 37), надо ещё и имена писать как в исходном коде. А то имя функции переделали в ChekDup, а внутри True присваивается локальной переменной CheckDup. Программирование предполагает внимание.
Вот я старый баран.
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 049


« Ответ #53: 29 Октябрь 2019, 20:07 »

Наверно лучше будет загнать значения ячеек в коллекцию, а потом коллекцию в Список?

Зависит от задачи. Я привёл почти точно кусок своего кода из задачи, где мне важно было сохранить исходную последовательность элементов, и коллекция использовалась исключительно для быстрой фильтрации дубликатов. В случае если порядок не имеет значения, или даже нужно отсортировать элементы, может быть изящнее действительно сначала всё загнать в цикле в коллекцию с отключённой проверкой ошибок, а потом вторым циклом загнать в список.
Записан

С уважением,
Михаил Каганский
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #54: 29 Октябрь 2019, 23:16 »

Наверно лучше будет загнать значения ячеек в коллекцию, а потом коллекцию в Список?

Зависит от задачи. Я привёл почти точно кусок своего кода из задачи, где мне важно было сохранить исходную последовательность элементов, и коллекция использовалась исключительно для быстрой фильтрации дубликатов. В случае если порядок не имеет значения, или даже нужно отсортировать элементы, может быть изящнее действительно сначала всё загнать в цикле в коллекцию с отключённой проверкой ошибок, а потом вторым циклом загнать в список.
Именно в этом случае сохранение последовательности не требуется. Даже лучше будет, если список наполнится в алфавитном порядке.
Будут и другие списки, где лучше сохранить исходную последовательность.
Много чего планирую, но сначала надо продумать логику поведения, а потом реализовывать в коде. В любом случае это опыт и тренировка.
Записан
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #55: 30 Октябрь 2019, 10:44 »

Как добавить коллекцию в список?
Записан
mikekaganski
Гуру
*******
Offline Offline

Пол: Мужской
Расположение: Хабаровск -> Москва
Сообщений: 2 049


« Ответ #56: 30 Октябрь 2019, 11:19 »

Если нужно из коллекции вытаскивать строки, надо немного изменить наполнение коллекции. Коллекция - это отображение (map) уникальной строки-"ключа" на некий объект-значение, хранящийся в коллекции. Ключи в коллекции уникальны, но значения не обязаны быть уникальными. Я использовал строки в качестве ключей (чтобы отследить дубли), а в качестве значений передавал просто число 1 (для экономии места). Если из такой коллекции потом попытаться вытащить значения, окажется, что там просто куча единиц.

Нужно сделать что-то вроде
Код:
Sub sModelAdd
    Dim iCol As Integer ' Long?
    Dim NoDupes As New Collection
    iCol = 1
    On Error Resume Next
    While oASheet.getCellByPosition(2, iCol).String <> ""
        iCellModel = oASheet.getCellByPosition(2, iCol).String
        NoDupes.Add(iCellModel, iCellModel) ' Adding the string *both* as key and as value
        iCol = iCol + 1
    Wend
    On Error GoTo 0
    For Each iCellModel In NoDupes
        oModel.insertItemText(oModel.itemCount, iCellModel)
    Next iCellModel
End Sub
« Последнее редактирование: 30 Октябрь 2019, 11:29 от mikekaganski » Записан

С уважением,
Михаил Каганский
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #57: 30 Октябрь 2019, 11:25 »

Спасибо, буду вникать.
Записан
ali_vlad
Форумчанин
***
Offline Offline

Сообщений: 61


« Ответ #58: 31 Октябрь 2019, 16:18 »

Вопрос на засыпку.
Два списка. Заполняются по условию. Если выбираю значение в первом, второму присваиваю .enabled=false и наоборот.
Можно ли сделать так, чтобы в неактивном списке вместо пустого поля (когда элемент ещё не выбран) появилась надпись, как будто выбран элемент?
Записан
Страниц: « 1 2 3 4   Вверх
  Печать  
 
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2009, Simple Machines Valid XHTML 1.0! Valid CSS!