powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преобразовать XML в DBF
90 сообщений из 90, показаны все 4 страниц
Преобразовать XML в DBF
    #37991072
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
как преобразовать XML файл в DBF чтобы была в виде таблицы? Первый раз сталкиваюсь с этим. напишите пример пожалуйста, надо срочно сделать
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991074
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
каждый такой кусок это типа одна запись с полями

автор<pacient_strax>
<id>25289136</id>
<id_sch>201209 05013020129</id_sch>
<vpolis>1</vpolis>
<spolis>ГУН</spolis>
<npolis>000016757</npolis>
<fam>МАГОМЕДОВ</fam>
<im>РУСЛАН</im>
<ot>БУНЬМОВИЧ</ot>
<dr>1957-03-15T00:00:00</dr>
<w>1</w>
<smo>05701</smo>
<stat>0</stat>
<name_error>Отсутствует в СРЗ</name_error>
<kol_strax>1</kol_strax>
<kol_uslugi>.00</kol_uslugi>
<kol_kd>15.00</kol_kd>
<sumv>3096.97</sumv>
<code_mo>05011D</code_mo>
<name_mo>Энодкринологический центр РДЦ (дневной стационар)</name_mo>
</pacient_strax>
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991139
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
сконвертировал в xls а в dbf теперь как преобразовать из xls?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991144
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Если есть эксель - открыть, сохранить как dbf.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991145
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,


XMLTOCURSOR(eExpression | cXMLFile [, cCursorName [, nFlags ]])

Преобразует XML текст в курсор или таблицу Visual FoxPro.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991157
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, напиши пожалуйста пример, а не шаблон, просто срочно нужно это сделать
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991160
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
чтобы например на диск С сохранить в виде dbf
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991199
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

CREATE table c:\pacient_strah ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50))

XMLTOCURSOR("T05M501209050130.xml", "pacient_strah", 512)
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991206
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, а почему таблица пустая получилась?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991207
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991, у вас какие-то затруднения с применением функции "xmltocursor" и команды "copy to "?
В первой разве что до nFlags=512 не сразу можно догадаться, а во второй вообще ничего замудрённого нет ...
Дима1991просто срочно нужно это сделатьТогда вам сюда .
Или даже сразу сюда .
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991208
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991а почему таблица пустая получиласьпотому что надо ещё insert написать.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991210
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, где именно писать? я выполнил вышеуказанную команду таблица пустая создается
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991218
Koryuu
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В вашей xml есть теги sluch и usl? Если есть, то имеется самописный готовый конвертер - можете допилить под себя. Писалось как раз для конвертирования мед.услуг из "федерального" формата в родные дбфки
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991219
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

путь укажи к xml
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991222
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>где именно писать?
/*обречённо*/ в программе, где же ещё... ну или в командном окне...
>я выполнил вышеуказанную команду таблица пустая создается
Вообще-то там две команды. И ещё третья нужна. Какая именно - я написал. Если неохота во всё это вникать - см. 13294096
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991226
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя беру свои слова про третью команду назад, имена курсоров ведь совпадают.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991232
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, я понял что в программе. Первый раз приходится конвертировать xml в dbf и надо срочно сделать. Товарищ написал код, но таблица пустая. напишите допишите в этом коде где надо insert потом буду сидеть и разбираться что как сейчас быстро надо сделать просто
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991236
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

Не надо никаких insertов!
XMLTOCURSOR("C:\T05M501209050130.xml", "pacient_strah", 512) или где он у тебя там находится
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991240
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, нее я так делал, все равно пустая таблица
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991253
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кстати да, и впрямь пустая. Значит, надо xmltocursor-ом выгрузить данные в другой курсор, после чего insert-нуть их в созданную таблицу.
А можно вообще ничего заранее не создавать:
Код: sql
1.
2.
3.
xmltocursor(...)
select созданный курсор
copy to ...

, и всё. Правда, размерность полей может пострадать. А впрочем, если нужно "дёшево и сердито", то этот вариант - самое оно.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991255
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, мне не нужно чтобы размерность была нарушена. Сейчас попробую ваш вариант
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991261
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
написал так: все равно пустая таблица. Может я не так пишу?

авторCREATE table c:\pacient_strah ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50)) ;


XMLTOCURSOR("C:\T05M501209050130.xml", "pacient_strah", 512)
SELECT pacient_strah
COPY TO pacient_strah
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991297
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Всем спасибо, сделал вот так:

авторCREATE table c:\pacient_strah ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50), ;
smo_tmp C(5)) ;

XMLTOCURSOR("C:\000T052M501209050130.xml", "pacient_strah", 512)
COPY TO "C:\pacient_strah"
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991306
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А как теперь из этих записей сформировать отчеты на каждое значение из поля Name_mo т.е. Name_mo это название отдела. Надо сформировать отчет на каждый отдел сгруппировав в каждом отчете записи по полю Name_error т.е. группировать по виду ошибки :)
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991314
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
вот созданная таблица мною через вышеуказанный код
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991416
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
можно ли сначала вывести в курсор нужные записи сгруппировав, а потом из курсора сформировать отчет? Если да то как?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991635
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991Всем спасибо, сделал вот так:

авторCREATE table c:\pacient_strah ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50), ;
smo_tmp C(5)) ; Где ты у меня видел в этом месте точку с запятой?

XMLTOCURSOR("C:\000T052M501209050130.xml", "pacient_strah", 512)
COPY TO "C:\pacient_strah"
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991643
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991можно ли сначала вывести в курсор нужные записи сгруппировав, а потом из курсора сформировать отчет? Если да то как?

SELECTом
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37991696
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, убрал точку с запятой. и без этого ошибки не было. но все же убрал на всякий случай
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993087
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Почему у меня если вместо этого файла использовать другой файл с таким же названием и с такими же полями. в таблице создаются дополнительные поля типа Fam_Polis и отчет создается и сразу закрывается?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993105
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991Почему у меня если вместо этого файла использовать другой файл с таким же названием и с такими же полями. в таблице создаются дополнительные поля типа Fam_Polis и отчет создается и сразу закрывается?

Потому что ты там крутил-вертел - то ли в таблицу xml, то ли в курсор. Если в таблице нет такого поля, то они создаваться не должны. Разбирайся в своем коде. Как говорится, что наваял, то и получил.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993122
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, файлы идентичные и поля совпадают и название файла. с одним файлом работает все если другой использую идентичный только данные разные то не работает
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993125
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991IgorNG, файлы идентичные и поля совпадают и название файла. с одним файлом работает все если другой использую идентичный только данные разные то не работает

Чудес не бывает. Выкладывай идентичный файл
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993134
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, обе файла выложил. если работать с T05M501209050130.xml работает, а если 1T05M501209050130.xml переименовать в T05M501209050130 и с ним работать то уже не работает
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993281
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и тишинааа... ((
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993296
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

Если у тебя в запросе тупо стоит name_mo='Республиканский ДЦ (диагностика)', то курсор у тебя пустой, потому что в xml нет такого названия.
Так что твои крики о том, что с этим xml работает, а с переименованным не работает, не обоснованы.
У меня, например, такие воцклицания ассоциируются больше с юзерами, чем с программистами.
Ты сам должен проверять работу своего творения.
Перед выводом в отчет поставь элементарное browse и увидишь, что у тебя в курсоре.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993312
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, Да, точно. Как-то я сам не додумался оказывается в поле name_mo в этих файлах по разному указана информация об отделе диагностика. просто условие еще добавить надо учитывающее второй вариант. Благодарю
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993338
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
извиняюсь за глупый вопрос. напомните пожалуйста если надо найти такое значение ООО "Диагностический центр" Диагностика как нужно было писать в условии where
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993342
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а не не нужно
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993533
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а можно ли сделать так: вот на диске h:\strafs есть папки типа "201209" т.е. 2012 год 09 месяц. в таких папках будут располагаться xml файлы с названиями T05M501209050130 в котором 1209 означает год и месяц. на форме есть комбобоксы в одном месяца в другом года. Как сделать чтобы при выборе месяца и года программа искала в папке h:\strafs такую же папку название которой соответствует выбранным параметрам в комбобоксах. т.е. человек на форме выбрал из двух комбобоксов месяц октябрь и год 2012 программа в h:\strafs нашла папку 201210 и работала с тамошним xml файлом у которого название будет T05M501210050130.xml
Названия xml файлов в каждой папке будут разные например в папке 201211 такой T05M501211050130.xml
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993576
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

adir() и chdir в помощь.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993639
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, прочитал я про эти команды, но не понял как использовать их в своей программе чтобы делать так как мне надо
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993806
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
никто не в силах помочь?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37993896
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

Советом здесь всегда помогут. А вот писать за кого-то - вряд ли.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994025
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, писать я не говорю.. просто напишите как сделать то что мне нужно словами и какие функции можно использовать.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994047
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

ADIR() - в массив загоняешь список файлов из нужной папки. В массиве выбираешь нужный xml, который соответствует данным (месяцЮ год), выбранным в combobox.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994059
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, вы не поняли скорее всего. в программе человек выбирает из первого комбо месяц из второго год и на основании этого выбора программа должна найти папку такую же. выбрали допустим Январь 2012 программа ищет в h:\strafs папку 201201 и там ищет файл T05M501201050130.xml и с ним работает. В названии файла xml зашифрован месяц и год T05M501201050130.xml
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994069
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще вы мне писали для создания dbf из xml код там была такая строка smo C(5), ; в xml в поле smo 5 значений, а когда dbf создается получается 4 т.е. было 05507 при создании получается 5507.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994074
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тоже самое с полями npolis и code_mo
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994075
miv32
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Тебе же написали, какие функции использовать: adir() и chdir
Или надо еще учить работать с массивами?

http://www.foxclub.ru/rhproject/project/html/6dcddc3f-9944-4ad8-be2f-003610af616a.htm

Подробнейший Help.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994087
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991IgorNG, вы не поняли скорее всего. в программе человек выбирает из первого комбо месяц из второго год и на основании этого выбора программа должна найти папку такую же. выбрали допустим Январь 2012 программа ищет в h:\strafs папку 201201 и там ищет файл T05M501201050130.xml и с ним работает. В названии файла xml зашифрован месяц и год T05M501201050130.xml

сfolder = this.combo.value не или что у тебя в комбобоксе будет преобразовать к виду "201201"
cfile = "h:\strafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 2) + "050130.xml"
IF FILE(cfile)
...
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994119
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
miv32, сделал чтобы при выборе месяца и года в программе в переменную shifr записывался результат сложения значений год+месяц т.к. надо искать такую папку получилось допустим 201209. такая папка есть в h:\strafs. Теперь шаблон функции ADIR такой

ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]])

название массива понятно, что писать в атрибуте файла и fileskeleton непонятно. т.к. мне надо теперь найти папку название которой равно значению переменной shifr и в этой папке найти xml файл в названии которого зашифрован год и месяц T05M501209050130. Вот что я не догоняю
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994125
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторсfolder = this.combo.value не или что у тебя в комбобоксе будет преобразовать к виду "201201"
cfile = "h:\strafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 2) + "050130.xml"
IF FILE(cfile)
...

этот код позволяет делать следующее? если пользователь выбрал месяц и число в комбобоксах искать такую же папку в h:\strafs и в этой найденной папке искать файл xml в названии которого зашифрован выбранный месяц и год? Если да то после этого кода возможно ли использовать переменную cfile в том коде который вы ранее писали для создания dbf, если точнее в xmltocursor?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994163
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
тут пишет cfile = "h:\strafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 2) + "050130.xml" variable cfolder not found. до этого из двух комбобоксов делаю cfolder при выборе месяца такой код mecyac=combo.value при выборе года такой god=combo2.value cfolder=god+mecyac
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994201
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991тут пишет cfile = "h:\strafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 2) + "050130.xml" variable cfolder not found. до этого из двух комбобоксов делаю cfolder при выборе месяца такой код mecyac=combo.value при выборе года такой god=combo2.value cfolder=god+mecyac

ну и выведи после этого
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994204
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
[quot IgorNG]Дима1991тут пишет cfile = "h:\strafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 2) + "050130.xml" variable cfolder not found. до этого из двух комбобоксов делаю cfolder при выборе месяца такой код mecyac=combo.value при выборе года такой god=combo2.value cfolder=god+mecyac

ну и выведи после этого MESSAGEBOX(cfolder)
и посмотри что ты наваял
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994480
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, в комбо1 выбираю 09 это месяц а в комбо2 выбираю год 2012 в cfolder записывается 201209. вроде как правильно.
а как теперь в этом коде применить cfile и cfolder

авторCREATE cursor pacient_strah ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50), ;
smo_tmp C(5))



XMLTOCURSOR("h:\shtrafs\T05M501209050130.xml", "pacient_strah", 512)
COPY TO "h:\shtrafs\pacient_strah"

если написать вместо pacient_strah cfile он создаст таблицу и названием cfile а мне надо чтобы таблица называлась также как и xml файл
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994496
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
пишу так:
авторcfile = "c:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 2) + "050130.xml"
IF FILE(cfile)

CREATE cursor pacient_strah ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50), ;
smo_tmp C(5))

XMLTOCURSOR("c:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 2) + "050130.xml", "pacient_strah", 512)
COPY TO "c:\shtrafs\cfolder\pacient_strah"


ничего нигде не создается.. как мне записать тут пути правильно чтобы создался dbf с таким же названием и в папке c\strafs\cfolder сfolder это сформированный в программе
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994500
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и так пишу все равно ничего

XMLTOCURSOR(cfile, "pacient_strah", 512)
COPY TO "c:\shtrafs\"+cfolder+"\pacient_strah"
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994523
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
нашел в чем проблема надо 4 символа выделять в substr а не 2. создается. протестирую сейчас
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994526
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
осталось только вместо жесткого указанного имени pacient_strah создавать динамически такое имя как и у xml
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994528
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
разобрался
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994532
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
подскажите единственное. я же делаю выборку из созданной таблицы как мне в запросе указывать постоянно меняющуюся таблицу. может в переменную можно воткнуть название таблицы и в селекте вместо таблицы писать переменную?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994540
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

Естественно, можно...

Код: sql
1.
2.
3.
4.
5.
6.
7.
lcFileNamePacient = "pacient_strah" && здесь можно указать то имя, какое надо

COPY TO "c:\shtrafs\"+cfolder+"\"+lcFileNamePacient

select * from (lcFileNamePacient)
* или
select * from ("c:\shtrafs\"+cfolder+"\"+lcFileNamePacient)
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994545
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, а просто в скобки взять что ли :) буду знать
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994569
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще такой вопрос: в xml файле поля smo и npolis имеют значения 05701 и 000016757 соответственно. Это конечно же один из примеров. в коде который мне тут писали написано так smo C(5) т.е. что поле smo символьное длиною 5 символов. но при создании dbf передние нули отбрасываются в обеих полях. как сделать чтобы нули не отбрасывались
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994632
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,

1) "Просто в скобки взять" возможно не везде. Иногда приходится использовать макроподстановку. В любом случае, "взять в скобки" в терминах FoxPro называется "выражение имени". Так что вдумчивое изучение хелп'а поможет понять, где что можно делать. Впрочем, в большинстве случаев (естественно, в качестве замены параметров команд - символьными переменными) достаточно использовать выражения имени, и только потом - макроподстановку через &
2) Судя по всему, в XML- схеме эти поля отнюдь не символьные. С другой стороны, можно сделать проще - мы знаем, что поля должны содержать 5 (или 9) символов-цифр, и при этом после импорта обрезаются только лидирующие нули... ну так после импорта сделаем update (или replace) с выравниванием по правому краю:
Код: sql
1.
2.
3.
4.
replace all ;
 smo with right(replicate('0',5)+rtrim(smo),5), ;
 npolis with right(replicate('0',9)+rtrim(npolis),9) ;
 in pacient_strah
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994662
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, у меня таблица каждый раз создается с разными именами в соответствии с выбранным месяцем и годом. я пишу так но ошибка выдается. пробовал занести название таблицы в переменную и ее использовать тоже ошибка. или просит указать путь к таблице. в in так как я пишу нельзя писать?

replace all ;
smo with right(replicate('0',5)+rtrim(smo),5), ;
npolis with right(replicate('0',9)+rtrim(npolis),9) ;
in ("c:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 4) + "050130")
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994740
Фотография AndreTM
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хм-м-м... (глубокомысленно перебирает ссылки на посты A&K89 и обнаруживает, что нечитательство даже хелпа - общая беда всех нынешних студентов).

Если бы Вы удосужились прочесть:
Синтаксис REPLACE
...
[IN nWorkArea | cTableAlias]
...
[IN nWorkArea]
Указывает рабочую область таблицы в которой обновляются записи.
[IN cTableAlias]
Указывает алиас таблицы в которой обновляются записи.

Если nWorkArea и cTableAlias опущены, обновляется таблица в текущей активной области.то поняли бы, что:
1) Таблица с нужным вам именем должна быть уже открыта. Поскольку никакого вашего предыдущего кода не видать, телепатически предположу, что это вообще вышепредложенный вам курсор.
2) IN <Name> означает именно имя. Алиаса, если имя - символьное. Так что любые пути - побоку. И кто вам запрещал проверить вариант
Код: sql
1.
2.
3.
replace all ;
...
 in ("050130")

