powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / helpic
13 сообщений из 13, страница 1 из 1
helpic
    #33989179
Foxist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
есть две вью из скл,
одна - гл.таблица
другая - справочник

вот хочу их связать для обработки в гриде
чтобы сразу отражались изменения в

не подскажите как это сделать?

прошу о релэйшен(set relation to..) не упоминать
...
Рейтинг: 0 / 0
helpic
    #33989348
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ну например навесит на соответствующее поле комбобокс.
И еще если это вью - почему сразу не выбирать в запрос нужное поле из справочника ?
...
Рейтинг: 0 / 0
helpic
    #33989403
Fox_is't
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вью - ремоут
не хотелось бы лепить вью для каждой формочки..
...
Рейтинг: 0 / 0
helpic
    #33989961
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если вам нужно просто получить строку в гриде с расшифровкой из справочника
ну тогда
1. комбобокс вам в руки
2. вычисляемое поле в гриде+UDF для показа - и на Click/DblClick - формочка для выбора значений из справочника
4.Свой контрол на базе класса , который умеет показывать и выбирать значения из справочника.
3. про сет релейшн не упоминаю , хотя неясно почему

1. - самое простое 4. Самое сложное , но позволит переиспользовать написанный класс везде, где с этим справочником надо работать
...
Рейтинг: 0 / 0
helpic
    #33990215
Foxis't
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
4. пока не освоил
2. не понятно
1. что даст комбобокс? откуда он знает какую запись справочника показать для этой записи таблицы?

3. потому что создание ключевого поля для ремоута чревато
...
Рейтинг: 0 / 0
helpic
    #33990442
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxist3. потому что создание ключевого поля для ремоута чревато
Чревато чем ? Я бы сказал НЕ СОЗДАНИЕ ключевого поля чревато полным гемором при обновлениях.
И у вас в таблице что нет ключевых полей - ???
Как тогда вы собираетесь связывать эти 2 вью , собственно говоря если связи нет - как можно говорить о показе чего-то из справочника , что и как выбирать.
Приведите структуру этих вьюх

Foxist4. пока не освоил
Ну тогда без коментариев

Foxist2. не понятно
ну в гриде можно создать колонку, непривязанную к таблице.
в ControlSource вы пишите myfynction()
где myfynction() - это функция возврашающая название из справочника
Примерно так
Код: plaintext
1.
2.
3.
function myfynction()
 select Наименование from Справочник where Код=Главная_табл.Код into cursor ttt
return ttt.Наименование
Foxist1. что даст комбобокс? откуда он знает какую запись справочника показать для этой записи таблицы?
Ну так вы ему укажите ;-)
Помещаете комбо в ту колонку где у вас код, который нужно расшифровать
ставите ей
Код: plaintext
Sparse=.f.
Для комбо
Код: plaintext
1.
2.
3.
4.
ControlSource =имя поля главной таблицы для расшифровки
BoundTo=.T.
BoundColumn= 2 
RowSourceType= 6 -Fields
RowSource=справочник.Наименование,Код
...
Рейтинг: 0 / 0
helpic
    #33990660
Foxis't
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
таблиц нет, они в скл

у меня только ремоуты

создав таг получаю замороженное состояние, обновление вью не дает текущего состояния таблицы в скл, потому что кей фокса имеет индексы старой версии таблицы (вью)

вы меня поняли?
...
Рейтинг: 0 / 0
helpic
    #33990713
-=AlexiS=-
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxistтаблиц нет, они в скл
Ну и что ?

Foxistу меня только ремоуты
Это я понял - может вас смушает что я писал Главная таблица - ну так это то-же самое что и вью.Просто по привычке набирал...

Foxistсоздав таг получаю замороженное состояние, обновление вью не дает текущего состояния таблицы в скл, потому что кей фокса имеет индексы старой версии таблицы (вью)
1. Что такое таг - индекс ?
Если да - по какому полю вы его создаете и в каком из вью
2. Что значит кей фокса имеет индексы старой версии таблицы (вью)

Foxistвы меня поняли?
НЕТ

Короче
1.стуктуру таблиц и вью в студию
2.тот код которым вы "готовите" эти вьюхи к использованию в форме
3.Что конкретно нужно показать (поле главного вью-поле справочника )
...
Рейтинг: 0 / 0
helpic
    #33991821
Foxis't
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
жаль что НЕТ.....

обьясняю, для создания отношения в вфп используется кей в таблице чилд (справочнике)

если мы индексируем справочник по ид получаем временный файл 9485439875
в нем таг

далее, коллега обновляет значение справочника

мы пока не передернем вью обновлений не видим...

передергиваем - рекьюри, но новых записей не видим, т.к. нужен реиндекс

т.о. для получения реальной картины нужны две операции - рекьюри и реиндех

что замедляет работу и добавляет гемор програмисту..

теперь понятно?
...
Рейтинг: 0 / 0
helpic
    #33992365
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если по View посторен структурный индексный файл, то Requery() автоматически обновит и индекс. Дополнительно Reindex делать не надо.

НО! При индексации View есть некоторые тонкости, которые зависят от версии FoxPro и технологии индексации. Поэтому:

-) Версия FoxPro?
-) Как происходит индексация (какой командой)
-) В какой момент происходит индексация (все теги сразу или по мере необходимости)

PS: View без ключевого поля - это большие проблемы. Видимо, Вы просто не понимаете что такое "ключевое поле" вообще и применительно к View в частности. Как Вы вообще будете отличать одну запись от другой? По каким признакам?
...
Рейтинг: 0 / 0
helpic
    #33992576
Foxis't
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо Владимир, что поняли мою мысль...

Версия FoxPro? - ВФП9

Как происходит индексация (какой командой)
сет индех ту (таг)

В какой момент происходит индексация (все теги сразу или по мере необходимости)
в момент открытия формы (инит) после открытия вью в начале программы

PS: View без ключевого поля - это большие проблемы. Видимо, Вы просто не понимаете что такое "ключевое поле" вообще и применительно к View в частности. Как Вы вообще будете отличать одну запись от другой? По каким признакам?

нет ни одной таблицы в скл без кей поля ид, кроме того ид заполняется "автоматически"

структурный индексный файл, то Requery() автоматически обновит и индекс
опыт потери записей был в версии вфп-6......

т.е. один клиент не видит новых записей и все... даже после рекьюри
...
Рейтинг: 0 / 0
helpic
    #33992578
Foxis't
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пояснение

индексация конечно делается
индех он ....

а потом уже сет индекс...
...
Рейтинг: 0 / 0
helpic
    #33992873
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Foxis'tиндексация конечно делается
индех он ....
а потом уже сет индекс...
Так не пойдет. Приведите полный синтаксис команды. Из такого описание не ясно, какой же индекс Вы построили. Структурный или НЕ структурный. Судя по последующему SET INDEX, вероятно речь идет даже не о мультииндексном, а об обычном IDX-файле.

Убедится в том, какой индекс построен можно по команде

?CDX(1)

Эта команда даст ссылку на структурных индекс, если он есть

?CDX(2)

Эта команда даст ссылку на НЕ структурный, но мультииндексный файл (если он есть)

Foxis't ВладимирМструктурный индексный файл, то Requery() автоматически обновит и индексопыт потери записей был в версии вфп-6......

Я правильно понял, что у Вас пока-что все в порядке, но Вы опасаетесь, что могут быть проблемы?

Тогда делаете так. Открываете одновременно на своей машине две компии FoxPro. В каждой из них открываете свое Remote View, затем индексируете и в одной копии вставляете запись. Далее делаете Requery() в первой и смотрите, появилась эта новая запись или нет.

Для этого эксперимента сами формы открывать не надо. Достаточно просто открыть View

Код: plaintext
1.
USE MyView
INDEX ON Field1 TAG Field1

В таком синтаксисе будет создан тег именно структурного индексного файла. Поэтому SET INDEX ему не нужен. Переключение на нужный тег осуществляется командой

SET ORDER TO (имя или номер тега)
...
Рейтинг: 0 / 0
13 сообщений из 13, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / helpic
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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