PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WINDEV 2024 → Transfert de données de mysql vers sage compta 100
Transfert de données de mysql vers sage compta 100
Iniciado por myamore1, ago., 08 2005 6:35 PM - 3 respostas
Publicado em agosto, 08 2005 - 6:35 PM
Salut,
Je bosse sous Windev 8 avec comme base de données MYSQL.je me suis confronté ces temps ci a un probleme de changement de connexion.En effet je voudrais savoir comment recuperer des données de ma base Mysql et les transferer vers la base SAGE Compta sachant que je dispose des drivers odbc de SAGE.J'utilise les fonctions hconnecte pour etablir la connexion avec la base SAGE la connexion s'etablit mais pas de données transeferées sous la base SAGE.Que faire.

Aidez moi.
Publicado em agosto, 08 2005 - 7:24 PM
Bonjour,

De quelle manière as tu fait les transferts vers Sage ? As-tu des messages d'erreur ?

Fred
Publicado em agosto, 08 2005 - 10:25 PM
Salut ,
Voici mon code si cela peut vous aider et me permettre de trouver ensemble une solution.

REQ1,REQ2,REQ3,REQ4 sont des Sources de Données
numconnexion est un entier
cleparcours est une chaîne
ressql est un booléen
strsqld,strsqlc,strsqlctva,strsqlchtva sont des chaînes
montanttva,montanthtva,montantttc,montantregl,montantcaution sont des réels
soucheperi est une chaîne=DateVersChaine(DateDuJour(),"AAAA-MM")
souchepericomplet est une chaîne=DateVersChaine(DateDuJour(),"AAAA-MM-JJ")
souchepiece est une chaîne=DateVersChaine(DateDuJour(),"MMAA")
//pour les factures deja transferées on met leur etat a la valeur 4
//gestion des cas de selection
//strsqlctva="insert into f_ecriturec(jo_num,jm_date,ec_jour,ec_date,ec_piece,ec_intitule,cg_num,ec_montant,ec_sens) "
//strsqlctva+= "VALUES('JV','{d "+soucheperi+"01}' ,' "+val(droite(DateDuJour(),2))+"','{d " +souchepericomplet+"}','01"+souchepiece+" ',' Facturation Internet','44610000'," +montanttva+ " ' 1 ')"
//info(strsqlctva)
//retour
SI choix=1 ALORS
cleparcours=HFiltre(facture,facture.date_creation,ExtraitChaîne(SCSélectionPériode,1),ExtraitChaîne(SCSélectionPériode,2))
SI cleparcours<>"" ALORS
HLitPremier(facture,cleparcours)
TANTQUE PAS HEnDehors()
montantttc+=facture.montant_facture
montanthtva+=facture.montant_facture/(1+facture.tva/100)
// facture.etat_facture="4"
// HModifie(facture)
HLitSuivant(facture,cleparcours)
FIN
montanttva=montantttc-montanthtva
montanttva=Arrondi(montanttva,0)
montantttc=Arrondi(montantttc,0)
montanthtva=Arrondi(montanthtva,0)
FIN
HDésactiveFiltre(facture)
SINON SI choix=2 ALORS
cleparcours=HFiltre(reglement,reglement.date_operation,ExtraitChaîne(SCSélectionPériode,1),ExtraitChaîne(SCSélectionPériode,2))
SI cleparcours<>"" ALORS
HLitPremier(reglement,cleparcours)
TANTQUE PAS HEnDehors()
montantregl+=reglement.montant
HLitSuivant(reglement,cleparcours)
FIN
FIN
HDésactiveFiltre(reglement)

SINON SI choix=3 ALORS
cleparcours=HFiltre(caution,caution.date_paiement,ExtraitChaîne(SCSélectionPériode,1),ExtraitChaîne(SCSélectionPériode,2))
SI cleparcours<>"" ALORS
HLitPremier(caution,cleparcours)
TANTQUE PAS HEnDehors()
montantcaution+=caution.montant
HLitSuivant(caution,cleparcours)
FIN
FIN
HDésactiveFiltre(caution)
FIN

//connexion à SAGE SAARI COMPTA 100 VIA ODBC
//numconnexion=SQLConnecte("Logatel","<Administrateur>","dm73"," ","ODBC")
numconnexion = SQLConnecte("test", "", "", "", "ODBC")

SI numconnexion<>0 ALORS
Info("Connexion réussie")
//ec_sens 0 pour le debit et 1 pour le credit
//jm_date le jour est tjrs à 01 {d AAAA-MM-JJ}
//insert into f_jmouv(jo_num,jm_date,jm_cloture,jm_impression) values()
//insert into f_ecriturec(jo_num,ec_no,jm_date,ec_jour,ec_date,ec_piece,cg_num,ec_montant,ec_sens)
SI choix=1 ALORS
SQLChangeConnexion(numconnexion)
strsqlctva="insert into f_ecriturec(jo_num,jm_date,ec_jour,ec_date,ec_piece,ec_intitule,cg_num,ec_montant,ec_sens) "
strsqlctva+= "VALUES('JV','{d "+soucheperi+"01}' ,' "+Val(Droite(DateDuJour(),2))+"','{d " +souchepericomplet+"}','01"+souchepiece+" ',' Facturation Internet','44610000'," +montanttva+ ", ' 1 ')"
strsqlchtva="insert into f_ecriturec(jo_num,jm_date,ec_jour,ec_date,ec_piece,ec_intitule,cg_num,ec_montant,ec_sens) "
strsqlchtva+= "VALUES('JV','{d "+soucheperi+"01}' ,' "+Val(Droite(DateDuJour(),2))+"','{d " +souchepericomplet+"}','01"+souchepiece+" ',' Facturation Internet','72010000'," +montanthtva+ ", ' 1 ')"
strsqlc="insert into f_ecriturec(jo_num,jm_date,ec_jour,ec_date,ec_piece,ec_intitule,cg_num,ec_montant,ec_sens,ct_num) "
strsqlc+= "VALUES('JV','{d "+soucheperi+"01}' ,' "+Val(Droite(DateDuJour(),2))+"','{d " +souchepericomplet+"}','01"+souchepiece+" ',' Facturation Internet','41000000'," +montantttc+ ", ' 0 ','411CLINT')"
//SQLExec(strsqlctva,REQ1)
Info(strsqlc)
// SQLExec(strsqlchtva,REQ2)
// SQLExec(strsqlc,REQ3)
HExécuteRequêteSQL(REQ1,strsqlctva)
HExécuteRequêteSQL(REQ2,strsqlchtva)
HExécuteRequêteSQL(REQ3,strsqlc)
// SQLFerme(REQ1)
/// SQLFerme(REQ3)
// SQLFerme(REQ4)
Info("Fin")
FIN
SINON

Info("echec")

FIN

SQLDeconnecte()
Publicado em agosto, 10 2005 - 2:42 PM
Salut,

Désolé j'étais en clientèle hier je n'ai pas pu regarder et te répondre.

Plusieurs erreurs possibles :
- Utilise plutôt SQLExec au lieu de HExécuteRequêteSQL,
- si ton journal ne contient aucune écriture, il faut avant tout créer le F_JMOUV : il s'agit du fichier des journaux.
Code :
bRes=SQLExec("INSERT INTO F_JMOUV (JO_NUM, JM_DATE) VALUES ('VTE','2005-08-01')","SelCG")

SI PAS bRes ALORS
SQLInfoGene ("SelCG")
Info("Erreur SQL : " + SQL.MesErreur)
FIN
- ensuite chez Sage le format des dates est : 'AAAA-MM-JJ' donc pas de "{" ni de "d",
- vérifie le format de ta zone EC_PIECE : 13 car. max ALPAH NUM Majuscule donc A->Z et 0->9 et rien d'autre.

Ex de code fonctionnant (j'ai mis expres des valeurs en clair) :

bRes est un booléen

strsqlctva="insert into f_ecriturec(jo_num,jm_date,ec_jour,ec_date,ec_piece,ec_intitule,cg_num,ec_montant,ec_sens) "
strsqlctva+= "VALUES('VTE','2005-02-01',1,'2005-08-01','AAA','Intitulé','10100',1000,0)"

bRes=SQLExec(strsqlctva,"SelCG")

SI PAS bRes ALORS
SQLInfoGene ("SelCG")
Info("Erreur SQL : " + SQL.MesErreur)
FIN

En espérant t'avoir aidé,

Cordialement,

Fred