?
И, естественно, вместо явной символьной строки - в выражении имени может просто быть любая переменная памяти или выражение, возвращающее приводимую к символьной строку...
Впрочем, ваше желание использовать чисто числовое имя для таблицы - может привести к неоднозначности. Тогда - кто вам запрещает использовать replace сразу после импорта, пока таблица открыта в текущей рабочей области - и, естественно, никакого IN вообще в команде не требуется...
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994819
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
AndreTM, вот у меня тут создается курсор и данные копируются в таблицу

авторCREATE table ("T05M50 + SUBSTR(cfolder, 3, 4) + 050130") ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50), ;
smo_tmp C(5))

XMLTOCURSOR(cfile, "T05M50" + SUBSTR(cfolder, 3, 4) + "050130", 512)

COPY TO "c:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 4) + "050130"

replace all ;
smo with right(replicate('0',5)+rtrim(smo),5), ;
npolis with right(replicate('0',9)+rtrim(npolis),9) ;
in ("T05M50" + SUBSTR(cfolder, 3, 4) + "050130")


если в in написать "050130" пишет такой алиас не найдет. если писать так как я написал пишет аргумент functiom argment value type
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994940
IgorNG
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991AndreTM, вот у меня тут создается курсор и данные копируются в таблицу

авторCREATE table ("T05M50 + SUBSTR(cfolder, 3, 4) + 050130") ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50), ;
smo_tmp C(5))

XMLTOCURSOR(cfile, "T05M50" + SUBSTR(cfolder, 3, 4) + "050130", 512)

COPY TO "c:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 4) + "050130"

replace all ;
smo with right(replicate('0',5)+rtrim(smo),5), ;
npolis with right(replicate('0',9)+rtrim(npolis),9) ;
in ("T05M50" + SUBSTR(cfolder, 3, 4) + "050130")


если в in написать "050130" пишет такой алиас не найдет. если писать так как я написал пишет аргумент functiom argment value type

А что, не судьба вот это
"T05M50 + SUBSTR(cfolder, 3, 4) + 050130"
в переменную загнать?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37994958
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
IgorNG, загонял ведь. писал tablica="T05M50 + SUBSTR(cfolder, 3, 4) + 050130" алиас tablica не найдет пишет
когда использую его в replace
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995103
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991писал tablica="T05M50 + SUBSTR(cfolder, 3, 4) + 050130" алиас tablica не найдет пишетЛогично. Вы присвоили строковой переменной "tablica" значение "T05M50" + SUBSTR(cfolder, 3, 4) + "050130". Никаких таблиц с алиасом "tablica" не открывали и не создавали. Очевидно, что такой алиас будет отсутствовать.
И, кстати, лучше все операции (replace и т.п.) сразу над курсором проделать, а уж потом сохранять его (copy to ...)
Дима1991пишет аргумент functiom argment value typeЧто-то не припомню я такого. Вы в курсе, что при появлении сообщения об ошибке можно нажать Ctrl-C, в результате чего текст сообщения скопируется в буфер обмена? А потом это сообщение можно вставить (Ctrl-V) на форум в "родном" виде, а не переписывать с грамматическими ошибками...
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995140
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, в курсе.

вот мой код: приведу весь код чтобы было понятно что у меня там

авторcfolder=god+mes
cfile = "h:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 4) + "050130.xml"

