xml однако

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
amer
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 02.08.2003 (Сб) 19:41
Откуда: Воронеж

xml однако

Сообщение amer » 25.11.2009 (Ср) 18:32

каждая поликлиника дабы заработать на жизнь шлет файл счетов в соответствующие органы (кажется в ФОМС)
до недавнего времени эти счета находились в дбфном файле, а с первого декабря, добрые люди из территориального фонда обяз. мед. страхования решили получать эти счета в файле xml ...
прислали кипу бумаг и файлик такого содержания:
Код: Выделить всё
<?xml version="1.0" encoding="utf-8"?>
<xs:schema xmlns:xs="http://www.w3.org/2001/XMLSchema" elementFormDefault="qualified">
   <xs:element name="ReestrAccounts" type="ReestrAccounts" nillable="true"/>
   <xs:complexType name="ReestrAccounts">
      <xs:sequence>
         <xs:element name="Account" type="AccountDetail" minOccurs="0" maxOccurs="unbounded"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="AccountDetail">
      <xs:sequence>
         <xs:element name="ReestrInfo" type="Reestr" minOccurs="0"/>
         <xs:element name="PatientInfo" type="Person" minOccurs="0"/>
         <xs:element name="MedicalInfo" type="MedFull" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Reestr">
      <xs:sequence>
         <xs:element name="KOD_LPU" type="xs:decimal"/>
         <xs:element name="DAT_R" type="xs:date"/>
         <xs:element name="NUM_R" type="xs:string" minOccurs="0"/>
         <xs:element name="M_OGRN" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Person">
      <xs:sequence>
         <xs:element name="OKATO_OMS" type="xs:string" minOccurs="0"/>
         <xs:element name="Dr" type="xs:date"/>
         <xs:element name="W" type="eSex"/>
         <xs:element name="PolisInfo" type="Polis" minOccurs="0"/>
         <xs:element name="C_OKSM" type="xs:string" minOccurs="0"/>
         <xs:element name="STAT_Z" type="xs:decimal"/>
         <xs:element name="PLACE_W" type="xs:string" minOccurs="0"/>
         <xs:element name="Q_G" type="xs:string" minOccurs="0"/>
         <xs:element name="FioInfo" type="Fio" minOccurs="0"/>
         <xs:element name="AdresInfo" type="Adres" minOccurs="0"/>
         <xs:element name="DocInfo" type="Documents" minOccurs="0"/>
         <xs:element name="ReprersentInfo" type="Representative" minOccurs="0"/>
         <xs:element name="KLADR" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:simpleType name="eSex">
      <xs:restriction base="xs:string">
         <xs:enumeration value="М"/>
         <xs:enumeration value="Ж"/>
      </xs:restriction>
   </xs:simpleType>
   <xs:complexType name="Polis">
      <xs:sequence>
         <xs:element name="SN_POL" type="xs:string" minOccurs="0"/>
         <xs:element name="DATE_N" type="xs:date"/>
         <xs:element name="DATE_E" type="xs:date"/>
         <xs:element name="Q_OGRN" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Fio">
      <xs:sequence>
         <xs:element name="Fam" type="xs:string" minOccurs="0"/>
         <xs:element name="Im" type="xs:string" minOccurs="0"/>
         <xs:element name="Ot" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Adres">
      <xs:sequence>
         <xs:element name="R_NAME" type="xs:string" minOccurs="0"/>
         <xs:element name="Q_NP" type="xs:decimal"/>
         <xs:element name="NP_NAME" type="xs:string" minOccurs="0"/>
         <xs:element name="Q_UL" type="xs:decimal"/>
         <xs:element name="UL_NAME" type="xs:string" minOccurs="0"/>
         <xs:element name="DOM" type="xs:string" minOccurs="0"/>
         <xs:element name="KOR" type="xs:string" minOccurs="0"/>
         <xs:element name="KV" type="xs:string" minOccurs="0"/>
         <xs:element name="C_OKATO2" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Documents">
      <xs:sequence>
         <xs:element name="C_DOC" type="xs:decimal"/>
         <xs:element name="S_DOC" type="xs:string" minOccurs="0"/>
         <xs:element name="N_DOC" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Representative">
      <xs:sequence>
         <xs:element name="FIO_P" type="Fio" minOccurs="0"/>
         <xs:element name="STAT_P" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="MedFull">
      <xs:sequence>
         <xs:element name="DAT_1" type="xs:date"/>
         <xs:element name="DAT_2" type="xs:date"/>
         <xs:element name="DS" type="xs:string" minOccurs="0"/>
         <xs:element name="DS_K" type="xs:string" minOccurs="0"/>
         <xs:element name="DS_S" type="xs:string" minOccurs="0"/>
         <xs:element name="DS_S2" type="xs:string" minOccurs="0"/>
         <xs:element name="DS_O" type="xs:string" minOccurs="0"/>
         <xs:element name="RSLT" type="xs:decimal"/>
         <xs:element name="S_ALL" type="xs:decimal"/>
         <xs:element name="Q_U" type="xs:decimal"/>
         <xs:element name="VMP" type="xs:decimal"/>
         <xs:element name="MedObslAmb" type="AmbPol" minOccurs="0"/>
         <xs:element name="MedObslStac" type="Stac" minOccurs="0"/>
         <xs:element name="MedObslStomat" type="Stomat" minOccurs="0"/>
         <xs:element name="MedObslDS" type="DnStac" minOccurs="0"/>
         <xs:element name="IDRECORD" type="xs:string" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="AmbPol">
      <xs:sequence>
         <xs:element name="PRVS" type="xs:decimal"/>
         <xs:element name="DL_LEC" type="xs:decimal"/>
         <xs:element name="SL" type="xs:string" minOccurs="0"/>
         <xs:element name="PR_NZ" type="xs:decimal"/>
         <xs:element name="KS" type="xs:decimal"/>
         <xs:element name="N_KARD" type="xs:string" minOccurs="0"/>
         <xs:element name="POS_DOM" type="Pos" minOccurs="0"/>
         <xs:element name="POS_AMB" type="Pos" minOccurs="0"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Pos">
      <xs:sequence>
         <xs:element name="POS" type="xs:decimal"/>
         <xs:element name="TARIF" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Stac">
      <xs:sequence>
         <xs:element name="PRMP" type="xs:decimal"/>
         <xs:element name="KSG_MS" type="xs:string" minOccurs="0"/>
         <xs:element name="TARIF_K" type="xs:decimal"/>
         <xs:element name="DL_LEC" type="xs:decimal"/>
         <xs:element name="SL" type="xs:string" minOccurs="0"/>
         <xs:element name="PR_NZ" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="Stomat">
      <xs:sequence>
         <xs:element name="PRVS" type="xs:decimal"/>
         <xs:element name="FORM_Z" type="xs:decimal"/>
         <xs:element name="USLS" type="ArrayOfDecimal" minOccurs="0"/>
         <xs:element name="TARIF_S" type="xs:decimal"/>
         <xs:element name="UET" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="ArrayOfDecimal">
      <xs:sequence>
         <xs:element name="decimal" type="xs:decimal" minOccurs="0" maxOccurs="15"/>
      </xs:sequence>
   </xs:complexType>
   <xs:complexType name="DnStac">
      <xs:sequence>
         <xs:element name="PRMP" type="xs:decimal"/>
         <xs:element name="TARIF_D" type="xs:decimal"/>
         <xs:element name="DL_LEC" type="xs:decimal"/>
         <xs:element name="SL" type="xs:string" minOccurs="0"/>
         <xs:element name="PR_NZ" type="xs:decimal"/>
      </xs:sequence>
   </xs:complexType>
</xs:schema>


мало того что в нем есть какаято ошибка в строке 43... (смотрю тупо и не понимаю где она)
вообще подскажите как с минимальными затратами времени и сил перебрасывать данные из dbf в это...
сейчас пока занимаюсь экспериментами с MSXML2.DOMDocument30
помогите пожалуйста.... я этот xml впервые вижу :cry:

dr.MIG
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1441
Зарегистрирован: 18.12.2004 (Сб) 9:53
Откуда: г.Ярославль

Re: xml однако

Сообщение dr.MIG » 25.11.2009 (Ср) 19:36

Что касается ошибки в строке 43, то это русская буква "М". Т.е. кодировка указана utf-8, а файл скорее всего сохранен в другой кодировке. Попробуй открыть этот файл хотя бы в блокноте и заново сохранить в UTF-8 — ошибка исчезнет. Что касается направления дальнейшей деятельности, то MSXML — верный путь.

P.S. а так бы да, лучше бы автоматизировали рабочее место врача, а то работа с документацией занимает 95% рабочего времени как в стационаре, так и в поликлинике :). При этом половина этого времени уходит на переписку уже написанного (выписные, переводные эпикризы и т.п.).
Salus populi suprema lex

Antonariy
Повелитель Internet Explorer
Повелитель Internet Explorer
Аватара пользователя
 
