Search  
Thursday, May 24, 2012 ..:: Forum ::.. Register  Login
 Forum Minimize
Pentru a putea posta mesaje trebuie să vă înregistraţi.
Notă: Mesajele cu conţinut jignitor sau ilegal (inclusiv cereri de soft piratat) nu sunt acceptate şi vor fi şterse imediat .

Pentru a primi raspunsuri rapide si corecte, scrieti in mesaj ce intentionati sa faceti, ce mesaj de eroare primiti, in ce context si in urma caror actiuni. De asemenea, mentionati versiunea de FoxPro in care lucrati!
Dacă nu specificați versiunea, se consideră VFP 9.0 SP2.

SearchForum Home
  FoxPro  FoxPro 2.x DOS  EXPORT FISIER D...
 EXPORT FISIER DBF IN FORMAT XML
 
 12/28/2007 6:39:11 PM
User is offlineionion
9 posts


EXPORT FISIER DBF IN FORMAT XML
 (N/A)
Cum se pot transmite datele dintr-un fisier DBF intr-un fisier XML?
 Multumesc.
 12/29/2007 3:02:35 AM
User is offlineDumitru
172 posts
5th


Re: EXPORT FISIER DBF IN FORMAT XML
 (N/A) Modified By Dumitru  on 12/29/2007 4:06:41 AM)
Procedura copiaza fisierul m.fisS (dbf) in fisierul m.fisD (xml) :

PROCEDURE GenXML
PARAMETERS m.FisS, m.FisD
PRIVATE ALL
IF USED('sursa')
    USE IN sursa
ENDIF
SELECT 0
USE (m.FisS) ALIAS Sursa
m.NrF =FCREATE(m.FisD)
IF m.NrF<0
    WAIT WINDOW "Nu pot sa creez fisierul "+m.FisD
    CLOSE DATABASES
    RETURN TO MASTER
ENDIF
=FPUTS(m.NrF,'<?xml version="1.0" ?>')
=FPUTS(m.NrF,'<file>')
SELECT Sursa
m.NrC =  AFIELDS(ArrC)
GO TOP
SCAN
    =FPUTS(m.NrF,'  <record>')
    FOR i=1 TO m.NrC
        m.Camp = LOWER(ALLTRIM(ArrC[i,1]))
        m.evCamp = "Sursa."+ m.Camp
        RELEASE vCamp
        m.vCamp = EVALUATE(m.evCamp)
        m.wCamp = ''
        DO CASE
            CASE ArrC[i,2] = 'C'
                m.wCamp = ALLTRIM(m.vCamp)
            CASE ArrC[i,2] = 'N'
                IF ArrC[i,4]>0
                    m.wCamp = ALLTRIM(STR(m.vCamp,Arrc[i,3],ArrC[i,4]))
                ELSE
                    m.wCamp = ALLTRIM(STR(m.vCamp,Arrc[i,3]))
                ENDIF
            CASE ArrC[i,2] = 'D'
                m.wCamp = DTOC(m.vCamp)
            OTHERWISE
                WAIT WINDOW 'Fisierul contine campul "'+ m.Camp + '" de tip "' + Arrc[i,2]+ '" neimplementat. Ne oprim !'
                CLOSE DATABASES
                RETURN TO MASTER
        ENDCASE
        m.wCamp =  STRTRAN(ALLTRIM(m.wCamp),'&',' ')
        m.wCamp =  STRTRAN(ALLTRIM(m.wCamp),'\','|')
        =FPUTS(m.NrF,'     <'+ m.Camp+'>'+ m.wCamp+'</'+ m.Camp+'>')
    ENDFOR
    =FPUTS(m.NrF,'  </record>')
ENDSCAN
=FPUTS(m.NrF,'</file>')
=FCLOSE(m.NrF)
IF USED('Sursa')
    USE IN Sursa
ENDIF
RETURN

Treaba este mai complexa daca trebuie tinut seama de XML Schema (XSD sau DTD), daca are si un "report" asociat (XSL).
Toate pot fi generate in modul de mai sus dar trebuie cunoscute foarte bine specificatiile W3C.
Sporuri

 1/9/2008 3:39:01 PM
User is offlineionion
9 posts


Re: EXPORT FISIER DBF IN FORMAT XML
 (N/A)
Va multumesc pentru ajutor. Procedura a mers.
 Dar invers, adica cum se pot importa datele dintr-un XML in DBF?
 Multumesc.

 1/9/2008 4:18:38 PM
User is offlineGrigore Dolghin
3590 posts
www.class-software.eu
1st






Re: EXPORT FISIER DBF IN FORMAT XML
 (Romania)

Daca stii structura XML-ului, cauti cu FREAD, pana gasesti inceputul tagului, apoi citesti pana la sfarsitul tagului, ce e intre ele e valoarea care trebuie scrisa in dbf....


Grigore Dolghin
Visual FoxPro MVP 2006 - 2010
Class Software
My blog
 10/8/2008 11:21:31 PM
User is offlineDumitru
172 posts
5th


Re: EXPORT FISIER DBF IN FORMAT XML
 (N/A)
Se poate face si automat, fara sa stii structura, parcurgand fisierul de doua ori. Prima data se stabileste structura si se creeaza tabela sau tabelele si a doua oara se populeaza cu date. Toate campurile rezultate vor fi de tip caracter, transformarea lor ulterioara in fox nu ridica nici o problema.

  FoxPro  FoxPro 2.x DOS  EXPORT FISIER D...

Search  Forum Home         

 Google Ads Minimize

    

Copyright 2002-2010 Profox   Terms Of Use  Privacy Statement