powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Поиск
6 сообщений из 6, страница 1 из 1
Поиск
    #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
Поиск
    #37956682
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Андрей8989, вам еще не надоело переливать один и тот же вопрос?..
Используйте либо курсоры, либо фильтрацию - зачем вам одновременно-то всё использовать?
И ещё - стало понятно, что у вас поля ser, polis, nom_reg есть и в таблице pacient, и в таблице obsled . Зачем? Если описывать предметную область, то, например, ser (как я понимаю, серия) и polis (как я понимаю, номер) относятся только к пациенту, зачем же они дублируются в obsled ? Врачи принимают пациента по данным полиса? Тогда зачем существует nom_reg (как я понимаю, регистрационный идентификатор пациента внутри поликлиники)?
...
Рейтинг: 0 / 0
Поиск
    #37956715
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
по талонам принимают а nom_reg есть и у пациента и в таблице где хранятся данные врачах personal врач вводит пароль и нужно отобразить тех пациентов которых он обслуживал в определенный интервал времени. т.е. еси nom_reg совпадают получается этот врач обслужил этого пациента, а поля Ser и polis в обеих таблицах чтобы при выборе записи в первом грид во втором выводить его талоны кажется как я понял. Только устроился на работу и мне дали такую прогу оптимизировать она медленно работает.
...
Рейтинг: 0 / 0
Поиск
    #37956727
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ага... То есть имеющуюся структуру таблиц и связи - вы не трогаете. Но можете наращивать структуру - например, ввести дополнительные поля, индексы... и можете модифицировать исходный код проекта с полным доступом.
?
...
Рейтинг: 0 / 0
Поиск
    #37956750
Андрей8989
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, да
...
Рейтинг: 0 / 0
Поиск
    #37958627
Андрей8989Только устроился на работу и мне дали такую прогу оптимизировать она медленно работает.
Оптимизация - процесс непростой даже для профессионала. По сути - это реинжиниринг ПО. Поэтому, этапы процесса должны быть следующими:
- сначала надо понять инструмент "как есть",
- потом собрать с пользователей их видение процесса (или поднять существующее ТехЗадание),
- определить для себя "как должно быть",
- найти (в соответствии со своим видением вопроса) в инструменте "узкие места"
- оптимизировать найденные проблемы.

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

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

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


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