Сообщения: 4824
Зарегистрирован: 28.04.2005 (Чт) 14:33
Откуда: Мимо проходил

Re: xml однако

Сообщение Antonariy » 26.11.2009 (Чт) 11:09

dr.MIG писал(а):При этом половина этого времени уходит на переписку уже написанного (выписные, переводные эпикризы и т.п.).
Классический пример телеги, поставленной впереди лошади. Почему нельзя СРАЗУ вбивать все в компьютер, а потом распечатывать? Компьютеры стоят уже почти везде.
Лучший способ понять что-то самому — объяснить это другому.

amer
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 02.08.2003 (Сб) 19:41
Откуда: Воронеж

Re: xml однако

Сообщение amer » 26.11.2009 (Чт) 16:18

немножко не по теме: несведущим людям вообще сложно понять какой хренатенью приходится заниматься врачам, а сколько всяких ненужных отчетов по статистике делает поликлиника..... уму не постижимо...

amer
Продвинутый пользователь
Продвинутый пользователь
 
Сообщения: 108
Зарегистрирован: 02.08.2003 (Сб) 19:41
Откуда: Воронеж

Re: xml однако

Сообщение amer » 27.12.2009 (Вс) 19:43

Я вернулся! :D
прога сама собой писаться не желает.... :cry:
всё, что смог найти это как использовать msxml и все такое под .NET ...
блин, я отупел.... помогите...
у меня есть:
Код: Выделить всё
       
        Set WS = DBEngine.Workspaces(0)
        pBase = App.Path & "\stomat.mdb"
        Set DB = WS.OpenDatabase(pBase)
        SQL = "select * from тырыпыры '"
        Set RS = DB.OpenRecordset(SQL, dbOpenDynaset)

я подключил в References "Microsoft XML v6"
теперь:
как и что объявлять и как это использовать...
всего то надо в цикле из рекордсета данные засунуть в xml...

$Yastrebov$
Продвинутый пользователь
Продвинутый пользователь
Аватара пользователя
 
Сообщения: 154
Зарегистрирован: 24.01.2007 (Ср) 7:27
Откуда: Ukraine

Re: xml однако

Сообщение $Yastrebov$ » 28.12.2009 (Пн) 15:28

Для создания или парсинга XML, можешь глянуть бесплатный компонент Chilkat XML Parser. Он очень функционален и достаточно прост в изучении. Есть примеры для VB. Ссылка: http://www.xml-parser.com/examples.htm
Жизнь, она как коробка конфет - никогда не знаешь, что вытянешь!


Вернуться в Visual Basic 1–6

Кто сейчас на конференции

Сейчас этот форум просматривают: AhrefsBot и гости: 75

    TopList