powered by simpleCommunicator - 2.0.56     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с гридом
12 сообщений из 12, страница 1 из 1
Проблема с гридом
    #35815325
Может кто-то встречался с такой проблемой...может даже есть решение
есть форма на ней PageFrame, на котором три закладки, на каждой закладке по таблице, ну связь relation по коду, когда находимся на первой закладке никаких связей,

если я не трогаю вторую закладку, а иду на третью, то всё нормально

переходим на вторую, устанавливается связь таб1->таб2 -> таб3, на второй закладке показываются записи выбраного кода таб1, после деактивации Page2, все связи отменяются set relation to, переходим на третью закладку, а там записей нет и указатель на последней записи не переходит на первую, даже после команды Go top (хотя если просто browse то записи показываются), что только неделаешь и refresh и go top бесполезно (правда когда recordsource ="", то записи появляются)...как расшевелить этот гриданый грид
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815482
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вместо Relation использовать запросы. Самое простое - параметризированный Local View.
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815540
Local view это для баз данных, а у меня free table, запросы(у меня не клиент сервер, и из этого можно черпать сколько угодно плюсов) ...конечно можно..ну я думаю они медленее, чем простой relation(для примера одна форма с pageframом на две закладки и две таблицы на каждой закладке, и сделать отношение и запрос и сравнить, сколько будет этот запрос выбирать две записи из миллиона записей) ...
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815572
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тогда открой одни и те же таблицы несколько раз в разных рабочих областях. Разные копии (разные рабочие области) - для разных закладок. В этом случае не надо будет каждый раз заново настривать Relation при активизации страниц.

Кроме Local View можно использовать CursorAdapter. Ему база данных не нужна. По скорости разницы не заметишь, поскольку в любом случае используются индексы.
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815657
А что более правильно (ну напрмер в запросах можно использовать условие where t1.kod=t2.kod, но более правильно это внутренее объединение inner join), открыть в другой области again или сделать Cursor Adapter(ведь его источником всё равно является запрос, тогда чем он лучше запроса в конкретном случае не клиент серверной технологии)
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815671
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторчем он лучше запроса

то что это объект со всеми вытекающими из этого последствиями,
имеет методы и события, им очень просто управлять,
он уже по-умолчанию содержит мощные заготовленные инструменты
для реализации каких-либо задач по получению, изменению наборов данных.
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815677
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
пример
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815889
Спасибо...У тебя приведена в примере клиент-серверная технология...где запись осуществляется не сразу на диск, а через курсор, с возможностью отменить изменения...это правильно и так надо работать, но я веду программу, которая уже написана, вот и думаю ... зачем в библиотеке созданы пустая форма, пустая кнопка и пустой грид, почему нельзя воспользоваться стандартными классами, в start.prg написано oForm = createobject('myForm',oCad), а myForm имеет ссылку на родительский класс oForm...как можно это использовать не со стартовой программы, а только куском(например есть процедура перевода суммы в символьное представление суммы, там подставил свои параметры, она и работает...здесь же что-то не догоняю)...и конечно же если бы был сайт типа Juri Shutenko или Алексея Климова..где по шагам расписано, что для чего...весь процесс создания программы

Большое спасибо за пример...:-))
...
Рейтинг: 0 / 0
Проблема с гридом
    #35815998
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
это не технология, а прием разработки в фокспро.
обратите внимание на то, что все примеры это не конкретная конечная реализация,
это попытка показать иной подход к разработки с применением приемов и способов ООП
в фокспро, причем именно визуальной разработки классов,
чаще всего с применением наслдеования классов,
поэтому возможно чаще всего Вами это воспринимается как нечто необычное.
Буду рад если какие-то приемы заставят просто задуматся и оставят какой-то след.
...
Рейтинг: 0 / 0
Проблема с гридом
    #35816012
прошелмимо
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторкак можно это использовать не со стартовой программы, а только куском

обратите на пример просто внимание, как на какую-то модель, которая
демонстрирует что-то для Вас полезное и необычное.
рано или поздно перед Вами встанет проблема рефакторинга
ранее разработанных приложений, либо разработка с нуля.
вот в этом случае стоит вспомнить об этом примере,
поиграть, понять получите ли Вы какие-то выгоды от такого приема
либо нет, и тогда уже принять решение о применении классов при разработке.
...
Рейтинг: 0 / 0
Проблема с гридом
    #35817168
Фотография ВладимирМ
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не_проходи_мимоА что более правильно
Такой термин, в данном случае, не уместен. Обычно используют терминам "удобнее".

Есть задача. Он должна быть решена. Решил? Молодец! Как решил? Никого не волнует!

Однако после решения задачи начинается ее сопровождение и развитие. И вот здесь важным оказывается именно способ решения, но не с точки зрения его "правильности", а с точки зрения простоты и удобства внесения нужных модификаций.

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

Не_проходи_мимону напрмер в запросах можно использовать условие where t1.kod=t2.kod, но более правильно это внутренее объединение inner join
Если речь идет об описанной задаче, где первая страница - данные одной таблицы, а вторая страница - данные другой таблцы, то логично использовать именно t1.kod=t2.kod, а вовсе не INNER JOIN. Ведь из главной страницы вам вообще ничего не надо. Нужен только ее идентификатор. Так зачем же "городить" объединение, кода этот идентификатор можно просто прочитать из текущей записи?

Не_проходи_мимооткрыть в другой области again
У вас проблема в том, что вы пишите приложение не с нуля, а сопровождаете уже готовое решение. Поэтому любая технология, отличная от использования Relation потребует существенной переделки приложения. Слишком много затрат. Проще "вписаться" в существующую идеологию, особенно, если это разовая задача.

Не_проходи_мимоили сделать Cursor Adapter(ведь его источником всё равно является запрос, тогда чем он лучше запроса в конкретном случае не клиент серверной технологии)
Использование запроса лучше, чем Relation в том плане, что проще модифицировать задачу.

Дело в том, что relation накладывает ряд ограничений. Например, недопустимо менять главный индекс подчиненной таблицы. Если пользователь захотел иметь возможность сортировки, то вы просто ничего не сможете сделать. Relation не позволит.

Ну, а почему именно CursorAdapter, а не прямой запрос, так Александр уже объяснил. Над запросом все-равно придется писать некую "обертку" по его обработке. А в CursorAdapter эта "обертка" уже есть.
...
Рейтинг: 0 / 0
Проблема с гридом
    #35818839
Спасибо всем ответившим...:-))
...
Рейтинг: 0 / 0
12 сообщений из 12, страница 1 из 1
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Проблема с гридом
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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