ошибка при выводе

Андрей8989
Дата: 14.09.2012 13:19:48
на форме есть check1. в методе interactiveghange есть условие в зависимости от того стоит или нет галочка выбираются записи из таблицы pacient в курсор и отображаются в грид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
IF thisform.check1.value=0
SELECT * FROM pacient WHERE ser=tmpobsled.ser AND polis=tmpobsled.polis INTO CURSOR curs1
ELSE
SELECT * FROM pacient WHERE ser=tmpobsled.ser AND polis=tmpobsled.polis AND EMPTY(smocod) INTO CURSOR curs1
ENDIF
GO TOP

thisform.grid1.Refresh
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.Label1.Caption=vnamreg
thisform.grid1.SetFocus()
thisform.grid1.SetAll("DynamicBackColor","IIF(LEN(pacient.smocod)>0,RGB(255,255,255),RGB(255,0,0))","Column")

SELECT tmpObsled
SET FILTER TO ser=Pacient.ser AND polis=Pacient.polis AND BETWEEN(dat_obs,startDate,endDate) AND nom_reg=vnom_reg AND INLIST(pri_zak,0,2)


если ставить галочку то в нижнем грид2 записи из курсора tmpobsled отображаются некорректно. помогите исправить код чтобы в грид2 выводилось записи которые выше вывожу туда.. а то в грид2 выводятся лишние столбцы
alextashk
Дата: 16.09.2012 18:44:41
Андрей8989,

Из текста вопроса ничего не ясно

Какие лишнее столбцы?

Из приведённого кода у Вас должны быть проблемы с grid1, если
curs1 связан с grid1
Андрей8989
Дата: 17.09.2012 02:38:14
alextashk, да возникают проблемы, код такой. при запуске программы появляются ошибки типа "Variable Ser шы not found". Почему возникает ошибка, как исправить это

автор
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 * FROM pacient, tmpobsled WHERE pacient.ser=tmpobsled.ser AND pacient.polis=tmpobsled.polis INTO CURSOR curs1
ELSE
IF thisform.check1.Value=1
SELECT * FROM pacient, tmpobsled WHERE pacient.ser=tmpobsled.ser AND pacient.polis=tmpobsled.polis AND EMPTY(pacient.smocod) INTO CURSOR curs1
ENDIF
ENDIF

thisform.grid1.Refresh
thisform.grid1.columncount=-1
thisform.grid1.recordsourcetype=1
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'
tanglir
Дата: 17.09.2012 05:25:35
автор
thisform.grid1.Column1.ControlSource='curs1.ser'
А в курсоре это поле вообще есть? Отучайтесь писать "select *", перечисляйте нужные поля явно.