Форум программистов, компьютерный форум, киберфорум
Наши страницы
Visual FoxPro
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
danxiel
0 / 0 / 0
Регистрация: 22.07.2011
Сообщений: 8
1

Переход с одной строки на другую в DBF сканировании

04.09.2012, 13:43. Просмотров 1147. Ответов 1
Метки нет (Все метки)

Стоит задача из dbf файла сделать xml. Нашел программу похожую по выполняем функциям на то что мне надо, переделал под себя, возникла проблема что когда данные записываются в хмл фаил всегда записывается первая строчка из дбф. Например у меня в дбф файле 10 строчек, и получается хмл фаил в котором записана 10 раз первая строчка. Как сделать что бы он перескакивал на след строчку.
Ниже код приведен.
Код:
Код
CLEAR
CLEAR ALL

SET SAFETY OFF
SET DATE BRITISH
SET PROCEDURE TO all_proc.prg
Set SysMenu off

WITH _screen
	.Visible= .t.
	.Caption="конвертер DBF to XML"
ENDWITH
cod_smo=''
cod_lpu=''
date1=CTOD('')
n_schet=''
d_schet=CTOD('')

tbl=GETFILE('dbf')
USE &tbl ALIAS cur0 IN 0
SELECT RECNO() as idn, * FROM cur0 INTO CURSOR cur1

LOCAL x as msxml2.DOMDocument.6.0
LOCAL lev1 as MSXML2.IXMLDOMNodeList
LOCAL lev2 as MSXML2.IXMLDOMNodeList
LOCAL lev3 as MSXML2.IXMLDOMNodeList
x=CREATEOBJECT('msxml2.DOMDocument.6.0')
x.async = .F.
x.validateOnParse = .T.
x.preserveWhiteSpace=.T.
x.resolveExternals=.t.
x.Load("etalon_opop.xml")

lev1=x.childNodes(1)
newNode = x.createNode(1, "FILENAME", x.namespaces.namespaceURI(3))
lev1.appendChild(newNode)
lev1.lastChild.text = "*********"
newNode = x.createNode(1, "TYPE", x.namespaces.namespaceURI(3))
lev1.appendChild(newNode)
lev1.lastChild.text = "S*****"
newNode = x.createNode(1, "VERSION", x.namespaces.namespaceURI(3))
lev1.appendChild(newNode)
lev1.lastChild.text = "1.0"
newNode = x.createNode(1, "DATE", x.namespaces.namespaceURI(3))
lev1.appendChild(newNode)
lev1.lastChild.text = DtoODBC(DATE())

newNode = x.createNode(1, "PU", x.namespaces.namespaceURI(3))
lev1.appendChild(newNode)
	lev2 = lev1.lastChild 
	newNode = x.createNode(1, "ID", x.namespaces.namespaceURI(3))
	lev2.appendChild(newNode)
	lev2.lastChild.text = "******"
	newNode = x.createNode(1, "TEXT", x.namespaces.namespaceURI(3))
	lev2.appendChild(newNode)
	lev2.lastChild.text = "********"
	newNode = x.createNode(1, "OPERATOR", x.namespaces.namespaceURI(3))
	lev2.appendChild(newNode)
	lev2.lastChild.text = "*******"
	newNode = x.createNode(1, "PHONE", x.namespaces.namespaceURI(3))
	lev2.appendChild(newNode)
	lev2.lastChild.text = "******"
newNode = x.createNode(1, "COUNT", x.namespaces.namespaceURI(3))
lev1.appendChild(newNode)
lev1.lastChild.text = "1.0"
newNode = x.createNode(1, "REG_SERV", x.namespaces.namespaceURI(3))
lev1.appendChild(newNode)
	lev2 = lev1.lastChild 
	newNode = x.createNode(1, "REG_PER", x.namespaces.namespaceURI(3))
	lev2.appendChild(newNode)
	lev2.lastChild.text = ALLTRIM(STR(year(date1))) + ALLTRIM (STR(month(date1)))
jj=0
jjj=1
SELECT distinct fio, vozrast, sex, sub_fed, rayon, profil, ds, dat_postup, data_wipis, kol_dney, povtor_gos, n_ist_bol FROM cur1 INTO CURSOR cur_pat1
SELECT RECNO() as idn_patient, * FROM cur_pat1 INTO CURSOR cur_pat

SELECT COUNT(*) as x FROM cur_pat INTO CURSOR cur_cnt
SELECT cur_pat
SCAN
	jj=jj+1
	WAIT "Запись "+ALLTRIM(STR(jj))+" из "+ALLTRIM(STR(cur_cnt.x)) WINDOW NOWAIT
	newNode = x.createNode(1, "ZAP", x.namespaces.namespaceURI(3))
	lev1.appendChild(newNode)
		lev2 = lev1.lastChild 
		newNode = x.createNode(1, "MED_CARE", x.namespaces.namespaceURI(3))
		lev2.appendChild(newNode)
			lev3 = lev1.lastChild 
			newNode = x.createNode(1, "IST_BOL", x.namespaces.namespaceURI(3))
			lev3.appendChild(newNode)
			lev3.lastChild.text = ALLTRIM(cur_pat1.n_ist_bol)
			newNode = x.createNode(1, "FIO", x.namespaces.namespaceURI(3))
			lev3.appendChild(newNode)
			lev3.lastChild.text = ALLTRIM(cur_pat1.fio)
			newNode = x.createNode(1, "VOZRAST", x.namespaces.namespaceURI(3))
			lev3.appendChild(newNode)
			lev3.lastChild.text = ALLTRIM(cur_pat1.sex)
			newNode = x.createNode(1, "SEX", x.namespaces.namespaceURI(3))
			lev3.appendChild(newNode)
			lev3.lastChild.text = ALLTRIM(cur_pat1.sex)
			
ENDSCAN
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
04.09.2012, 13:43
Ответы с готовыми решениями:

Копирование данных из одной таблицы dbf в шаблон dbf
Есть источник файл med.dbf с данными, необходимо перенести часть данных в...

Форма логина и переход на другую форму
Нужно чтобы при логине смотрелось также значение поля typ и в зависимости от 1...

Перевод из одной БД в другую ...
http://keyout.ru Прямая ссылка: http://keyout.ru/distrib/dbexport.zip ...

Перенос данных из одной БД в другую
Здравствуйте. Задача, есть БД в mysql из нее выгрузил sql скрипт,все хорошо....

Перенос из одной таблицы в другую
Есть таблицы, из одной нужно перенести id в другую. но при этом во второй...

1
sks1904
184 / 178 / 28
Регистрация: 26.05.2011
Сообщений: 850
04.09.2012, 15:19 2
у вас скан идет по одной таблице (cur_pat), а запись берется из другой(cur_pat1)

Код
SELECT cur_pat
......
lev3.lastChild.text = ALLTRIM(cur_pat1.n_ist_bol)
......
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
04.09.2012, 15:19

помогите с переходом с одной формы на другую....
помогите с кодом кнопки чтобы перейти на другую форму и обратно.

Вставка записей из одной БД (именно БД) в другую
Hi! Такая задача есть 2 таблицы в БД (1.mdb 97) Есть абсолютно такая же...

Передать два параметра из одной формы в другую
Добрый вечер! Возможно, вопрос избитый, заранее извинюсь. Однако, сколько не...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru