powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
17 сообщений из 17, страница 1 из 1
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37948973
OPSXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно Foxpro 9
Есть форма на ней TreeView и Pageframe...
TreeView используется как общая навигация по-нескольким таблицам...
В TreeView при выборе вильтр на сортировку определенной группы товара... на Pageframe в Optiongroup к нему добавляется еще фильтр для отображения группы товара выбранного поставщика...
Вроде все путем, но когда scroll'ом перематываешь на конец списка появляются лишние,несуществуюшие строки list'а или тупо пустые строки...Если покрутить туды-сюды то посля все стает как надо...
Шо делать с ентим не пойму...Пробовал и переход на первую\последнюю запись list'a и ешшо всякие извороты, но результат тот же...
Есть какие мысли как ето побороть...Варианты типа Requery() не прут...
заранее благодарность..)
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37949475
OPSXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Народ смотрит... и молчит....
тогда так:
кусок живого примера упрощ...

DO CASE
CASE thisform.pageframe1.page5.optiongroup1.Value=1 (показать весь список товара)
SET FILTER TO
CASE thisform.pageframe1.page5.optiongroup1.Value=2 (показать непосчитанный)
SET FILTER TO uchet.статус="непосчитан"
CASE thisform.pageframe1.page5.optiongroup1.Value=3 (показать расхождения в учете)
SET FILTER TO (uchet.колич<>uchet.колич_учет AND uchet.статус="учтен")
ENDCASE

индекс по полю "статус"
учтенные строки в liste находятся внизу
при переключении между : весь товар и непосчитанный - учтеные строки тупо закрашиваются цветом pageframe'а, но остаются на месте, если по ним тыкать) то реагируют как без фильтра...
Понять не могу почему при выборе 1 и 2 пункта количество строк в list'e не меняется, а при выборе 3 - все как и должно...

Варианты типа:
list1.Requery()
list1.Refresh
list1.Selected(1)=.t.
ListIndex=list1.ListCount
list1.Selected(list1.ListCount)=.t.
list1.DisplayValue=list1.Value
list1.SetFocus
ничего не решили...

отсюда вопрос - как сделать чтоб количество строк в List'e было одекватно фильтру?
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37949481
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если использовали set filter to [...], то затем GO TOP [IN <alias>]
?
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37949485
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Просто set filter - это условие, а go [N|...] - это действие.
Поскольку вы используете работу с таблицей из самого Фокса - то для исполнения любого действия над таблицей - нужно произвести хотя бы одно новое обращение к этой таблице (ну, примерно так), чтобы изменить состояние отображения таблицы...
Если Вы будете когда-нибудь пользовать T-SQL (MSSQL internal languidge) - то заметите, что там тоже присутствует некая команда GO - (конечно, никакого отношения к вышеприведенному примеру не имеющая, но всё же...) как команда, гарантированно пытающаяся исполнить транзакции для всего вышенаписанного до неё кода.
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37949573
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вопрос нестандартный. Листбоксы мало кто использует, а тем более так изощренно.
Лично я предпочитаю не привязывать листбокс к таблицам, а просто перезаполняю при необходимости. Как-то так:
Код: sql
1.
2.
3.
4.
5.
ThisForm.List.Clear()
sele MyTable
scan
	ThisForm.List.AddItem(MyTable.MyField)
endscan


Если все-таки нужна привязка к таблице - возьми грид.

OPSXXLНарод смотрит... и молчит....
тогда так:
кусок живого примера упрощ...
Если хочешь ответ по существу - собери в отдельную форму демонстрацию своей проблемы и выложи сюда. Надо руками потрогать - может чего и придумается.
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37950504
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OPSXXL,
Dima TВопрос нестандартный. Листбоксы мало кто использует, а тем более так изощренно.Ну почему же? Вопрос вполне стандартный, и листбоксы многие используют. И еще не так изощрённо...
Dima T Как-то так: ThisForm.List.Clear()Это да - надо почистить перед заполнением, иначе, если записей по новому условию окажется меньше,
чем по предыдущему, то лишние будут в листе болтаться.
Так что при каждом изменении условий отбора делайте как посотетовал Dima T .
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37950520
OPSXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
list шустрее чем Grid, задача была сделать что-то серьезное для не серьезного железа, плюс глюк у Grid с полосой прокрутки при фильтрах решать нет жедания....
собрать пример довольно не просто...да и найти все,что может влиять тож оказалось непросто...
Всем большое спасибо, для решения пришлось добавить пару параметров...
но вопрос остался в воздухе... чем же отличаются фильтры 1 и 2... И передвижение по таблице, и по строкам и ешшо куча маневров - результат тот же...походу что-то с русским текстом связано..., тупо слово "непосчитанный" не нравится...)
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37951329
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OPSXXL , может быть, и действительно не нравится текст...
А если сделать индекс не просто по uchet.статус , а по выражению, например, LEFT(uchet.статус,3) ? И ставить фильтр с помощью строгого соответствия SET FILTER TO left(uchet.статус,3)=="неп" ?
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37951638
OPSXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM,

