Гость
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск / 6 сообщений из 6, страница 1 из 1
13.09.2012, 18:17
    #37956612
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
как сделать так чтобы при открытии формы, если на форме check.value=0 в грид1 выводились записи из таблицы pacient отфильтрованные следующим образом: выбираются те записи поля ser и polis которых совпадают с полями ser и polis таблицы obsled И NOM_REG КОТОРЫХ СОВПАДАЕТ С СООТВЕТСТВУЮЩЕМ ПОЛЕМ В OBSLED. а в грид2 выводятся записи из таблицы obsled которые относятся к пациенту на котором стоит курсор в верхнем грид1?
Написал такой код чтобы выводились в верхний грид1 но не знаю как продолжить. Еще при при открытии формы выбираются в курсор те записи которые входят в определенный интервал времени и уже эти записи фильтруются

авторSELECT * DISTINCT FROM obsled o WHERE !EMPTY(o.polis) AND BETWEEN(o.dat_obs,startDate,endDate) AND INLIST(o.pri_zak,0,2) AND o.nom_reg=vnom_reg INTO CURSOR tmpObsled
SELECT * FROM pacient INTO CURSOR curs1
SELECT curs1
IF thisform.check1.value=0
SET FILTER TO ser=tmpobsled.ser AND polis=tmpobsled.polis AND nom_reg=personal.nom_reg
ELSE
SET FILTER TO ser=tmpobsled.ser AND polis=tmpobsled.polis AND nom_reg=personal.nom_reg AND EMPTY(curs1.smocod)
ENDIF
...
Рейтинг: 0 / 0
13.09.2012, 19:06
    #37956682
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
Андрей8989, вам еще не надоело переливать один и тот же вопрос?..
Используйте либо курсоры, либо фильтрацию - зачем вам одновременно-то всё использовать?
И ещё - стало понятно, что у вас поля ser, polis, nom_reg есть и в таблице pacient, и в таблице obsled . Зачем? Если описывать предметную область, то, например, ser (как я понимаю, серия) и polis (как я понимаю, номер) относятся только к пациенту, зачем же они дублируются в obsled ? Врачи принимают пациента по данным полиса? Тогда зачем существует nom_reg (как я понимаю, регистрационный идентификатор пациента внутри поликлиники)?
...
Рейтинг: 0 / 0
13.09.2012, 19:29
    #37956715
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
по талонам принимают а nom_reg есть и у пациента и в таблице где хранятся данные врачах personal врач вводит пароль и нужно отобразить тех пациентов которых он обслуживал в определенный интервал времени. т.е. еси nom_reg совпадают получается этот врач обслужил этого пациента, а поля Ser и polis в обеих таблицах чтобы при выборе записи в первом грид во втором выводить его талоны кажется как я понял. Только устроился на работу и мне дали такую прогу оптимизировать она медленно работает.
...
Рейтинг: 0 / 0
13.09.2012, 19:34
    #37956727
AndreTM
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
Ага... То есть имеющуюся структуру таблиц и связи - вы не трогаете. Но можете наращивать структуру - например, ввести дополнительные поля, индексы... и можете модифицировать исходный код проекта с полным доступом.
?
...
Рейтинг: 0 / 0
13.09.2012, 19:59
    #37956750
Андрей8989
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Поиск
AndreTM, да
...
Рейтинг: 0 / 0
15.09.2012, 00:15
    #37958627
Поиск
Андрей8989Только устроился на работу и мне дали такую прогу оптимизировать она медленно работает.
Оптимизация - процесс непростой даже для профессионала. По сути - это реинжиниринг ПО. Поэтому, этапы процесса должны быть следующими:
- сначала надо понять инструмент "как есть",
- потом собрать с пользователей их видение процесса (или поднять существующее ТехЗадание),
- определить для себя "как должно быть",
- найти (в соответствии со своим видением вопроса) в инструменте "узкие места"
- оптимизировать найденные проблемы.

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

Как я понял, у Вас нет опыта проектирования БД. Для начала, рекомендую почитать книгу Попова А.А. по FoxPro 2.0 или 2.5/2.6. Там вы не найдете работу с гридами, зато на простых примерах будет разжевано то, что здешние гуру пытаются Вам донести: использование Set Relation для фильтрации данных в связанных таблицах. Да, там используется Browse и достаточно примитивный интерфейс. Но принцип-то остается...

Как говорят мудрые люди: незнание некоторых фактов нам компенсируется знанием основных принципов... И логикой...
...
Рейтинг: 0 / 0
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск / 6 сообщений из 6, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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