Аналитика
http://geosystema.net/forum/

Формирорвание отчета в Reports
http://geosystema.net/forum/viewtopic.php?f=1&t=295
Страница 44 из 49

Автор:  Dmitry_Zolotar [ 13 янв 2017 16:01 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

shyrko писал(а):
Доброго дня. Таке питанння
Є наприклад текстовий блок Memo1.
Height=180 мм
Font.Size=13
Кількість рядків N
Як вирахувати LineSpacing

LineSpacing можна задати, а не вирахувати. Height залежить від кількості строк тексту, Font.Size і LineSpacing, якщо StretchMode=smActualHeight, тобто коли висота визначається автоматично.
LineSpacing задається у пікселях незалежно від налаштувань Вид-Настройки-Сетка.
Якщо сітка в мм, то:
Height~N*Font.Size+LineSpacingInMM*(N-1)
де LineSpacingInMM=LineSpacing*25,4/96
25,4 - мм в дюймі
96 - точек на дюйм на екрані

Якщо сітка в пікселях, то:
Height~N*Font.Size+LineSpacing*(N-1)

Автор:  shyrko [ 20 янв 2017 15:29 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

Підкажіть, що не так в коді
var
CV:string;
procedure PageBYDOnBeforePrint(Sender: TfrxComponent);
begin
CV:=StringPart(param('cv'),1,' ');
if CV<>'02.01' then PageBYD.Visible:=false;
end;
begin
......
end.

Автор:  Руслан Пархуць [ 20 янв 2017 16:19 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

shyrko писал(а):
Підкажіть, що не так в коді

procedure PageBYDOnBeforePrint(Sender: TfrxComponent);
begin
CV:=StringPart(param('cv'),1,' ');
if CV<>'02.01' then PageBYD.Visible:=false;
end;

Саму себе не получиться сховати

var CV:string;
procedure PageBYDOnBeforePrint(Sender: TfrxComponent);
begin
// CV:=StringPart(param('cv'),1,' ');
// if CV<>'02.01' then PageBYD.Visible:=false;

end;
begin
CV:=StringPart(param('cv'),1,' ');
if CV<>'02.01' then PageBYD.Visible:=false;
end.

Автор:  shyrko [ 31 янв 2017 22:36 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

Доброго дня! Таке питання. Треба створити технічки на N-нy ділянок на різних власників в одиночному режимі з використанням DialogPage, яка задає вихідні параметри, які однакові для всіх ділянок. Підкажіть, як зробити так, щоб діалогове вікно появилося тільки раз під час вибору документа після запуску Репортс.

Автор:  Руслан Пархуць [ 01 фев 2017 14:31 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

Руслан Пархуць писал(а):
створити технічки на N-нy ділянок на різних власників в одиночному режимі

Через груповий режим.
StartDLG.ShowModal;
if StartDLG.ModalResult=mrOk then
... та OBJCOUNT

Автор:  shyrko [ 14 фев 2017 18:07 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

Після збереження експлікації, виникає наступна ситуація
https://lh3.googleusercontent.com/9K_hn070KZ7_glCKVQP3PrpmCWYM351IWWgt6WYFlIvZYtYfR6x-hIr5Vz97l2AmOsJNVdGr6NKWOzI=w1920-h901
Шаблон прикладаю
Допоможіть розібратися

Вложения:
Expl_Example.zip [5.41 Кб]
Скачиваний: 325

Автор:  Руслан Пархуць [ 14 фев 2017 20:03 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

помилка в стрiчцi SumCol:=GetColByNum('02'), оскiльки значення вертається -1 i шукається параметр з цим iндексом, що i викидає помилку.
Перед цим є цикл
//удаляем лишние столбцы
for k:=SL.Count-1 downto 1 do
if Copy(SL[k],1,1)<>'&'
then SL.Delete(k)
else Delete(SL[k],1,1);

в якому колонка '02' витирається, а далi iде її пошук???? Шукати треба внизу коду. Якщо закоментувати цикл видалення, тодi щось виводить. Пробуйте.

:!: Передивився код, CN має бути наступного типу "05 рiлля" S:=Copy(S,1,Pos(' ',S)-1); iнакше отримується пусте значення, а внаслiдок цього i помилка.
Краще замiнiть дану стрiчку на S:=StringPart(S,1,' '); тодi буде працювати в обох випадках.

Автор:  shyrko [ 23 фев 2017 17:17 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

При збереженні у WMF, і подальшій передачі в репортс зплющується шрифт.
Встановлені дві ОС Windows7 та Windows 8. На Windows 8 все нормально. Підкаджіть в чому може бути проблема.

Вложения:
win7.jpg [125.9 Кб]
Скачиваний: 0

Автор:  Руслан Пархуць [ 24 фев 2017 22:03 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

shyrko писал(а):
Встановлені дві ОС Windows7 та Windows 8. На Windows 8 все нормально.
Можливо, проблема з драйверами вiдеокарти або параметрами екрану.

Автор:  Harlequin [ 15 май 2017 13:42 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

faram писал(а):
Артем Сорокін писал(а):
Пользуюсь Digitals прибл. 6 лет в землеустройстве и геодезии.
Но вот ни как не могу себя заставить разобраться как работает Reports. В файл какого формата необходимо забивать данные, редактирование шаблонов, вывод на печать и т.д.

Уважаемые пользователи сделайте кто ни будь понятный гайд, видео или презентацию.

P.S. Лень двигатель прогресса.


Присоединяюсь. Вообще нет базовой информации для начинающих пользователей. Сделайте пожалуйста материал с примерами для наглядности. Спасибо. А то купил модуль и разобраться как он работает не могу.

:oops: Не хочеться дублювати пости в різних темах, але можливо тут швидше допоможуть.
PS треба срочняком розібратись :)

Автор:  Harlequin [ 16 май 2017 12:30 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

Намагаюсь розробити текстовий звіт (покищо тільки для технічної документації) використовуючи код (назву перемінних) шаблону наведеного нижче.


Десь в цій час коду помилка, або можливо невірно оголошено змінну

// суміжники з кадастровим номером
NigthbourNum:='';
Neighbours3:='';
PPath:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/AdjacentUnits';
N:=NodesCount(PPath,'AdjacentUnitInfo');
NeighbourCount1:=NodesCount(GraphicPath+'/Neighbours','Neighbour');
if NeighbourCount1>0

then begin
for I:=1 to NeighbourCount1 do

begin
NeighbourPath1:=GraphicPath+'/Neighbours/Neighbour['+IntToStr(I)+']';
Letters:=XPath(NeighbourPath1+'/Letters');
NeighbourName1:=XPath(NeighbourPath1+'/Name');

NigthbourNum:=XPath(PPath+'/AdjacentUnitInfo['+IntToStr(I)+']/CadastralNumber');
if length(NigthbourNum)<19
then NigthbourNum:=' кадастровий № не присвоєний';

if I<>10 then Neighbours3:=Neighbours3+#13#10;
Neighbours3:=Neighbours3+'Від '+StringPart(Letters,2,' ')+' до '+
StringPart(Letters,4,' ')+' '+NeighbourName1+' ('+NigthbourNum+')'+;
end;
end;
//Таблиця суміжників (Від А до Б)
Neighbours1:='';
Neighbours2:='';
NeighbourCount:=NodesCount(GraphicPath+'/Neighbours','Neighbour');
if NeighbourCount>0

then begin
for I:=1 to NeighbourCount do

begin
NeighbourPath:=GraphicPath+'/Neighbours/Neighbour['+IntToStr(I)+']';
Letters:=XPath(NeighbourPath+'/Letters');
NeighbourName:=XPath(NeighbourPath+'/Name');
{ if I<=4
then begin
if I<>1 then Neighbours1:=Neighbours1+#13#10;}
// Neighbours1:=Neighbours1+StringPart(Letters,4,' ')+' '+NeighbourName;
// end
// else begin
if I<>10 then Neighbours2:=Neighbours2+#13#10;
Neighbours2:=Neighbours2+'Від '+StringPart(Letters,2,' ')+' до '+
StringPart(Letters,4,' ')+' '+NeighbourName;
end;
end;

Вложения:
Zayava41.fr3 [49.37 Кб]
Скачиваний: 608

Автор:  shyrko [ 05 июл 2017 11:44 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

Є текстовий список з певними значеннями (роздільник Tab)
Як звернутись в репортс до колонки n, рядок m, за значенням КОАТУУ(1 колонка) по аналогії з функцією Sef?

Автор:  Dmitry_Zolotar [ 05 июл 2017 12:15 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

В Reports також є функція SEF, працює так само, приклад див. в Digitals\Templates\Setup.ini

Автор:  shyrko [ 05 июл 2017 13:30 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

Трохи не так виразився. Як звернутись наприклад до 3 колонки?

Автор:  Руслан Пархуць [ 05 июл 2017 15:38 ]
Заголовок сообщения:  Re: Формирорвание отчета в Reports

ф-цiя StringPart(рядок , номер колонки, роздiлювач Tab chr(9)). Для прикладу подивiться файл Expl_Example.fr3 iз формуванням таблицi 6-зем, там є щось подiбне для пошуку по колонках.

Страница 44 из 49 Часовой пояс: UTC + 2 часа
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/