Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновление грида / 18 сообщений из 18, страница 1 из 1
26.06.2009, 13:52
    #36061622
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
Всем привет!

Есть грид.
thisform.grid1.RecordSource=Table1
thisform.grid1.RecordSourceType=1

Есть кнопка, которая закрывает Table1 и открывает в той же области Table2. Хочу, чтобы грид втянул в себя вторую таблицу и обновился. Делаю так в кнопке:

Table2="c:\1.dbf"

thisform.grid1.RecordSource="&Table2"
thisform.grid1.RecordSourceType=1
thisform.grid1.refresh

Не катит. Грид пустой. Что не так? Или все не так?
...
Рейтинг: 0 / 0
26.06.2009, 14:12
    #36061667
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
StandD,
Читаем в хелпе про RecordSourceType
ЗЫ
Код: plaintext
1.
thisform.grid1.RecordSourceType= 0  *ноль а не один
thisform.grid1.RecordSource=(Table2) *макроподстановки лучше не юзать, если нет крайней необходимости
ЗЫ. Кое-где без МП сложно, но если без них можно обойтись - то лучше без них обойтись ;)
...
Рейтинг: 0 / 0
26.06.2009, 15:20
    #36061855
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
tanglir,
Спасибо.
МП нужна, т.к. файлов много и их имена разные.
...
Рейтинг: 0 / 0
26.06.2009, 15:21
    #36061857
new_bie
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
прежде чем присваивать гриду новый рекордсорс, его нужно сбросить
thisform.grid1.recordsource = ""
затем присваиваем новый рекордсорс, в твоем случае "table2"
еще до кучи сделать рефреш формы или грида.

отцы поправят коль я попутал чего :)
...
Рейтинг: 0 / 0
26.06.2009, 15:22
    #36061860
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
tanglir,

