Страница 1 из 1

Выбрать из справочника (Browse) несколько записей

Добавлено: 15 Ноябрь 2022, 17:58
talgat55
с11.. ABC SQL Где-то было Как сделать browse чтобы выбрать несколько записей (справочник) а не одну по select кнопке

Выбрать из справочника (Browse) несколько записей

Добавлено: 15 Ноябрь 2022, 19:24
Игорь Столяров
Опция выбора в Browse называется Mark. Работает так себе.
Вот описание из справки на человеческом языке:

1.jpg

Выбрать из справочника (Browse) несколько записей

Добавлено: 16 Ноябрь 2022, 6:45
talgat55
Пользую стандартный browse Там вроде есть параметр MARK ниче выбрать туды не дает
Заполнил лок.перменной markflag
При компиляции выдает ошибку для MARK "Atribut prameter must be queue, queue field or constant string"
.

Код: Выделить всё

..ОТРЫВОК
Queue:Browse:1       QUEUE                            !Queue declaration for browse/combo box using ?Browse:1
markFlag               LIKE(markFlag)                 !List box control field - type derived from local data
SJ:KOD                 LIKE(SJ:KOD)                   !List box control field - type derived from field
nm3                    LIKE(nm3)                      !List box control field - type derived from local data
nm2                    LIKE(nm2)                      !List box control field - type derived from local data
SJ:NAIM                LIKE(SJ:NAIM)                  !List box control field - type derived from field
SJ:C2                  LIKE(SJ:C2)                    !List box control field - type derived from field
SJ:GRUP                LIKE(SJ:GRUP)                  !List box control field - type derived from field
SJ:C1                  LIKE(SJ:C1)                    !List box control field - type derived from field
Mark                   BYTE                           !Entry's marked status
ViewPosition           STRING(1024)                   !Entry's view position
                     END
 MAP
    MakeSqlFilter(),STRING
  END
EnhancedFocusManager EnhancedFocusClassType
QuickWindow          WINDOW('Browse the SPRJALOB File'),AT(,,491,198),FONT('MS Sans Serif',8,,FONT:regular),RESIZE, |
  CENTER,GRAY,IMM,MDI,HLP('BRSPRJALOB'),SYSTEM
                       LIST,AT(8,46,468,108),USE(?Browse:1),HVSCROLL,FORMAT('12L|M~mark Flag~@n3@19L|M~KOD~@n_' & |
  '4b@35L(2)|M~Катег.~L(0)@s120@188R(2)|M~Подгруппа~C(0)@s120@446L(2)|M~NAIM~@s150@46R(' & |
  '2)|M~C2~C(1)@n-14@51R(2)|M~Гр~C(0)@n-14@56R(2)|M~Категория~C(0)@n-14@'),FROM(Queue:Browse:1), |
  MARK(markFlag),MSG('Browsing the SPRJALOB file')   !  ТУТ  ОШИБКУ ВЫДАЕТ

                       BUTTON('&Select'),AT(89,158,49,14),USE(?Select:2),LEFT,ICON('WASELECT.ICO'),FLAT,MSG('Select the Record'), |
  TIP('Select the Record')
                       BUTTON('&View'),AT(142,158,49,14),USE(?View:3),LEFT,ICON('WAVIEW.ICO'),FLAT,MSG('View Record'), |
  TIP('View Record')

Выбрать из справочника (Browse) несколько записей

Добавлено: 16 Ноябрь 2022, 6:55
Игорь Столяров
Когда набираете сообщение в форуме, то вверху есть кнопочка для блока кода '</>'.
Даже если Вы привыкли работать с 'кирпичиками', мозги других людей пожалейте пожалуйста ... :dizzy:

Выбрать из справочника (Browse) несколько записей

Добавлено: 16 Ноябрь 2022, 8:54
Admin
talgat55 писал(а): 16 Ноябрь 2022, 6:45 Atribut prameter must be queue, queue field or constant string
Судя по справке у вас должно быть написано: MARK(Queue:Browse:1.markFlag)

Выбрать из справочника (Browse) несколько записей

Добавлено: 16 Ноябрь 2022, 14:58
talgat55
спасибо ! Сработало

Выбрать из справочника (Browse) несколько записей

Добавлено: 16 Ноябрь 2022, 15:49
talgat55
ABC в открывшемся browse маркирует любые записи кроме той которая была выделена синим цветом при первоначальном открытии browse

Поэтому вопрос как открыть стандартный browse чтобы ни одна запись не была помечена как активная ( select(?browse....)
При атрибуте MARK перестает работать вертикальный скроллинг ! Показывает только записи в пределах окна

Выбрать из справочника (Browse) несколько записей

Добавлено: 16 Ноябрь 2022, 21:20
kreator
С атрибутом MARK по-моему всегда были траблы. Я добавляю локальную переменную (например, LOC:Mark) и руками отрабатываю нажатия мышкой, всякие комбинации клавиш клавиатуры. Выбранные записи отображаю как правило иконкой (считаю выделение цветом может путать пользователя). Ручной код не сильно сложный. Один раз написал, потом можно размножать.

Выбрать из справочника (Browse) несколько записей

Добавлено: 17 Ноябрь 2022, 1:53
Admin
kreator писал(а): 16 Ноябрь 2022, 21:20 Ручной код не сильно сложный. Один раз написал, потом можно размножать.
Соглашусь. Тоже так делаю. Иногда в базе отметку храню. Иногда в отображаемой очереди, иногда и отображаемой и в доп. очереди. Что бы при перечитывании не сбрасывалось. Отметка записей с Shift не часто нужна (тоже реализовать можно). Отмечать можно мышкой по нужному столбцу, типа такого:

Код: Выделить всё

IF KEYCODE() = MouseLeft2 AND ?List{PROPLIST:MouseUpField} = 1
  ...
END

Выбрать из справочника (Browse) несколько записей

Добавлено: 18 Ноябрь 2022, 5:20
talgat55
спасибо. Так и сделал- врукопашную