Страница 1 из 1

Как обновить список записей в броузе из другого файла?

Добавлено: 12 Февраль 2007, 15:17
Илья Пащенко
Обстановка - C6EE/ABC. Программа работает с несколькими базами данных (наборами файлов). В каталоге выбирается папка, после этого именам файлов присваивается путь до этой папки.

Главное окно программы - список записей файла. Каталог вызывается кнопкой из этого окна. После выбора папки в окне каталога переопределяю имена файлов, и надо перечитать записи в главном окне (из нового файла). Что-то не могу... :-(

Cash - основной файл (в окне-списке), Payers и Paytypes - связанные.
Пишу вот так:

Код: Выделить всё

Relate:Cash.Close
Relate:Payers.Close
Relate:Paytypes.Close
DO DefineFiles   ! Здесь переопределяются имена файлов
Relate:Cash.SetOpenRelated()
Relate:Cash.Open
Relate:Payers.Open
Relate:Paytypes.Open
SELF.FilesOpened = True
BRW1.ResetFromFile
BRW1.ResetQueue(Reset:Queue)
BRW1.PostNewSelection
Но записи из другого файла не перечитываются, в окне остаются записи предыдущего файла.
Поможите, люди добрые. :-)

Добавлено: 12 Февраль 2007, 15:30
Tolusha
Скорее файл остается открытым. Поэтом переопределение имени файла не происходит. Я делаю примерно так:

Код: Выделить всё

st# = Status(MyFile)
if st#; Close(MyFile).
MyFile{prop:name} = NewName
if st#; Open(MyFile, st#)

Добавлено: 12 Февраль 2007, 16:09
Илья Пащенко
Точно, не были закрыты файлы.

Стал закрывать через CLOSE(file) и открывать затем через SHARE(file), заработало. Но непонятно, почему не удавалось через методы Relate.

Добавлено: 12 Февраль 2007, 16:24
Tolusha
RTFM

Добавлено: 13 Февраль 2007, 15:23
Илья Пащенко
Tolusha писал(а):RTFM
Это-то понятно, что в доке всё есть. :D
А ткнуть в конкретное место можно? :shock:

Добавлено: 13 Февраль 2007, 15:33
Tolusha
Топик: CLOSE: RelationManagerClass

Добавлено: 13 Февраль 2007, 17:42
lsgsoftware
Что-то я не понял.Ведь бровз - это структурированная штука с размеченными полями.Если бровз сделан для одного файла, то вызов другого файла все перекосит.Такое возможно, если в бровзе всего одно поле или если файлы имеют одинаковую структуру.Если так, то выводи в бровзе не записи файла, а локальные переменные, в которые заталкивются данные в точке Validate record - и работай хоть с сотней файлов