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

XML против Reports
http://geosystema.net/forum/viewtopic.php?f=1&t=2051
Страница 19 из 20

Автор:  mixey_dubno [ 04 апр 2016 10:03 ]
Заголовок сообщения:  Re: XML против Reports

mixey_dubno писал(а):
Dmitry_Zolotar писал(а):
Dmitry_Zolotar писал(а):
"Попробуйте запустить под админом."

або тимчасово відключіть UAC

запустив від адміна та отключивuac всерівнно нічого не змінилося :(

можливо є ще якісь варіанти вирішення проблеми?

Автор:  Dmitry_Zolotar [ 04 апр 2016 10:16 ]
Заголовок сообщения:  Re: XML против Reports

Заміна усіх RichEdit на MemoView допоможе. RichEdit - це така "чорна скриня" від Microsoft, яка глючить постійно.

Автор:  mixey_dubno [ 04 апр 2016 19:40 ]
Заголовок сообщения:  Re: XML против Reports

Dmitry_Zolotar писал(а):
Заміна усіх RichEdit на MemoView допоможе. RichEdit - це така "чорна скриня" від Microsoft, яка глючить постійно.

ціава ситуація колись в мене глючив MemoView сказали краще користуватись RichEdit))))) ну менш з тим, дякую!

Автор:  Dmitry_Zolotar [ 04 апр 2016 20:14 ]
Заголовок сообщения:  Re: XML против Reports

Dmitry_Zolotar писал(а):
RichEdit - трохи "глючна" штука від майкрософт, тому його не використовую. Колись під час розробки шаблону звіту з десятком сторінок усі формули були замінені значеннями та збереглись в шаблон. Роботу над шаблоном довелось починати майже з нуля. До того ж періодично виникають проблеми з дивними шрифтами в RichEdit.

Dmitry_Zolotar писал(а):
Проблема замечена с RichEdit в Reports, в нем постоянно "проскакивает" шрифт "MS Mincho". Digitals XE тут ни при чем, а вот операционная система "виновата". Из-за этой проблемы я лично стараюсь избегать использования RichEdit, использую Memo.

Dmitry_Zolotar писал(а):
Можливо використовувався RichText, а він щось глючить: то якісь екзотичні шрифти з'являються, то розмір файла збільшується на порядок без причини.
Поведінку RichText (Microsoft) в фастрепорті ми поміняти не можем, раджу використовувати тільки MemoView.

Автор:  fendak [ 28 апр 2016 21:33 ]
Заголовок сообщения:  Re: XML против Reports

Добрий вечір. Підкажіть, яким чином замінити CV при формуванні Звіту з XML по декількох ділянках (Пофамільний режим)? Щоб розрізняло ОЖБ та ОСГ

function GetSRByCV(CV:string):integer;
var i:Integer;
begin
for i:=1 to OBJCOUNT do
if Copy(Param('CV',i),1,Pos(' ',Param('CV',i))-1)=CV
then begin
Result:=i;
exit;
end;
Result:=0;
end;
var i:Integer;
BudSR:Integer;
SilSR:Integer;
begin
BudSR:=GetSRByCV('1.8');
SilSR:=GetSRByCV('1.2');

Автор:  mixey_dubno [ 21 фев 2017 11:50 ]
Заголовок сообщения:  Re: XML против Reports

допоможіть будь ласка витягнути серію та номер держ акту з ХМЛ, щось неполучається цього зробити

Автор:  mixey_dubno [ 21 фев 2017 12:56 ]
Заголовок сообщения:  Re: XML против Reports

Dmitry_Zolotar писал(а):
Додайте наступний код в шаблон, та використовуйте виклик функції FormatXMLDate() для конвертування дат

const MonthNames='січня,лютого,березня,квітня,травня,червня,липня,серпня,вересня,жовтня,листопада,грудня';

//функция конвертирует дату типа xsd:date в строку вида "08" серпня 2009
function FormatXMLDate(S:String):String;
var MM,DD:String; Y,M,D:Integer; LeapYear:Boolean;
begin
if (S='') or (Length(S)<>10)
then begin
Result:='';
Exit;
end;
M:=StrToInt(Copy(S,6,2));
if (M<1) or (M>12) then begin Result:='';Exit; end;
MM:=StringPart(MonthNames,M,',');
Y:=StrToInt(Copy(S,1,4));
if (Y<1900) or (Y>2099) then begin Result:='';Exit; end;
LeapYear:=IsLeapYear(Y);
//LeapYear:=((Y mod 4)=0) and (((Y mod 100)<>0) or (Y=2000));
D:=StrToInt(Copy(S,9,2));
if (D<1) or ((D>31) and (M in [1,3,5,7,8,10,12]))
or ((D>30) and (M in [4,6,9,11]))
or ((D>28) and (M=2) and not LeapYear)
or ((D>29) and (M=2) and LeapYear)
then begin Result:='';Exit; end;
DD:='0'+IntToStr(D); DD:=Copy(DD,Length(DD)-1,2);
Result:='"'+DD+'" '+MM+' '+IntToStr(Y)+' р.'
end;

