Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / может ли в Комбо первый элемент быть нулевым? / 23 сообщений из 23, страница 1 из 1
14.10.2004, 11:08
    #32737766
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Вроде как не получается, если RowSourceType=1
Ясно, что ежели задать базу с вариантами для комбо, то там можно замутить, задав поле для этого, но оно вроде как будет с легонца лишним.
...
Рейтинг: 0 / 0
14.10.2004, 11:23
    #32737815
AlikWishin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Давай по порядку!

Что ты хочеш от Комбо?

Если ты там собираешся хранить список каких то параметров типа:
0-пусто
1-Паспорт
2-Свидетельство
...
n-Еще чего нибудь

а при выборе заносить в табличу код , то это одно. А если заносить непосредсттвенно значение, то это другое!!!

Обьясни!!!
...
Рейтинг: 0 / 0
14.10.2004, 11:38
    #32737856
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
у меня в комбо варианты статуса начисления, типа
Без начислений, Все начасления, Только одно начисление и тд
дык вот, в базе хранится только число, тип/статус начисления, (комбо.контролсоурс=база.поле_статуса) и для юзьверя, это число не видно, ему при редактировании комбец, но только комбец мне теперь для значения (в базе) 1 (все начисления) выводит "Без начисления", а для 0 - вообще ничего не выводит и тд. А все потому, что у комбо первый элемент 1, а не 0, а 0 как combo.first element задать не удаецца - ошибка.
Получается что мне надо либо пришить для комбо базу с двумя полями типа код/наименование, либо в базе весь статус увеличить на 1 и произвести в проге соотв. изменения, хотя как раз 0, это то значение, которое является при создании новой записи и становящееся по умолчанию.
Либо в комбо в контрол соурс как-то хитро 1 добавлять, а потом отнимать...
...
Рейтинг: 0 / 0
14.10.2004, 11:47
    #32737898
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
и еще, если в комбо пукнты из базы, но в базе коды видов идут например так: 1,2,3,4,8,9 то пользоваться ответом комбо (combo.value) тоже нельзя, так как комбо.валу вернет 5 для 8 и 6 для 9.
...
Рейтинг: 0 / 0
14.10.2004, 11:51
    #32737911
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
CTAC-KOу меня в комбо варианты статуса начисления, типа
Без начислений, Все начасления, Только одно начисление и тд
дык вот, в базе хранится только число, тип/статус начисления, (комбо.контролсоурс=база.поле_статуса) и для юзьверя, это число не видно, ему при редактировании комбец, но только комбец мне теперь для значения (в базе) 1 (все начисления) выводит "Без начисления", а для 0 - вообще ничего не выводит и тд. А все потому, что у комбо первый элемент 1, а не 0, а 0 как combo.first element задать не удаецца - ошибка.

Переходи на С++, там массивы индексируются начиная с 0 :-)

CTAC-KO
Получается что мне надо либо пришить для комбо базу с двумя полями типа код/наименование,

А в FPD как это организовано? Разве не так же? "Пришить" базу надо обязательно, а вот какое из полей (или их вместе) выводить для выбора пользователя - это уже твой выбор....

CTAC-KO
либо в базе весь статус увеличить на 1 и произвести в проге соотв. изменения, хотя как раз 0, это то значение, которое является при создании новой записи и становящееся по умолчанию.
Либо в комбо в контрол соурс как-то хитро 1 добавлять, а потом отнимать...
Плохой стиль программирования он что в FPD, что в VFP - мешает жить одинаково. В VFP, пожалуй, даже больше...
В общем, "семь раз отмерь, один раз отрежь"...
...
Рейтинг: 0 / 0
14.10.2004, 11:51
    #32737913
AlikWishin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Посмотри сюда:/topic/121191&hl=
Там это уже было. Может поможет.
Если ссылка не сработает введи Combo в поиске по теме!
...
Рейтинг: 0 / 0
14.10.2004, 11:56
    #32737932
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
CTAC-KOи еще, если в комбо пукнты из базы, но в базе коды видов идут например так: 1,2,3,4,8,9 то пользоваться ответом комбо (combo.value) тоже нельзя, так как комбо.валу вернет 5 для 8 и 6 для 9.

А зачем это надо? Обращайся сразу к таблице и бери значение из нее. Типа так:
*В LOST FOCUS комбо-бокса:
replace <имя поля в целевой базе данных> with ;
<значение из таблицы, указанной в RowSource для комбо-бокса>
...
Рейтинг: 0 / 0
14.10.2004, 12:09
    #32737987
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Да я уже все замутил...
Просто суть вопроса фактически в том, что надо было в комбо дать ControlSource поле таблицы и при этом у комбо мог бы быть пункт 0.
Я сделал в init
combo.value=ab_status+1 для правильного начального отбражения
а в valid
repl ab_status with combo.value-1, а мож внатуре надо было в лостфокусе...

