|
Iniciado por ldesmons, 18,ago. 2005 17:28 - 4 respuestas |
| |
| | | |
|
| |
Publicado el 18,agosto 2005 - 17:28 |
Bonjour, J'aimerais modifier par programmation le type d'une colonne dans une table sous Webdev. La finalité est de pouvoir exporter vers Excel n'importe quelle requête suivant le cheminement ci-dessous : - création d'une table mémoire vide avec 100 colonnes de type texte - HExécuteRequêteSQL(marequete,... pour générer la requête à afficher - HListeRubrique(marequete,hLstDétail) pour avoir le nom des rubriques et leur type - une boucle sur le nombre de champs pour mettre à jour les titres des colonnes --> ici une boucle sur le type des champs pour mettre à jour le type des colonnes serait souhaité mais c'est la que ca bloque... - FichierVersTableMémoire(Table,marequete) pour remplir la table - TableVersExcel(Table, fichierExcel) pour créer le fichier Excel - FichierAffiche(fichierExcel, "application/unknown", "export.xls" ) pour le renvoyer dans le navigateur de l'internaute
Tout fonctionne très bien en l'état mais ce problème de type de colonne est assez génant car sans cela, le fichier Excel généré ne contient que des types texte du coup: les dates ne sont pas belles, les numériques sont alignés a gauche, etc... Une solution? Merci d'avance
Le code complet ici:
strSQL est une chaîne rq_stat est une Source de Données
strSQL="select * from produit"
HExécuteRequêteSQL(rq_stat,"MaConnexion",hRequêteSansCorrection,strSQL)
//Remplissage des en-têtes de colonnes et type de rubrique nomChamps est une chaîne=HListeRubrique(rq_stat,hLstDétail) nb_champs est un entier=ChaîneOccurrence(nomChamps,RC)+1 chpencours est une chaîne
i est un entier POUR i=1 A nb_champs chpencours=ExtraitChaîne(nomChamps,i,RC) {"Table1.Colonne"+i}..Titre=ExtraitChaîne(chpencours,1,TAB) // Ligne qui bloque car type non dispo dans Webdev... //{"Table1.Colonne"+i}..Type=Val(ExtraitChaîne(chpencours,3,TAB)) FIN POUR i=nb_champs+1 A 100 {"Table1.Colonne"+i}..Visible=Faux FIN //Remplissage de la table FichierVersTableMémoire(Table1,rq_stat) sFic est une chaîne // On génère le nom du fichier nom_extract est une chaîne="extract_"+DateSys()+Gauche(HeureSys(),4) sFic=fRepWeb()+nom_extract+".xls" TableVersExcel(Table1, sFic) FichierAffiche(sFic, "application/unknown", nom_extract+".xls" ) |
| |
| |
| | | |
|
| | |
| |
Publicado el 18,agosto 2005 - 17:39 |
Après mure réflexion, Laurent a écrit :
Bonjour, J'aimerais modifier par programmation le type d'une colonne dans une table sous Webdev. La finalité est de pouvoir exporter vers Excel n'importe quelle requête suivant le cheminement ci-dessous : - création d'une table mémoire vide avec 100 colonnes de type texte - HExécuteRequêteSQL(marequete,... pour générer la requête à afficher - HListeRubrique(marequete,hLstDétail) pour avoir le nom des rubriques et leur type - une boucle sur le nombre de champs pour mettre à jour les titres des colonnes --> ici une boucle sur le type des champs pour mettre à jour le type des colonnes serait souhaité mais c'est la que ca bloque... - FichierVersTableMémoire(Table,marequete) pour remplir la table - TableVersExcel(Table, fichierExcel) pour créer le fichier Excel - FichierAffiche(fichierExcel, "application/unknown", "export.xls" ) pour le renvoyer dans le navigateur de l'internaute
Tout fonctionne très bien en l'état mais ce problème de type de colonne est assez génant car sans cela, le fichier Excel généré ne contient que des types texte du coup: les dates ne sont pas belles, les numériques sont alignés a gauche, etc... Une solution? Merci d'avance
Le code complet ici:
strSQL est une chaîne rq_stat est une Source de Données
strSQL="select * from produit"
HExécuteRequêteSQL(rq_stat,"MaConnexion",hRequêteSansCorrection,strSQL)
//Remplissage des en-têtes de colonnes et type de rubrique nomChamps est une chaîne=HListeRubrique(rq_stat,hLstDétail) nb_champs est un entier=ChaîneOccurrence(nomChamps,RC)+1 chpencours est une chaîne
i est un entier POUR i=1 A nb_champs chpencours=ExtraitChaîne(nomChamps,i,RC) {"Table1.Colonne"+i}..Titre=ExtraitChaîne(chpencours,1,TAB) // Ligne qui bloque car type non dispo dans Webdev... //{"Table1.Colonne"+i}..Type=Val(ExtraitChaîne(chpencours,3,TAB)) FIN POUR i=nb_champs+1 A 100 {"Table1.Colonne"+i}..Visible=Faux FIN //Remplissage de la table FichierVersTableMémoire(Table1,rq_stat) sFic est une chaîne // On génère le nom du fichier nom_extract est une chaîne="extract_"+DateSys()+Gauche(HeureSys(),4) sFic=fRepWeb()+nom_extract+".xls" TableVersExcel(Table1, sFic) FichierAffiche(sFic, "application/unknown", nom_extract+".xls" )
Pour faire plus simple et plus rapide: voir l'aide de ConstruitTableFichier qui devrait répondre à ton problème
-- Pascal N0.pascal.SPAM@efpe.biz Ne garder que le prénom pour me joindre |
| |
| |
| | | |
|
| | |
| |
Publicado el 18,agosto 2005 - 17:50 |
Désolé j'ai répondu trop vite, ça ne marche pas en WB :-?
-- Pascal N0.pascal.SPAM@efpe.biz Ne garder que le prénom pour me joindre |
| |
| |
| | | |
|
| | |
| |
Publicado el 18,agosto 2005 - 18:27 |
Merci quand même! Oui, ca aurait été exactement cela... Mais ca ne marche qu'en Windev... Peut etre que ce sera prochainement disponible sous Webdev mais en attendant, si quelqu'un à une idée... |
| |
| |
| | | |
|
| | |
| |
Publicado el 19,septiembre 2005 - 12:00 |
Je n'ai pas de solution à te proposer, mais je suis sur le même type de page (table basé sur une requete paramètré) et je me demande si ton changement de titre de colonne fonctionne bien, car j'ai voulu faire éxactement la même chose et ça ne fonctionait pas, j'ai donc du détourné le problème en mettant que le titre de colonne soit égale à la valeur d'une variable chaine. |
| |
| |
| | | |
|
| | | | |
| | |
|