powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / поле и комбо
17 сообщений из 17, страница 1 из 1
поле и комбо
    #33350635
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЛЮДИ!!
Есть табла с полем которая имеет вид:
1
1
2
3
1
4
8
3
2
4
8
2
Как програмно загрузить в комбо неповторяющие числа?
...
Рейтинг: 0 / 0
поле и комбо
    #33350673
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Создать в форме свойство типа массив, например aCombo[1,1]

В Init-формы даешь команду

Код: plaintext
SELECT DISTINCT MyField FROM MyTable INTO ARRAY ThisForm.aCombo ORDER BY  1 


Делаешь настройки ComboBox

RowSource = ThisForm.aCombo
RowSourceType = 5 - Array
...
Рейтинг: 0 / 0
поле и комбо
    #33352767
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
to ВладимирМ .and. ALL
А как прописывается в селекте автоматическое добавление строк в массиве если это нужно?
...
Рейтинг: 0 / 0
поле и комбо
    #33352791
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ответ нашел.
...
Рейтинг: 0 / 0
поле и комбо
    #33352808
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь другая проблема. В комбобоксе при указаний на массив появляются только пустые строки. хотя через дебаг видно что в созданном массиве есть все значения. Почему?
...
Рейтинг: 0 / 0
поле и комбо
    #33353310
Andrey Ts
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Видимо, не так указываешь массив в RowSource.
массив после select двухмерный. Попробуй типа: RowSource= Myarray[1]
...
Рейтинг: 0 / 0
поле и комбо
    #33353372
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
нет, одномерный. Вот код который я исполбзую. В нем выбирается одна таблица
SELECT DISTINCT alltrim(str(nomer_o)) FROM &rep_base_name INTO ARRAY rep_comb1 ORDER BY 1
...
Рейтинг: 0 / 0
поле и комбо
    #33354103
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
НедоходящийВот код который я исполбзую. В нем выбирается одна таблица
SELECT DISTINCT alltrim(str(nomer_o)) FROM &rep_base_name INTO ARRAY rep_comb1 ORDER BY 1
Так не пойдет. Я же указал, что это должен быть не просто переменная памяти (rep_combo1), а именно свойство формы ThisForm.rep_combo1. Иначе придется "заморачиваться" с областью видимости массива. Делать его PUBLIC, что не есть хорошо.

Т.е. скорее всего, ты что-то "намудрил" с областью видимости этого массива. Через Debugger смотришь когда форма уже открыта или сразу после Select-SQL?
...
Рейтинг: 0 / 0
поле и комбо
    #33354591
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
2 ВладимирМ
Через дебагер когда форма открыта. Думал занести в листбокс значения через for, но хотелось бы чтоб через соурс. а св-во формы мне неподходит. есть еще какие нить способы?
...
Рейтинг: 0 / 0
поле и комбо
    #33355080
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Непонятно, чем же тебя не устраивает свойство формы? Ну, если хочется помучиться, то есть еще вариант использования индекса типа UNIQUE.

Т.е. по своей таблице строишь индекс вида

Код: plaintext
INDEX ON MyField TAG UniqValue UNIQUE


Индекс типа UNIQUE не запрещает ввод повторяющихся значений, но отображает только уникальные (не повторяющиеся) значения. Т.е. это своеобразный фильтр, накладываемый на таблицу, который прячет все дубли.

Далее делаешь этот индекс активным и указываешь такую таблицу как источник данных для ComboBox.
...
Рейтинг: 0 / 0
поле и комбо
    #33355123
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробую этот способ.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
поле и комбо
    #35542177
stson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМСоздать в форме свойство типа массив, например aCombo[1,1]

В Init-формы даешь команду

Код: plaintext
SELECT DISTINCT MyField FROM MyTable INTO ARRAY ThisForm.aCombo ORDER BY  1 




только в 9 версии Fox выдает ошибку свойство aCombo не найдено вот и приходится применять как вы отговариваете Public простые массивы без ThisForm.
...
Рейтинг: 0 / 0
поле и комбо
    #35542190
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stson ВладимирМСоздать в форме свойство типа массив, например aCombo[1,1]

В Init-формы даешь команду

Код: plaintext
SELECT DISTINCT MyField FROM MyTable INTO ARRAY ThisForm.aCombo ORDER BY  1 




только в 9 версии Fox выдает ошибку свойство aCombo не найдено вот и приходится применять как вы отговариваете Public простые массивы без ThisForm.
А у меня почему-то работает

Надеюсь, вы свойство создали ДО того как выполнить запрос? Вообще-то, сообщение об ошибке надо понимать буквально. Нет такого свойства. Вы его еще не создали на момент выполнения запроса. Как свойство создали? Где запрос делаете?
...
Рейтинг: 0 / 0
поле и комбо
    #35543429
stson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а я первый пункт вообще пропустил решил что они как переменные по ходу сами добавытся
А как свойство формы -массив добавить можно
...
Рейтинг: 0 / 0
поле и комбо
    #35543448
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stsonА как свойство формы -массив добавить можно
Код: plaintext
thisform.AddProperty('aMy[300]')
...
Рейтинг: 0 / 0
поле и комбо
    #35543498
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
stsonа я первый пункт вообще пропустил решил что они как переменные по ходу сами добавытся
А как свойство формы -массив добавить можно
Признаком того, что свойство является массивом служит указание размерности в квадратных скобках. Это можно сделать программно, как указал Dima T или в дизайнере формы (класса) через стандартный пункт Form - Add Properties.

Конкретное значение размерности массива при его создании, в данном случае, роли не играет, поскольку команда Select-SQL автоматически подгонит размерность массива под полученный результат. Главное, чтобы это свойство было именно массивом.

Также в самой программе можно будет впоследствии менять размерность этого свойства-массива при помощи команды DIMENSION
...
Рейтинг: 0 / 0
поле и комбо
    #35543877
stson
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ура! Спасибо
А я смотрю на метод ADDProperty и все гадаю как туда массив занести уже и Dimension туда пихал
А оказалось все проще
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / поле и комбо
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]