Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2009.06.21;
Скачать: CL | DM;

Вниз

Проблема с передачей массива в отчет   Найти похожие ветки 

 
madmech ©   (2009-04-24 16:35) [0]

Добрый день, дамы и господа! Помогите, пожалуйста, передать двумерный динамический массив в отчет FastReport4 с целью дальнейшего его использования в скрипте. С обычной переменной все просто, как я понимаю, это надо делать следующим образом:
 Report.Script.Variables["a"] := a;

Где a - некая переменная, например, типа integer. Но как быть с массивом?


 
Сергей М. ©   (2009-04-24 16:38) [1]

Точно так же
Скриптовый движок FR4 оперирует переменными вариантного типа, в которых, как известно, можно хранить данные типа массив


 
madmech ©   (2009-04-24 16:52) [2]

Ну, хорошо, я вот такой еще весь из себя зеленый желторотый пионер. :) А как перевести двумерный динамический массив в вариантную переменную, и, самое главное, как потом с ей оперировать в отчете? Суть в том, что мне надо динамически построить перекрестный отчет, элементами которого бы стали элементы моего массива.


 
clickmaker ©   (2009-04-24 16:56) [3]

> динамически построить перекрестный отчет, элементами которого
> бы стали элементы моего массива

DataSet какой-нибудь не проще использовать?
если по теие, то см. VarArrayCreate


 
Сергей М. ©   (2009-04-24 16:58) [4]


> как перевести двумерный динамический массив в вариантную
> переменную


F1 + VarArrayCreate()


> как потом с ей оперировать в отчете


А зачем тебе вообще понадобился этом способ передачи параметров ?

Есть же в FR мастер/детайл-бэнда что-то вроде события OnData (или OnGetData - точно не помню как обзывается) ..

На кр.случай можно и frDataSet организовать ..


 
madmech ©   (2009-04-24 17:00) [5]

Дык, все те же самые значения лежат и в DataSet"е также, но проблемка в том, что количество полей в ДатаСете, как и размерность массива, я заранее (на этапе разработки) не знаю. Поля у меня формируются динамически. Хорошо, как тогда быть с выводом ДатаСета в кросстаб? Или, может быть, все же удобнее использовать массив, и его уже загонять в кросстаб?


 
Сергей М. ©   (2009-04-24 17:16) [6]


> количество полей в ДатаСете, как и размерность массива,
> я заранее (на этапе разработки) не знаю


Это же не повод чтобы заморачиваться с массивом)

Не знаешь ? Да и не надо знать !
То что не известно в дизайн-тайм, становится известным в ран-тайм ..


 
madmech ©   (2009-04-24 17:26) [7]

Ну, хорошо, а как тогда загнать ДатаСет в кросстаб?


 
Сергей М. ©   (2009-04-24 17:31) [8]

А он что, не лезет ?


 
Сергей М. ©   (2009-04-24 17:39) [9]

Я вообще не понимаю в чем проблема ..

В док-те FastReportXUserManual приводится подробнейшее разъяснение с картинками, как в дизайн-тайм спроектировать будущий кросстаб-отчет..


 
madmech ©   (2009-04-24 17:43) [10]

А как мне прикажете строить кросс-отчет в дезайн-тайме на основе ДатаСета, используя DB Cross-Tab? У меня же на этапе разработки ни одного поля еще нет. Именно поэтому я решил использовать просто Cross-Tab, чтобы можно было его врукопашную заполнить данными из массива в процессе работы программы. Если подскажете, как можно заполнять DB Cross-Tab данными из ДатаСета, используя скрипт, в ран-тайме, буду премного благодарен. :)


 
madmech ©   (2009-04-24 17:47) [11]

А к Руководству Пользователя можете меня не отсылать. Я его подробнейше изучил и не нашел решения своей проблемы, которую изложил в предыдущем посте.


 
Сергей М. ©   (2009-04-24 19:46) [12]

Я не вижу никакой проблемы.
И если ты читая UM не нашел решения, то значит ты его не читал.


 
AndreyV ©   (2009-04-24 21:27) [13]

> [10] madmech ©   (24.04.09 17:43)
> А как мне прикажете строить кросс-отчет в дезайн-тайме на
> основе ДатаСета, используя DB Cross-Tab? У меня же на этапе
> разработки ни одного поля еще нет.

А что же есть тогда?

Строй исходный ДатаСет в длину, см. ещё раз Руководство, которое ты уже изучил.

поле1 поле2 поле3
1     а     10
1     б     100
2     а     20
2     б     200
2     в     300
3     а     30
4     г     40

Получишь

     а    б     в    г
1
2
3
4

Посчитай сам, а лучше ФР доверь.


 
madmech ©   (2009-04-26 13:01) [14]

Всё, проблему решил на раз, стоило только еще раз заглянуть в мануал и внимательно прочитать первые несколько страниц, касающиеся кросс-табов. Просто у меня после первого прочтения и быстрого изучения возникла каша в голове, но сейчас я привел свои мысли в порядок. ;)
Всем спасибо, все свободны, тему можно закрывать. :)


 
madmech ©   (2009-04-26 18:03) [15]

И все же, оказывается, проблема остается актуальной, только теперь в связи с другой задачей: как передать в отчет ДВУХМЕРНЫЙ массив? Нужно смотреть значения одной матрицы из основного модуля, и в зависимости от этих значений раскрашиваться соответствующим образом таблицу (кросс-таб). Я могу обращаться напрямую к моему модулю типа:
if Manual2.MainForm.a_Sq[i, j] = 0 then
 Memo1.Color := clRed;


 
AndreyV ©   (2009-04-26 21:46) [16]

> [15] madmech ©   (26.04.09 18:03)
> Я могу обращаться
> напрямую к моему модулю типа:
> if Manual2.MainForm.a_Sq[i, j] = 0 then
> Memo1.Color := clRed;

Сделай внешнюю пременную или внешнюю функцию GetElement(i, j) см. документацию, вроде это в "Руководство программиста".


 
madmech ©   (2009-04-28 12:49) [17]

А я могу как-нибудь в коде скрипта обращаться к данным, находящимся в другом кросс-отчете?


 
AndreyV ©   (2009-04-28 13:19) [18]

> [17] madmech ©   (28.04.09 12:49)
> А я могу как-нибудь в коде скрипта обращаться к данным,
> находящимся в другом кросс-отчете?

Что значит "в другом кросс-отчете" - fr3 или CrossTab?


 
madmech ©   (2009-04-28 14:58) [19]

Имеется в виду то, что я хочу использовать данные, находящиеся в первом кросс-табе, в одном из обработчиков второго кросс-таба, лежащего в том же отчете, что и первый кросс-таб. Чтоб не усложнять себе жизнь с передачей двумерного массива в отчет. Это возможно?


 
madmech ©   (2009-04-29 16:30) [20]

Проблема решена с помощью занесения двумерного массива в одномерный с последующей передачей одномерного массива variant в отчет. Всё!



Страницы: 1 вся ветка

Текущий архив: 2009.06.21;
Скачать: CL | DM;

Наверх




Память: 0.52 MB
Время: 0.013 c
2-1241429434
apic
2009-05-04 13:30
2009.06.21
rave


2-1241273940
Vadim-Nicodim
2009-05-02 18:19
2009.06.21
Stringgrid и Таймер или циклы


15-1239568612
Юрий
2009-04-13 00:36
2009.06.21
С днем рождения ! 13 апреля 2009 понедельник


15-1239244044
dmk
2009-04-09 06:27
2009.06.21
структурные типы в PHP


2-1241521321
Леша
2009-05-05 15:02
2009.06.21
Обновление одной записи.