ну и в ControlSource комбо пусто

мне ужо не впервой предлагают на сю или дельфю спрыгиватъ, но это языки более универсального и широкого применения, а меня интересует работа с базами данных. кроме того фокс я более-менее знаю, а вот си/делфи это ужо совершенно иное.
мне и так уже хреново от вижул фокса после досового... Здесь больше времени уходит на причесывание междумордья, чем на программирование. Все кнопочки красивенькия в ряд, размерчики одинаковенькия, все под сеточку/линеечку... шары ужо на лоб лезуть...
...
Рейтинг: 0 / 0
14.10.2004, 12:14
    #32738008
AlikWishin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Ладно тебе!

Я начал писать на Фоксе 4 года назад! Тогдаже и начал писать на Clippere. Сначала было как у тебя! А сейчас смотрю на то что было написано тогда и ужасаюсь так и хочется все взять и переделать!!!!
Все прийдет со временем!
По Dos тоже не легко разместить все на экране в 80х25 текселов!
Так что...
...
Рейтинг: 0 / 0
14.10.2004, 12:34
    #32738073
Станислав C.
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
CTAC-KO а меня интересует работа с базами данных.

Си/Делфи прекрасно работают с базами данных (там для этого у них есть специальные компоненты). Так что это не довод...

CTAC-KO си/делфи это ужо совершенно иное.

Делфи есть ничто иное как красиво обернутый ПАСКАЛЬ. Ты что, на ПАСКАЛЕ никогда программы не писал? Его же в институте на первом курсе преподают...
Это тоже не довод...
...
Рейтинг: 0 / 0
14.10.2004, 12:38
    #32738095
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
80*25 это много или мало...
есь ведь ишшо set disp to vga43 и тд
по крайней мере когда окно дефайнил, то ориентироваться было по-легше... А тут таперича страх че деицца
А че ваще нет виндов билдера, шоб наглядно окошко намалевать... А то все формы, да формы, вот надо мне спросить у юзьверя год, дык че? Опять форму билдить? В окошко даже как-то играцца неохота, для него ж билдера нету.
...
Рейтинг: 0 / 0
14.10.2004, 12:44
    #32738125
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Станислав C
CTAC-KO си/делфи это ужо совершенно иное.

Делфи есть ничто иное как красиво обернутый ПАСКАЛЬ. Ты что, на ПАСКАЛЕ никогда программы не писал? Его же в институте на первом курсе преподают...
Это тоже не довод...

эко, батенька, Вы завернули... Да у Вас в Катеринбурге мож по-плотнее на пасквиль налегали, а у нас в дерёвне... бусиком кормили, дык ишшо не каждый, далеко не каждый, его скушать мог.
А я сам на сях кой-чего ваял, на досовских турбях, да как пришла пора бухгалтерию программить, дык куда ж с ним? Вот и перешел на ФПД, а про си таперича помню токмо include <sdtdio.h> ;) (ежели ишшо правильно написал...)
...
Рейтинг: 0 / 0
14.10.2004, 12:47
    #32738136
AlikWishin
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
CTAC-KO... вот надо мне спросить у юзьверя год, дык че? Опять форму билдить?

Попробуй InputBox() для VFP8 ты помоему на нем пишешь?
...
Рейтинг: 0 / 0
14.10.2004, 12:50
    #32738160
lnu
lnu
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
А если поигратся с Assign и Access методами
Что-то типа

Value_Assign
Код: plaintext
1.
LPARAMETERS vNewVal
THIS.Value = m.vNewVal+ 1 
Value_Access
Код: plaintext
RETURN THIS.Value- 1 
...
Рейтинг: 0 / 0
14.10.2004, 13:16
    #32738256
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
>может ли в Комбо первый элемент быть нулевым?
>Вроде как не получается, если RowSourceType=1
Может. Лично у меня никаких проблем не возникло.

