|
грид
|
|||
---|---|---|---|
#18+
люди такая ситуация.. у меня в грид в один из столбцов выводятся значения из другой таблицы т.е. есть поле smocod и когда выбираешь это поле появляются оба значения и выбираешь нужный.. явно нигде комбобокс не связан с грид.. так вот все работает.. но если я выберу значение и нажму кнопку обновить то изменения сохраняются но потом в поле smocod не получается выбирать значения так. может кто знает как исправить ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 11:50 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989люди такая ситуация.. у меня в грид в один из столбцов выводятся значения из другой таблицы т.е. есть поле smocod и когда выбираешь это поле появляются оба значения и выбираешь нужный.. явно нигде комбобокс не связан с грид.. так вот все работает.. но если я выберу значение и нажму кнопку обновить то изменения сохраняются но потом в поле smocod не получается выбирать значения так. может кто знает как исправить Понятно можешь объяснить, откуджа ты выбираешь из двух кодов? Или скриншот прицепи. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 11:57 |
|
грид
|
|||
---|---|---|---|
#18+
IgorNG, вот скрин при нажатии на кнопку обновить больше не возможно так выбирать.. вот код кнопки "обновить" авторUPDATE pacient SET pacient.smocod=curs1.smocod from curs1 WHERE pacient.polis=curs1.polis 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 IF thisform.check1.value=0 SELECT distinct pacient.ser,pacient.polis,pacient.fam,pacient.im,pacient.ot,pacient.pol,pacient.dat_rojd,pacient.smocod,pacient.nom_reg, tmpobsled.ser as ser1, tmpobsled.polis as polis1 FROM pacient, tmpobsled WHERE pacient.ser=tmpobsled.ser AND pacient.polis=tmpobsled.polis ORDER BY fam INTO CURSOR curs1 READWRITE ELSE IF thisform.check1.value=1 SELECT distinct pacient.ser,pacient.polis,pacient.fam,pacient.im,pacient.ot,pacient.pol,pacient.dat_rojd,pacient.smocod,pacient.nom_reg, tmpobsled.ser as ser1, tmpobsled.polis as polis1 FROM pacient, tmpobsled WHERE pacient.ser=tmpobsled.ser AND pacient.polis=tmpobsled.polis AND EMPTY(pacient.smocod) ORDER BY fam INTO CURSOR curs1 READWRITE ENDIF ENDIF GO TOP thisform.grid2.RecordSource='tmpObsled' thisform.grid2.Column1.ControlSource='tmpObsled.n_tal' thisform.grid2.Column2.ControlSource='tmpObsled.dat_obs' thisform.grid2.Column3.ControlSource='tmpObsled.nam' thisform.grid2.Column4.ControlSource='tmpObsled.n_cab' thisform.grid2.Column5.ControlSource='tmpObsled.n_ch' thisform.grid2.Column6.ControlSource='tmpObsled.n_min' thisform.grid2.Column7.ControlSource='tmpObsled.pri_zak' thisform.grid2.Column1.header1.Caption='Ном. тал.' thisform.grid2.Column2.header1.Caption='Дат. обсл.' thisform.grid2.Column3.header1.Caption='Наименование методики' thisform.grid2.Column4.header1.Caption='Ном. каб.' thisform.grid2.Column5.header1.Caption='Время' thisform.grid2.Column6.header1.Caption=' обследования' thisform.grid2.Column7.header1.Caption='Приказ. закр.' thisform.grid2.Column1.header1.FontBold= .T. thisform.grid2.Column2.header1.FontBold= .T. thisform.grid2.Column3.header1.FontBold= .T. thisform.grid2.Column4.header1.FontBold= .T. thisform.grid2.Column5.header1.FontBold= .T. thisform.grid2.Column6.header1.FontBold= .T. thisform.grid2.Column7.header1.FontBold= .T. thisform.grid2.Column5.header1.Alignment=1 thisform.grid2.Column6.header1.Alignment=0 thisform.grid2.Column1.Width=75 thisform.grid2.Column2.Width=75 thisform.grid2.Column3.Width=262 thisform.grid2.Column4.Width=75 thisform.grid2.Column5.Width=75 thisform.grid2.Column6.Width=102 thisform.grid2.Column7.Width=75 thisform.grid1.Refresh thisform.grid1.columncount=9 thisform.grid1.RecordSource='curs1' thisform.grid1.Column1.ControlSource='curs1.ser' thisform.grid1.Column2.ControlSource='curs1.polis' thisform.grid1.Column3.ControlSource='curs1.fam' thisform.grid1.Column4.ControlSource='curs1.im' thisform.grid1.Column5.ControlSource='curs1.ot' thisform.grid1.Column6.ControlSource='curs1.pol' thisform.grid1.Column7.ControlSource='curs1.dat_rojd' thisform.grid1.Column8.ControlSource='curs1.smocod' thisform.grid1.Column9.ControlSource='curs1.nom_reg' thisform.grid1.Column1.header1.Caption='Серия' thisform.grid1.Column2.header1.Caption='Полис' thisform.grid1.Column3.header1.Caption='Фамилия' thisform.grid1.Column4.header1.Caption='Имя' thisform.grid1.Column5.header1.Caption='Отчество' thisform.grid1.Column6.header1.Caption='Пол' thisform.grid1.Column7.header1.Caption='Дат.рожд' thisform.grid1.Column8.header1.Caption='Код СМО' thisform.grid1.Column9.header1.Caption='Ном. рег.' thisform.grid1.Column1.Width=42 thisform.grid1.Column2.Width=69 thisform.grid1.Column3.Width=135 thisform.grid1.Column4.Width=141 thisform.grid1.Column5.Width=116 thisform.grid1.Column6.Width=29 thisform.grid1.Column7.Width=67 thisform.grid1.Column8.Width=83 thisform.grid1.Column9.Width=58 SELECT tmpObsled SET FILTER TO tmpObsled.ser=curs1.ser AND tmpObsled.polis=curs1.polis AND BETWEEN(dat_obs,startDate,endDate) AND nom_reg=vnom_reg AND INLIST(pri_zak,0,2) thisform.grid2.Refresh ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 12:41 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Так смотри к каким данным привязан combobox в column8 изначально. Потом-то ты его привязываешь к curs1 ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 13:14 |
|
грид
|
|||
---|---|---|---|
#18+
IgorNG, а где это можно смотреть? в свойствах нету ничего что связано с комбобокс.. и на форме как я вижу нету комбобокс ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 13:43 |
|
грид
|
|||
---|---|---|---|
#18+
IgorNG, ааа есть вижу, а как его привязать теперь в курсору.. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 13:45 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, В гриде, в колонке 8 у тебя комбобокс изначально привязан к smo.smokod< nam_smok. А при нажатии на кнопку "Обновить" у тебя thisform.grid1.Column8.ControlSource='curs1.smocod' ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 13:48 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Зачем ты везде ставишь distinct ? Неужели непонятно, что это потенциально опасно. Тормоз, и ведет к непредвиденным ошибкам. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:05 |
|
грид
|
|||
---|---|---|---|
#18+
IgorNG, привязываю вот так, но говорит синтаксическая ошибка авторthisform.grid1.column8.combo3.RowSource=smo.smocod,nam_smok когда нажимаю обновить пишет combo3 не найден. Может я не так привязываю? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:10 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, если не ставить distinct то одного пациента она по несколько раз выводит ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:16 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, А CurrentControl = combo3 кто писать будет? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:17 |
|
грид
|
|||
---|---|---|---|
#18+
IgorNG, я только начинаю изучать fox вернее до этого проходили в универе поверхностно а сейчас нужно заново учить.. времени особо нет учить все свойства поэтому прошу помощи ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:21 |
|
грид
|
|||
---|---|---|---|
#18+
IgorNG, пишу так., если неправильно просьба большая поправьте код авторthisform.grid1.column8.CurrentControl=combo3 thisform.grid1.column8.combo3.RowSource='smo.smocod,nam_smok' ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:24 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989asdor, если не ставить distinct то одного пациента она по несколько раз выводит Потому то и указал на это! Выборка у вас, хоть и выполняется, но она ПРИНЦИПИАЛЬНО не верна!!!! Вы сначала логически разбиритесь, что вам надо. Напишите ТЗ для себя. Очень подробно. На простом ясном для вас языке. Потом прочтите любую книгу по SQL. И книгу по Флоксу. Многие вопросы отпадут, либо будут грамотнее сформулированы. Если конечно это все не курсач. Для него и так сойдет))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:25 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Весь ваш приведенный код, работать не будет. Явно вы его ни разу не запускали в контексте формы. Иначе уже наткнулись бы на грабли. Зачем вам комбо в гриде? Цель какова? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:29 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, thisform.grid1.Column8.ControlSource="curs1.smocod" thisform.grid1.column8.CurrentControl = "Combo3" thisform.grid1.column8.combo3.RowSource="smo.smocod,nam_smok" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:29 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, почему неверна. вы все говорите это неверно то неверно, а почему неверно? логически все правильно как я вижу. сначала вначале программы из таблицы obsled в курсор tmpobsled выбираются все записи попадающие в интервал указанный вначале программы. затем при вводе пароля из таб personal в vnom_reg записывается значение поля nom_reg это пароль. потом из таблицы pacient в грид выводятся через курсор записи у которых поля ser,polis равны полям из курсора tmpobsled. а в нижний грид выводятся те обследования которые проходит тот или иной пациент во этот промежуток времени ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:31 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, во первых эту программу делал не, а сотруддник который до меня работал, во вторых в поле КодСмо выводятся два возможных значения из таблицы smo. чтобы пользователь мог выбрать либо первое либо второе ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:33 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989asdor, во первых эту программу делал не, а сотруддник который до меня работал, во вторых в поле КодСмо выводятся два возможных значения из таблицы smo. чтобы пользователь мог выбрать либо первое либо второе Ну здесь вы объяснили, зачем комбо. Но не говорите, что вы это запускали. Почему неверно, вы запустите, и все увидите. После нажатия на кнопку, гриды станут пустыми))) И начнутся новые вопросы. Вы просто то запустите ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:38 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, нет, в гридах все нормально отображается. хотя если немного зависнет, пустые бывают потом выводится все равно то что надо. с комбо единственная ошибка и все ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:41 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989IgorNG, привязываю вот так, но говорит синтаксическая ошибка авторthisform.grid1.column8.combo3.RowSource=smo.smocod,nam_smok когда нажимаю обновить пишет combo3 не найден. Может я не так привязываю? А вы уверены, что он там есть? Может правильно пишет? Вы посмотрите все же, есть ли он там. И если там что то есть, то как наз-ся? Положите сюда эту форму в конце концов))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:42 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989asdor, нет, в гридах все нормально отображается. хотя если немного зависнет, пустые бывают потом выводится все равно то что надо. с комбо единственная ошибка и все Что то вы недоговариваете)))) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:43 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, вот проект.. на форме form1 есть кнопка обновить при нажатии на него я вылелил в звездочках код который мне тут подсказали. комбобокс есть в гриде. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:45 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989asdor, вот проект.. на форме form1 есть кнопка обновить при нажатии на него я вылелил в звездочках код который мне тут подсказали. комбобокс есть в гриде. А где же главное то? Таблицы где, с чем работать?))) Ужасный код критиковать-разбирать, это 3 дня лекции читать. И не сходится: Андрей8989asdor, во первых эту программу делал не, а сотруддник который до меня работал Просто не верю))) Тут и писать то нечего ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 14:55 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, чему вы не верите? таблицы слишком много весят не получается сюда залить. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 15:00 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989asdor, чему вы не верите? таблицы слишком много весят не получается сюда залить. Это ж ваши проблемы. Учитесь делать из больших таблиц маленькие) Все данные кому они нужны. Урежьте таблицы. Но соблюдите цедлостность данных ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 15:30 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, вот все таблицы из проекта ... |
|||
:
Нравится:
Не нравится:
|
|||
19.09.2012, 15:45 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, С какими параметрами вы запускаете. Где назначаются значения переменных? Нужно сделать всего лишь форму, где все параметры, для проверки, назначаются прямо в ней. Потом проверьте, что у вас все это работает. (в смысле, хоть что то появляется, и ошибка воспроизводима) и вот эту то форму с данными и кладите сюда. Потому как сейчас с ваших вложений, ничего в данные не возможно получить, а гадать... увольте) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 10:57 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Вам писали о том, что присланные данные, должны соблюсти целостность Код: sql 1. 2. 3. 4. 5.
Этот запрос, выполняет все ваши мудреные изверты. Но данных в результате нет ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 11:28 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, обновление заработало написал такой код при нажатии на кнопку обновить авторthisform.grid1.column8.combo3.RowSourceType = 6 thisform.grid1.column8.combo3.RowSource='smo.smocod,nam_smok' thisform.grid1.Column8.ControlSource='curs1.smocod' и такой код в методе interactivechange у комбобокс3 авторSELECT curs1 REPLACE smocod WITH smo.smocod thisform.grid1.refresh() Все работает. Но когда галочку ставишь "показать с не введенным кодом смо", то в комбо3 не получалось опять выбирать коды смо. поэтому написал в методе interactivechange тот же код что и при нажатии на кнопку обновить и выдает ошибку Алиас комбо3 не найден. Как исправить подскажите пожалуйста. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 12:03 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, а параметры это пароль пользователя введите например пароль "капус" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 12:04 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Ну вы сами то пробовали? Ведь пишет "У данного пользователя нет зарегестрированных талонов в этом месяце" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 12:32 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, тогда другой пароль из таблицы personal я вам урезанную отправил поэтому так пишет ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 12:35 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, через второй курсор сделал работает все как нужно, но это не очень красиво :) если есть другой способ подскажите как исправить мой код ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 12:45 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Непонятно пишите. "Через второй курсор" Все сделанное у вас, вызывает.... недоумение. Ну давайте для начала, создайте на форме метод. Например "SetGrid" И засуньте все выборки, и настройки грида в него. После его отладки, вы сможете запустить его с любого места формы. Далее, как уже говорил, у меня огромное впечатление, что все что вы делаете, будет работать не достоверно. Т.е. после того, как не будет ошибки программы, у вас будут ошибки в БД. А вот за это вас..., конечно если это не курсач))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 13:01 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989asdor, тогда другой пароль из таблицы personal я вам урезанную отправил поэтому так пишет Интересно, какой же другой? ))) Я ж вам написал выборку, ну нет тут совпадений))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 13:16 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, А вообще задача то какая? Присвоить коды пациентам? Ну и просмотреть заодно. Так? (*Не пойму зачем 2й грид) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 13:23 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, thisform.grid1.Column8.ControlSource="curs1.smocod" thisform.grid1.column8.CurrentControl = "Combo3" thisform.grid1.column8.combo3.RowSource="smo.smocod,nam_smok" ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 13:31 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Держи рабочую форму. Просто убрал лишнее твое. И добавил пару строк. Все работает 2й грид убрал, т.к. не знаю зачем он ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 13:44 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, да задача такова. суть проги объясняю пользователь вводит пароль этот пароль сохраняется в переменной. затем из таблицы обслед выбираются все обследования которые входят в заранее заданный в начале проги интервал времени(по умолчанию текущий месяц) и у которых поле nom_reg=введенному пользователем паролю. в записываются в курсор tmpobsled. т.е. если эти поля совпадают, то этот пользователь делает пациентам это обследование. после всего этого в курсор curs1 выбираются пициенты у которых поля Ser и polis равны полям Ser и polis у курсора tmpobsled и выводятся в грид1. а в грид2 из tmpobsled обследования у которых поля ser и polis равны полям Ser и polis из curs1 и входящие в интервал указанный в начале программы. А через второй курсор сделал так: вначале программы в curs1 вывожу пациентов у которых указанные поля равны, а в curs2 такие же и у которых поле smocod пустое, а при переключении галочки на форме просто вывожу в грид согласно условию. некрасиво наверное сделано, но как получается для человека который не очень пока еще знает фокс так и сделал ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 13:48 |
|
грид
|
|||
---|---|---|---|
#18+
asdor, спасибо конечно, но мне поручили эту прогу оптимизировать так как она изначально работала через Set filter to и жутко тормозила когда читала данные с сервера. поэтому и сделал через курсоры выборку. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 13:53 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989, Господи, как же все запущено!!!! Ну неужели сложно сделать, набор данных, который будет работать? Да хоть от руки набейте. Не мы ж за вас это делать будем, там всего то 2 таблицы. И сделаю все то же через выбрку))) ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 14:20 |
|
грид
|
|||
---|---|---|---|
#18+
Андрей8989asdor, да задача такова. суть проги объясняю пользователь вводит пароль этот пароль сохраняется в переменной. затем из таблицы обслед выбираются все обследования которые входят в заранее заданный в начале проги интервал времени(по умолчанию текущий месяц) и у которых поле nom_reg=введенному пользователем паролю. в записываются в курсор tmpobsled. т.е. если эти поля совпадают, то этот пользователь делает пациентам это обследование. после всего этого в курсор curs1 выбираются пициенты у которых поля Ser и polis равны полям Ser и polis у курсора tmpobsled и выводятся в грид1. а в грид2 из tmpobsled обследования у которых поля ser и polis равны полям Ser и polis из curs1 и входящие в интервал указанный в начале программы. А через второй курсор сделал так: вначале программы в curs1 вывожу пациентов у которых указанные поля равны, а в curs2 такие же и у которых поле smocod пустое, а при переключении галочки на форме просто вывожу в грид согласно условию. некрасиво наверное сделано, но как получается для человека который не очень пока еще знает фокс так и сделал Значится так) Смотрите чему равен nom_reg по рабочему пользователю, и по этому nom_reg присваиваете значения startDate и endDate Далее Код: sql 1.
Получили правильную урезанную таблицу obsled Далее надо получить всех пациентов, которые есть в этой таблице Пример уже приводил Код: sql 1. 2. 3. 4. 5.
gjckt 'njuj gthtbvtyjdfnm tab1 и tab2 соответственно, и прислать сюда ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2012, 14:32 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1583443]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
13ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 174ms |
0 / 0 |