Novembre 2024 | Lun | Mar | Mer | Jeu | Ven | Sam | Dim |
---|
| | | | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | | Calendrier |
|
|
| Mon Ecurie | |
| | |
Auteur | Message |
---|
Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Mon Ecurie Mar 16 Avr 2013 - 21:03 | |
| Voilà mes dernières avancées sur ma base de données "Mon Ecurie". Elle n'avait plus rien à faire dans un appel au secours... Voilà le lien, pas tout est fini, ce n'est qu'un point d'avancement. Chevaux_BDR.zipEdit : heu...je sais que c'est un peu le souk dans mes numéros d'objet ce sera pour une prochaine évolution de ma façon de programmer. re Edit : Petites corrections re re Edit : Plus que les données du grid à relier mais je me pose des questions sur la méthode... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 3:31 | |
| Je replace ici la discussion sur Mon Ecurie qui c'est un peu dispersée sur le forum... Voilà la dernière évolution dans le code : Mon Ecurie Vs 0.3Bon, il y a un bug lorsque l'on passe de l'affichage "Général" à celui par "Site" que je comprends pas vraiment et c'est pas faute de chercher pourquoi...
Dernière édition par ygeronimi le Dim 21 Avr 2013 - 5:09, édité 1 fois | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 5:08 | |
| Le problème de changement d'affichage du grid Général =>/Site est résolu ! Je m'attaque à la modification et suppression des fiches chevaux : Mon Ecurie Vs 0.4Maintenant quelques heures de | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Dim 21 Avr 2013 - 9:33 | |
| Eh bien voilà ! C'est impeccable comme ça ! Continue - belle démonstration de savoir faire: créations d'objets avec l'impressionnant bouton image, fenêtres de saisie en mode modal, utilisation de BDR, très bonne structuréation du code avec lisibilité aisée - bravo ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 13:53 | |
| Merci Klaus, je viens de voir l'ajout d'une nouvelle fonction à BDR qui est très intéressante pour conserver les données sur plusieurs années ou du moins lorsque l'on est entre les mois de décembre et février. Une chose est à voir c'est au niveau des relations si cela est possible ou pas, je n'en sais rien, je ne parle pas le delphi. Actuellement, je prends mon appli pour exemple, une fiche "cheval" est lié à un "lad" et à une "station". si je change mon cheval de "station" ,je change ses données facilement mais pour les relations je dois : Retrouver la relation Détruire la relation Recréer une autre avec la nouvelle "station" Peut être qu' il y aurait quelque chose à faire... Bon je retourne à mon écurie... | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 15:32 | |
| Une sub qui ne fait pas son travail : - Code:
-
Sub ModifyHorse() Dim_Local s$,d$,L$,C$ BDRstatus() if BDRstatus=0 message "La BDR n'est pas ouverte" exit_sub end_if s$ = trim$(text$(115)) if s$="" message "Le nom est obligatoire" exit_sub end_if BDRfindname(s$) if BDRfindname=BDR_ERROR_missing message "Ce cheval n'est pas enregistré !" exit_sub else clear 38 BDRfindrelation(s$,syst1$,"?",38) L$=Item_read$(38,1):message L$ clear 38 BDRfindrelation(s$,syst2%,"?",38) C$=Item_read$(38,1):message C$ Clear 38 BDRdeleterelation(s$,syst1%,L$) BDRdeleterelation(s$,syst2%,C$) BDRsave() d$ = trim$(text$(117))+"²"+trim$(text$(119)) BDRreplaceref(BDRfindname,d$) BDRsetrelation(S$,syst1%,Text$(117)) BDRsetrelation(S$,syst1%,Text$(119)) BDRsave() message "Les données ont été remplacées" end_if Affiche_effectif("Général") End_Sub Si quelqu' un voit un truc de pas net..... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Dim 21 Avr 2013 - 16:18 | |
| Si tu remplaces syst1% par syst1$ et syst2% par syst2$, ça marchera mieux...
Et la ligne 31, ne devrait-elle pas utiliser syst2% (à convertir en syst2$) au lieu de syst1% ?
Tout ce qui est findrelation, deledterelation et setrelation fonctionne avec 3 chaînes de caractères ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 16:35 | |
| | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Dim 21 Avr 2013 - 16:54 | |
| Je peux te donner un autre conseil ? 1. Ne remplace les relations que si la nouvelle valeur est différente de l'ancienne. 1. Il est inutile de faire les CLEAR 38 car la fonction remplace de toute façon le contenu du mémo. Ceci est valable également partout où tu prends la liste des éléments d'un ensemble (lads, stations, ...) - pas la peine d'effacer le mémo avant d'appeler la fonction ! | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 17:14 | |
| Ok ! Merci klaus .
Tant que j'y pense
imaginons que plusieurs chevaux soient à un même lad BDRfindrelation("?" ,syst1$,Lad$) me renverra bien la liste des chevaux liés à ce lad ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 17:51 | |
| Evolution 0.5 ! Mon Ecurie Vs 0.5On peut : Ajouter- Fiche cheval - Lad - Site - Travail Modifier - Fiche cheval Supprimer - Fiche cheval Affichage du grid - Général ou par site Dans les fenêtres modifier et supprimer une fiche - La sélection d'un cheval rempli les autres "combo" ou "edit" | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Dim 21 Avr 2013 - 18:50 | |
| Je prends et je vais regarder.
Quant à ta question - BDRfindrelation("?" ,syst1$,Lad$) retourne effectivement la liste de tous les chevaux pour le lad.
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 19:48 | |
| Bon v'là la 0.6 !Ajout des deux états Possibilité de retirer un lad ou une station de leur liste respective Correction des polices de certaines fenêtre qui n'étaient pas spécifiées Edit : Dommage que Memo soit limité... | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Dim 21 Avr 2013 - 22:22 | |
| Quelle est la limite du mémo qui te gêne ? | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Dim 21 Avr 2013 - 23:02 | |
| Quand je parle de limite, c'est au niveau visuel, différentes couleurs, police, taille de caractères etc... la présentation actuelle est un peu lisse... Heu...je sais à quoi tu vas penser...mais non... en tout cas pas tout de suite. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 22 Avr 2013 - 2:49 | |
| Version 0.8 !La fenêtre de sous menu du grid est fonctionnelle. on enregistre le travail, les consignes et/ou commentaires. Fonctions encore en cours :Impression des états ( mon cauchemar ) le lien : Mon Ecurie Vs 0.8 .zip | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: Re Lun 22 Avr 2013 - 13:50 | |
| Je regarde les impressions et cà y est, je suis encore perdu, grrrr!!! Comme mes textes sont dans des memo ( pas de couleur, taille et police unique ) je regardais la fonction PrinterPrintText de KGF mais j'ai plusieurs lignes cela signifie t il qu' il me faut un appel par ligne ? cela ne va t il pas me faire une ligne par page ? Autant je comprends le reste qui n'est parfois pas simple, mais là, il doit me manquer une fonction ou la ram de mon cerveau est pleine, je sais pas mais çà ne veut pas rentrer... Si parfois, il y avait une bonne âme qui veuille me faire un petit pas à pas | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Lun 22 Avr 2013 - 14:42 | |
| La fonction PrinterPrintText imprime une chaîne de caractères, pas toute une page.
Il faut que tu imagines une page "brouillon", vide et blanche, qui se crée en début d'édition, ainsi qu'à chaque éjection de page. Ensuite, on positionne des informations dans cette page. Que ce soit des textes, des images, des lignes, des formes etc - tout est positionné dans cette page brouillon, en écrasant éventuellement, pixel par pixel, ce qui était déjà à l'endroit vise. Aucun autre pixel n'est touché. On peut donc très simplement positionner un texte par-dessus une image. Mais si tu places une image par-dessus un texte, le texte sera recouvert et ne sera plus lisible.
Lorsque ta page est entièrement construite, c'est là que tu envoies l'ordre d'impression, ou l'ordre de création de nouvelle page si ton édition fait plusieurs pages. Dès cet instant, la page constituée est mise en file d'attente d'impression, et si c'est la seule, elle sera imprimée. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 22 Avr 2013 - 14:46 | |
| j' ai essayé çà - Code:
-
Sub PrintEtat() Dim_Local res%,phnd%,chnd%,txt$,pol$,sz%,attr$,cl%,clsz%,x%,y%,R,G,B,i% pol$="arial" sz%=12 attr$="GAXAY" R=0:G=0:B=0 cl%=((B*256+G)*256+R)*256 x%=200 : y%=600 clsz%=cl%+sz% If count(251)>0 for i%=1 to count(251) txt$=txt$+item_read$(251,x%)+chr$(13) next i% res%=DLL_Call4("PrinterManager",1,adr(phnd%),adr(chnd%),0) res%=DLL_Call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),clsz%,adr(x%),adr(y%)) res%=DLL_Call4("PrinterManager",3,adr(phnd%),adr(chnd%),0) Else Message "L' état est vide !" End_if End_Sub mais si la feuille est prise rien n'est imprimé dessus Edit : c'était un code de JL35 au départ, j'ai modifié pour le remplissage de txt$ https://panoramic.1fr1.net/t2825-190-du-23-fevrier-2013-gestion-600-dpi-en-impression?highlight=impressionidem avec çà : - Code:
-
res% = DLL_call4("PrinterManager",1,ADR(phnd%),ADR(chnd%),0) res% = DLL_call6("PrinterFunction",4,adr(phnd%),adr(chnd%),0,x%,y%) res% = DLL_call6("PrinterFunction",5,adr(phnd%),adr(chnd%),ADR(pol$),cl%,sz%) res% = DLL_call6("PrinterFunction",1,adr(phnd%),adr(chnd%),ADR(txt$),LEN(txt$),1) res% = DLL_call4("PrinterManager",3,ADR(phnd%),ADR(chnd%),0) Mon imprimante est une Epson stylus sx130 | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Lun 22 Avr 2013 - 17:36 | |
| Tu dois effectuer un PrinterPrintText ou un PrinterFunction code 1 pour chaque ligne que tu veux imprimer. Et tu dois repositionner auparavent, correctement. Tu ne peux pas coller plusieurs chaînes les unes derrière les autres, avec juste un chr$(13) comme séparateur. A la limite, essaye chr$(13)+chr$(10), mais j'ai un doute: cela revient peut-être à la ligne en-dessous (et encore...), mais certainement pas à la position horizontale que tu souhaites, mais plutôt en x=0 !
Place le positionnement et le print du texte d'une ligne à l'intérieur de ta boucle, ça ira mieux.
Pour le deuxième code, la valeur de cl% n'est pas bonne si tu la calcules comme dans le premier code.
| |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 22 Avr 2013 - 18:28 | |
| Merci, merci,
Je reviens de ville, je reprends les essais tout de suite et je te tiens au courant. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 22 Avr 2013 - 18:47 | |
| YOUPI !!!! Voilà la fonction qui fonctionne !!!! - Code:
-
Sub PrintEtat() Dim_Local res%,phnd%,chnd%,txt$,pol$,sz%,attr$,cl%,clsz%,x%,y%,R,G,B,i% pol$="arial":sz%=12:attr$="GAXAY":cl%=((B*256+G)*256+R)*256:R=0:G=0:B=0 clsz%=cl%+sz% :y%=100 If count(251)>0 res%=DLL_Call4("PrinterManager",1,adr(phnd%),adr(chnd%),0) for i%=1 to count(251) txt$=item_read$(251,i%) x%=150 y%=y%+80 res%=DLL_Call6("PrinterPrintText",adr(txt$),adr(pol$),adr(attr$),clsz%,adr(x%),adr(y%)) next i% res%=DLL_Call4("PrinterManager",3,adr(phnd%),adr(chnd%),0) Else Message "L' état est vide !" End_if End_Sub Et j'ai une petite idée pour améliorer l'impression ( couleur, police etc...) le truc est que j'arrive à récupérer la taille en pixel des polices qui m'intéressent (arial, Times, cataneo BT)
Dernière édition par ygeronimi le Lun 22 Avr 2013 - 18:52, édité 1 fois | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Lun 22 Avr 2013 - 18:52 | |
| Là, tu imprimes tout sur la même ligne, n'est-ce pas ?
Effectivement, c'est comme ça qu'il faut faire, avec éventuellement un positionnement (asolu ou mieux relatif) après chaque PrinterPrintText. | |
| | | Yannick
Nombre de messages : 8635 Age : 53 Localisation : Bretagne Date d'inscription : 15/02/2010
| Sujet: re Lun 22 Avr 2013 - 18:56 | |
| j'imprime ligne par ligne en redéfinissant dans la boucle la position en y% (hauteur) le x% étant fixe, toutes les lignes démarre à 150 et mon alignement correspond au visuel sur l'écran, les espaces ( " " ) sont pris en compte dans txt$. | |
| | | Klaus
Nombre de messages : 12331 Age : 75 Localisation : Ile de France Date d'inscription : 29/12/2009
| Sujet: Re: Mon Ecurie Lun 22 Avr 2013 - 19:32 | |
| | |
| | | Contenu sponsorisé
| Sujet: Re: Mon Ecurie | |
| |
| | | | Mon Ecurie | |
|
Sujets similaires | |
|
| Permission de ce forum: | Vous ne pouvez pas répondre aux sujets dans ce forum
| |
| |
| |