|
|
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
AccessXPADP+MSSQL2K Есть справочник ID int,Name varchar(50) Есть запрос для ленточной формы, выводящий Name Запрос приходится оптимизировать по размеру протаскиваемых через сеть данных. Пошел таким путем: Засасываю весь справочник в рекордсет при запуске программы. Вместо Name в запросе передаю ID . На форме вместо текстового поля делаю поле со списком и присоеденяю к нему заранее закачанный рекордсет. Все отлично размер передаваемых данных значительно сокращается , но для достижения того же , что и с текстовым полем вида надо избавится от кнопки развертывания в углу поля со списком. Наехал на нее соседним полем , но когда фокус переходит в поле кнопка всплывает наверх. Как от этого избавится? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:03 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Проще всего заменить поле со списком на поле без списка. Тогда и данных будет меньше качаться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:06 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Засасываю весь справочник в рекордсет при запуске программы. А если его засасывать при запуске в локальную табличку - не проще ли будет? И используй себе нормальный текстбокс, не надо мучаться... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:07 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Воистину странная оптимизиция Хотя... может смысл в этом и есть... Типа вместо того чтобы на каждую запись качать текстовое поле хрен пойми какого размера - закачать ID и один раз список значений.. Надо подумать... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:10 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Во! Придумал! Делаешь невидимое поле со списком, и текстбокс, у которого в данных пишешь "=[HiddenListBoxName].Column(1)" Авось прокатит Если только для всех строк ленточной формы не получится одно и то же значение текстбокса - в зависимости от текущей записи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:13 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Я несколько другим путем пошел (хотя в проге и есть сохраненые рекодсеты) Я на хрен снес поля со списками (там где они больше 100 строк (100 - это так пока от балды - в будущем станет 2 - лень-матушка :) ), оставив только поле с текстовым значением и скрытое поле с ID) - все готовиться на сервере в ХП. Стало достаточно быстро работать (особенно подчененые формы). Рядом с полем поставил кнопки: редактировать/добавить, очистить значение (если нужно). Доступ к полю закрыл. Указал однозначную таблицу. Подобное решение есть где-то у Гетца (или Литвина?) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:21 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
>Делаешь невидимое поле со списком, и текстбокс Так я делал , но тогда получается вычисляемое поле , и пользователи не могут по нему делать фильтры и сортировку, а без этого им никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:22 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2Geo У меня же ADP-ник Чтоб локальную таблицу завести надо отдельный конект заводить и таскать за собой MDB Да еще потом геморой с гетерогенными запросами. В общем с рекордсетом гораздо проще. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:27 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2Latuk Скажи пожалуйста, коль скоро ты все равно при запуске программы закачиваешь все в рекордсет при запуске программы, почему бы тебе не закачивать все во временную таблицу? И подцепляй потом эту таблицу. И работай с текстовым полем. Причем запрос на добавление записей в таблицу (ЛП не даст соврать) можно даже (!) сделать асинхронным. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:28 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Опоздал. И сорри тогда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:30 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
>не могут по нему делать фильтры и сортировку, а без этого им никак. По моему "рецепту" было бы можно ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:33 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2 Сенин Виктор Ты, по-моему, немного не понял что человеку надоть. Его не ListBox большой напрягает, а как раз много текстбоксов (Latuk, правильно я понял?). В каждый текстбокс по сети качается его значение (может быть большим), а в случае с листбоксом - только идентификаторы и один раз список значений (может содержать мало элементов). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:39 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2Senin Viktor Тут оптимизация еще немного дальше. У меня получается слишком большой объем данных при передаче подготовленных на сервере значений. Форма только для просмотра. Поэтому я один раз закачиваю справочник а вовсех остальных формах стараюсь передавать маленький ID вместо большого Name и расшифровывать его с помощью готового рекордсета на клиенте. PS Геморой из-за медленного канала(2Мб/с) c другим офисом. В принципе все работает , но некоторые формы тормозят Во их таким образом получилось подстегнуть. Но хочется чтоб внешне все осталось по прежнему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:45 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2ЛП Аааа.Теперь понял. Это вы про часы, а про репу :) Тогда, постояно открытый рекодсет на основе сохраненого (при загрузке проги). При событии ТекущаяЗапись поиск значений по ID полей в этих рекодсетах. Тока не ясно что по-времени будет больше (уж по размерам данных - точно меньше). Правда, теперь не со всем понятно как сортировать/фильтровать. Как еще один вариант (глюпый): вставлять в поле со списком в момент загрузки формы СписокЗначений всего сохраненого набора. == А почему бы поля с большим кол-вом инфы не вынести в отдельно вызываемые формы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:50 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2 Latuk Немного не в тему, но Вариант с терминальными подключениями не рассматривали? С adp не пробовал, но mdb терминалу точно проигрывает (по объему качаемых данных). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:50 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2 Сенин Виктор Как еще один вариант (глюпый): вставлять в поле со списком в момент загрузки формы СписокЗначений всего сохраненого набора Дык стрелочка то останется А почему бы поля с большим кол-вом инфы не вынести в отдельно вызываемые формы? Есть у тебя набор из двух значений. Каждое из которых длинной в 255 символов. Качать количество записей * 255 байт - плохо. Но делать отдельную форму для просмотра одного поля - видимо тоже не хорошо И вообще, чего это я за автора топика отвечаю ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:54 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2Лох Позорный Все правильно понял. Ну так что насчет совета ? Чтобы и сортировать можно было, и кнопка не маячила. Пока в голову приходит , только вручную наколбасить рекордсет для формы. Но это медленно на вялых клиентах работать будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 16:58 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
надо стрелочку закрыть каким нибудь другим контролом ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:01 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Пока в голову приходит , только вручную наколбасить рекордсет для формы. Но это медленно на вялых клиентах работать будет. Проверялось или только предположение? Какое количество записей? Ну, порядок хотя бы.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:02 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
>Как еще один вариант (глюпый): вставлять в поле со списком в момент загрузки формы СписокЗначений всего сохраненого набора Я так и делаю. Private Sub Form_Open(Cancel As Integer) Set cboTech_ID.Recordset = rstCboSourse(7, Me) .......................................................................... Function rstCboSourse(bytType As Byte, frm As Form, Optional blnRequery As Boolean = False) As ADODB.Recordset 'Значения bytType '1-Все работники для не редактируемых документов '2-Неуволенные работники для редактирумых документов '3-Все КА для не редактируемых документов '4-КА клиент для редактируемых документов '5-Выбор валюты '6-Выбор курса для не редактируемых документов '7-Вся техника для не редактируемых документов '8-Все агрегаты для не редактируемых документов '9-Адреса Static rstSourse(9) As ADODB.Recordset If rstSourse(bytType) Is Nothing Or blnRequery Then If rstSourse(bytType) Is Nothing Then Set rstSourse(bytType) = New ADODB.Recordset Else rstSourse(bytType).Close Set rstSourse(bytType) = Nothing End If Select Case bytType Case 1 Set rstSourse(bytType) = CNN.Execute("dbo.RBT_AllVibor @dtData_prm='',@bytStatus_prm=0") ' Case 2 ' Set rstSourse(bytType) = cnn.Execute("RBT_Vibor @dtData_prm='" & frm!dtData_prm & "',@bytStatus_prm=1") 'bytStatus_prm cboDp_ID_B dtData_prm Case 3 Set rstSourse(bytType) = CNN.Execute("dbo.KA_Vibor @bytStatus_prm=0") ' Case 4 ' rstKASourse(bytType) = cnn.Execute("exec dbo.KA_Vibor 2," & bytStatus_prm & "," & cboDp_ID_B) 'Плательщик клиент Case 5 Set rstSourse(bytType) = CNN.Execute("dbo.Vlt_Vibor") Case 6 Set rstSourse(bytType) = CNN.Execute("dbo.KV_Vibor @bytStatus_prm=0,@Vlt_ID=0,@dtData_prm=''") Case 7 Set rstSourse(bytType) = CNN.Execute("dbo.Tech_Vibor @bytStatus_prm=0,@bytFir_ID_prm=0") Case 8 Set rstSourse(bytType) = CNN.Execute("dbo.AG_Vibor @bytStatus_prm=0,@Tech_ID_prm=0") Case 9 Set rstSourse(bytType) = CNN.Execute("dbo.ADR_Vibor") End Select End If Set rstCboSourse = rstSourse(bytType) End Function Все отлично, куча форм расслабилась насчет заполнения списков , но при замене текстовых полей на ID+Поле со списком + рекордсет эстетическая заковыка. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:07 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Надо использовать не стандартный комбобокс, а ActivX ComboBox из КоммонКонтролс. В нем есть свойство (забыл как зовется), позволяющее либо отказаться от этой "питички" вообще, либо выводить ее только при фокусе, либо как в Аксе - всегда. //Geo, блин, и это тебе я чуть было не отдал(а) лучшие годы свой жизни! (на счет реплики на лестнице) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:11 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
2fedd Читай первый пост. >Проверялось или только предположение? Предположение. Просто чтоб проверить , надо много писать . А я ленивый :) Гдебы активикс достать чтоб как поле со списком и без стрелочки. или накрыть ее так чтоб не всплывала. или размер этой стрелочки сделать чтоба невидима стала. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:13 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
> ActivX ComboBox из КоммонКонтролс Вот это уже интересно. Если получится прям даже на другой бок не надо переворачиватся. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:16 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
А что, в КоммонКонтролс Databound контролы появились? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:27 |
|
||
|
Как избавится от кнопки в поле со списком
|
|||
|---|---|---|---|
|
#18+
Поставил Microsoft Forms 2.0 ComboBox Там действительно есть свойство позволяющее избавится от кнопки. Но там нет свойства recordset и выглядит он по другому (выделяется на фоне других контролов) или я не там ищу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.09.2003, 17:34 |
|
||
|
|

start [/forum/topic.php?fid=45&msg=32268094&tid=1679372]: |
0ms |
get settings: |
11ms |
get forum list: |
18ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
85ms |
get tp. blocked users: |
2ms |
| others: | 239ms |
| total: | 460ms |

| 0 / 0 |