Не прокатило :-(
...
Рейтинг: 0 / 0
26.06.2009, 15:23
    #36061863
Обновление грида
StandDtanglir,
Спасибо.
МП нужна, т.к. файлов много и их имена разные.Не понял логики. или предложен метод только для одного имени и файла? Можно надеяться на пояснение?
...
Рейтинг: 0 / 0
26.06.2009, 15:24
    #36061867
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
new_bie,

:-(
...
Рейтинг: 0 / 0
26.06.2009, 15:35
    #36061905
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
проходящий.StandDtanglir,
Спасибо.
МП нужна, т.к. файлов много и их имена разные.Не понял логики. или предложен метод только для одного имени и файла? Можно надеяться на пояснение?

Не понял, что не понятно.

Открывается грид на одной таблице. Хочу кнопкой перепривязать грид к другой. Код дал.
...
Рейтинг: 0 / 0
26.06.2009, 15:37
    #36061913
Обновление грида
StandDпроходящий.StandDtanglir,
Спасибо.
МП нужна, т.к. файлов много и их имена разные.Не понял логики. или предложен метод только для одного имени и файла? Можно надеяться на пояснение?

Не понял, что не понятно.

Открывается грид на одной таблице. Хочу кнопкой перепривязать грид к другой. Код дал.Не понял каким образом это доказывает необходимость МП.
...
Рейтинг: 0 / 0
26.06.2009, 15:40
    #36061928
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
проходящий.,

Возможно, что и нет. Но я и спросил в первом посте - правильный ли подход или надо по-другому.
На всякий случай поясню. Заранее имен файлов-подмен нет. Они формируются в процессе работы программы. Поэтому нет заранее имени подставы. Другого подхода кроме МП пока не нашел.
...
Рейтинг: 0 / 0
26.06.2009, 15:46
    #36061955
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
StandD,
А что не прокатило?
Вот щас сделал форму и 2 таблицы.
Повесил на кнопку такое
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
Table1="c:\tmp\1.dbf"
Table2="c:\tmp\2.dbf"
If This.Tag='t'
  This.Tag='f'
  Thisform.grid1.RecordSourceType= 0 
  Thisform.grid1.RecordSource=(Table1)
  Thisform.grid1.Refresh
Else
  This.Tag='t'
  Thisform.grid1.RecordSourceType= 0 
  Thisform.grid1.RecordSource=(Table2)
  Thisform.grid1.Refresh
Endif
Просто как кирпич. Переключается между двумя таблицами на ура (первоначальный тег ставил в ините кнопки).
ЗЫ. Про МП - читаем хелп.
Whenever possible, use a name expression instead of macro substitution. A name expression operates like macro substitution. However, a name expression is limited to passing character strings as names. Use a name expression for significantly faster processing if a command or function accepts a name (a file name, window name, menu name, and so on). For additional information on name expressions, see Name Expression Creation.

While the following commands are acceptable:
STORE 'customer' TO gcTableName
STORE 'company' TO gcTagName
USE &gcTableName ORDER &gcTagName

use a name expression instead:
USE (gcTableName) ORDER (gcTagName)

New_bie, у меня и без сброса РС всё обновляется, одним рефрешем.
...
Рейтинг: 0 / 0
26.06.2009, 15:46
    #36061956
Обновление грида
StandD,
в коде
Код: plaintext
1.
2.
Table2="c:\1.dbf"

thisform.grid1.RecordSource="&Table2"
МП как собаке пятая нога.
Код
Код: plaintext
thisform.grid1.RecordSource=Table2
даст точно такой же результат.
Но, обычно, в таких случаях, делают примерно так:
Код: plaintext
1.
2.
Table2="c:\1.dbf"
...
Use (Table2) alias TableAlias
а в гриде жестко, одни раз прописывают
Код: plaintext
thisform.grid1.RecordSource='TableAlias'
...
Рейтинг: 0 / 0
26.06.2009, 15:48
    #36061965
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
проходящий.,
тогда рефреш нужен, а то иногда не обновляется на экране.
...
Рейтинг: 0 / 0
26.06.2009, 15:52
    #36061976
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
проходящий.StandD,
в коде
Код: plaintext
1.
2.
Table2="c:\1.dbf"

thisform.grid1.RecordSource="&Table2"
МП как собаке пятая нога.
Код
Код: plaintext
thisform.grid1.RecordSource=Table2
даст точно такой же результат.
Но, обычно, в таких случаях, делают примерно так:
Код: plaintext
1.
2.
Table2="c:\1.dbf"
...
Use (Table2) alias TableAlias
а в гриде жестко, одни раз прописывают
Код: plaintext
thisform.grid1.RecordSource='TableAlias'



Да я Table2="c:\1.dbf" указал только для того, что бы было понятно, что это имя таблицы. Дураку понятно, что если есть имя файла - нахрена МП. Выше я еще раз написал, в чем проблема!
...
Рейтинг: 0 / 0
26.06.2009, 15:53
    #36061977
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
tanglir,

То же, что и проходящему. Нет заранее имен файлов!
...
Рейтинг: 0 / 0
26.06.2009, 15:57
    #36061993
Обновление грида
StandDtanglir,

То же, что и проходящему. Нет заранее имен файлов!А каким образом сделан вывод, что я этого не понял? А мой пример хорошо просмотрен/продуман? А назначение алиаса рабочей области уже правильно понято?
...
Рейтинг: 0 / 0
26.06.2009, 16:48
    #36062123
tanglir
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
Нет заранее имен файлов "Заранее" чего? В смысле, когда они появляются-то? Если их нет на момент нажатия кнопки (и в процессе обработки click'а они не формируются), о чём тогда речь идёт?
PS. Где наш хрустальный шар?
...
Рейтинг: 0 / 0
26.06.2009, 17:17
    #36062186
StandD
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Обновление грида
Спасибо, ребята! Разобрался!
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Обновление грида / 18 сообщений из 18, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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