begin process at 2010 02 09 18:32:57
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive Foxpro

 > 

Archives

 > 

Débutants

 > 

Form


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Form

mardi 26 avril 2005 à 11:24:35 | Form

Domatreal

Salut

Je suis un novice en Visual FoxPro. J'ai la version 9.0. Je programme par plaisir. J'ai creer une forme avec laquelle j'ouvre un fichier et j'aimerais retourner le nom de ce fichier dans une textbox. Meme chose pour creer une table DBF. J'aimerais un peu d'aide pour faire cela. Ca a l'air tout simple et pourtant...
Merci d'avance  
mardi 26 avril 2005 à 22:03:50 | Re : Form

MichelAtoutFox

Membre Club
Bonjour Domatreal,

Pour qu'on puisse te répondre, est-ce que tu peux préciser comment tu ouvres ce fichier? et quel est le type de ce fichier?

Pour créer ta table dbf, regarde l'aide de CREATE TABLE:
create table c:\tests\matable.dbf (monchamp1 C(15), monchamp2 I) par exemple...

Si tu es novice en VFP, en attendant que l'aide soit traduite en français, tu peux télécharger l'aide de VFP6 sur le serveur FTP de l'association AtoutFox, ça te donnera des indications qui sont encore valables...
mercredi 27 avril 2005 à 09:31:07 | Re : Form

Domatreal

Bonjour Michelatoutfox

Tout d'abord merci pour ta reponse.
Je cherche a convertir n'importe quel fichier textes ou autres en DBF. Je ne souhaite pas utiliser l'option import. Je peux le faire automatiquement par un program mais j'aimerais le faire via une form (Oriente Objet). 
J'utilise ces fonctions dans mon program:
FInput=GETFILE('CSV',"CSV File",'Open') **pour un fichier CSV
CREATE TABLE testtable (filler c(1))
*** emplacement pour routine creer des champs
APPEND FROM (fInput) TYPE DELIMITED

Voila en gros le principe et je ne t'ai pas envoye ma routine pour creer les champs.

Domatreal  
jeudi 28 avril 2005 à 14:34:32 | Re : Form

MichelAtoutFox

Membre Club

Domatreal,

il ne faut pas confondre Orienté Objet et utilisation d'un form. Tu peux parfaitement créer des objets non visuels dans des prg, et faire de la programmation OOP sans jamais utiliser un form ; et si tu as un des prog en procédural, et que depuis ton form, tu les appelles avec leur fonctionnement habituel, peut-on parler d'orienté objet??

Pour ta question, si je comprends bien, ton prog te convient. Alors, pourquoi ne pas le mettre dans la méthode click d'un commandbutton de ton form, et, en admettant que tu aies un textbox nommé txtFileName par exemple, tu aurais dans ce click:
FInput=GETFILE('CSV',"CSV File",'Open') **pour un fichier CSV
this.parent.txtfilename.value=iif(!empty(finput),finput,"Pas de fichier ouvert")

Pour la création de la table, comment veux-tu faire? on choisit le nom du fichier en saisie, on choisit les noms des champs, si oui, en choix libre ou dans une liste préétablie, si liste préétablie, où est-elle stockée, etc...

mardi 3 mai 2005 à 11:04:06 | Re : Form

Domatreal

Salut MichelAtoutFox,

Pour la creation de ma table, je choisis le nom du fichier en saisie, avec le meme principe que pour ouvrir un fichier texte.
FOutput=GETFILE('DBF',"DBF File",'Create')
Pour les champs, et en general, les fichiers texte contiennent les noms des champs sur la premiere ligne.
Dans ce cas-la, je lis et saisit la premiere ligne de mon fichier (petite procedure) avec des fonctions C de bas niveau (Fseek, fopen, Fwrite...). Je retourne alors le nombre des champs. 
Je cree ensuite une table vide (tablevide.dbf) avec mon nombre de champs avec 255 en longueur.
J'amene ensuite mon fichier texte dans ma table vide.
Ensuite je n'ai qu'a changer le nom de mes champs avec MODIFY STRUCTURE
Mais comment faire avec une liste preetablie ? et comment calculer la longueur maximum d'un champ?

Autrement l'aide VFP en francais m'est bien utile. Merci.

Domatreal  
mercredi 4 mai 2005 à 10:56:15 | Re : Form

MichelAtoutFox

Membre Club
Domatreal,

Si je comprend bien, tu as toujours des champs Caractère, tes données ne sont pas d'un autre type. Et tu veux simplement renommer tes champs, tu peux le faire par la commande ALTER TABLE (regarde en fin de l'ide la syntaxe du RENAME COLUMN).

Imaginons que tu crées ta table avec des champs qui au départ s'appelleraient champ1, champ2, etc...
Imaginons que ces noms soient utilisés pour peupler un listbox1
Imaginons que les noms autorisés pour tes champs soient contenus dans un dbf, qui serve à peupler un listbox2
Et que tu permette (drag and drop, ou bien bouton de validation) d'associer 1 élément du listbox1 à 1 élément du listbox2, en controlant l'unicité des choix.

Est-ce que ça te semble convenir au choix des noms dans une liste préétablie ?

Pour la longueur maximale d'un champ caractère, il ne s'agit pas de calcul, mais de choix en fonction des données qui y seront stockées : 10 caractères pour un numéro de téléphone français, c'est suffisant, mais pas pour une ligne d'adresse (mieux vaut 35 ou 50)
jeudi 5 mai 2005 à 11:13:51 | Re : Form

