столбцы в строках

отредактировано 17:25 Раздел: FastReport 3.0
Помогите зеленому пожалуйста,
есть таблица ТТable с 34 столбцами с флагами (исполнено/не исполнено - 1/0), как построить отчет типа-

Заголовок
столбец1, не исполнено (строка1, строка2....)
столбец2, не исполнено (строка1, строка2....)
и т.д.

желательно включить фильтр по датам (есть отдельные столбцы с ними), и фильтр пустых строк
Заранее спасибо!

Комментарии

  • отредактировано March 2006
    Если юзаешь оракл, то делай транспонирование строк - подробно описано в факах на http:\\sql.ru да и у Кайта тож..
    Если не оракл как экстрим бросаешь на диалоговую форму ADOQuery, и в скрипте создаешь SQL запрос нужного тебе вида, например
    ADOQuery.SQL.text:='SELECT * FROM твоя_таблица';
    ADOQuery.Open;
    ADOQuery.SQL.Clear;
    ADOQuery.SQL.text:='SELECT '+ADOQuery.Fields.Field.FieldName+' FROM твоя_таблица'
    for i:=0 to ADOQuery.Fields.Count-1 do begin
    ADOQuery.SQL.text:=ADOQuery.SQL.text+' UNION SELECT '+ADOQuery.Fields.Field.FieldName+' FROM твоя_таблица'
    твоя_таблица';
    end;
    ADOQuery.Close;
    ADOQuery.Open; - эт можешь не делать FR сам откроет запрос..


    Типа такого, ну естественно запрос не только по одному полю надо делать - можно широкий спектр объедененных таблиц получить..
    Только предварительно надо ADOQuery.SQL.Text заполнить текстом такого вида SELECT Field1 FROM твоя_таблица
    визуально настроить датабэнд..
    Удачи!
  • отредактировано 17:25
    Mighty написал:
    Если юзаешь оракл, то делай транспонирование строк - подробно описано в факах на http:\\sql.ru да и у Кайта тож..
    Если не оракл как экстрим бросаешь на диалоговую форму ADOQuery, и в скрипте создаешь SQL запрос нужного тебе вида, например
    ADOQuery.SQL.text:='SELECT * FROM твоя_таблица';
    ADOQuery.Open;
    ADOQuery.SQL.Clear;
    ADOQuery.SQL.text:='SELECT '+ADOQuery.Fields.Field.FieldName+' FROM твоя_таблица'
    for i:=0 to ADOQuery.Fields.Count-1 do begin
    ADOQuery.SQL.text:=ADOQuery.SQL.text+' UNION SELECT '+ADOQuery.Fields.Field.FieldName+' FROM твоя_таблица'
    твоя_таблица';
    end;
    ADOQuery.Close;
    ADOQuery.Open; - эт можешь не делать FR сам откроет запрос..


    Типа такого, ну естественно запрос не только по одному полю надо делать - можно широкий спектр объедененных таблиц получить..
    Только предварительно надо ADOQuery.SQL.Text заполнить текстом такого вида SELECT Field1 FROM твоя_таблица
    визуально настроить датабэнд..
    Удачи!
    Спасибо но только не понял как связать fR и ADOquery
  • gpigpi
    отредактировано 17:25
    написал:
    не понял как связать fR и ADOquery
    через TfrxDBDataset
  • отредактировано 17:25
    Mighty написал:
    ADOQuery.SQL.text:='SELECT '+ADOQuery.Fields.Field.FieldName+' FROM твоя_таблица'
    Тут надо вот так
    ADOQuery.SQL.text:='SELECT '+ADOQuery.Fields.Field[0].FieldName+' FROM твоя_таблица'
    ну и в цикле не с нулевого поля начать, а с 1-го..

Оставить комментарий

Многофункциональный текстовый редактор. Чтобы отредактировать стиль параграфа, нажмите TAB, чтобы перейти к меню абзаца. Там вы можете выбрать стиль. По умолчанию не выбран ни один стиль. Когда вы выберете текст, появится встроенное меню форматирования. Нажмите TAB, чтобы войти в него. Некоторые элементы, такие как многофункциональные вставки ссылок, картинок, индикаторов загрузки и сообщений об ошибок могут быть вставлены в редактор. Вы можете перемещаться по ним, используя стрелки внутри редактора и удалять с помощью клавиш delete или backspace.