Как построить эту таблицу БД (Прогресс)

Прежде всего, извиняюсь за новый вопрос, но я новичок в Progress, вот что я пытаюсь сделать: у меня есть таблица БД под названием «автомобиль», в которой есть поле «тип», и параметры либо автоматические, либо ручные. Я хотел бы использовать 1 smartbrowser для отображения данных в этой форме:

имя | цена | имя | цена

первые две колонки — для машин с автоматом, остальные — для машин с механикой. Имейте в виду, что эта таблица будет предназначена только для просмотра, в ней не будут разрешены никакие операции, поэтому не имеет значения, если это нецелесообразно, они просто должны быть в 1 строке.

Буду признателен за любые советы, спасибо!


person james156    schedule 18.05.2015    source источник


Ответы (1)


Во-первых, убегайте от смарт-объектов. Они больше не поддерживаются PSC и в любом случае устарели. Я бы использовал обычный просмотр с временной таблицей вроде этого:

DEFINE TEMP-TABLE ttCar
  FIELD autoName    AS CHARACTER
  FIELD autoPrice   AS DECIMAL
  FIELD manualName  AS CHARACTER
  FIELD manualPrice AS DECIMAL. 
/* Go ahead and add an index, for this example I'll skip it */

И затем вы делаете что-то вроде этого, прежде чем открывать обзор:

FOR EACH car NO-LOCK:
    CREATE ttCar.
    IF car.type = "AUTO" THEN 
       ASSIGN ttCar.autoName  = car.name
              ttCar.autoPrice = car.price.
    ELSE /* MANUAL */
       ASSIGN ttCar.manualName  = car.name
              ttCar.manualPrice = car.price.
END. /* FOR EACH */

{&open-query-{&browse-name}}

Надеюсь, это поможет... дайте мне знать, если это не то, что вы ищете, или если вы ДОЛЖНЫ использовать smartBrowses, и в этом случае вам нужно будет добавить поля как вычисляемые поля и заполнить их из функций. Однако это, вероятно, повлияет на производительность. Но я, вероятно, могу привести вам один пример, если вам это абсолютно необходимо.

person bupereira    schedule 18.05.2015