Красивое ограничение на таблицу
Добавлено: 25 фев 2004, 09:55
Уважаемые коллеги, подскажите, как красиво организовать выборку. Дело в следующем. В интерфейсе я позволяю пользователю задать несколько ограничений на таблицу, например, делать отчет по всем дескрипторам или конкретному, по всем контрагентам или конкретному и т.д.
Затем следует заполнение временной таблицы с учетом условия. Сами понимаете, чем больше условий, тем больше приходится описывать заполнений.
Вопрос: можно ли затем обработать выбор пользователя как-то иначе, нежели писать многочисленные конструкции IF {...} ELSE {...}?
Я попробовал после заполнения временной таблицы (sf) обрабатывать её таким образом:
if(nrec_org <> 0) // был вызван интерфейс GETKATOR
{
delete sf where corg <> nrec_org;
}
однако из таблицы sf удаляются почему-то все записи ???
Для интереса попробовал
if(nrec_org <> 0) // был вызван интерфейс GETKATOR
{
delete sf where corg = nrec_org;
}
запись не удаляется ???
При этом, nrec_org валидный, проверил:
if(nrec_org <> 0) // был вызван интерфейс GETKATOR
{
GetFirst katorg where ((nrec_org == katorg.nrec)); // получаю организацию
Message(katorg.name,okButton); // проверяю, что собственно должно удалиться
delete sf where corg = nrec_org; // однако не удаляет
}
Мистика .`)
Затем следует заполнение временной таблицы с учетом условия. Сами понимаете, чем больше условий, тем больше приходится описывать заполнений.
Вопрос: можно ли затем обработать выбор пользователя как-то иначе, нежели писать многочисленные конструкции IF {...} ELSE {...}?
Я попробовал после заполнения временной таблицы (sf) обрабатывать её таким образом:
if(nrec_org <> 0) // был вызван интерфейс GETKATOR
{
delete sf where corg <> nrec_org;
}
однако из таблицы sf удаляются почему-то все записи ???
Для интереса попробовал
if(nrec_org <> 0) // был вызван интерфейс GETKATOR
{
delete sf where corg = nrec_org;
}
запись не удаляется ???
При этом, nrec_org валидный, проверил:
if(nrec_org <> 0) // был вызван интерфейс GETKATOR
{
GetFirst katorg where ((nrec_org == katorg.nrec)); // получаю организацию
Message(katorg.name,okButton); // проверяю, что собственно должно удалиться
delete sf where corg = nrec_org; // однако не удаляет
}
Мистика .`)