Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
13.02.2009, 10:51
|
|||
---|---|---|---|
|
|||
Проблема с гридом |
|||
#18+
Может кто-то встречался с такой проблемой...может даже есть решение есть форма на ней PageFrame, на котором три закладки, на каждой закладке по таблице, ну связь relation по коду, когда находимся на первой закладке никаких связей, если я не трогаю вторую закладку, а иду на третью, то всё нормально переходим на вторую, устанавливается связь таб1->таб2 -> таб3, на второй закладке показываются записи выбраного кода таб1, после деактивации Page2, все связи отменяются set relation to, переходим на третью закладку, а там записей нет и указатель на последней записи не переходит на первую, даже после команды Go top (хотя если просто browse то записи показываются), что только неделаешь и refresh и go top бесполезно (правда когда recordsource ="", то записи появляются)...как расшевелить этот гриданый грид ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 11:34
|
|||
---|---|---|---|
Проблема с гридом |
|||
#18+
Вместо Relation использовать запросы. Самое простое - параметризированный Local View. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 11:49
|
|||
---|---|---|---|
|
|||
Проблема с гридом |
|||
#18+
Local view это для баз данных, а у меня free table, запросы(у меня не клиент сервер, и из этого можно черпать сколько угодно плюсов) ...конечно можно..ну я думаю они медленее, чем простой relation(для примера одна форма с pageframом на две закладки и две таблицы на каждой закладке, и сделать отношение и запрос и сравнить, сколько будет этот запрос выбирать две записи из миллиона записей) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 11:58
|
|||
---|---|---|---|
Проблема с гридом |
|||
#18+
Тогда открой одни и те же таблицы несколько раз в разных рабочих областях. Разные копии (разные рабочие области) - для разных закладок. В этом случае не надо будет каждый раз заново настривать Relation при активизации страниц. Кроме Local View можно использовать CursorAdapter. Ему база данных не нужна. По скорости разницы не заметишь, поскольку в любом случае используются индексы. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 12:20
|
|||
---|---|---|---|
|
|||
Проблема с гридом |
|||
#18+
А что более правильно (ну напрмер в запросах можно использовать условие where t1.kod=t2.kod, но более правильно это внутренее объединение inner join), открыть в другой области again или сделать Cursor Adapter(ведь его источником всё равно является запрос, тогда чем он лучше запроса в конкретном случае не клиент серверной технологии) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 12:22
|
|||
---|---|---|---|
|
|||
Проблема с гридом |
|||
#18+
авторчем он лучше запроса то что это объект со всеми вытекающими из этого последствиями, имеет методы и события, им очень просто управлять, он уже по-умолчанию содержит мощные заготовленные инструменты для реализации каких-либо задач по получению, изменению наборов данных. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 13:21
|
|||
---|---|---|---|
|
|||
Проблема с гридом |
|||
#18+
Спасибо...У тебя приведена в примере клиент-серверная технология...где запись осуществляется не сразу на диск, а через курсор, с возможностью отменить изменения...это правильно и так надо работать, но я веду программу, которая уже написана, вот и думаю ... зачем в библиотеке созданы пустая форма, пустая кнопка и пустой грид, почему нельзя воспользоваться стандартными классами, в start.prg написано oForm = createobject('myForm',oCad), а myForm имеет ссылку на родительский класс oForm...как можно это использовать не со стартовой программы, а только куском(например есть процедура перевода суммы в символьное представление суммы, там подставил свои параметры, она и работает...здесь же что-то не догоняю)...и конечно же если бы был сайт типа Juri Shutenko или Алексея Климова..где по шагам расписано, что для чего...весь процесс создания программы Большое спасибо за пример...:-)) ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 13:47
|
|||
---|---|---|---|
|
|||
Проблема с гридом |
|||
#18+
это не технология, а прием разработки в фокспро. обратите внимание на то, что все примеры это не конкретная конечная реализация, это попытка показать иной подход к разработки с применением приемов и способов ООП в фокспро, причем именно визуальной разработки классов, чаще всего с применением наслдеования классов, поэтому возможно чаще всего Вами это воспринимается как нечто необычное. Буду рад если какие-то приемы заставят просто задуматся и оставят какой-то след. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 13:51
|
|||
---|---|---|---|
|
|||
Проблема с гридом |
|||
#18+
авторкак можно это использовать не со стартовой программы, а только куском обратите на пример просто внимание, как на какую-то модель, которая демонстрирует что-то для Вас полезное и необычное. рано или поздно перед Вами встанет проблема рефакторинга ранее разработанных приложений, либо разработка с нуля. вот в этом случае стоит вспомнить об этом примере, поиграть, понять получите ли Вы какие-то выгоды от такого приема либо нет, и тогда уже принять решение о применении классов при разработке. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
13.02.2009, 21:55
|
|||
---|---|---|---|
Проблема с гридом |
|||
#18+
Не_проходи_мимоА что более правильно Такой термин, в данном случае, не уместен. Обычно используют терминам "удобнее". Есть задача. Он должна быть решена. Решил? Молодец! Как решил? Никого не волнует! Однако после решения задачи начинается ее сопровождение и развитие. И вот здесь важным оказывается именно способ решения, но не с точки зрения его "правильности", а с точки зрения простоты и удобства внесения нужных модификаций. Поэтому выбор того или иного решения предполагает (кроме собственно факта решения) еще и удобство сопровождения и модификации. Вот с этой точки зрения и можно попробовать оценить варианты Не_проходи_мимону напрмер в запросах можно использовать условие where t1.kod=t2.kod, но более правильно это внутренее объединение inner join Если речь идет об описанной задаче, где первая страница - данные одной таблицы, а вторая страница - данные другой таблцы, то логично использовать именно t1.kod=t2.kod, а вовсе не INNER JOIN. Ведь из главной страницы вам вообще ничего не надо. Нужен только ее идентификатор. Так зачем же "городить" объединение, кода этот идентификатор можно просто прочитать из текущей записи? Не_проходи_мимооткрыть в другой области again У вас проблема в том, что вы пишите приложение не с нуля, а сопровождаете уже готовое решение. Поэтому любая технология, отличная от использования Relation потребует существенной переделки приложения. Слишком много затрат. Проще "вписаться" в существующую идеологию, особенно, если это разовая задача. Не_проходи_мимоили сделать Cursor Adapter(ведь его источником всё равно является запрос, тогда чем он лучше запроса в конкретном случае не клиент серверной технологии) Использование запроса лучше, чем Relation в том плане, что проще модифицировать задачу. Дело в том, что relation накладывает ряд ограничений. Например, недопустимо менять главный индекс подчиненной таблицы. Если пользователь захотел иметь возможность сортировки, то вы просто ничего не сможете сделать. Relation не позволит. Ну, а почему именно CursorAdapter, а не прямой запрос, так Александр уже объяснил. Над запросом все-равно придется писать некую "обертку" по его обработке. А в CursorAdapter эта "обертка" уже есть. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=41&mobile=1&tid=1586767]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
5ms |
check topic access: |
5ms |
track hit: |
36ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
52ms |
get tp. blocked users: |
2ms |
others: | 319ms |
total: | 461ms |
0 / 0 |