powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Два ГРИДА
15 сообщений из 15, страница 1 из 1
Два ГРИДА
    #33447308
Krushinskaya Olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Помогите, пожалуйтста!
Весь день конопатю сайт, и проект.
У меня есть 2 таблицы ТАБ1 и ТАБ2 основных, связанные по коду.Причем ТАБ1 еще связана со справочниками СПР1, СПР2.
Если я делаю через Enviroment связываю их в ручную, а в форме делаю одному гриду источник-ТАБ1, а второму гриду ТАБ2, то все работает хорошо. При перемещении по первому гриду, второй грид меняет свои значения. Все было бы классно, но мне захотелось поиск сделать, чтобы при нажатии на заголовок грида, сортировалось по любым полям. И тут проблема.
1. Сортировка производится только по возрастанию. Это я меняю thisform.dataenvironment.cursor1.order="kod" Как сделать, чтобы было по убыванию?
2. К тому же некоторые поля в ТАБ1, связанны со справочниками, и соответственно в гриде1 выводятся значения со СПР1, как тогда в этом случае делать сортировку, ведь ТАБ1 в thisform.dataenvironment.cursor1, а СПР1 в thisform.dataenvironment.cursor3

Или все придется делать вручную?
Создавать курсор, в котором связываю ТАБ1 со СПР1, СПР2, СПР3 и кидать его в грид1 и создавать курсор 2 и кидать его в грид2,
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447359
Фотография Aleksey-K
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
По поводу сортировки по щелчку на колонке (и по возрастанию и по убыванию) посмотрите тут http://www.caws.atnet.ru/vfox/grid.html. Может поможет.
С уважением, Алексей
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447381
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Krushinskaya Olga...
1. Сортировка производится только по возрастанию. Это я меняю thisform.dataenvironment.cursor1.order="kod" Как сделать, чтобы было по убыванию?
Команда:
Код: plaintext
1.
2.
INDEX ON eExpression TO IDXFileName | TAG TagName 
   [ COLLATE cCollateSequence ] [OF CDXFileName] [FOR lExpression]
   [COMPACT] [ASCENDING | DESCENDING] [UNIQUE | CANDIDATE] [ADDITIVE]
ASCENDING - задает возрастающий порядок
DESCENDING - задает убывающий порядок
Krushinskaya Olga...
2. К тому же некоторые поля в ТАБ1, связанны со справочниками, и соответственно в гриде1 выводятся значения со СПР1, как тогда в этом случае делать сортировку, ведь ТАБ1 в thisform.dataenvironment.cursor1, а СПР1 в thisform.dataenvironment.cursor3
Или все придется делать вручную?
Создавать курсор, в котором связываю ТАБ1 со СПР1, СПР2, СПР3 и кидать его в грид1 и создавать курсор 2 и кидать его в грид2,
Лично я, сделал бы Local View параметризированный при необходимости.
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447442
Krushinskaya Olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Хорошо, если делать через View
Как грамотнее? Создать View отдельно для одного грида и для другого. А потом в DE формы эти Viewшки связать, и выводить в гриды?
Или я вообще не так мыслю? Или надо их программно создавать при загрузке формы, и создавать грид в ручную, прописывая ему источники из Viewшек?
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447471
Недоходящий
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А что такое Local View и с чем его едят?
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447688
Фотография Владимир СА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Krushinskaya OlgaХорошо, если делать через View
Как грамотнее? Создать View отдельно для одного грида и для другого. А потом в DE формы эти Viewшки связать, и выводить в гриды?
Или я вообще не так мыслю? Или надо их программно создавать при загрузке формы, и создавать грид в ручную, прописывая ему источники из Viewшек?У каждого наверное свой подход. Как бы я сделал:
1. Конечно создал Local View из ТАБ1 связь с СПР1, связь с СПР2, связь с СПР3.
2. Создал параметризированный Local View для Grid2 из ТАБ2 с параметром. Ведь как-то ТАБ2 связывается с ТАБ1. Т.е. в этом Local View отображается только часть информации соответствующая только конкретной записи из ТАБ1.
3. При движении по записям по Grid1 т.е. в методе Grid1.AfterRowColChange определяется параметр или параметры из LocalView1 для составления LocalView2 и используя функцию REQUERY("LocalView2") переопределял источник данных для Grid2 и перепоказывал его.
Примерно так я делаю.
НедоходящийА что такое Local View и с чем его едят?Смотри Help по CREATE SQL VIEW:
Код: plaintext
1.
2.
CREATE [SQL] VIEW [ViewName ] [REMOTE]   
[CONNECTION ConnectionName [SHARE] | CONNECTION DataSourceName]
   [AS SQLSELECTStatement]
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447734
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для справки:

Порядок сортировки в существующем индексе можно менять динамически через команду

Код: plaintext
1.
2.
3.
4.
SET ORDER TO
  [nIndexNumber | IDXIndexFileName | [TAG] TagName [OF CDXFileName] 
  [IN nWorkArea | cTableAlias] 
  [ASCENDING | DESCENDING]]

Т.е., если есть индекс по полю kod, то настроить его в режиме по убыванию можно так:

Код: plaintext
SET ORDER TO TAG kod IN MyTab DESCENDING

Пересоздавать индекс для этого не нужно.
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447876
Krushinskaya Olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир СА, вроде понятно, спасибо, завтра попробую
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447882
Krushinskaya Olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ!
SET ORDER TO ... - хорошо если одна таблица, а если в ТАБ есть поле код_спр, по которому вообще не надо сортировать, а надо сортировать по полю имя_спр, которое находитя в таблице СПР, и связано по этому полю код_спр. Тогда действительно без запросов не обойтись.

а еще я ни раз читала, пишут просто SET ORDER TO без указания индекса, тогда что происходит? Индекс обнуляется?
...
Рейтинг: 0 / 0
Два ГРИДА
    #33447967
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Krushinskaya Olgaа еще я ни раз читала, пишут просто SET ORDER TO без указания индекса, тогда что происходит? Индекс обнуляется?
В FoxPro существует такое понятие "главный индекс". Это индекс, под управлением которого таблица находится в данный момент. Т.е. этот индекс определяет логический порядок следования записей в данный момент .

Оним из способов указания главного индекса и является команда SET ORDER.

Если у нее не указан параметр, то это означает, что необходимо сбросить главный индекс. Т.е. после такой команды у таблицы на данный момент не окажется никакого главного индекса. В этом случае логический порядок следования записей будет равен физическому порядку.

Наглядно это видно в BROWSE-окне. Т.е. просто попробуй давать в командном окне команды вроде

Код: plaintext
1.
2.
3.
4.
5.
6.
SET ORDER TO kod
BROWSE
SET ORDER TO kod DESCENDING
BROWSE
SET ORDER TO
BROWSE
...
Рейтинг: 0 / 0
Два ГРИДА
    #33449057
Krushinskaya Olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ
Вчера наткнулась на один Ваш примерчик. (К сожалению, потеряла ссылку) Хотела спросить: Вот в форме есть метод nrecno_assign. Когда он срабатывает или запускается?
...
Рейтинг: 0 / 0
Два ГРИДА
    #33449095
Burn
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Вот в форме есть метод nrecno_assign. Когда он срабатывает или запускается?
Когда изменяется значение свойства nrecno
...
Рейтинг: 0 / 0
Два ГРИДА
    #33449270
alex11100
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Visual FoxPro executes code in an Access method when querying the value of a property, typically by using the property in an object reference, storing the property value to a variable, or displaying the property value with the question mark (?) command.

Visual FoxPro executes code in an Assign method when you attempt to change the property value, typically by using the STORE command or = operator to assign a new value to the property.
...
Рейтинг: 0 / 0
Два ГРИДА
    #33449386
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Krushinskaya OlgaВладимирМ
Вчера наткнулась на один Ваш примерчик. (К сожалению, потеряла ссылку) Хотела спросить: Вот в форме есть метод nrecno_assign. Когда он срабатывает или запускается?
Если смотреть пример, то это событие срабатывает когда дается команда вроде

ThisForm.nRecno=recno("b_l_chan")

Т.е. когда происходит попытка программного изменения значения свойства nRecno.

Вообще-то, можно же было запустить пример в отладчике и посмотреть, что именно вызывает срабатывание данного события.
...
Рейтинг: 0 / 0
Два ГРИДА
    #33449563
Krushinskaya Olga
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ВладимирМ, да-да я разобралась. Спасибо.
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Два ГРИДА
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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