щось я недуже зрозумів як це зробити((( у мене використовується ось таке в репорті

// Рішення

temp:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/Document/';
temp1:=xpath(temp);
temp:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentNumber/';
nr:=xpath(temp);
temp:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentDate/';
datr:=xpath(temp);
drr:=ROP(temp1);

case temp1 of
'001': drr:='рішення '+sr+' №'+nr+', від '+datr;
'002': drr:='розпорядження '+sr+' №'+nr+', від '+datr;
'003': drr:='цивільно-правового договору '' №'+nr+', від '+datr;
'004': drr:='свідоцтва про право на спадщину '+'зареєстрованого в реєстрі'' №'+nr+', від '+datr;
end;

case temp1 of

'001': dr:='Рішення '+sr+' №'+nr+', від '+datr;
'002': dr:='Розпорядження '+sr+' №'+nr+', від '+datr;
'003': dr:='Цивільно-правовий договір '+sr+' №'+nr+', від '+datr;
'004': dr:='Свідоцтво про право на спадщину '+'зареєстрованого в реєстрі'' №'+nr+', від '+datr;
end;

як поєднати це з вашою функцією? буду вдячний за допомогу

Автор:  Dmitry_Zolotar [ 21 фев 2017 17:10 ]
Заголовок сообщения:  Re: XML против Reports

Dmitry_Zolotar писал(а):
Додайте наступний код в шаблон, та використовуйте виклик функції FormatXMLDate() для конвертування дат

В самий початок скрипта можна додати

mixey_dubno писал(а):
// Рішення

temp:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/Document/';
temp1:=xpath(temp);
temp:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentNumber/';
nr:=xpath(temp);
temp:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentDate/';
datr:=xpath(temp);
drr:=ROP(temp1);

case temp1 of
'001': drr:='рішення '+sr+' №'+nr+', від '+datr;
'002': drr:='розпорядження '+sr+' №'+nr+', від '+datr;
'003': drr:='цивільно-правового договору '' №'+nr+', від '+datr;
'004': drr:='свідоцтва про право на спадщину '+'зареєстрованого в реєстрі'' №'+nr+', від '+datr;
end;

case temp1 of

'001': dr:='Рішення '+sr+' №'+nr+', від '+datr;
'002': dr:='Розпорядження '+sr+' №'+nr+', від '+datr;
'003': dr:='Цивільно-правовий договір '+sr+' №'+nr+', від '+datr;
'004': dr:='Свідоцтво про право на спадщину '+'зареєстрованого в реєстрі'' №'+nr+', від '+datr;
end;

як поєднати це з вашою функцією? буду вдячний за допомогу


замість
datr:=xpath(temp);
напишіть
datr:=FormatXMLDate(xpath(temp));

Автор:  mixey_dubno [ 21 фев 2017 17:23 ]
Заголовок сообщения:  Re: XML против Reports

Dmitry_Zolotar писал(а):
Dmitry_Zolotar писал(а):
Додайте наступний код в шаблон, та використовуйте виклик функції FormatXMLDate() для конвертування дат


замість
datr:=xpath(temp);
напишіть
datr:=FormatXMLDate(xpath(temp));

Безмежно вдачний Вам усе получилось!

Автор:  Harlequin [ 19 май 2017 09:29 ]
Заголовок сообщения:  Re: XML против Reports

Виник ряд питань по яким потрібна допомога! :roll:

1. Як вивести в текстовий звіт з ХМЛ дані держ акту в родовому відмінку (в називному виводиться без питань).
2. Опис суміжних землекористувача з кадастровими номерами та без, рився в зразках шаблонів, але витягти у власний покищо не виходить (а вже дуже хочеться щоб все було в одному місці) прошу вказати необхідний кусок коду для цього блока.
3. З того ж ХМЛя коряво витягується знак "№" (відображається в іншому шрифті, що портить зовнішній вигляд звіту, так так звіт так має виглядати симпатично :D )
Dmitry_Zolotar писал(а):
Dmitry_Zolotar писал(а):
RichEdit - трохи "глючна" штука від майкрософт, тому його не використовую. Колись під час розробки шаблону звіту з десятком сторінок усі формули були замінені значеннями та збереглись в шаблон. Роботу над шаблоном довелось починати майже з нуля. До того ж періодично виникають проблеми з дивними шрифтами в RichEdit.

Dmitry_Zolotar писал(а):
Проблема замечена с RichEdit в Reports, в нем постоянно "проскакивает" шрифт "MS Mincho". Digitals XE тут ни при чем, а вот операционная система "виновата". Из-за этой проблемы я лично стараюсь избегать использования RichEdit, использую Memo.

Dmitry_Zolotar писал(а):
Можливо використовувався RichText, а він щось глючить: то якісь екзотичні шрифти з'являються, то розмір файла збільшується на порядок без причини.
Поведінку RichText (Microsoft) в фастрепорті ми поміняти не можем, раджу використовувати тільки MemoView.

4. Не знайшов зразка коду, який витягує форму власності земельної ділянки, а було б зовсім не зайвим автоматизувати і цей блок.
Цитата:
//форма власності земельної ділянки
OwnershipCode:=XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/OwnershipInfo/Code');
Code:=SEF(OwnershipCode,'OwnershipCode.txt');(текстовий файл 'OwnershipCode.txt' має бути в папці Lists(Прикріпив нижче))
5. Маємо ще таблицю в звіті під назвою "Перелік обмежень щодо використання земельної ділянки" було б дуже круто заповнювати площі обмежень в ній згідно даних з ХМЛ в автоматичному режимі.
6. Чи можна якось налаштувати програму, щоб звіт зберігався в папку де лежить ХМЛ?

Код який я намагаюсь використовувати для опису суміжників:
// суміжники з кадастровим номером
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;

Вложения:
OwnershipCode.txt [44 байт]
Скачиваний: 652

Автор:  shyrko [ 19 май 2017 11:36 ]
Заголовок сообщения:  Re: XML против Reports

На рахунок державного акта як варіант, можна створити текстовий список в папці Lists, StateActTypeRop.txt, де внести відповідні назви в родовому відмінку а потім вже витягнути функцією Sef.
На рахунок кривого знаку "№", або встановити Windows7, або відмовитись від Richtext, а використовувати Мемо

Автор:  shyrko [ 19 май 2017 12:39 ]
Заголовок сообщения:  Re: XML против Reports

Форму власності можна витягнути якось так:
Код- [Copy(Param('id7000512'),1,3)]
Назва [Copy(Param('id7000512'),5,Length(Param('id7000512')))]

Автор:  Harlequin [ 19 май 2017 16:11 ]
Заголовок сообщения:  Re: XML против Reports

shyrko писал(а):
Форму власності можна витягнути якось так:
Код- [Copy(Param('id7000512'),1,3)]
Назва [Copy(Param('id7000512'),5,Length(Param('id7000512')))]

Ми зараз про текстовий звіт говоримо чи про ДМТ?
Бо мене саме для FR3 цікавить код, поясніть будь-ласка якщо я чогось не розумію :oops:

Автор:  shyrko [ 20 май 2017 02:04 ]
Заголовок сообщения:  Re: XML против Reports

Трохи промазав
Коф форми власності OwnershipCode:=XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/CategoryPurposeInfo/Category');
Назва FV:=SEF(OwnershipCode,'OwnershipCode.txt');(текстовий файл 'OwnershipCode.txt' має бути в папці Lists)

Автор:  Harlequin [ 22 май 2017 14:34 ]
Заголовок сообщения:  Re: XML против Reports

shyrko писал(а):
Трохи промазав
Коф форми власності OwnershipCode:=XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/CategoryPurposeInfo/Category');
Назва FV:=SEF(OwnershipCode,'OwnershipCode.txt');(текстовий файл 'OwnershipCode.txt' має бути в папці Lists)


Ооо Арбайтен)))) Щиро вдячний! Зроблю в першому пості правку щоб легше було розбиратись)
Умні люди ще один варіант підказали, не для слабих духом так сказать :mrgreen: ( з перевіркою на хмл чи ін4):

if XMLMode
then begin
OwnershipCode:='';
if IsNodeExists(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/OwnershipInfo/Code')
then OwnershipCode:=XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/OwnershipInfo/Code');
if OwnershipCode='100'
then OwnershipCode:='приватна'
else
if OwnershipCode='300'
then OwnershipCode:='державна'
else OwnershipCode:='комунальна'
end
else begin
if UpperCase(StringPart(Param('PZ'),1,','))='ВЛ'
then OwnershipCode:='приватна'
else OwnershipCode:='державна'; //todo комунальна??? //-todo
end;
if XMLMode
then ParcelArea:= XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/ParcelMetricInfo/Area/Size')
// /InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/ParcelMetricInfo/Area/Size
else ParcelArea:=Param('AS');

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