|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
как преобразовать XML файл в DBF чтобы была в виде таблицы? Первый раз сталкиваюсь с этим. напишите пример пожалуйста, надо срочно сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 09:04 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
каждый такой кусок это типа одна запись с полями автор<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> ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 09:05 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
сконвертировал в xls а в dbf теперь как преобразовать из xls? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 09:58 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Если есть эксель - открыть, сохранить как dbf. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:03 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, XMLTOCURSOR(eExpression | cXMLFile [, cCursorName [, nFlags ]]) Преобразует XML текст в курсор или таблицу Visual FoxPro. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:03 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, напиши пожалуйста пример, а не шаблон, просто срочно нужно это сделать ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:08 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
чтобы например на диск С сохранить в виде dbf ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:09 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима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) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:29 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, а почему таблица пустая получилась? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:33 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, у вас какие-то затруднения с применением функции "xmltocursor" и команды "copy to "? В первой разве что до nFlags=512 не сразу можно догадаться, а во второй вообще ничего замудрённого нет ... Дима1991просто срочно нужно это сделатьТогда вам сюда . Или даже сразу сюда . ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:33 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991а почему таблица пустая получиласьпотому что надо ещё insert написать. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:34 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, где именно писать? я выполнил вышеуказанную команду таблица пустая создается ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:35 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
В вашей xml есть теги sluch и usl? Если есть, то имеется самописный готовый конвертер - можете допилить под себя. Писалось как раз для конвертирования мед.услуг из "федерального" формата в родные дбфки ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:43 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, путь укажи к xml ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:43 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
>где именно писать? /*обречённо*/ в программе, где же ещё... ну или в командном окне... >я выполнил вышеуказанную команду таблица пустая создается Вообще-то там две команды. И ещё третья нужна. Какая именно - я написал. Если неохота во всё это вникать - см. 13294096 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:44 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Хотя беру свои слова про третью команду назад, имена курсоров ведь совпадают. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:45 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, я понял что в программе. Первый раз приходится конвертировать xml в dbf и надо срочно сделать. Товарищ написал код, но таблица пустая. напишите допишите в этом коде где надо insert потом буду сидеть и разбираться что как сейчас быстро надо сделать просто ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:49 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, Не надо никаких insertов! XMLTOCURSOR("C:\T05M501209050130.xml", "pacient_strah", 512) или где он у тебя там находится ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:55 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, нее я так делал, все равно пустая таблица ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 10:57 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Кстати да, и впрямь пустая. Значит, надо xmltocursor-ом выгрузить данные в другой курсор, после чего insert-нуть их в созданную таблицу. А можно вообще ничего заранее не создавать: Код: sql 1. 2. 3.
, и всё. Правда, размерность полей может пострадать. А впрочем, если нужно "дёшево и сердито", то этот вариант - самое оно. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 11:03 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, мне не нужно чтобы размерность была нарушена. Сейчас попробую ваш вариант ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 11:05 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
написал так: все равно пустая таблица. Может я не так пишу? автор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 ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 11:07 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Всем спасибо, сделал вот так: автор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" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 11:23 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
А как теперь из этих записей сформировать отчеты на каждое значение из поля Name_mo т.е. Name_mo это название отдела. Надо сформировать отчет на каждый отдел сгруппировав в каждом отчете записи по полю Name_error т.е. группировать по виду ошибки :) ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 11:26 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
вот созданная таблица мною через вышеуказанный код ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 11:29 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
можно ли сначала вывести в курсор нужные записи сгруппировав, а потом из курсора сформировать отчет? Если да то как? ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 12:17 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима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" ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 13:42 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991можно ли сначала вывести в курсор нужные записи сгруппировав, а потом из курсора сформировать отчет? Если да то как? SELECTом ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 13:44 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, убрал точку с запятой. и без этого ошибки не было. но все же убрал на всякий случай ... |
|||
:
Нравится:
Не нравится:
|
|||
10.10.2012, 14:08 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Почему у меня если вместо этого файла использовать другой файл с таким же названием и с такими же полями. в таблице создаются дополнительные поля типа Fam_Polis и отчет создается и сразу закрывается? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 10:12 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991Почему у меня если вместо этого файла использовать другой файл с таким же названием и с такими же полями. в таблице создаются дополнительные поля типа Fam_Polis и отчет создается и сразу закрывается? Потому что ты там крутил-вертел - то ли в таблицу xml, то ли в курсор. Если в таблице нет такого поля, то они создаваться не должны. Разбирайся в своем коде. Как говорится, что наваял, то и получил. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 10:21 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, файлы идентичные и поля совпадают и название файла. с одним файлом работает все если другой использую идентичный только данные разные то не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 10:27 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991IgorNG, файлы идентичные и поля совпадают и название файла. с одним файлом работает все если другой использую идентичный только данные разные то не работает Чудес не бывает. Выкладывай идентичный файл ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 10:28 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, обе файла выложил. если работать с T05M501209050130.xml работает, а если 1T05M501209050130.xml переименовать в T05M501209050130 и с ним работать то уже не работает ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 10:31 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
и тишинааа... (( ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 11:27 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, Если у тебя в запросе тупо стоит name_mo='Республиканский ДЦ (диагностика)', то курсор у тебя пустой, потому что в xml нет такого названия. Так что твои крики о том, что с этим xml работает, а с переименованным не работает, не обоснованы. У меня, например, такие воцклицания ассоциируются больше с юзерами, чем с программистами. Ты сам должен проверять работу своего творения. Перед выводом в отчет поставь элементарное browse и увидишь, что у тебя в курсоре. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 11:32 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, Да, точно. Как-то я сам не додумался оказывается в поле name_mo в этих файлах по разному указана информация об отделе диагностика. просто условие еще добавить надо учитывающее второй вариант. Благодарю ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 11:37 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
извиняюсь за глупый вопрос. напомните пожалуйста если надо найти такое значение ООО "Диагностический центр" Диагностика как нужно было писать в условии where ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 11:45 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
а не не нужно ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 11:46 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
а можно ли сделать так: вот на диске h:\strafs есть папки типа "201209" т.е. 2012 год 09 месяц. в таких папках будут располагаться xml файлы с названиями T05M501209050130 в котором 1209 означает год и месяц. на форме есть комбобоксы в одном месяца в другом года. Как сделать чтобы при выборе месяца и года программа искала в папке h:\strafs такую же папку название которой соответствует выбранным параметрам в комбобоксах. т.е. человек на форме выбрал из двух комбобоксов месяц октябрь и год 2012 программа в h:\strafs нашла папку 201210 и работала с тамошним xml файлом у которого название будет T05M501210050130.xml Названия xml файлов в каждой папке будут разные например в папке 201211 такой T05M501211050130.xml ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 12:56 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, adir() и chdir в помощь. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 13:09 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, прочитал я про эти команды, но не понял как использовать их в своей программе чтобы делать так как мне надо ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 13:36 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
никто не в силах помочь? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 14:43 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, Советом здесь всегда помогут. А вот писать за кого-то - вряд ли. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 15:18 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, писать я не говорю.. просто напишите как сделать то что мне нужно словами и какие функции можно использовать. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:01 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, ADIR() - в массив загоняешь список файлов из нужной папки. В массиве выбираешь нужный xml, который соответствует данным (месяцЮ год), выбранным в combobox. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:13 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, вы не поняли скорее всего. в программе человек выбирает из первого комбо месяц из второго год и на основании этого выбора программа должна найти папку такую же. выбрали допустим Январь 2012 программа ищет в h:\strafs папку 201201 и там ищет файл T05M501201050130.xml и с ним работает. В названии файла xml зашифрован месяц и год T05M501201050130.xml ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:18 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
и еще вы мне писали для создания dbf из xml код там была такая строка smo C(5), ; в xml в поле smo 5 значений, а когда dbf создается получается 4 т.е. было 05507 при создании получается 5507. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:25 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
тоже самое с полями npolis и code_mo ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:27 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Тебе же написали, какие функции использовать: adir() и chdir Или надо еще учить работать с массивами? http://www.foxclub.ru/rhproject/project/html/6dcddc3f-9944-4ad8-be2f-003610af616a.htm Подробнейший Help. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:28 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима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) ... ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:32 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
miv32, сделал чтобы при выборе месяца и года в программе в переменную shifr записывался результат сложения значений год+месяц т.к. надо искать такую папку получилось допустим 201209. такая папка есть в h:\strafs. Теперь шаблон функции ADIR такой ADIR(ArrayName [, cFileSkeleton [, cAttribute [, nFlag]]]) название массива понятно, что писать в атрибуте файла и fileskeleton непонятно. т.к. мне надо теперь найти папку название которой равно значению переменной shifr и в этой папке найти xml файл в названии которого зашифрован год и месяц T05M501209050130. Вот что я не догоняю ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:50 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
авторс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? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 16:55 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
тут пишет 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 ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 17:11 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима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 ну и выведи после этого ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 17:28 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
[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) и посмотри что ты наваял ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 17:29 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
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 файл ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 20:22 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
пишу так: автор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 это сформированный в программе ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 20:34 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
и так пишу все равно ничего XMLTOCURSOR(cfile, "pacient_strah", 512) COPY TO "c:\shtrafs\"+cfolder+"\pacient_strah" ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 20:40 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
нашел в чем проблема надо 4 символа выделять в substr а не 2. создается. протестирую сейчас ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 20:55 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
осталось только вместо жесткого указанного имени pacient_strah создавать динамически такое имя как и у xml ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 20:57 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
разобрался ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 21:00 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
подскажите единственное. я же делаю выборку из созданной таблицы как мне в запросе указывать постоянно меняющуюся таблицу. может в переменную можно воткнуть название таблицы и в селекте вместо таблицы писать переменную? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 21:05 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, Естественно, можно... Код: sql 1. 2. 3. 4. 5. 6. 7.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 21:18 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
AndreTM, а просто в скобки взять что ли :) буду знать ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 21:23 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
еще такой вопрос: в xml файле поля smo и npolis имеют значения 05701 и 000016757 соответственно. Это конечно же один из примеров. в коде который мне тут писали написано так smo C(5) т.е. что поле smo символьное длиною 5 символов. но при создании dbf передние нули отбрасываются в обеих полях. как сделать чтобы нули не отбрасывались ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 21:54 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, 1) "Просто в скобки взять" возможно не везде. Иногда приходится использовать макроподстановку. В любом случае, "взять в скобки" в терминах FoxPro называется "выражение имени". Так что вдумчивое изучение хелп'а поможет понять, где что можно делать. Впрочем, в большинстве случаев (естественно, в качестве замены параметров команд - символьными переменными) достаточно использовать выражения имени, и только потом - макроподстановку через & 2) Судя по всему, в XML- схеме эти поля отнюдь не символьные. С другой стороны, можно сделать проще - мы знаем, что поля должны содержать 5 (или 9) символов-цифр, и при этом после импорта обрезаются только лидирующие нули... ну так после импорта сделаем update (или replace) с выравниванием по правому краю: Код: sql 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 23:02 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
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") ... |
|||
:
Нравится:
Не нравится:
|
|||
11.10.2012, 23:30 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Хм-м-м... (глубокомысленно перебирает ссылки на посты A&K89 и обнаруживает, что нечитательство даже хелпа - общая беда всех нынешних студентов). Если бы Вы удосужились прочесть: Синтаксис REPLACE ... [IN nWorkArea | cTableAlias] ... [IN nWorkArea] Указывает рабочую область таблицы в которой обновляются записи. [IN cTableAlias] Указывает алиас таблицы в которой обновляются записи. Если nWorkArea и cTableAlias опущены, обновляется таблица в текущей активной области.то поняли бы, что: 1) Таблица с нужным вам именем должна быть уже открыта. Поскольку никакого вашего предыдущего кода не видать, телепатически предположу, что это вообще вышепредложенный вам курсор. 2) IN <Name> означает именно имя. Алиаса, если имя - символьное. Так что любые пути - побоку. И кто вам запрещал проверить вариант Код: sql 1. 2. 3.
? И, естественно, вместо явной символьной строки - в выражении имени может просто быть любая переменная памяти или выражение, возвращающее приводимую к символьной строку... Впрочем, ваше желание использовать чисто числовое имя для таблицы - может привести к неоднозначности. Тогда - кто вам запрещает использовать replace сразу после импорта, пока таблица открыта в текущей рабочей области - и, естественно, никакого IN вообще в команде не требуется... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 01:00 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
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 ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 06:45 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима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" в переменную загнать? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 09:36 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
IgorNG, загонял ведь. писал tablica="T05M50 + SUBSTR(cfolder, 3, 4) + 050130" алиас tablica не найдет пишет когда использую его в replace ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 09:46 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима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) на форум в "родном" виде, а не переписывать с грамматическими ошибками... ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 10:45 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
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.. что мне дописать и где что-то не разберусь ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:00 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Код: 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.
ЗЫ. Хотя пока писал, подумал, что в вашем коде достаточно было бы, наверное, поменять Код: sql 1.
на Код: sql 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:06 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, вместо tempcursor мне ведь надо каждый раз получать таблицу с разными названиями. А в данном случае который вы пишите они tempcursor будет создавать. разве нет? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:10 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
я делал и select(tablica) в таком случае пишет авторAlias 'T05M50 + SUBSTR(CFOLDER, 3, 4) + 050130' is not found. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:11 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
проверил ваш способ тоже ошибка Function argument value, type, or count is invalid. где Replace all ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:17 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991они tempcursor будет создавать. разве нетнет, RTFM по COPY TO, в конце-то концов... Дима1991Function argument value, type, or count is invalid. где Replace allскорее всего одно из полей smo или npolis (или даже оба) получились не строковыми, а числовыми. Ну тогда используйте не rtrim(smo), а rtrim(str(smo)). ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:23 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, оба поля при создании таблицы получаются типа numeric проверял без обновления курсора. а когда пишу rtrim(str(smo)) и rtrim(str(npolis)) автор Data type mismatch. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:30 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991, Код: sql 1.
,всё работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:42 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, заработало. Если не трудно объясните мне следующие вещи я в хелпе что-то не нашел. расскажите про команду xmltocursor и forceext. Как они работают? коды 512 и 8192 что значат. или скиньте ссылку на инфо про это ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:48 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Уф надоело уже. после всех этих операций эти два поля нормально стали отображаться а поле дата пустое теперь при создании dbf ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:53 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
из-за +8192 поле дата оказывается пустым. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 11:59 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
указал при создании курсора вместо "dr d" "dr t". показывает теперь ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 12:05 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
А оказывается можно было просто указать DR T и работает без обновления таблицы или курсора. Таблица заполняется так как и должна ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 12:09 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима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 выдаёт вполне себе читабельный перевод этих страниц. Не без ляпов, но понять можно. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 12:15 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
tanglir, спасибо. функция iif() подходит для того чтобы в отчете выводить другое значение вместо имеющегося значения в символьном поле? хочу в отчете вывести вместо 05501 Слово МАКС, а вместо 05701 слово другое ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 12:35 |
|
Преобразовать XML в DBF
|
|||
---|---|---|---|
#18+
Дима1991функция iif() подходит для того чтобы в отчете выводить другое значение вместо имеющегося значения в символьном поле?Да. Хотя если значений много, возможно, лучше подойдёт Icase() ... |
|||
:
Нравится:
Не нравится:
|
|||
12.10.2012, 12:39 |
|
|
start [/forum/topic.php?all=1&fid=41&tid=1583397]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
44ms |
get topic data: |
10ms |
get forum data: |
3ms |
get page messages: |
93ms |
get tp. blocked users: |
1ms |
others: | 265ms |
total: | 446ms |
0 / 0 |