Короче достало..)
Пробовал и LIKE( ) и ешшо строгих соответствий, и язык и вааще...
Всем спасиб... походу "истина где-то рядом.." но жедания ковырять пока нет...
если решу-то обязательно отпишусь...
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37951659
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А фильтр вообще-то на ту таблицу накладывается на какую должен? Может где-то происходит явный или не явный переход в другую рабочую область перед наложением фильтра? Попробуйте явно указать, в какой рабочей области надо накладывать фильтр

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
* Перейти в нужную рабочую область
select uchet

* Наложить фильтр
DO CASE 
CASE thisform.pageframe1.page5.optiongroup1.Value=1 (показать весь список товара) 
    SET FILTER TO 
CASE thisform.pageframe1.page5.optiongroup1.Value=2 (показать непосчитанный) 
    SET FILTER TO uchet.статус="непосчитан" 
CASE thisform.pageframe1.page5.optiongroup1.Value=3 (показать расхождения в учете) 
    SET FILTER TO (uchet.колич<>uchet.колич_учет AND uchet.статус="учтен") 
ENDCASE

* Перейти к началу таблицы, чтобы задействовать фильтр
go top

* Обновить содержимое ListBox
ThisForm.List1.Requery()

* Обновить картинку на форме
ThisForm.List1.Refresh 



Кстати, ListBox не может быть шустрее Grid по ряду причин
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37952011
OPSXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ,

У меня 10 независимых таблиц...
Область указываю и Select... и в самом фильтре рабочую область
Не работает только фильтр с условием SET FILTER TO uchet.статус="непосчитан" in 8
остальные работают как надо...
Переход делал и на 1 и на последн. запись таблицы...
И "непосчитан" менял и язык,и код страницу...
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37952674
Jonny540
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OPSXXL,

Извините за назойливость, это нужная таблица и нужный фильтр?
Вы проверяли командами dbf(), filter(), browse перед заполнением листбокса?
Чудеса ведь иногда случаются :) Не верю, что это из-за русского текста...
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #37953327
OPSXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Jonny540,
Таблица учета товара на торговых точка+ сведение на склад...
Фильтр нужен для ускорения пересчета... а то по-старинке продавцы погибают на учете..)
dbf(), filter(), browse все сразу проверял...
Проблему решил добавлением ешшо столбца в таблицу...
Так что тут бабка надвое сказала... Или "Перемудрил" где-то... или глюк...
В любом случае уже в ентой куче писанины с ""изворотами" не найти...
Всем большое спасибо за участие..
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #38094219
OPSXXL
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Опять встала ента же проблема....
Наро - кто может подсказать в чем проблема?

пример:
search=" на русском" - болтаются пустые строки в листе
search=" на английском" - все путем и без пусты строк и косяков

SET FILTER TO (LOWER(ALLTRIM(search))$lower(postuplenie_all.группа)

что с ентим делать ума не приложу, всё перепробовал и кодовую страницу и еще всяких всячин...

может кто сталкивался?
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #38094342
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Попробуйте для контроля сделать SET FILTER, а затем SELECT ... WHERE с тем же условием.
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #38095369
Vlad61
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В выражении

SET FILTER TO (LOWER(ALLTRIM(search))$lower(postuplenie_all.группа)

количество открывающих скобок не соответствует количеству закрывающих
...
Рейтинг: 0 / 0
Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
    #38095381
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
При проблемах именно с русскими символами первое, что надо сделать, это проверить кодовые страницы

Код: sql
1.
2.
?CPDBF()
?CPCURRENT()



Кроме того, следует проверить кодовую страницу той формы (файла SCX) в которой выполняется отображение данных. А также всех используемых классов (файлов VCX)
...
Рейтинг: 0 / 0
17 сообщений из 17, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Неправильно обновляется listbox...Или я туплю,или SP2 или ешшо кто...Need help
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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