Показать сообщение отдельно
Старый 25.05.2011, 23:30   #6  
alexb_imported is offline
alexb_imported
Участник
 
256 / 12 (1) ++
Регистрация: 25.08.2006
Цитата:
Сообщение от Kadawrik Посмотреть сообщение
Я еще не большой спец, но пыталась сделать нечто подобное с помощью след. конструкции:
Fld_ref := FIELD(НомерПоля);
Fld_ref.VALIDATE(НовоеЗначение);
MODIFY;
Fld_Ref - переменная типа FieldRef
Во-первых перед fieldref надо recref'ом "открыть" таблицу.
Во-вторых надо RecRef'ом встать на определёную запись (через GET или FIND)
и потом только изменять требуемыe поля в записи через FieldRef

НО:
Вот здесь и для меня непонятно, в чём конкретно задача:
если надо изменить определённые поля ВО ВСЕХ записях таблицы, тогда всё просто
Код:
RecRef.OPEN('номер таблицы');
IF recref.FINDSET THEN BEGIN
  REPEAT

    FieldRef := recref.FIELD('номер поля 1 ');
    FieldRef.VALIDATE('AAA');
   
    FieldRef := recref.FIELD('номер поля 2 ');
    FieldRef.VALIDATE('12345');

    RecRef.MODIFY;
  UNTIL RecRef.NEXT = 0;
END;
А если НЕ ДЛЯ ВСЕХ записей, а только для некоторых, то как вы себе это представляете? Отфильтровать RecRec конечно возможно, но где Вы собираетесь определить/настроить то, какие определённые записи должны быть изменены?
Какая-то супер форма-список ВСЕХ записей таблицы, где напротив определённой записи user выбирает требуемые поля и к каждому полю проставляет новое значение? Если задача состоит в этом, то осуществить это очень трудоёмко, если вообще возможно.

Остальные техн. дополнения (но без ниx по-моему нельзя) уже давно осущствлены в стандарте (в Mapping), хотя и поверхностно, но партнеры на то и партнеры, чтобы хорошую вещь усовершенствовать:
надо будет руками проверять для каждого поля:
- подходит ли новое значение к типу поля;
- не превышает ли размер нового значения макс. допустимую величину (напр. Техт30 в Техт50)
- подходят ли OptionValue для полей типа Option (напр. допустимые OptionValue в поле: 1,2,3, a user шарахет в него 99).
- то же самое касается BOOLEAN-полей
- Вы хотите не просто присваивать полям значения, а через VALIDATE: а про TableRelation в валидируемом поле подумали?