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

Clarion, Clarion 7

Модератор: Дед Пахом

Правила форума
При написании вопроса или обсуждении проблемы, не забывайте указывать версию Clarion который Вы используете.
А так же пользуйтесь спец. тегами при вставке исходников!!!
Ответить
talgat55
Ветеран
Сообщения: 316
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 3 раза

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

Сообщение talgat55 »

с11.. ABC SQL Где-то было Как сделать browse чтобы выбрать несколько записей (справочник) а не одну по select кнопке
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

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

Сообщение Игорь Столяров »

Опция выбора в Browse называется Mark. Работает так себе.
Вот описание из справки на человеческом языке:

1.jpg
За теми кто отстал - не возвращаться. (С) Кодекс
talgat55
Ветеран
Сообщения: 316
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 3 раза

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

Сообщение 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')
Последний раз редактировалось talgat55 16 Ноябрь 2022, 7:13, всего редактировалось 1 раз.
Аватара пользователя
Игорь Столяров
Ветеран движения
Сообщения: 7373
Зарегистрирован: 07 Июль 2005, 10:19
Откуда: г. Ростов-на-ДоМу
Благодарил (а): 13 раз
Поблагодарили: 48 раз

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

Сообщение Игорь Столяров »

Когда набираете сообщение в форуме, то вверху есть кнопочка для блока кода '</>'.
Даже если Вы привыкли работать с 'кирпичиками', мозги других людей пожалейте пожалуйста ... :dizzy:
За теми кто отстал - не возвращаться. (С) Кодекс
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

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

Сообщение Admin »

talgat55 писал(а): 16 Ноябрь 2022, 6:45 Atribut prameter must be queue, queue field or constant string
Судя по справке у вас должно быть написано: MARK(Queue:Browse:1.markFlag)
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
talgat55
Ветеран
Сообщения: 316
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 3 раза

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

Сообщение talgat55 »

спасибо ! Сработало
talgat55
Ветеран
Сообщения: 316
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 3 раза

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

Сообщение talgat55 »

ABC в открывшемся browse маркирует любые записи кроме той которая была выделена синим цветом при первоначальном открытии browse

Поэтому вопрос как открыть стандартный browse чтобы ни одна запись не была помечена как активная ( select(?browse....)
При атрибуте MARK перестает работать вертикальный скроллинг ! Показывает только записи в пределах окна
kreator
✯ Ветеран ✯
Сообщения: 4983
Зарегистрирован: 28 Май 2009, 15:54
Откуда: Москва
Благодарил (а): 7 раз
Поблагодарили: 20 раз

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

Сообщение kreator »

С атрибутом MARK по-моему всегда были траблы. Я добавляю локальную переменную (например, LOC:Mark) и руками отрабатываю нажатия мышкой, всякие комбинации клавиш клавиатуры. Выбранные записи отображаю как правило иконкой (считаю выделение цветом может путать пользователя). Ручной код не сильно сложный. Один раз написал, потом можно размножать.
We are hard at work… for you. :)
Аватара пользователя
Admin
Администратор
Сообщения: 3959
Зарегистрирован: 05 Июль 2005, 15:59
Откуда: Хабаровск
Благодарил (а): 25 раз
Поблагодарили: 22 раза
Контактная информация:

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

Сообщение Admin »

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

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

IF KEYCODE() = MouseLeft2 AND ?List{PROPLIST:MouseUpField} = 1
  ...
END
Рай совершает ошибки ничуть не реже чем ад. Просто у него хорошая пресса
talgat55
Ветеран
Сообщения: 316
Зарегистрирован: 11 Сентябрь 2008, 12:53
Благодарил (а): 3 раза

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

Сообщение talgat55 »

спасибо. Так и сделал- врукопашную
Ответить