IF FILE(cfile)
&&CREATE cursor pacient_strah ( ;
CREATE cursor T05M50 + SUBSTR(cfolder, 3, 4) + 050130 ( ;
id I, ;
id_sch I, ;
vpolis I, ;
spolis C(3), ;
npolis C(9), ;
fam C(30), ;
im C(30), ;
ot C(30), ;
dr d, ;
w I,;
smo C(5), ;
stat I, ;
name_error C(30), ;
kol_strax I, ;
kol_uslugi N(5,2), ;
kol_kd N(5,2), ;
sumv N(10, 2), ;
code_mo C(6), ;
name_mo C(50), ;
smo_tmp C(5))

XMLTOCURSOR(cfile, "T05M50" + SUBSTR(cfolder, 3, 4) + "050130", 512)
COPY TO "h:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 4) + "050130"

tablica="T05M50 + SUBSTR(cfolder, 3, 4) + 050130"
SELECT tablica
replace all ;
smo with right(replicate('0',5)+rtrim(smo),5), ;
npolis with right(replicate('0',9)+rtrim(npolis),9) ;
in tablica

выдает ошибку авторAlias 'TABLICA' is not found.. что мне дописать и где что-то не разберусь
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995151
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
cfolder=god+mes
cfile = "h:\shtrafs\" + cfolder + "\T05M50" + SUBSTR(cfolder, 3, 4) + "050130.xml"

IF FILE(cfile)
	CREATE cursor tempcursor ( ;
	id I, ;
	id_sch I, ;
	vpolis I, ;
	spolis C(3), ;
	npolis C(9), ;
	fam C(30), ;
	im C(30), ;
	ot C(30), ;
	dr d, ;
	w I,;
	smo C(5), ;
	stat I, ;
	name_error C(30), ;
	kol_strax I, ;
	kol_uslugi N(5,2), ;
	kol_kd N(5,2), ;
	sumv N(10, 2), ;
	code_mo C(6), ;
	name_mo C(50), ;
	smo_tmp C(5)) 
		
	XMLTOCURSOR(cfile, "tempcursor", 512)

       SELECT tempcursor
	replace all ;
        smo with right(replicate('0',5)+rtrim(smo),5), ;
       npolis with right(replicate('0',9)+rtrim(npolis),9)

	COPY TO (forceext(cfile,'dbf'))


ЗЫ. Хотя пока писал, подумал, что в вашем коде достаточно было бы, наверное, поменять
Код: sql
1.
SELECT tablica

на
Код: sql
1.
SELECT (tablica)
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995169
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, вместо tempcursor мне ведь надо каждый раз получать таблицу с разными названиями. А в данном случае который вы пишите они tempcursor будет создавать. разве нет?
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995172
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
я делал и select(tablica) в таком случае пишет авторAlias 'T05M50 + SUBSTR(CFOLDER, 3, 4) + 050130' is not found.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995190
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
проверил ваш способ тоже ошибка Function argument value, type, or count is invalid. где Replace all
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995205
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991они tempcursor будет создавать. разве нетнет, RTFM по COPY TO, в конце-то концов...
Дима1991Function argument value, type, or count is invalid. где Replace allскорее всего одно из полей smo или npolis (или даже оба) получились не строковыми, а числовыми. Ну тогда используйте не rtrim(smo), а rtrim(str(smo)).
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995223
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, оба поля при создании таблицы получаются типа numeric проверял без обновления курсора. а когда пишу rtrim(str(smo)) и rtrim(str(npolis)) автор Data type mismatch.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995254
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991,
Код: sql
1.
XMLTOCURSOR(cfile, "tempcursor", 512+8192)

,всё работает.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995266
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, заработало. Если не трудно объясните мне следующие вещи я в хелпе что-то не нашел.

расскажите про команду xmltocursor и forceext. Как они работают? коды 512 и 8192 что значат. или скиньте ссылку на инфо про это
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995293
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Уф надоело уже. после всех этих операций эти два поля нормально стали отображаться а поле дата пустое теперь при создании dbf
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995311
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
из-за +8192 поле дата оказывается пустым.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995326
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
указал при создании курсора вместо "dr d" "dr t". показывает теперь
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995334
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
А оказывается можно было просто указать DR T и работает без обновления таблицы или курсора. Таблица заполняется так как и должна
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995350
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991расскажите про команду xmltocursor и forceext. Как они работают?У вас забанен хелп/гугл?
xmltocursor - http://msdn.microsoft.com/en-us/library/t2s4axst(v=vs.80).aspx
forceext - http://msdn.microsoft.com/en-us/library/y01ca1hs(v=vs.80).aspx

Для интереса посмотрел, http://translate.google.com выдаёт вполне себе читабельный перевод этих страниц. Не без ляпов, но понять можно.
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995391
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, спасибо. функция iif() подходит для того чтобы в отчете выводить другое значение вместо имеющегося значения в символьном поле?
хочу в отчете вывести вместо 05501 Слово МАКС, а вместо 05701 слово другое
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995398
tanglir
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима1991функция iif() подходит для того чтобы в отчете выводить другое значение вместо имеющегося значения в символьном поле?Да. Хотя если значений много, возможно, лучше подойдёт Icase()
...
Рейтинг: 0 / 0
Преобразовать XML в DBF
    #37995423
Дима1991
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tanglir, спасибо. сделал
...
Рейтинг: 0 / 0
90 сообщений из 90, показаны все 4 страниц
Форумы / FoxPro, Visual FoxPro [игнор отключен] [закрыт для гостей] / Преобразовать XML в DBF
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]