Аналитика http://www.geosystema.net/forum/ |
|
XML против Reports http://www.geosystema.net/forum/viewtopic.php?f=1&t=2051 |
Страница 3 из 20 |
Автор: | Dmitry_Zolotar [ 12 апр 2011 08:20 ] |
Заголовок сообщения: | Re: XML против Reports |
kukin писал(а): ... а это я где-то позаимствовал function GetOwner(S:string; N:integer):string; // Виділяємо співвласника за заданим номером ... В последних версиях Reports есть функция StringPart, которая возвращает Part-ую часть строки S, разделенную разделителем Delimeter, если такой части нет, то возвращается пустая строка. function StringPart(S:String; Part:Integer; Delimeter:Char):String; то есть можно упростить function GetOwner(S:string; N:integer):string; begin Result:=StringPart(S,N,'|'); end; |
Автор: | kukin [ 13 апр 2011 00:04 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: В последних версиях Reports есть функция StringPart Спасибо, не знал об этой функции, последние полтора года, прогулял нововведения в полях |
Автор: | kukin [ 13 апр 2011 12:34 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: [AllOwn(OwnerCount(PARAM('NM')))] немного забежал "в перед", кроме добавки в виде "гр.", еще и обрезал название владельца до вида ФАМИЛИЯ, ИНИЦИАЛЫ FIO(GetOwner(PARAM('NM') Цитата: Result:=Result+ KFvar+FIO(GetOwner(PARAM('NM'), i)); В общем, это пригодится в другом месте Нам надо использовать несколько другую функцию с переносом строки, для табличного перечисления владельцев (или без переноса, для строчного перечисления владельцев): function AllOwners(N:integer):string; // var i: integer; begin Result:=''; for i:=0 to N-1 do begin Result:=Result+ KFvar+GetOwner(PARAM('NM'), i)+ #013; // + #013 и есть тот перенос строки end; end; |
Автор: | Bondarets Alexander [ 13 апр 2011 13:04 ] |
Заголовок сообщения: | Re: XML против Reports |
Правильно перенос строки задавать так #13#10. Это на unix машинах используется один символ с кодом #13. |
Автор: | kukin [ 13 апр 2011 15:33 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: Правильно перенос строки задавать так #13#10. Возможно, ибо в делфях CR (carriage return)-"#13" и LF (line feed)-"#10". Но в мемо хватит переноса каретки #013 (CR), и оно беспрецедентно работает в моем шаблоне с конца 2008года |
Автор: | kukin [ 13 апр 2011 22:43 ] |
Заголовок сообщения: | Re: XML против Reports |
пришло время подумать над "підставою набуття", вот нужные элементы: /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/TechnicalDocumentationInfo/ApprovalInfo/ApprovalDocument /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/TechnicalDocumentationInfo/ApprovalInfo/ApprovalNumber /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/TechnicalDocumentationInfo/ApprovalInfo/ApprovalDate /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/TechnicalDocumentationInfo/ApprovalInfo/ApprovalAuthority повытягивать их не сложно, но как "читабельно" их подать.. |
Автор: | kukin [ 15 апр 2011 12:07 ] |
Заголовок сообщения: | Re: XML против Reports |
Пардон, с ../ApprovalInfo/.. выходит ошибочка. Не разобравшись выбрал не тот путь, который описан переменной [PropertyAcquisitionJustificationList]. Надо: /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/Document /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentDate /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentNumber /UkrainianCadastralExchangeFile/InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/ApprovalAuthority Элемент ../PropertyAcquisitionJustification/Document/.. не несет нужной информации для технической документации. Простыми словами, не читабельно "бальсым насяльникам" Надо наверно диалоговые окошки делать Бум изварщатся над готовым кодом: then begin PropertyAcquisitionJustificationList:= XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/Document'); if PropertyAcquisitionJustificationList='001' then PropertyAcquisitionJustificationList:='Рішення органу місцевого самоврядування' else if PropertyAcquisitionJustificationList='002' then PropertyAcquisitionJustificationList:='Рішення органу виконавчої влади' else if PropertyAcquisitionJustificationList='003' then PropertyAcquisitionJustificationList:='Цивільно-правовий договір' else if PropertyAcquisitionJustificationList='004' then PropertyAcquisitionJustificationList:='Свідоцтво про право на спадщину' else if PropertyAcquisitionJustificationList='005' then PropertyAcquisitionJustificationList:='Рішення суду' else PropertyAcquisitionJustificationList:=''; if PropertyAcquisitionJustificationList<>'' надо добавить диалоговое окно переназначающее параметр PropertyAcquisitionJustificationList, займусь несколько позже |
Автор: | kukin [ 15 апр 2011 14:33 ] |
Заголовок сообщения: | Re: XML против Reports |
Дошло время до описания названия землевладельца и его адреса, для таблиц(в заявках имя,место проживания) и в теле текста "пояснююча записка". То есть, надо получать имя, фамилию, отчество, адрес через пробел, или перенос строки. поиск можно организовать по образу и подобию кода написанного Дмитрием: //Chapter3 //ProprietorFullNameList:String; //Список ПІБ/назв власників if XMLMode //если ХМЛ then ProprietorFullNameList:=PrepareXMLNMList(',') //то else begin //если не ХМЛ то I:=0; ProprietorFullNameList:=''; repeat inc(I); S:=StringPart(Param('NM'),I,'|'); //перебор по символу "I" параметра NM if S<>'' then ProprietorFullNameList:=ProprietorFullNameList+S+', '; //добовление отделенных имен "в кучу" until S=''; Delete(ProprietorFullNameList,Length(ProprietorFullNameList)-1,2); function PrepareXMLNMList(Delimeter:Char):String; //поиск имени названий владельца var I,N:Integer; S,PPath:String; begin Result:=''; //обнуляем переменную вывода функции PPath:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors'; //путь PPath к пользователю N:=NodesCount(PPath,'ProprietorInfo');// проверка количества пользователей по пути PPath if N<1 then Exit; for I:=1 to N do if IsNodeExists(PPath+'/ProprietorInfo/Authentication/NaturalPerson') then Result:=Result+'гр. '+ XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName/LastName')+' '+ XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName/FirstName')+' '+ XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName/MiddleName')+IIF(I<>N,Delimeter+' ','') else Result:=Result+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Name')+IIF(I<>N,Delimeter+' ','') end; вот одно не пойму зачем писать кучу кода в виде: XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName/LastName')+' '+ XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName/FirstName')+' '+ XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName/MiddleName')+ Можно ведь заменить: XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName)+ и будет счастье (выдаст фамилию имя отчество через пробелы ) |
Автор: | Dmitry_Zolotar [ 15 апр 2011 15:59 ] |
Заголовок сообщения: | Re: XML против Reports |
kukin писал(а): и будет счастье (выдаст фамилию имя отчество через пробелы ) Оказывается не на всех компютерах "через пробелы", я на этом уже прокололся, потому лучше пробелы ставить "вручную" |
Автор: | kukin [ 15 апр 2011 16:45 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: Оказывается не на всех компютерах "через пробелы", я на этом уже прокололся, потому лучше пробелы ставить "вручную" Проверим, пока что оставлю сокращенную форму. Наваял "не читабельную" функцию "вытягивания" имени и адреса владельца: if XMLMode //если ХМЛ then ProprietorNMADList:=PrepareXMLNMADList(',') // присваеваем нашей переменной ProprietorNMADList функцию else begin //если не ХМЛ то подумаю об этом завтра.......... end function PrepareXMLNMADList(Delimeter:Char):String; //поиск имени названий владельца и его адреса var I,N:Integer; S,PPath:String; begin Result:=''; //обнуляем переменную вывода функции PPath:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors'; //путь PPath к пользователю N:=NodesCount(PPath,'ProprietorInfo');// проверка количества пользователей по пути PPath if N<1 then Exit; for I:=1 to N do //начинаем перебор пользователями от 1 до N if IsNodeExists(PPath+'/ProprietorInfo/Authentication/NaturalPerson') //путь к элементам физ лица then begin bbb:=XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Country'); //присваеваем строчнойй переменной bbb путь к номеру страны Result:=Result+'гр. '+ XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName')+', '+ SEF(bbb,'KDS.txt')+ ', Індекс'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/ZIP')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Region')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/District')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Settlement')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Street')+ ', буд.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Building')+ ', корп.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Block')+ ', кв.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/BuildingUnit')+ IIF(I<>N,Delimeter+' ','') end else begin //те же "яйца", только с юридическими лицами bbb:=XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/Country'); Result:=Result+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Name')+ SEF(bbb,'KDS.txt')+ ', Індекс'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/ZIP')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/Region')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/District')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/Settlement')+ ', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/Street')+ ', буд.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/Building')+ ', корп.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/Block')+ ', кв.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/LegalEntity/Address/BuildingUnit')+ IIF(I<>N,Delimeter+' ','') end; end; выводит: гр. Пупкин Пуп Пупович, Украина, Индекс88000,-,-,город Герой, улица Героинь, буд.4, корп., кв.36 теперь надо подумать как обрезать отсутствующие элементы и элементы с символом "-" поскольку в ДЗКовском менеджере отсутствует понятие "опущения" пустых элементов(лепит теги без разбора, в пустые и заполненные элементы) будем считатся с символом "-". надо подумать над обрезающем кодом, а лучше функцией (боюсь, что переменных тут добавится ) if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Building'))<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Building'))<>'') //проверка на наличие пропуска и символа "-" then S:='буд.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Building') ___________________________________________________________________ чет я напорол(упустил) с разделением землевладельцев символом ", " ___________________________________________________________________ Наверно в теле функции надо будет добавить переменные, государство, индекс, область, район, улица, дом, корпус, квартира, поскольку в некоторые переменные будет добавляться приставки-окончания в виде +'буд.'+...+', '+ |
Автор: | kukin [ 15 апр 2011 19:34 ] |
Заголовок сообщения: | Re: XML против Reports |
В общем решил вопрос через "многа букафффф" function PrepareXMLNMADList(Delimeter:Char):String; //поиск имени названий владельца и его исправленого адреса......... var I,N:Integer; S,PPath,bbb,ZIP,Region,District,Settlement,Street,Building,Block,BuildingUnit:String; begin Result:=''; //обнуляем переменную вывода функции PPath:=XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors'; //путь PPath к пользователю N:=NodesCount(PPath,'ProprietorInfo');// проверка количества пользователей по пути PPath if N<1 then Exit; for I:=1 to N do //начинаем перебор пользователями от 1 до N if IsNodeExists(PPath+'/ProprietorInfo/Authentication/NaturalPerson') //путь к элементам физ лица then begin bbb:=XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Country');//присваеваем строчнойй переменной bbb путь к номеру страны if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/ZIP')<>'-') //прверка на пустые и содержащие символ "-" элементы (было использовано ранее в теме) and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/ZIP')<>'')then ZIP:=', Індекс'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/ZIP'); if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Region')<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Region')<>'')then Region:=', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Region'); if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/District')<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/District')<>'') then District:=', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/District'); if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Settlement')<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Settlement')<>'') then Settlement:=', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Settlement'); if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Street')<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Street')<>'')then Street:=', '+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Street'); if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Building')<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Building')<>'') then Building:=', буд.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Building'); if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Block')<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Block')<>'') then Block:=', корп.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/Block'); if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/BuildingUnit')<>'-') and (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/BuildingUnit')<>'') then BuildingUnit:=', кв.'+XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/BuildingUnit'); Result:=Result+'гр. '+ XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/FullName')+', '+ SEF(bbb,'KDS.txt')+ZIP+Region+District+Settlement+Street+Building+Block+BuildingUnit+IIF(I<>N,Delimeter+' ','') end else begin //"яйца" с юридическими лицами были повторены аналогично Интересно получается: if (XPath(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/ZIP')<>'') здесь заменяет: IsNodeExists(PPath+'/ProprietorInfo['+IntToStr(I)+']/Authentication/NaturalPerson/Address/ZIP') только не пойму почему Delimeter у меня не работает |
Автор: | Dmitry_Zolotar [ 15 апр 2011 22:47 ] |
Заголовок сообщения: | Re: XML против Reports |
Цитата: +IIF(I<>N,Delimeter+' ','') Добавляет Delimeter+' ' если не последний собственник, после последнего добавляет пустую строку |
Автор: | kukin [ 15 апр 2011 23:19 ] |
Заголовок сообщения: | Re: XML против Reports |
Dmitry_Zolotar писал(а): Добавляет Delimeter+' ' если не последний собственник, после последнего добавляет пустую строку Я видимо где то в этом месте "наплужил", может просто воткнул не туда по телу кода, буду искать: f XMLMode //если ХМЛ then ProprietorNMADList:=PrepareXMLNMADList(',') // присваеваем нашей переменной ProprietorNMADList функцию else begin //если не ХМЛ то подумаю об этом завтра.......... Не внимательность это моя большая беда. Начал разбиратся с ComboBox, ListBox, Label и Memo в теле диалоговой формы. Ранее мне требовалось лишь получать из боксов текст(и все работало), а тут приходится в диалоговое окно выводить текст, для дальнейшей его препарации, или хотя б как подсказку . Видимо надо вывести в мемо "намек для оператора" на "Підставу набуття", а дальше выбрать из списка нужный текст в списке исходя из документации. Но вывод текста в ComboBox для препарации меня интригует больше, есть ли такая возможность? Хелп не шибко помог. Видимо надо все таки вгрызаться сюда, так чтоб наверняка __________________________________________________________________________________________________________ люблю я сам с собой поразговаривать вопрос решился гениально просто. |
Автор: | kukin [ 16 апр 2011 10:49 ] |
Заголовок сообщения: | Re: XML против Reports |
В общем "комбобоксом" разделил тело переменной PropertyAcquisitionJustificationList выполнил так: //PropertyAcquisitionJustificationList if XMLMode then begin PropertyAcquisitionJustificationList:= XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/Document'); //поиск названия основания приобретения //сверяем "підставу" с их значением if PropertyAcquisitionJustificationList='001' then ComboBox1.text:='Рішення органу місцевого самоврядування' else if PropertyAcquisitionJustificationList='002' then ComboBox1.text:='Рішення органу виконавчої влади' else if PropertyAcquisitionJustificationList='003' then ComboBox1.text:='Цивільно-правовий договір' else if PropertyAcquisitionJustificationList='004' then ComboBox1.text:='Свідоцтво про право на спадщину' else if PropertyAcquisitionJustificationList='005' then ComboBox1.text:='Рішення суду' else ComboBox1.text:=''; // тут присваиваем комбобоксу упрощенную "підставу", в диалоговом окне мы уточним основание приобретения //далее записываем даты, номера, и орган выдавший документ if PropertyAcquisitionJustificationList<>'' then begin PropertyAcquisitionJustificationList:= ' від '+ FormatXMLDate(XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentDate'))+ ' №'+XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/DocumentNumber')+ ' '+XPath(XML573Root+'InfoPart/CadastralZoneInfo/CadastralQuarters/CadastralQuarterInfo/Parcels/ParcelInfo/Proprietors/ProprietorInfo/PropertyAcquisitionJustification/ApprovalAuthority'); end; end else begin //todo PropertyAcquisitionJustificationList:=Param('PZ'); end; _______________________________ в теле отчета переменные выглядят так:[ComboBox1.text] [PropertyAcquisitionJustificationList] |
Автор: | kukin [ 16 апр 2011 10:59 ] |
Заголовок сообщения: | Re: XML против Reports |
Не вижу решения вывода периметра участка. Опять диалоговое окно? Может ХМЛю добавить парочку параметров ин4 в ДМФ? |
Страница 3 из 20 | Часовой пояс: UTC + 2 часа |
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |