Формирорвание отчета в Reports

добрый день. как из кода отправить объект на задний план. что-то я метода sendtoback или похожего не могу найти.

Отправить объект Shape2 на задний план
Shape2.Parent.Objects.Remove(Shape2);
Shape2.Parent.Objects.Insert(0,Shape2);

Отправить объект Shape1 на передний план
Shape1.Parent.Objects.Remove(Shape1);
Shape1.Parent.Objects.Add(Shape1);

Добрый день!

В XMLNormal параметр: Договір (дата, номер) ТД = 01.01.2013,13

Создается хмлтег:

01.01.2013,13

Как в Reports вывести в таком виде: від 21.01.2012 року за №13?

Если можно пример.

Спасибо.

Что-то вроде такого:

// получаем строку 01.01.2013,13, троеточие заменить на полный путь к тегу Dogovir := XPath('.../MyParamets/Dogovir'); // получаем отдельно дату и номер договора Date := Trim(GetV(1, Dogovir)); Number := Trim(GetV(2, Dogovir)); // результирующая строка Dogovir := 'від ' + Date + ' року за №' + Number;

Уважаемые разработчики подкиньте простой пример использования элемента управления ComboBox, типа: текст 1, текст 2 …
С Edit как-бы разобрался, дальше… :open_mouth:
Можно и другие примеры. Спасибо.

Пример работы с ComboBox есть в шаблоне госакта для XML-файлов (Сервис-Документы-<XMLГосакт>)
В этом шаблоне при наличие двух и более совладельцев при генерировании документа появляется диалоговое окно с ComboBox, в котором перечислены ФИО всех совладельцев.

//NMList - список совладельцев
//CoopCount либо NMList.Count - кол-во совладельцев

// заполнение комбобокса значениями из полученного ранее списка совладельцев
for i:=0 to NMList.Count-1 do
cmbProprietors.Items.Add(NMList[i]);

//проверка количества совладельцев
if CoopCount>1
then begin
// вначале DialogPage1.Visible был установлен в false, чтоб диалог не появлялся без надобности
// показ диалога
DialogPage1.ShowModal;
// если нажата кнопка ОК (у кнопки ОК свойство ModalResult установлено в mrOk)
if DialogPage1.ModalResult=mrOk
// ActualCoop - номер выбранного совладельца
then ActualCoop:=cmbProprietors.ItemIndex;
end
// если диалог закрыт “крестиком”, а не кнопкой ОК, то выбираем первого совладельца
else ActualCoop:=0;

Создал свой шаблон в репортс для составления технической документации. Проблема возникла с кадастровым планом. Подскажите как можно сделать так, чтобы сам кадастровый план подгружался. Пока нашёл выход - Экспорт чертежа в БМП и загрузку его на кадастровый план. Пробовал через Сервис-Документы-CadPlanA4, но там сбиваются параметры. Чертеж выглядит так


а выводится такая картинка

Я приложу свой шаблон с кад.планом, может подскажете его отредактировать, чтобы в него экспортировался чертеж без изменений условных обозначений ПЛАН.rar (87.2 KB)

Добавил в шаблон Image3 размером 180мм х 130мм c обработчиком события OnBeforePrint, который загружает “картинку” из файла Digitals/Pictures/cadplan.bmp:

procedure Picture3OnBeforePrint(Sender: TfrxComponent);
begin
Picture3.LoadFromFile(GetProgramDir+‘/Pictures/cadplan.bmp’);
end;

Картинку можно вручную сохранять перед запуском генератора отчетов, а можно и скриптом вроде этого:

;Проверяем кол-во помеченных объектов, прерываем выполнение, если помечено больше или меньше 1-го объекта
$SC=@Map.SelCount
@if $SC<>1 then @Break Пометьте 1 участок
;Проверяем слой помеченного объекта, если не XML: Земельна ділянка (ID70005), то прерываем выполнение скрипта
$SO=@Map.SelectedObject
$LID=@Map.Object[$SO].LayerID
@if $LID<>70005 then @Break Пометьте участок
;Устанавливаем рамку карты заданного размера вокруг помеченного объекта, размер рамки должен
;совпадать (180x130) с размером Image3 в шаблоне fr3-отчета для соблюдения масштаба
@Map.FrameSelected 180 130 500
;Сохраняем картинку в файл
$PP=@ProgramPath
@Map.SaveToTIF 300 24 $PP/Pictures/cadplan.bmp
;запускаем генератор отчетов
@ReportGenerator 1
ПЛАН.zip (87.7 KB)

Подскажите пожалуйста, как передать данные с Memo на форме в отчет?

MemoXX.Lines.Text - весь текст мемо
MemoXX.Lines.Count - кол-во строк в мемо
MemoXX.Lines[I] - I-я строка мемо (от 0 до MemoXX.Lines.Count-1)

Доброго ранку! допоможіть будь ласка у мене така проблема відредагував шаблон технічної документації яка була виложена в дистрибутиві і вибиває помилку (0,4200 is not a valid floating point value)?! в настройках системи роздільника числа “,” поміняв на “.” всерівно вибиває помилку тільки навпаки (0.4200 is not a valid floating point value) Я замітившо помилку вибиває коли міняю в коді для експлікації старий класифікатор на новий 05 на 001.01 та 35 на 007.01 що робити?

На якому саме шаблоні виникає помилка? Який режим(одиночный, пофамильный)?

шаблон з “tehdok.dmt”. вибиває тоді коли загружаю сервіс/документи/tehdok.dmt. може вислати вам шаблон на почту?

Так, вишліть, бо це не с дистрибутива шаблон.

Так, вишліть, бо це не с дистрибутива шаблон.

Ось файл!
met.fr3 (330 KB)

met.fr3 (330 KB)
Змінив в одному місці виклик функції StrToFloat, яка чутлива до роздільника, на виклик AnyStrToFloat, яка сприймає розділником і кому і крапку.
Має працювати, але перевірити немає можливості

нажаль таж само помилка залишилась :frowning:

надішліть весь зміст папки Digitals\Tempates\tehdok.dmt та xml-файл, з якого формується документ на help@vingeo.com

Я замітив що в обмінику код угіддя 35 а коли вкідаю в діджітал то там 009.01! репорт запускається, а коли виправляю на 007.01. або 35 чи 001.01; 05 сохраняю і запускаю репорт то зразу вибиває помилку…
Файли висилаю вам на почту.

В шаблоні використовувалась застаріла функція AnyStrToFloat(), тому помилка лишилась.
Виправлений шаблон скинув на e-mail.

Опишу також використання функції AnyStrToFloat()

var


DecDelimeter:Char; // змінна для роздільника



function AnyStrToFloat(S:string):Real;
var N:string;
i:Integer;
begin
N:=‘’;
for I:=1 to Length(S) do
if S[I] in [‘0’..‘9’,‘,’,‘.’]
then begin
if S[I] in [‘0’..‘9’]
then N:=N+S[I]
else N:=N+DecDelimeter;
end;
if N<>‘’ then Result:=StrToFloat(N) else Result:=0;
end;

begin
DecDelimeter:=Copy(FloatToStr(1/10),2,1); // ініціалізація роздільника



end.