>если в комбо пукнты из базы, но в базе коды видов идут например так:
>1,2,3,4,8,9 то пользоваться ответом комбо (combo.value) тоже нельзя,
>так как комбо.валу вернет 5 для 8 и 6 для 9
Читаем Хелп для свойства BoundTo комбобокса
...
Рейтинг: 0 / 0
14.10.2004, 14:22
    #32738478
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Во!, блин!!!
внатуре инпутбокс есть, я ужо месижбокс осваивать начал, для егоров и других хитрых уведомлений, а тут оказываецца еще тот базис заложен! Такие возможности! Блин, я и 1% не знаю...
Не, годов через пару я на свою таперишнюю прогу "...штЫрлица, стоящего над картой, неукротимо _рвало_ на родину..."
...
Рейтинг: 0 / 0
14.10.2004, 14:43
    #32738541
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Burn
Читаем Хелп для свойства BoundTo комбобокса
и чего мы там видим по моему вопросу?

.T. The Value property is determined by the List property.

.F. (Default) The Value property is determined by data type of the variable or field specified in the ControlSource property.
If the variable or field specified in the ControlSource property setting is of character type, the Value property is determined by the List property.
If the variable or field specified in the ControlSource property setting is of numeric type, the Value property uses the index number from the ListIndex property.


А инпутбоксом для ввода даты, например, не воспользуешься без извратов, он для чарстринга предназначен.
...
Рейтинг: 0 / 0
14.10.2004, 15:13
    #32738646
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Что-то мудреное обсуждение: от Foxа до C++ с Делфи.

Свойства для ComboBox:

BountColumn = 2
BountTo = .T.
ControlCource=<ИмяПоляСтатусаИзБазы>
RowSource = ,0,Без Начисления,1
RowSourceType = 1
ColumnCount = 2
ColumnWidths = 100,0
ColumnLines = .F.
...
Рейтинг: 0 / 0
14.10.2004, 16:57
    #32738946
Burn
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
>и чего мы там видим по моему вопросу?
Если BoundTo=.f. то Combo.value вернет не индекс выбраного элемента, а значение из столбца определеного BountColumn. Т.е. в вашем случае когда "в базе коды видов идут например так: 1,2,3,4,8,9" то Value вернет 8 для 8 и 9 для 9.
А "комбо.валу вернет 5 для 8 и 6 для 9" только в том случае, если BoundTo=.t.
...
Рейтинг: 0 / 0
14.10.2004, 17:18
    #32739025
CTAC-KO
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Burn>и чего мы там видим по моему вопросу?
Если BoundTo=.f. то Combo.value вернет не индекс выбраного элемента, а значение из столбца определеного BountColumn. Т.е. в вашем случае когда "в базе коды видов идут например так: 1,2,3,4,8,9" то Value вернет 8 для 8 и 9 для 9.
А "комбо.валу вернет 5 для 8 и 6 для 9" только в том случае, если BoundTo=.t.
наверное наоборот, тк .F. (Default) и так оно у меня и стояло и стоит чичас. А прикол-то весь в том, что индекс начинается с 1, а не с 0!

а почему не так:
BoundColumn = 1
BoundTo = .T.
ControlCource=<ИмяПоляСтатусаИзБазы>
RowSource = 0,Без Начисления,1,Все начисления
RowSourceType = 1
ColumnCount = 2
ColumnWidths = 0,100
ColumnLines = .F.
...
Рейтинг: 0 / 0
14.10.2004, 17:38
    #32739087
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
Так

BoundColumn = 1
BoundTo = .T.
ControlCource=<ИмяПоляСтатусаИзБазы>
RowSource = 0,Без Начисления,1,Все начисления
RowSourceType = 1
ColumnCount = 2
ColumnWidths = 0,100
ColumnLines = .F.

я делал, но что-то (не помню уже) привело меня к вышеприведенному варианту
...
Рейтинг: 0 / 0
14.10.2004, 17:48
    #32739128
AleksMed
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
При таком коде

BoundColumn = 1
BoundTo = .T.
ControlCource=<ИмяПоляСтатусаИзБазы>
RowSource = 0,Без Начисления,1,Все начисления
RowSourceType = 1
ColumnCount = 2
ColumnWidths = 0,100
ColumnLines = .F.

после выбора из списка в комбобоксе отразится значение из первого столбца, т.е. код, а не наименование, но возможно тебе это и надо.
...
Рейтинг: 0 / 0
17.10.2004, 19:17
    #32741824
Spavel_74
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
может ли в Комбо первый элемент быть нулевым?
А почему не создать массив где первый элемент будет 0 а следушие элементы слить из таблицы
А в клик Combo это

IF EMPTY(this.Value)
replace ProfilesFields.idspr WITH 0
ELSE
FOR i=1 TO this.ListCount
IF this.Selected(i)
replace ProfilesFields.idspr WITH ArrRecTypeSpr(i,2)
ENDIF
ENDFOR
ENDIF
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / может ли в Комбо первый элемент быть нулевым? / 23 сообщений из 23, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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