Domatreal

MichelAtoutFox

C'est vrai toutes mes donnees sont de type caractere.
Cela semble me convenir au choix des noms dans une liste preetablie, mais je ne sais comment utiliser une listbox. As-tu quelques exemples simples sur lesquels je puisse m'exercer?
Pour la longueur maximale des champs, j'ai fait cette petite procedure:
* A est ma table principal et B est ma table contenant ma structure (creee de A en faisant Copy Stru Extended to )

m=1
FOR m=1 TO nbMaxFld
tempfld=
FIELD(m)
INDEX on LEN(TRIM(&tempfld)) TAG sortfld DESCENDING
MaxLen=LEN(TRIM(&tempfld))
SELECT B
GO m
IF Maxlen<>0
replace field_len WITH MaxLen
ELSE
replace
field_len WITH 1
ENDIF
SELECT
A
NEXT m

Merci

Domatreal
jeudi 5 mai 2005 à 14:38:09 | Re : Form

MichelAtoutFox

Membre Club
Réponse acceptée !

Domatreal,

tu trouveras de nombreux exemples d'utilisation de la listbox dans l'aide, et dans les Samples fournis (taskpane > solutions Samples > Controls > Listbox, et aussi Foundation Classes > Use MoverList boxes for selecting data)

Celà dit, le code que tu donnes pose les problèmes suivants:

le nommage des variables - tu en utilises 3, qui sont m, tempfld, et maxlen
pour le m, il ne faut jamais l'utiliser, car c'est le préfixe qui permet à VFP de reconnaitre une variable mémoire d'un champ qui porterait le même nom. Par exemple, si une table matable a un champ monchamp1, que tu fais un scatter memvar, alors m.monchamp1 sera la variable mémoire créée par VFP qui contiendra le contenu copié depuis matable.monchamp1
(voir à ce sujet l'article de Robert Plagnard sur le site d'AtoutFox)
autant prendre les bonnes habitudes : déclaration de la portée de la variable, et bon nommage

local lCtempfld && le nom du champ
lCtempfld= "" && ou bien store "" to lCtempfld

tu trouveras dans l'aide un chapitre consacré aux conventions de nommage (Reference>General Reference>Naming conventions)

Et surtout, autre gros problème, ta façon d'utiliser la syntaxe select:
select A date de l'époque où Dbase (le grand ancètre de VFP) ne pouvait pas nommer les alias ouverts, et on passait de l'un à l'autre par select A et select B
aujourdhui, tu vas ouvrir tes tables par la syntaxe
 use matable1.dbf in 0 alias celle_ci order cet_ordre
 use matable1.dbf in 0 again alias celle_ci_encore order cet_autre_ordre
 use matable2.dbf in 0 alias celle_la order cet_ordre

etc, etc..
et select celle_ci
select celle_la
select celle_ci_encore

mardi 9 août 2005 à 13:13:21 | mini exemple d'utilisation de foxpro

wardaty

bonjour, je suis débutante en visual fox pro,et j'aimerais bien voir un exemple ou bien un mini projet pour savoir comment programmer avec foxpro merci


Cette discussion est classée dans : fichier, form, creer


Répondre à ce message

Sujets en rapport avec ce message

re-selection d'enregistrement [ par brunaux ] dans le 1er fichier il y a donc 75 variables,les 4 premieres sont de longueur differentes et toutes de type caractere, et les 71 autres dont toutes de Export d'une requête en xls [ par crampe666 ] Salut à tous,Je cherche (et même j'arrive) à exporter les résultats d'une requête dans un fichier excel.Voici mon bout de code :   select mon_champ fr j'ai besoin de votre aide dans une chose importante dans foxpro [ par jbenzakour ] je suis programmeur de vb et je ne connait rien dans le foxpro mais dans la société ou je travail se trouve un programme de la paie avec fox pro. et j copier ver excel [ par brunaux ] Bonjour à tousComment faire lorsque l'on à un fichier de 30 0000 (ou plus) enregistrements et que l'on veut le copier en excel et avoir l'integralite importation txt --> fox pro [ par gregorian ] Bonjour, à tous, J'aurais voulu savoir si il existait une fonction permettant de lancer la commande d'importation d'un fichier txt en dbf (un peu comm prob avec un append from [ par gregorian ] Bonjour, J'ai été voir cette fonction, et il me semble qu'elle répond tout a fait à mes attentes sauf un petit problème.Donc, la table existe, je l'ai Ajouter une form [ par Domatreal ] Salut je cherche a avoir plusieurs forms a l'interieur d'un meme objet.Est-ce possible ? Merci Formulaire premier niveau et enfant . [ par spoutnic_37 ] aloha !!!   Je voudrais faire apparaitre des formulaires enfants dans un formulaire parent. Je parametre donc avec showWindow et mdiform.Je met dans m Fichier Excel [ par Domatreal ] Salut Est-il possible d'ouvrir un fichier excel (qui existe deja) avec foxpro, et de le modifier toujours dans foxpro?Merci d'avanceDomatreal Base de données VB !!! [ par spoutnic_37 ] aloha , Je dois récuperer des informations clients et d'intervention d'un logiciel écrit en VB. Les info sont stockées dans des fichier .dat. ligne


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,468 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales