Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Index, sort, order / 16 сообщений из 16, страница 1 из 1
11.01.2006, 09:53
    #33475615
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Хотела узнать, правильно ли я понимаю.
Я создаю таблицу командой select.........into table Mytable.dbf
Теперь кидаю ее в грид, и хочу сделать сортировку.
Для этого создаю индексы :
INDEX ON KOd_reg TO kod_reg
INDEX ON data_vh TO data_vh

а в гриде по нажатию на заголовок вставляю код:

LOCAL lnRecNo
lnRecNo = IIF(!EOF(), RECNO(), 0)
set order to kod_reg in Mytable
WITH This.Parent.Parent
.ActivateCell(1, .ActiveColumn)
IF lnRecNo # 0
GO (lnRecNo)
ELSE
GO top
ENDIF
.refresh()
ENDWITH

или можно как то сделать все проще? Честно говоря с этими индексами запуталась.
С уважением, Ольга.
...
Рейтинг: 0 / 0
11.01.2006, 10:03
    #33475648
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Я бы сделал так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
IF ORDER('Mytable') <> 'KOD_REG'
  LOCAL lnRecNo
  lnRecNo = IIF(!EOF(), RECNO(),  0 )
  set order to kod_reg in Mytable
  WITH This.Parent.Parent
    .ActivateCell( 1 , .ActiveColumn)
    IF lnRecNo #  0 
      GO (lnRecNo)
    ELSE
      GO top 
    ENDIF
  ENDWITH
  THISFORM.MyGrid.Refresh()
ENDIF
-----------------------
С уважением Владимир
...
Рейтинг: 0 / 0
11.01.2006, 10:21
    #33475708
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
с этими индексами создаются индексные файлы. А потом они не будут никак влиять при составлении запросов к моей таблице Mytable?
...
Рейтинг: 0 / 0
11.01.2006, 10:33
    #33475748
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Krushinskaya Olgaс этими индексами создаются индексные файлы. А потом они не будут никак влиять при составлении запросов к моей таблице Mytable?Если в запросе имеется ORDER BY ..., и имеется такой же индекс по таким же полям таблицы, то скорость получения запроса только увеличится.
...
Рейтинг: 0 / 0
11.01.2006, 10:49
    #33475798
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
А то что я после создания таблицы создаю индексы
INDEX ON KOd_reg TO kod_reg
INDEX ON data_vh TO data_vh
Это правильно? Их потом после завершения программы не надо удалять?
...
Рейтинг: 0 / 0
11.01.2006, 11:20
    #33475916
_Кэт_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Krushinskaya Olga
а в гриде по нажатию на заголовок вставляю код:
или можно как то сделать все проще? Честно говоря с этими индексами запуталась.
С уважением, Ольга.

Не изобретайте велисепидед,
Я как понимаю Вы пытаетесь
организовать сортировку столбцов
при клике на хедер
Посмотрите это решение
...
Рейтинг: 0 / 0
11.01.2006, 11:22
    #33475923
_Кэт_
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Вот это решение
http://www.foxclub.ru/sol/index.php?act=view&id=332

теги чета не вставляются...
...
Рейтинг: 0 / 0
11.01.2006, 14:38
    #33476628
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
_Кэт_Вот это решение
http://www.foxclub.ru/sol/index.php?act=view&id=332

теги чета не вставляются...
Благодарю, удачно применила в своей программе :-)
...
Рейтинг: 0 / 0
11.01.2006, 15:55
    #33476886
Snow_2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Всем привет.
С интересом прочитала всю тему.
Объясните, плиз, а почему нельзя просто по нажатию на заголовок :

set order to kod_reg
go top
thisform.grid1.refresh()


