Добавление элементов в динамическую группу радио в Delphi [дубликат]

Динамический SQL PIVOT:

create table temp
(
    date datetime,
    category varchar(3),
    amount money
)

insert into temp values ('1/1/2012', 'ABC', 1000.00)
insert into temp values ('2/1/2012', 'DEF', 500.00)
insert into temp values ('2/1/2012', 'GHI', 800.00)
insert into temp values ('2/10/2012', 'DEF', 700.00)
insert into temp values ('3/1/2012', 'ABC', 1100.00)


DECLARE @cols AS NVARCHAR(MAX),
    @query  AS NVARCHAR(MAX);

SET @cols = STUFF((SELECT distinct ',' + QUOTENAME(c.category) 
            FROM temp c
            FOR XML PATH(''), TYPE
            ).value('.', 'NVARCHAR(MAX)') 
        ,1,1,'')

set @query = 'SELECT date, ' + @cols + ' from 
            (
                select date
                    , amount
                    , category
                from temp
           ) x
            pivot 
            (
                 max(amount)
                for category in (' + @cols + ')
            ) p '


execute(@query)

drop table temp

Результаты:

Date                        ABC         DEF    GHI
2012-01-01 00:00:00.000     1000.00     NULL    NULL
2012-02-01 00:00:00.000     NULL        500.00  800.00
2012-02-10 00:00:00.000     NULL        700.00  NULL
2012-03-01 00:00:00.000     1100.00     NULL    NULL
0
задан Johan 28 March 2014 в 13:22
поделиться

3 ответа

Вам нужно называть Items.Add один раз для каждой кнопки:

rgpOptions.Items.Add('Screws 12mm');
rgpOptions.Items.Add('Canned Peaches 250g');
// etc. 

Или если у вас есть элементы в списке строк уже, с одной строкой текста на кнопку, вы можете написать:

rgpOptions.Items.Assign(OptionsStringList);
4
ответ дан David Heffernan 27 August 2018 в 02:30
поделиться

Если вы собираетесь использовать что-то более новое, чем Delphi 7, вы ищете метод AddStrings(TArray<String>) из TStringList.Items, который позволяет добавить array of string в список элементов радиогруппы:

rgpOptions.Items.AddStrings(
    TArray<String>.Create(
        'Screws 12mm',
        'Canned Peaches 250g',
        'Refil Blue Pen',
        'Tomatoes',
        'Spaghetti',
        'Twin Flex 5m',
        'Clear glue 250ml'
    )
);
5
ответ дан Günther the Beautiful 27 August 2018 в 02:30
поделиться

Если вы загружаете и устанавливаете GExperts ( http://www.gexperts.org/download/ ). Вы получите новое меню и некоторое расширение контекстного меню.

Один из новых вариантов: <component to code>

enter image description here [/g1]

Если вы выберете компонент контейнера (например, TPanel), он будет создавать код для всех принадлежащих ему компонентов.

4
ответ дан Johan 27 August 2018 в 02:30
поделиться
Другие вопросы по тегам:

Похожие вопросы: