|
|
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
Помогите, пожалуйтста! Весь день конопатю сайт, и проект. У меня есть 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, ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 17:13 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
По поводу сортировки по щелчку на колонке (и по возрастанию и по убыванию) посмотрите тут http://www.caws.atnet.ru/vfox/grid.html. Может поможет. С уважением, Алексей ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 17:27 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
Krushinskaya Olga... 1. Сортировка производится только по возрастанию. Это я меняю thisform.dataenvironment.cursor1.order="kod" Как сделать, чтобы было по убыванию? Команда: Код: plaintext 1. 2. DESCENDING - задает убывающий порядок Krushinskaya Olga... 2. К тому же некоторые поля в ТАБ1, связанны со справочниками, и соответственно в гриде1 выводятся значения со СПР1, как тогда в этом случае делать сортировку, ведь ТАБ1 в thisform.dataenvironment.cursor1, а СПР1 в thisform.dataenvironment.cursor3 Или все придется делать вручную? Создавать курсор, в котором связываю ТАБ1 со СПР1, СПР2, СПР3 и кидать его в грид1 и создавать курсор 2 и кидать его в грид2, Лично я, сделал бы Local View параметризированный при необходимости. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 17:32 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
Хорошо, если делать через View Как грамотнее? Создать View отдельно для одного грида и для другого. А потом в DE формы эти Viewшки связать, и выводить в гриды? Или я вообще не так мыслю? Или надо их программно создавать при загрузке формы, и создавать грид в ручную, прописывая ему источники из Viewшек? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 17:51 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
А что такое Local View и с чем его едят? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 18:00 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 19:42 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
Для справки: Порядок сортировки в существующем индексе можно менять динамически через команду Код: plaintext 1. 2. 3. 4. Т.е., если есть индекс по полю kod, то настроить его в режиме по убыванию можно так: Код: plaintext Пересоздавать индекс для этого не нужно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 20:12 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
Владимир СА, вроде понятно, спасибо, завтра попробую ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 22:24 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
ВладимирМ! SET ORDER TO ... - хорошо если одна таблица, а если в ТАБ есть поле код_спр, по которому вообще не надо сортировать, а надо сортировать по полю имя_спр, которое находитя в таблице СПР, и связано по этому полю код_спр. Тогда действительно без запросов не обойтись. а еще я ни раз читала, пишут просто SET ORDER TO без указания индекса, тогда что происходит? Индекс обнуляется? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 20.12.2005, 22:30 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
Krushinskaya Olgaа еще я ни раз читала, пишут просто SET ORDER TO без указания индекса, тогда что происходит? Индекс обнуляется? В FoxPro существует такое понятие "главный индекс". Это индекс, под управлением которого таблица находится в данный момент. Т.е. этот индекс определяет логический порядок следования записей в данный момент . Оним из способов указания главного индекса и является команда SET ORDER. Если у нее не указан параметр, то это означает, что необходимо сбросить главный индекс. Т.е. после такой команды у таблицы на данный момент не окажется никакого главного индекса. В этом случае логический порядок следования записей будет равен физическому порядку. Наглядно это видно в BROWSE-окне. Т.е. просто попробуй давать в командном окне команды вроде Код: plaintext 1. 2. 3. 4. 5. 6. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 00:34 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
ВладимирМ Вчера наткнулась на один Ваш примерчик. (К сожалению, потеряла ссылку) Хотела спросить: Вот в форме есть метод nrecno_assign. Когда он срабатывает или запускается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 13:04 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
>Вот в форме есть метод nrecno_assign. Когда он срабатывает или запускается? Когда изменяется значение свойства nrecno ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 13:10 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 13:56 |
|
||
|
Два ГРИДА
|
|||
|---|---|---|---|
|
#18+
Krushinskaya OlgaВладимирМ Вчера наткнулась на один Ваш примерчик. (К сожалению, потеряла ссылку) Хотела спросить: Вот в форме есть метод nrecno_assign. Когда он срабатывает или запускается? Если смотреть пример, то это событие срабатывает когда дается команда вроде ThisForm.nRecno=recno("b_l_chan") Т.е. когда происходит попытка программного изменения значения свойства nRecno. Вообще-то, можно же было запустить пример в отладчике и посмотреть, что именно вызывает срабатывание данного события. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 21.12.2005, 14:20 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=33447876&tid=1592735]: |
0ms |
get settings: |
7ms |
get forum list: |
13ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
170ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 199ms |
| total: | 459ms |

| 0 / 0 |
