Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сортировка в гриде / 5 сообщений из 5, страница 1 из 1
26.11.2004, 18:15
    #32802092
_новичек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка в гриде
есть форма с гридом
таблица открывается "руками"
в гриде напрямую идет редактирование этих
числовых полей
необходимо отсортировать записи
по числовому полю,вызвав метод формы
чтобы они следовали попорядку 1 2 3 4
в гриде с учетом изменений
IDX CDX не предлагать-куча проблем с
буферизацией,откатом изменений итд
-sort не предлагать, тк исходя из документации он создает отдельную таблицу
...
Рейтинг: 0 / 0
26.11.2004, 19:27
    #32802207
ВладимирМ
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка в гриде
Если ты и сам все знаешь, то зачем спрашивал?

FoxPro - это СУБД, т.е. "заточен" под работу с таблицами. В Grid всегда отображается только таблица (постоянная или временная - отдельный вопрос).

Значит стоит вопрос сортировки записей в таблице. Поскольку ты редактируешь напрямую, то создание Local View или временных таблиц отпадает.

Тогда решений этого вопроса всего 2 - индекс или физическое изменение порядка следования.

Физическое изменение порядка следования по сути означает полное уничтожение старой таблицы (как минимум, ее содержимого) и создание новой. Использование такого метода крайне НЕ приветствуется.

Остается индекс. Какие проблемы с буферизацией и откатом при использовании структурного индексного файла? Не замечал.

Я имею в виду, что индекс по нужному тебе полю должен быть создан заранее . Как один из тэгов структурного индексного файла. В нужный момент ты просто делаешь его главным (SET ORDER).
...
Рейтинг: 0 / 0
26.11.2004, 20:44
    #32802264
Intruder
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка в гриде
Он строит временный индекс, в том случае, если не находит соответствующего
...
Рейтинг: 0 / 0
26.11.2004, 20:54
    #32802272
_новичек
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка в гриде
Ну если уж Владимир Максимов сказал, что "низя",
то будем строить индекс заранее,
просто ""жалко" дискового пространства :-)
Ну просто меньше файлов, лучше жить,
а индекс нужен только чтоб показать порядок следования
записей в гриде...
Конечно можно и удалять, когда надо, да опять
лишние телодвижения
На самом деле не мешало бы гриду команды
SORTED, как в комбо
А вообще наверно эта команда в комбо
все равно табличку или индекс строит....
жалко
...
Рейтинг: 0 / 0
28.11.2004, 01:47
    #32802700
Igor Korolyov
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
сортировка в гриде
Hi Intruder!

Даже если строится временный индекс, то не должно быть проблем - с "просто
сохранением" в принципе нет проблем независимо от буферизации, а с
транзакциями всё решается уничтожением индекса перед началом транзакции и
восстановлением после.
Причём если используется LocalView, то индекс получается СУГУБО локальным -
т.е. даже если 10 экземпляров формы запустить, в каждой будет свой ФИЗИЧЕСКИ
курсор, и соответственно созданные в другой форме индексы никак не
повлияют. Если же напрямую с таблицей, то конечно возможна ситуация, что мы
удаляем временный индекс, созданный в другой форме - ну да проверку на
наличие/отсутствие индекса или тега всегда можно добавить. Что я и сделал в
своё время с достаточно известным кодом из SortGridSample... Попутно
убедившись что реально закрываются и удаляются (последнее исключительно из
эстетических соображений - дабы не возникало мусора в TEMP) ВСЕ временные
индексы.
Для этого (кроме удаления собственно cdx/idx файлов) достаточно всего 2
команды для курсора:
SET ORDER TO
CLOSE INDEXES

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / сортировка в гриде / 5 сообщений из 5, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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