|
|
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
Привет! Есть на форме комбо, он берет значение из поля таблицы (name, 2-е поле/столбец в таблице). Меж тем у комбюка стоит BoundColumn = 1, а это, если я правильно понимаю, означает что в его value будут попадать данные из 1 столбца/поля его таблицы, а там поле Code. Собственно именно значение Code мне и необходимо. Вопрос в том, что лучше использовать для INSERT/UPDATE/LOCATE и тд/тп - thisform.combo1.value (если только туда не попадает значение RECNO(), а именно значение из поля Code) или же напрямую брать из базы - Alias.code, ведь указатель в базе перемещается соотв. комбо. Сенксь ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 11:27 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
Указатель записи в таблице НЕ перемещается в соответствии с перемещениями в Combo. Вообще, это вопрос 5 минут экспериментов. Сделайте таблицу источник для Combo у которой значения поля Code будут идти не по порядку и это будут достаточно большие значения, например: 53, 21, 64, 12, 98 Посмотрите, что у Вас получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 11:36 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
Провел експеримент :) Установил, что combo.value возвращает RECNO() его базы независимо от BoundColumn. Так же установил, что указатель записи в его базе таки ПЕРЕМЕЩАЕТСЯ соотв. выбору в комбо и всегда получается RECNO() = combo1.value, что устанавливал таким кодом на Valid от комбо: Код: plaintext 1. 2. таким образом все значения выбираемые в комбо, привязанном на базу, лучше всего брать из той базы. Собственно другого и не дано. Разве еще рисовать текстбокс и в него вставлять что нужно по валиду комбо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 12:17 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
не забывайте просвойство BoundTo- которое определяет что возвращать - номер по порядку или значение поля определенное в BoundColumn ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 12:36 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
CTAC-KOПровел експеримент :) Установил, что combo.value возвращает RECNO() его базы независимо от BoundColumn. А теперь пометь несколько записей как удаленные и установи настройку SET DELETED ON чтобы подобные записи не учитывались Далее почитай HELP по опции BoundTo. Поэкспериментируй, что будет возвращаться при Combo.BoundTo = .F./.T. CTAC-KO Так же установил, что указатель записи в его базе таки ПЕРЕМЕЩАЕТСЯ соотв. выбору в комбо и всегда получается RECNO() = combo1.value, что устанавливал таким кодом на Valid от комбо: Код: plaintext 1. 2. Теперь положи на форму кнопку и перенеси весь этот код в событие Click() этой кнопки с небольшим изменением: Код: plaintext 1. 2. 3. 4. CTAC-KOтаким образом все значения выбираемые в комбо, привязанном на базу, лучше всего брать из той базы. "А мужики-то и не знают" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 12:38 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
Таким образом на все это у меня ушел 1 день, вместо 5ти минут... и выходит что лучше использовать значение combo1.value при обязательных BoundTo = .T. и BoundColumn = 1 ??? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 15:13 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
елки-палки я ужо запутался совсем... дык че теперь делать? при удаленных записях и SET DELE ON ваще творицца - не поймешь что... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 15:38 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
CTAC-KOТаким образом на все это у меня ушел 1 день, вместо 5ти минут... "Лучше день потерять, зато потом за 5 минут долететь" (с) С чужих слов запоминается хуже, чем выстраданное на собственном опыте. Тем более, все-равно возникает масса "уточняющих" вопросов. CTAC-KOи выходит что лучше использовать значение combo1.value при обязательных BoundTo = .T. и BoundColumn = 1 ??? "Слушай сюда, птичка" (с) Что лучше использовать, зависит от конкретной задачи и личных предпочтений программиста. У Вас есть инструмент. У этого инструмента есть свои возможности и особенности работы. Подходит ли данный инструмент вот с такими настройками для решения конкретной задачи - решать Вам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 15:45 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
CTAC-KOелки-палки я ужо запутался совсем... дык че теперь делать? при удаленных записях и SET DELE ON ваще творицца - не поймешь что... Ну, понять-то можно, а вот использовать... В том числе и по этой причине, лично я уже давно отказался от использования в качестве источника данных для раскрывающегося списка полей таблицы напрямую Я делаю опосредованное использование. Сначала делаю выборку, а потом использую результат этой выборки для наполнения раскрывающегося списка. Варианты решения смотри здесь Не отображается выбранное значение в ComboBox ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 15:55 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
Да само собой - решать мне. Только гляньте на вопрос - я спросил как будет грамотнее и быстрее работать. То, что Вы выполняете по ходу функцию учителя, что требует гораздо больше Вашего же времени - это я понял, как знаю и тот факт, что быстрый ответ и решение проблемы вопрошающим не запоминается. Другое дело долгие мучения и експерименты - здесь я согласен. Но только реального ответа я так и не получил... Да и вообще, Вас, Ерохиных, не поймешь - жена говорит хорошо, ты говоришь плохо (с) Вы пытаетесь показать, что выбор в комбо не совпадает с позицией в его базе, его value при удаленных записях - ваще номер записей, конкретно попавших в список комбо... А решение-то какое ??? Брать текстовое значение поля .name, которое будет и в combo.DisplayValue и, при опред. настройках в combo.Value и по нему код искать? Это ж не решение... Делать multicolumn - тоже. У меня уже назревает вопрос - а нафиг ваще такой комбо? он же тока все портит, особенно при удаленных записях и SET DELE ON, как оно у меня и есть. Вот -=AlexiS=- подсказал насчет BoundTo. Все так, но при условии multicolumn-combo. у меня же - одна колонка. Соотв. значениями свойств BoundTo и BoundColumn я ничего не добьюсь. кроме того зачем юзверю лицезреть код? этого не нужно. Выходит что наилучшим средством является присвоение значения кода в дополнительный текстбокс. Тогда всякие чехления по базе, на кторой комбо, не повлияют на результат. Но вопрос в том, что или как в текстбокс присваивать, если в базе комбо перемещения не происходит? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:18 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
Ага, ОК! Пока сам постил ответ Вы уже и ответили по сути вопроса... Спасибо! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 16:44 |
|
||
|
Как будет быстрее/грамотнее combo.value или dbf.field
|
|||
|---|---|---|---|
|
#18+
короче - чтобы долго не мучаться BountTo = .t. BoundColumn=2 Далее 2 варианта либо RowSourceType = 3 RowSource=Select name,code from table into cursor ttt либо RowSourceType = 6 RowSource=table.name,code ColumnCount=2 ColumnWidth=100,0 И будет вам счастие ... юзер видит только наме а коде выбирает Да чтобы не тратить столько времени на элементарщину - купите книгу и почитайте (не издеваюсь - советую) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 10.08.2006, 18:48 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33910894&tid=1591007]: |
0ms |
get settings: |
6ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
41ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
70ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 406ms |

| 0 / 0 |
