("Радионяня"))
Хочется иметь возможность создавать Browse c произвольным числом колонок.
Т.е. я точно знаю, что первая колонка у меня будет и знаю - какая именно (STRING(30)). А вот сколько колонок будет дальше - узнаю (ю) после некоторого анализа некоторой БД.
Один раз анализ дает значение - 21, другой раз -35, третий - 49 и т.д.
Как динамически создавать колонки в Browse?. И поможет ли мне в этом оператор FORMAT ?
А может кто-нибудь уже решал данную проблему или подобную ?
Буду благодарен за примерчик.
Евгений Григоров.
(Добавление)
поможет, если версия Clarion 55 и выше то там ещё проще через PROPLIST:Format,номер колонки
Andrew Myalin
andrew@arsis.ru
http://mavcla.arsis.ru (MAV Direct ODBC)
ICQ: 10659412
Yahoo group: clarion@yahoogroups.com
Если есть мксимальное кол-во колонок, т.е. оно гранично, то создаеться писок со всеми колонками, при формировании списка заполняються только необходимые а наличие и описание самих коолонок - list{prop:format}... и буде счастье
у меня в списке, не 49, но порядка 20 колонок, и название и размеры их, и само наличие, мне на этапе открытите не известно, поэтому все выполняеьтся в самом списке.А может кто-нибудь уже решал данную проблему или подобную ?
примерчик чего?, т.е. в какой части? заполнения или рисования ?Буду благодарен за примерчик.
--
Best regards,
Курко Максим mailto:ClaList@enigmasoft.com.ua
ICQ: <164766643>
Разве что PROP:FORMAT.
Или набор пропертей типа PROPLIST:FieldNo, PROPLIST:Locator и т.д.
Подозреваю, что это должно выглядеть примерно так:
Код: Выделить всё
loop i#=2 to col_num ! первая колонка уже есть
?list{proplist:fieldno, i#} = i# ! i# = номер поля в очереди from
?list{proplist:header, i#} = 'Заголовок ' & i#
?list{proplist:width, i#} = 50
?list{proplist:picture , i#} = '@s30' ! например
?list{proplist:locator , i#} = 0
?list{proplist:rightborder , i#} = true
?list{proplist:resize , i#} = true
?list{proplist:scroll , i#} = true
end
?list{proplist:lastonline , col_num} = true
Однозначно. Щас закидают примерами...А может кто-нибудь уже решал данную проблему или подобную ?
Сергей.
Это означает, что число полей в очереди тоже должно быть произвольным.
Наверное, сейчас Олег Руденко скажет - "Используй мой класс dQue" - and don't worry - be happy.
Что-то больно сложно. Нет ли чего попроще.?
Евгений Григоров
(Добавление)
Но какое-то ограничение сверху есть, наверное... Все равно сильно много полей Кларион не вытянет. В полях разместить локальные строковые переменные, которым присваивать (например, по Evaluate) нужные значения. Ненужные поля спрячем, например, присвоив нулевую ширину через Proplist:Width
Col CString(200),Dim(100)
И заранее создать ListBox колонок, например, на 100, в которые распихать локальные переменные Col[N]. А при форматировании строки озаботиться присвоением значений этим переменным.
Кстати, если речь идёт не о Browse, а просто о списке,
см. Prop:VlbProc
---------------------------------------
C уважением,
Юрий Философов,
Главный программист
Корпорация "Диполь", Саратов
E-mail yufil@tacis-dipol.ru (служ)
yufil@mail.ru (дом)
ICQ#75924439
ну не факт, можно иметь одно большое поле STRING в очереди, значение каждой колонки раделять "!" символом.
Можно формировать PROP:Format общий целиком самому.Что-то больно сложно. Нет ли чего попроще.?
Это крайне не удобно, поскольку нет красивого скрола по пролям.
нельзя сделать часть полей фиксируемых и т.д.
--
Best regards,
Курко Максим
это почему, ты просто не понял, колонки могут иметь любые атрибуты, разделитель нужен только для разбиения на колонки, чтобы значения попадали в нужные колонки, при этом сам символ "!" отображаться не будет
"1!Hello!!End"
1 - в первую колонку
Hello1 - во вторую
End - в третью
где неудобства?
Andrew Myalin
Написал: ClaList(2)