У меня в нескольких местах так сделано. Вроде нормально работает......
...
Рейтинг: 0 / 0
11.01.2006, 16:24
    #33476971
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Snow_2006Объясните, плиз, а почему нельзя просто по нажатию на заголовок :
set order to kod_reg
go top
thisform.grid1.refresh()
У меня в нескольких местах так сделано. Вроде нормально работает......
А теперь усложни задачу:
1. стоишь на записи (пусть третья)
2. нажимаю на заголовок и хочу чтобы после сортировки по данному столбцу оставаться на тойже записи.
А еще лучше если стоишь (см. п.1) на записи когда Grid пролистал несколько страниц и остаться на той же записи после сортировки и чтобы Grid правильно отображал информацию.
...
Рейтинг: 0 / 0
11.01.2006, 16:36
    #33477024
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Krushinskaya OlgaА то что я после создания таблицы создаю индексы
INDEX ON KOd_reg TO kod_reg
INDEX ON data_vh TO data_vh
Это правильно? Их потом после завершения программы не надо удалять?Т.к. ты создаешь DBF-файл, то он организуется на диске в текущем каталоге или в каком ты укажешь, но и созданный индекс CDX тоже создастся на диске. Т.е. после работы с ними их надо удалять программно:
Код: plaintext
1.
2.
USE IN Mytable
DELETE FILE Mytable.dbf
DELETE FILE Mytable.cdx
Я лично работаю с LV (Local View) и строю для них индексы. После закрытия LV индекс уничтожится (т.к. он временный). Т.е. программно его не надо удалять.
...
Рейтинг: 0 / 0
12.01.2006, 08:21
    #33477869
Krushinskaya Olga
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Понятно. :-)
...
Рейтинг: 0 / 0
12.01.2006, 10:58
    #33478199
Snow_2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Владимир СА
А теперь усложни задачу:
1. стоишь на записи (пусть третья)
2. нажимаю на заголовок и хочу чтобы после сортировки по данному столбцу оставаться на тойже записи.
А еще лучше если стоишь (см. п.1) на записи когда Grid пролистал несколько страниц и остаться на той же записи после сортировки и чтобы Grid правильно отображал информацию.

Продолжим с таблицей стран :
kod - код страны
naim - наименование

Индексы :
по коду - i_kod
по наименованию - i_na

Например, при первом входе видим ГРИД, где страны рассортированы по коду (установлен индекс i_kod).
выбрали нужный код, нажимаем на заголовок "Наименование" :

tek_na=naim
set order to i_na
go top
loca for naim=tek_na
thisform.grid1.refresh()

Не сочтите за занудство, просто очень интересно.
...
Рейтинг: 0 / 0
12.01.2006, 11:52
    #33478459
Snow_2006
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Дошло. Видимо, имеется в виду необходимость остаться не только на той же строке, но и на том же столбце (ячейке ГРИД).
А можно краткое описать, когда это нужно ?
У меня даже при ведении склада пользователи не выдвигают таких требований.
...
Рейтинг: 0 / 0
12.01.2006, 12:19
    #33478617
Владимир СА
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Snow_2006...А можно краткое описать, когда это нужно ?
У меня даже при ведении склада пользователи не выдвигают таких требований.Наверное каждый программист смотрит на свое изобретение со своей точки зрения. Если пользователь доволен твоим изобретением, то все хорошо. Но ты сам являешься оценщиком своего продукта. И если ты увидел на стороннем продукте что-то лучшее, то естественно (у меня лично) просыпается протребность сделать что-то похожее или лучше.
...
Рейтинг: 0 / 0
12.01.2006, 13:06
    #33478801
Aleksey-K
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Index, sort, order
Snow_2006Дошло. Видимо, имеется в виду необходимость остаться не только на той же строке, но и на том же столбце (ячейке ГРИД).
А можно краткое описать, когда это нужно ?
У меня даже при ведении склада пользователи не выдвигают таких требований.
Если у вас в GRID столбцов много и для выбора столбца по которому надо делать сортировку вам пришлось прокручивать GRID до нужного столбца и выбранный в данный момент столбец стал невидим, то при выборе сортировки по выбранному столбцу и при обновлении GRID ваш "сортированный" столбец станет опять за пределами просмотра GRID в форме.
Что-бы этого избежать, я в методе GRID, который отвечает за сортировку по выбранному столбцу выдаю команду типа m.loColumn.SetFocus()
С уважением, Алексей
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Index, sort, order / 16 сообщений из 16, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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