FoxPro Club Главная

Конференция Решения Фотоальбом Сайт М.Дроздова Статьи Файловый архив Книга Visual FoxPro 9.0 Русский Help для Visual FoxPro
Пользователей: 9177
Вход
Самодельный Грид

По ближе познакомившись с Гридом, понял, что он как был Browse – ом, так им и остался. Научился только занимать не все окно целиком. В свое время на FPD было огромное количество броузов собственной разработки, которые работали, как хотелось программисту, а не Б.Г. Здесь почему-то не встритил ни одного. Значит буду первым. Может кому и сгодиться на что. В движке присутствуют некоторые досовские приемы, довольно сложно перестроится. В частности класс не визуальный.


 
Прислал: Andy   Категория: Интерфейс


Самодельный Грид

Чего умеет:
-Перемещение клавишами по базе - вверх, вниз, home, end, pageup,pagedown.
-Перемещение мышкой по базе – вертикальный ScrollBar (по одной записи и страницами).
-Перемещение мышкой по базе – кликая на нужной строке.
-Инкриментальный поиск.Сбрасывает поисковую строку после ухода с найденой записи
-Контекстный поиск. Вхождение части слова в запись (SELECT - LIKE)
-Сортировки по любой колонке кликая мышкой на заголовке или клавишами влево, вправо.
-Красит цветом активный заголовок колонки
-Любой цвет букв и фона. У каждой колонки может быть свой цвет.
-В зависимости от условий может выделять цветом любую строку на экране
-Указатель текущей записи (курсор), выделяет всю запись целиком.
-Курсор в каждой колонке может иметь свой цвет.
-Понимает фильтры записей.

Чего не умеет:
-Быть визуальным классом (при желании может им стать)
-Не делает горизонтальный скроллинг (делать не собираюсь так как не вижу необходимости)
-Не умеет замораживать колонки
-Нет авто повтора при использовании горизонтального scrollbar мышью
-Печатать заголовок в 2 строки
-Устанавливать для заголовка каждой колонки свой шрифт(только один на все колонки)
-Редактировать записи прямо в таблице(можно научить немного изменив классы на основании которых создается таблица)
-Перемещение в базе клавишами проигрывает по скорости обычному гриду – Чем больше строк и колонок тем медленней работает. При инкриментальном поиске летает P2-333

Глюки :
-НЕНАВИДИТ пустую таблицу с удаленными записями. В одном месте используется RECCOUNT(), который не понимает удаленных записей
- Если количество записей меньше чем количество строк – то мышкой можно встать на несуществуюшие строки
-Не уходит “Focus” с клавиш навигации, поэтому при нажатии на Enter иногда получаются самонепроизвольные движения в базе(борюсь)

Как подключать:
Класс не визуальный – со всеми вытекающими
Прописывается в Init формы
В форме установить KeyPreview и KeyPress обрабатывать клавиши
Необходимые методы
Spis_info – Аналог AfrerRowColChange
Real_search - Управляет поиском
Необходимые свойства
Anseek - суда пишется что искать
Необходимые объекты
Sh_seek(textbox) - выводит в форму чего ищем

Не очень необходимые методы
One_step_zapr – Надо для контекстного поиска и запросов по сложному ключу

Edit_back - Управляет редактированием
Edit_cancel - -//-
Edit_in - -//-
Edit_save - -//-

Не очень необходимые свойства – нужны при редактировании записей
Data_change - Признак что изменились данные при редактировании
EditMode -Признак что находимся в режиме редактирования
New_record -Признак новой записи

Устроен:
Большая таблица из TextBox –ов помещенная в контейнер

Настройка:
В файле AnGrid.prg – собственно сам класс довольно подробно описаны значения свойств настройки
Задается:
-Количетство строк и колонок
-Высота строки и заголовка
-Название основной базы
Для каждой колонки свойства каждой колонки в массиве ColOp[колонка, свойство]
-Ширина колонки
-Источник данных
-класс на основании которого строится колонка
-цвета ячеек (в демо выделяются все записи где есть буква а)

Запуск Demo:
В проекте фаил Demo где надо прописать пути
-К базам
-Формам
-Программам
-Папке TMP
По умолчанию настроен на C:\Demo\

 
Сделайте оценку этого решения Плохо Удовлетворительно Так себе Хорошо Отлично Текущая оценка: (4.874) Вложение [49.34]kb
Дополнения пользователей
Самодельный Грид
[+][?]
zinin
29.03.07 12:34:12

перехожу с FoxDos на FPV, ознакомился с интересующими темами. предложенный вариант Grid
практически идеально подходит для меня. Но использовать его не могу, потому что к предлогаемому
примеру не поставлен файл процедур SHR_PROC. Если возможно - как бы получить. Заранее благодарен.
[Дополнить]



© 2000-2017 Fox Club 
При размещении любых материалов с сайта на других ресурсах- прямая ссылка на www.foxclub.ru обязательна
Яндекс.Метрика