проверить соответствие кода

Дима1991
Дата: 01.11.2012 11:43:29
добрый день. Есть курсоры pacient, sluch и curs1.
Курсор pacient имеет основные поля agep, dr,npolis,spolis. Для каждого пациента из этого курсора имеются случаи которые хранятся в sluch. Основные поля npolis,spolis, ds0,ds1,ds2. Поля ds0,ds1,ds2 это коды МКБ. Нужно проверить соответствие кода МКБ возрасту пациента. в курсоре pacient agep - это поле возраст.

Проверка соответствия кода МКБ показана ниже: Есть курсор curs1 там поле code - КОД МКБ, age возраст, и поле compr - содержит знаки <,>,=.

если в curs1 поле age=1 а поле compr=">=" то значение в поле code соответствует пациенту возраст которого больше или равен 1 год

Задача проверить соответствие кода МКБ для каждого случая возрасту пациента.

помогите разобраться с логикой задачи.
Dima T
Дата: 01.11.2012 11:55:29
Сделай свою функцию и передавай туда возраст пациента, условие, возраст ограничения. А внутри проверяй и возвращай результат проверки.
func CheckMKB
lpara tnAgep, tcUsl, tnAgeUsl
local llRet
tcUsl = alltrim(tcUsl)
do case
   case tcUsl == '>'
      llRet = (tnAgep > tnAgeUsl)
   case tcUsl == '<='
      llRet = (tnAgep <= tnAgeUsl)
   otherwise
      MessageBox('Неизвестное условие ' + tcUsl)
      llRet = .NULL.
endcase
return llRet

ЗЫ alltrim() и == использованы не случайно.
Дима1991
Дата: 01.11.2012 12:08:04
Dima T, Usl это переменная или какое-то условие типа? у меня вроде идет в curs1 по полям age и compr условия. если age=10 к примеру и compr=">" то для таких пациентов код МКБ допустим Z000 это поле code
Дима1991
Дата: 01.11.2012 12:28:55
А понял что значит Usl.. сейчас попробую разобраться в вашей функции
Дима1991
Дата: 01.11.2012 12:32:11
не до конца понял. Ваша функция проверяет два условия и последнее otherwise выполняется если ни один из case не выполнился получается?
reware
Дата: 01.11.2012 12:35:04
Дима1991
добрый день. Есть курсоры pacient, sluch и curs1.
Курсор pacient имеет основные поля agep, dr,npolis,spolis. Для каждого пациента из этого курсора имеются случаи которые хранятся в sluch. Основные поля npolis,spolis, ds0,ds1,ds2. Поля ds0,ds1,ds2 это коды МКБ. Нужно проверить соответствие кода МКБ возрасту пациента. в курсоре pacient agep - это поле возраст.

Проверка соответствия кода МКБ показана ниже: Есть курсор curs1 там поле code - КОД МКБ, age возраст, и поле compr - содержит знаки <,>,=.

если в curs1 поле age=1 а поле compr=">=" то значение в поле code соответствует пациенту возраст которого больше или равен 1 год

Задача проверить соответствие кода МКБ для каждого случая возрасту пациента.

помогите разобраться с логикой задачи.

Ну и что это, опять очередной курсовой проект ? "А голова нужна исключительно чтобы ею есть".
Dima T
Дата: 01.11.2012 12:37:02
CheckMKB в моем примере это пользовательская функция. tnAgep, tcUsl, tnAgeUsl - параметры.
Сохрани эту функцию в процедурный файл, или в файл CheckMKB.prg (без первой строки кода) и вызывай со своими параметрами:
if CheckMKB(pacient.agep, curs1.compr, curs1.age)
? 'Подходит'
else
? 'Не подходит'
endif

PS Ты бы книжку какую-нибудь почитал по фоксу. Судя по твоим постам ты в элементарных вещах путаешься.
Дима1991
Дата: 01.11.2012 12:37:13
reware, нет это не курсовая, по работе это..
Дима1991
Дата: 01.11.2012 12:38:34
я по ходу учусь.. в свободное время читаю ведь
Dima T
Дата: 01.11.2012 12:42:39
Дима1991
не до конца понял. Ваша функция проверяет два условия и последнее otherwise выполняется если ни один из case не выполнился получается?

Хэлп почитай про DO CASE

Читай книжку. Хотя бы синтаксис основных команд изучи.