Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Формы
|
|||
|---|---|---|---|
|
#18+
Есть два remote view, нужно сделать форму из двух grid. В первом выбирается поле(источник - первый view), а во втором grid'е появляется информация, источник второй view. Так как нет индексации(по-моему в remote view нет индексов) то автоматов отношение не делается. Как результаты select'a занести в поля второго grid'a, у меня что-то не получилось. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2003, 23:32 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
Перед буферизацией 2 view сделать индекс по нему и set relation ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2003, 06:29 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
Можно индексировать представление. А можно его немного изменить, чтобы в нем отображались только нужные записи. И первом гриде, в событии AfterRowColChange написать Код: plaintext 1. 2. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2003, 14:44 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
2brahew: Это как? 2karly: Как его проиндексировать? А можно его немного изменить, чтобы в нем отображались только нужные записи. Менять представление в моем случае нельзя. View2Param = view1.Field1 Requery("view2") ThisForm.Grid2.Refresh() Что это "View2Param"? В первом гриде, в событии AfterRowColChange написал: select par1 from view1; where ALLTRIM(view1.idob) = ALLTRIM(ThisForm.Grid1.Column2.Text1.value); into cursor curs1 ThisForm.Grid2.Column1.Text1.value = curs1.year1 ThisForm.refresh() почему select нормально отрабатывает, а во втором gride ничего не отображается? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2003, 18:17 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
Индексировать - как обычно, командой index :) Только этот индекс не сохраняется, его нужно создавать при каждом открытии view. И не обновляется после команды Requery(), необходимо после нее выполнять Reindex View2Param - это я так назвал параметр для второго view. Вместо ThisForm.Grid2.Column1.Text1.value = curs1.year1 нужно написать ThisForm.Grid2.RowSource = curs1 ThisForm.Grid2.Column1.ControlSource = curs1.year1 И последнее - ты сделал максимум возможного, чтобы твой запрос выполнялся медленно ;). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2003, 20:27 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
2karly: ОК это понятно. По поводу медленный запрос - предложи альтернативу буду рад. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2003, 22:27 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
2 lesha_spb 1. В качестве источника данных для запроса указано view. Чтобы оптимизировать запрос, нужно построить индекс по полю idob после вызова или обновления view1. Или строить запрос на основе таблицы, где такой индекс должен присутствовать на постоянной основе. 2. Индексы по символьным выражениям в Фоксе постоянной длины. А выражение ALLTRIM(view1.idob) - переменной. Поэтому индекс по нему построить нельзя. Точнее, в качестве длины выражения будет принята длина первой записи. Нужно писать так Select ... view1.idob = ALLTRIM(ThisForm.Grid1.Column2.Text1.value) ... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2003, 09:51 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
Более менее ясно - попробую. Еще такой вопрос: как средствами фокса очистить содержимое курсора, не закрывая его? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2003, 15:59 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
А курсор редактируемый? Если нет, то тогда сначала Select 0 Use ( dbf("CursorName") ) Alias Focus_Pocus Again А затем... ZAP Ну и уберем за собой мусор Use in Focus_Pocus ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2003, 17:15 |
|
||
|
Формы
|
|||
|---|---|---|---|
|
#18+
Несколько не по теме. -) Если в объекте TextBox сделать настройку ThisForm.Grid1.Column2.Text1.Format='T' То ведущие пробелы будут отсекаться автоматически, а если у этого объекта не указан ControlSource, то также автоматически будут отсекатся и концевые пробелы (впрочем, при сравнении полей концевые пробелы не столь важны, если поля равной длины), тогда можно писать запрос не отвлекаясь на AllTrim() Select ... view1.idob = ThisForm.Grid1.Column2.Text1.value -) Любое View открывается в FoxPro в режиме оптимистической буферизации строк (3) и может быть переключено только в режим оптимистической буферизации таблиц (5) и никак иначе. Индексировать таблицу или View можно только в том случае если она НЕ находится в режиме табличной буферизации. Т.е. или не буферизирована вообще или в режиме строковой буферизации. -) Созданный индекс для View тем не менее обновляется после команды Requery(), так что пересоздание необходимо только в случае, если View было переоткрыто, т.е. явно закрыто и открыто заново. -) Начиная с 7 версии курсор можно сделать редактируемым добавив опцию ReadWrite SELECT ... FROM ... INTO CURSOR MyCursor NOFILTER READWRITE ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2003, 17:44 |
|
||
|
|

start [/forum/topic.php?fid=41&msg=32277657&tid=1597807]: |
0ms |
get settings: |
7ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
45ms |
get topic data: |
7ms |
get forum data: |
2ms |
get page messages: |
33ms |
get tp. blocked users: |
1ms |
| others: | 217ms |
| total: | 327ms |

| 0 / 0 |
