|
Поиск
|
|||
---|---|---|---|
#18+
как сделать так чтобы при открытии формы, если на форме 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2012, 18:17 |
|
Поиск
|
|||
---|---|---|---|
#18+
Андрей8989, вам еще не надоело переливать один и тот же вопрос?.. Используйте либо курсоры, либо фильтрацию - зачем вам одновременно-то всё использовать? И ещё - стало понятно, что у вас поля ser, polis, nom_reg есть и в таблице pacient, и в таблице obsled . Зачем? Если описывать предметную область, то, например, ser (как я понимаю, серия) и polis (как я понимаю, номер) относятся только к пациенту, зачем же они дублируются в obsled ? Врачи принимают пациента по данным полиса? Тогда зачем существует nom_reg (как я понимаю, регистрационный идентификатор пациента внутри поликлиники)? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2012, 19:06 |
|
Поиск
|
|||
---|---|---|---|
#18+
по талонам принимают а nom_reg есть и у пациента и в таблице где хранятся данные врачах personal врач вводит пароль и нужно отобразить тех пациентов которых он обслуживал в определенный интервал времени. т.е. еси nom_reg совпадают получается этот врач обслужил этого пациента, а поля Ser и polis в обеих таблицах чтобы при выборе записи в первом грид во втором выводить его талоны кажется как я понял. Только устроился на работу и мне дали такую прогу оптимизировать она медленно работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2012, 19:29 |
|
Поиск
|
|||
---|---|---|---|
#18+
Ага... То есть имеющуюся структуру таблиц и связи - вы не трогаете. Но можете наращивать структуру - например, ввести дополнительные поля, индексы... и можете модифицировать исходный код проекта с полным доступом. ? ... |
|||
:
Нравится:
Не нравится:
|
|||
13.09.2012, 19:34 |
|
Поиск
|
|||
---|---|---|---|
#18+
Андрей8989Только устроился на работу и мне дали такую прогу оптимизировать она медленно работает. Оптимизация - процесс непростой даже для профессионала. По сути - это реинжиниринг ПО. Поэтому, этапы процесса должны быть следующими: - сначала надо понять инструмент "как есть", - потом собрать с пользователей их видение процесса (или поднять существующее ТехЗадание), - определить для себя "как должно быть", - найти (в соответствии со своим видением вопроса) в инструменте "узкие места" - оптимизировать найденные проблемы. Для начала было бы неплохо составить логическую схему базы данных, нарисовать взаимосвязи между таблицами; посмотреть, есть ли необходимые индексы, используются ли они и т.д. Как я понял, у Вас нет опыта проектирования БД. Для начала, рекомендую почитать книгу Попова А.А. по FoxPro 2.0 или 2.5/2.6. Там вы не найдете работу с гридами, зато на простых примерах будет разжевано то, что здешние гуру пытаются Вам донести: использование Set Relation для фильтрации данных в связанных таблицах. Да, там используется Browse и достаточно примитивный интерфейс. Но принцип-то остается... Как говорят мудрые люди: незнание некоторых фактов нам компенсируется знанием основных принципов... И логикой... ... |
|||
:
Нравится:
Не нравится:
|
|||
15.09.2012, 00:15 |
|
|
start [/forum/topic.php?fid=41&msg=37956750&tid=1583453]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
45ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
2ms |
others: | 278ms |
total: | 415ms |
0 / 0 |