Forum Liberty Basic France

Général » Gestion D'après gestock de Casstel
Le 22/10/2019 à 12h51

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
J'ai voulu reprendre le "gestock" de Castel , mais quand j'ai voulu mettre au point les options je me suis confronté à la rigidité de la listbox, sans parler de l'enregistrement; en y réfléchissant, il s'avère que l'exportation des options (fonctions) dans des boutons, ne dispensait que des tabulations d'alignement des colonnes (au prix d'une grosse complication); alors je l'ai simplifié.
Dans cette version, tout se fait directement dans la fenêtre: Ajouts, suppressions, modifications (au prix des tabulations d'alignement), et d'un bouton pour les images. Et le tri fonctionne (sur la première lettre pour simplification).
EDIT: grosses modifs et ajustements
C'est là-->: Gestion.zip
____________________
Roro

   
Le 27/10/2019 à 19h01

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 599
Bonjour Roland, c'est dommage que le texteditor ne permette pas un clic direct sur la ligne pour dessiner l'objet correspondant. Pouvais-tu simplifier en gardant la listbox d'origine ? (ou je suis à côté de la plaque : je parle de V2 JustB.bas)
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 28/10/2019 à 01h30

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Citation:
Pouvais-tu simplifier en gardant la listbox d'origine ?

Avec la listbox toutes les opérations devaient êtres faites dans des boutons (fonctions séparées (externes)); pas moyen de faire autrement (on ne peut pas modifier une listbox dans l'interface); et donc, autant de boutons que de fonctions, comme l'a fait (sans le faire) Castel, il a dû abandonner devant l'ampleur et la complexité (et surtout le côté peu pratique).
Il te plaît pas mon bouton "Image" ? tu remarquera que j'ai mis une notice pour si quand on se trompe de colonne. Ne me pique pas ou je mets un bouton de tri aux dates. Le tri au dates c'est comme le canard aux olives, c'est pas facile à réussir.
____________________
Roro

   
Le 04/11/2019 à 13h41

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 75
Hello,
Je trouve cette technique très intéressante, car il y a relativement peu de code.
La seule chose manquante, à mon avis, c’est la barre d’évidence des éléments.
Elle sert de règle horizontale, surtout lorsque l’élément a beaucoup de positions justement en horizontal.
Cette bande latérale avec la zone bmp et les fonctions n’est pas très esthétique.
Lorsque j’avais fait ce programme, j’avais pensé mettre un popmenu, mais il fallait une zone
bmp quelque part. Pour meubler, j’ai mis les fonctions.
Toujours est-il que ta version me plait, me plaît très bien même.
____________________
Castel

   
Le 08/11/2019 à 13h58

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Pour les bmp on peut faire une fenêtre de plus (comme celle de l'aide) mais qu'il faudra refermer.
Et pour les boutons on peut tout mettre en "Menus".

Bon, j'ai repris la listbox et ça a l'air de marcher
"Modifier" se fait dans le texteditor du bas
"Ajouter" et "Prélever" sont directs, ça ajoute ou retranche une unité à l'item
Si l'item du texteditor du bas n'est pas dans la liste il est ajouté en tant que nouveau
Je vois que ton tri n'est pas meilleur que le mien, j'ai mis les deux au choix
Toute remarque est bienvenue.
C'est là--->: Gestion.zip
____________________
Roro

   
Le 18/11/2019 à 10h40

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 75
Hello,
La dernière version est mieux que la précédente.
Les deux versions font ce que l’on souhaite : Entrer des données, les modifier, prélever, etc ...
Ensuite il s’agit de l’interface utilisateur. Il y a l’affichage à l’écran, c à d comme il se présente à l’écran.
Et là, porter une opinion serais subjectif. C’est comme les goûts et les couleurs.
Par contre s’il y a une très bonne facilité d’utilisation c’est un plus.
Si dix personnes doivent faire le même programme, il y a bien des chances qu’il y ait dix
présentations différentes, même si Les dix programmes font ce qu’on demande.
J’ai une remarque sur la dernière version: lorsqu’on click sur le premier élément ou le premier article de la liste, le programme se termine.
Lorsque j’avais posté le programme, il était incomplet et n’affichait que le les bmp.
Par la suite, je l’avais terminé de façon que les options fonctionnent. J’en avait même rajouté.
Mais l’aspect était resté inchangé, ce qui m’intéressait était l’affichage du bmp relatif à l’élément.
Évidemment beaucoup plus long en lignes de code que tes deux versions.
Bonne journée.
____________________
Castel

   
Le 18/11/2019 à 14h05

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Citation:
Évidemment beaucoup plus long en lignes de code

Bah la longueur du code n'est pas très importante, sauf pour les puristes.
Citation:
ce qui m’intéressait était l’affichage du bmp

J'ai vu que ta méthode était fort compliquée alors que quatre lignes suffisent
Code VB :
 
    #main.listbox1, "selection? xVar$"
    loadbmp "image", "gesbmp\" + word$(xVar$,2) + ".bmp"   
    #main.gbox, "drawbmp image 1 1"
    unloadbmp "image"
 

Le bug des premiers et derniers reste à traiter.
____________________
Roro

   
Le 19/11/2019 à 10h47

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 75
Autre remarque sur la fonction word$.
Si l’on a une série de mots en relation entr’eux qui eux mêmes font partie d’une chaine$ seront moins
pratiques à gérer dans la fonction word$.
Les mots le cette série devrons être liés par le caractère underscore ou un autre qui soit accepté.
Ex: » Vis_de_réglage 25 xyz 987 »
Au lieu de
« Vis de réglage 25 xyz 987 »
____________________
Castel

   
Le 19/11/2019 à 11h05

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Citation:
Vis_de_réglage_25_xyz_987 »

C'est la pratique adoptée dans beaucoup de langages pour lier les mots en chaine.
Si on utilise un autre délimiteur que l'espace ça oblige à le traiter spécialement et ça ne simplifie pas les choses; et comme on fait ce qu'on veut à l'affichage le procédé est transparent.
Mais on peut aussi bien traiter du texte naturel, sous réserve d'un formatage fixe; le Xème mot devant avoir toujours le même "sens" (la même fonction); ce qui est "particulier".
____________________
Roro

   
Le 19/11/2019 à 21h03

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 599
Hello !
Roland:
Mais on peut aussi bien traiter du texte naturel, sous réserve d'un formatage fixe; le Xème mot devant avoir toujours le même "sens" (la même fonction); ce qui est "particulier"

Castel:
Si l’on a une série de mots en relation entr’eux qui eux mêmes font partie d’une chaine$ seront moins pratiques à gérer dans la fonction word$.
Les mots le cette série devrons être liés par le caractère underscore ou un autre qui soit accepté.

Qu'est-ce que vous entendez par là, vous deux ? Qu'on travaille avec des espaces ou des underscore, ça devrait revenir au même avec la fonction Word$, il suffit de spécifier le séparateur. Non ?
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 20/11/2019 à 00h22

Modérateur

Groupe: Modérateur

Inscrit le: 09/02/2015
Messages: 599
Citation:
Ex: » Vis_de_réglage 25 xyz 987 »
Au lieu de
« Vis de réglage 25 xyz 987 »

Oki, je crois avoir compris : si on veut utiliser l'espace comme séparateur, on est obligé d'utiliser un autre symbole à la place de l'espace pour séparer les mots d'une expression ?

Ainsi on aurait :
word$(Vis_de_réglage 25 xyz 987,1," ") donnerait Vis_de_réglage
word$(Vis_de_réglage 25 xyz 987,2," ") donnerait 25
word$(Vis_de_réglage 25 xyz 987,3," ") donnerait xyz
word$(Vis_de_réglage 25 xyz 987,4," ") donnerait 987

et pour afficher Vis_de_réglage en langage naturel, il suffirait de remplacer les "_" par des espaces. Je n'ai pas vu d'instruction qui fasse directement le travail en JustBasic 2.0, mais c'est pas compliqué de le faire avec une petite routine perso.
____________________
Just BASIC v2.0 :
  • utilisation courante avec GNU/Linux Mageia6 + Wine (Pas trouvé d'incohérences ou de bug de compilation à ce jour)
  • utilisation occasionnelle ou vérification/débugage difficile avec Windows XP sur un petit eeepc

   
Le 20/11/2019 à 11h01

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Citation:
pour afficher Vis_de_réglage en langage naturel, il suffirait de remplacer les "_"

Il ne serait pas pertinent de supprimer les:"_" à l'affichage puisqu'on doit les mettre à l'entrée des données pour s'éviter le formatage fixe (Xemes mots=>même fonction).
L'espace étant le délimiteur naturel de word$, autant l'utiliser. (en liant les mots qui doivent l'être).
____________________
Roro

   
Le 05/12/2019 à 11h32

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Les news: Ce coup ci ça trie sur les quatre premières lettres du premier mot (sinon c'est trop long et les chiffres mettent le souk) et on peut mélanger minuscules et majuscules.
____________________
Roro

   
Le 15/12/2019 à 15h27

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 385
salut ^^

ca me rappel le fonctionnement d'un programme que j'ai fait pour la police nationale (non fonctionel mais ct drole a developper XD)

dossier complet : INDEX 0.38.zip
Code VB :
 
nomainwin
 
[start]
 
Version$ = "0.38a" : NUMERO = 1 : gav$ = "Non" : groupe$ = ""
nameTAPER$ = "" : name2TAPER$ = "" : sexe$ = "" : saveVoiture$ = ""
modelVoiture$ = "" : imatVoiture$ = "" : permisVoiture$ = ""
OPJ$ = "" : motif$ = "" : gav$ = "" : time$ = "" : initialLOAD = 1
 
'DisplayWidth, DisplayHeight

WindowWidth = 1360 : WindowHeight = 750
BackgroundColor$ = "white" : ForegroundColor$ = "black"
UpperLeftX=int((DisplayWidth-WindowWidth)/2) : UpperLeftY=int((DisplayHeight-WindowHeight)/2)
Dim name$(100) : Dim name2$(100) : Dim model$(100) : Dim tel$(10) : Dim motif$(11) : Dim groupes$(20)
 
    mois$ = "Janvier Février Mars Avril Mai Juin Juillet Aout Septembre Octobre Novembre Décembre"
    today$ = date$("mm/dd/yyyy")
    j = date$(today$)
    jsem$ = word$("lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche",int((j/7-int(j/7))*10)+1)
    date$ = jsem$+" "+mid$(today$,4,2)+" "+word$(mois$, val(today$))+" "+right$(today$,4)
 
 
result = mkdir("data")
FirstDay$=Date$()
 
open "data\date.sys" for output as #save
print #save, FirstDay$
print #save, NUMEROmax
close #save
 
open "data\date.sys" for input as #save
input #save, Day1$
input #save, NUMEROmax
close #save
 
INDEXmax = 0
result = mkdir("data\" + FirstDay$)
for x = 1 to 50
dir$ = "" : file$ = "data\"+FirstDay$+"\"+str$(x)+".sys"
if fileExist(dir$,file$) = 1 then
 
    open "data\"+FirstDay$+"\"+str$(x)+".sys" for input as #save
    input #save, FirstDay$,FirstDay2$
    input #save, time$
    input #save, NUMERO
    input #save, nameTAPER$
    input #save, name2TAPER$
    input #save, dateNaissance$
    input #save, modelVoiture$
    input #save, imatVoiture$
    input #save, permisVoiture$
    input #save, tel$
    input #save, motif$
    input #save, sexe$
    input #save, sexe2$
    input #save, groupe$
    input #save, INDEX
    input #save, OPJ$
    input #save, gav$
    input #save, ronde
    input #save, ronde$
    input #save, rondeMotif$
    input #save, colis
    input #save, colis$
    input #save, col
    input #save, col$
    input #save, statut$
    input #save, DANGER
    input #save, stationnement
    CLOSE #save
 
    FirstDay$=Date$()
    if ronde = 0 and colis = 0 and col = 0 then name$(INDEX) = (str$(NUMERO)+ " ["+FirstDay$+" à "+time$+"]  "+sexe2$+" "+nameTAPER$+" - "+motif$+" pour "+groupe$+" ("+OPJ$+")")
    if ronde = 1 then name$(INDEX) = (str$(NUMERO)+ " - RONDE / "+time$+" / "+ronde$+" / "+rondeMotif$)
    if colis = 1 then name$(INDEX) = (str$(NUMERO)+ " - COLIS / "+time$+" / Pour "+colis$)
    if modelVoiture$ <> "" and imatVoiture$ <> "" then name$(INDEX) = (str$(NUMERO)+ " - STATIONNEMENT GENANT / "+time$+" / "+modelVoiture$+" / "+imatVoiture$+" / PDC n° "+permisVoiture$+" / "+sexe2$+" "+nameTAPER$)
    if col = 1 then name$(INDEX) = (str$(NUMERO)+ " ["+FirstDay$+" à "+time$+"]  "+col$+" / "+sexe2$+" "+nameTAPER$+" - "+motif$+" pour "+groupe$+" ("+OPJ$+")")
    ronde = 0 : colis = 0 : col = 0 : statut = 0 : modelVoiture2$ = modelVoiture$ : NUMERO = NUMERO + 1 : sexe2$ = "" : DANGER = 0
    if INDEX > INDEXmax then INDEX = INDEX + 1
    if INDEX <= INDEXmax then INDEX = INDEXmax + 1
    INDEX2sav = INDEX
    INDEXmax = INDEX
    if NUMERO > NUMEROmax then NUMERO = NUMEROmax
end if
 
 
if x > 50 then goto [endScan]
NEXT x
 
[endScan]
col = 0 : col$ = "" : colis = 0 : SEXE = 0
model$(1) = " " : model$(2) = "Peugeot" : model$(3) = "Renault" : model$(4) = "Mercedes" : model$(5) = "Audi" : model$(6) = "BMW" : model$(7) = "Volkswagen" : model$(8) = "Porsche" : model$(9) = "Jaguar" : model$(10) = "Lamborghini" : model$(11) = "Ferrari" : model$(12) = "Chrysler" : model$(13) = "Citroën" : model$(14) = "Toyota" : model$(15) = "Mini" : model$(16) = "Dacia" : model$(17) = "Opel" : model$(18) = "Ford" : model$(19) = "Nissan" : model$(20) = "Fiat" : model$(21) = "Honda" : model$(22) = "Jeep" : model$(23) = "Lotus" : model$(24) = "Maserati" : model$(25) = "Suzuki" : model$(26) = "Autre"
tel$(1) = "Téléphone" : tel$(2) = "Personnel" : tel$(3) = "Professionnel"
motif$(1) = "Convocation" : motif$(2) = "Rendez-vous" : motif$(3) = "Erreur d'adresse" : motif$(4) = "Entretien audition" : motif$(5) = "Travaux bâtiment" : motif$(6) = "Renseignements" : motif$(7) = "Interprète" : motif$(8) = "Stationnement gênant" : motif$(9) = "Accompagnant(e)"
groupes$(1) = " " : groupes$(2) = "Groupe nominatif 1" : groupes$(3) = "Groupe nominatif 2" : groupes$(4) = "Groupe nominatif 3" : groupes$(5) = "Groupe nominatif 4" : groupes$(6) = "Groupe nominatif 5"
groupes$(7) = "Groupe nominatif 6" : groupes$(8) = "Groupe nominatif 7" : groupes$(9) = "Groupe nominatif 8" : groupes$(10) = "Groupe nominatif 9" : groupes$(11) = "Groupe nominatif 10" : groupes$(12) = "Groupe nominatif 11"
groupes$(13) = "Groupe nominatif 12" : groupes$(14) = "Groupe nominatif 13" : groupes$(15) = "AUTRE"
 
graphicbox #main.map, 0, 0, DisplayWidth, DisplayHeight
 
'UpperLeftX=int((DisplayWidth-WindowWidth)/2) : UpperLeftY=int((DisplayHeight-WindowHeight)/2)

 
textbox #main.recherche1, 70, 70, 225, 25
textbox #main.recherche2, 70, 110, 225, 25
textbox #main.recherche4, 70, 190, 50, 23
textbox #main.recherche5, 130, 190, 50, 23
textbox #main.recherche6, 190, 190, 50, 23
 
Listbox #main.contacts, name2$(, [rechercheDONE], 330, 70, 350, 210
Listbox #main.contacts2, name$(, [rechercheDONE], 730, 310, 570, 370
 
combobox #main.fiche4, model$(, [modelVoiture], 300, 340, 180, 20
 
textbox #main.fiche1, 70, 345, 180, 20
textbox #main.fiche2, 70, 380, 180, 20
textbox #main.fiche3, 70, 418, 180, 20
textbox #main.fiche8, 70, 505, 180, 20
textbox #main.rechercheB, 520, 580, 40, 25
textbox #main.rechercheC, 570, 580, 40, 25
textbox #main.rechercheD, 620, 580, 40, 25
 
combobox #main.fiche7, groupes$(, [groupes], 70, 540, 180, 20
textbox #main.fiche11, 270, 540, 210, 20
combobox #main.fiche10, motif$(, [motif], 70, 580, 125, 20
button #main.default2, "AJOUTER LA FICHE", [add],UL 515,340,150,23
 
textbox #main.fiche12, 210, 580, 270, 20
textbox #main.fiche5, 300, 380, 180, 20
textbox #main.fiche6, 300, 418, 180, 20
textbox #main.fiche9, 370, 490, 110, 20 'collegue
textbox #main.fiche13, 350, 455, 130, 20 'colis
textbox #main.fiche14, 70, 670, 240, 20
textbox #main.fiche15, 350, 670, 310, 20
 
checkbox #main.cb1, "Homme", [SEXE1], [SEXE1], 70, 445, 60, 20
checkbox #main.cb2, "Femme", [SEXE2], [SEXE2], 130, 445, 60, 20
checkbox #main.cb3, "Avocat", [SEXE3], [SEXE3], 190, 445, 60, 20
checkbox #main.cb18, "G . A . V", [gav], [gav], 70, 465, 80, 20
checkbox #main.cb20, "Colis", [colis], [colis2], 300, 455, 50, 20
checkbox #main.cb22, "Collègue", [col], [col2], 300, 490, 70, 20
checkbox #main.cb4, "AVIS DE RECHERCHE", [danger], [danger2], 520, 490, 150, 20
 
'radiobutton   checkbox

button #main.default, "LANCER LA RECHERCHE", [confirm2],UL 70,235,150,23
button #main.default3, "MODIFIER LA FICHE", [modif2],UL 515,370,150,23
button #main.default4, "SUPPRIMER LA FICHE", [confirm3],UL 515,400,150,23
 
button #main.default5, "IMPRIMER", [print],UL 515,440,120,23
button #main.default5, "?", [miseENpage],UL 640,440,23,23
 
button #main.def1, "?", [miseENpage2],UL 1105,288,23,18
button #main.next1, "<", [confirm2],UL 1135,288,23,18
button #main.next2, ">", [confirm2],UL 1160,288,23,18
 
groupbox #main.one, "",  30, 20, 670, 280
groupbox #main.one2, "",  710, 20, 615, 680
groupbox #main.one3, "",  30, 635, 670, 67
groupbox #main.one4, "",  30, 310, 670, 315
 
open "Indesk" for dialog as #main
#main, "trapclose [quit]"
#main.map "down;fill WHITE"
 
[start3]
#main.map, "font Times Times New Roman 9;color black;backcolor white"
#main, "font Times Times New Roman 10"
' partie recherche
print #main.map, "place 70 180 ;\"; "Rechercher par date :"
print #main.map, "place 330 60 ;\"; "Résultats des recherches :"
print #main.recherche1,  "Rechercher par nom/prénom"
print #main.recherche2,  "Rechercher par immatriculation"
print #main.recherche4, "année"
print #main.recherche5, "mois"
print #main.recherche6, "jour"
 
print #main.map, "place 520 565 ;\"; "Date personnalisée :"
 
print #main.map, "place 1185 300 ;\"; "Historique des entrées"
print #main.map, "place 730 60 ;\";"Nom : ";nameTAPER$;"                             "
print #main.map, "place 1200 60 ;\";"Statut  : ";statut$;"                             "
print #main.map, "place 730 75 ;\";"Prénom : ";name2TAPER$;"                             "
print #main.map, "place 730 90 ;\";"Date de naissance : ";dateNaissance$;"                             "
print #main.map, "place 730 105 ;\";"Sexe : ";sexe$;"                             "
if NUMERO > 1 then print #main.map, "place 730 150 ;\";"Date dernière visite : "; date$;" à ";time$;"                             "
if NUMERO <= 1 then print #main.map, "place 730 150 ;\";"Date dernière visite : "
print #main.map, "place 730 125 ;\";"Téléphone : ";tel$;"                           "
print #main.map, "place 730 165 ;\";"Groupe concerné : ";groupe$;" - "; OPJ$;"                             "
print #main.map, "place 730 180 ;\";"Motif : ";motif$;"                             "
print #main.map, "place 730 195 ;\";"Placement en GAV : ";gav$;"                             "
print #main.map, "place 730 220 ;\";"Voiture enregistrée : ";modelVoiture$;"                             "
print #main.map, "place 730 235 ;\";"Immatriculation : ";imatVoiture$;"                             "
print #main.map, "place 730 250 ;\";"Numéro permis de conduire : ";permisVoiture$;"                              "
 
print #main.map, "place 730 270 ;\";"                                                                                                                                         "
if stationnement >0 then print #main.map, "place 730 270 ;\";"Stationnements gênants : ";stationnement;"         "
if initialLOAD = 0 and DANGER = 1 then notice "ATTENTION : AVIS DE RECHERCHE - PREVENIR OPJ"
 
#main.map, "font Times Times New Roman 8;color black;backcolor white"
print #main.map, "place 70 340 ;\"; "Nom :"
print #main.map, "place 300 335 ;\"; "Marque de la voiture :"
print #main.map, "place 70 375 ;\"; "Prénom :"
print #main.map, "place 70 413 ;\"; "Date de naissance :"
#main.fiche4 "selectindex 1"
#main.fiche10 "selectindex 1"
#main.fiche7 "selectindex 1"
print #main.map, "place 300 375 ;\"; "Immatriculation (AA-123-AA) :"
print #main.map, "place 300 413 ;\"; "Numéro du permis de conduire :"
print #main.map, "place 70 575 ;\"; "Motif :"
print #main.map, "place 210 575 ;\"; "Autre motif :"
print #main.map, "place 70 498 ;\"; "Téléphone :"
 
 
print #main.map, "place 70 535 ;\"; "Groupe d'enquêteur concerné :"
print #main.map, "place 270 535 ;\"; "Nom enquêteur :"
print #main.map, "place 70 665 ;\"; "Nom (s) :"
print #main.map, "place 350 665 ;\"; "Observation (s) :"
 
print #main.map, "place 1300 730 ;\"; Version$
 
 
 
print #main.default, "!font Times New Roman 8"
print #main.default2, "!font Times New Roman 8"
print #main.default3, "!font Times New Roman 9"
print #main.default4, "!font Times New Roman 9"
print #main.default5, "!font Times New Roman 9"
print #main.next1, "!font Times New Roman 10 bold"
print #main.next2, "!font Times New Roman 10 bold"
 
print #main.one, "!font Times New Roman 10"
print #main.one, "Recherche avancée";"     "
print #main.one2, "!font Times New Roman 10"
print #main.one2, "Fiche de renseignement"
print #main.one3, "!font Times New Roman 10"
print #main.one3, "Sécurisation du site (ronde)"
print #main.one4, "!font Times New Roman 10"
print #main.one4, "Nouvelle fiche de renseignement"
 
if MODIF = 1 then
    #main.default3, "ENREGISTRER"
    #main.fiche1 , nameTAPERMODIF$
    #main.fiche2 , name2TAPERMOFID$
    #main.fiche3 , dateNaissanceMODIF$
    #main.fiche8 , telMODIF$
    #main.fiche13 , colisMODIF$
    #main.fiche9 , colMODIF$
    #main.fiche5 , imatVoitureMODIF$
    #main.fiche6 , permisVoitureMODIF$
    #main.fiche11 , OPJ$
    #main.fiche15 , rondeMotif$
    #main.fiche12 , motifMODIF$
    #main.fiche14 , ronde$
    savMODIF = 1
    select case motifMODIF$
    case "Motif"
        #main.fiche10 "selectindex 1"
    case "Convocation"
        #main.fiche10 "selectindex 2"
    case "Rendez-vous"
        #main.fiche10 "selectindex 3"
    case "Entretien / Audition"
        #main.fiche10 "selectindex 4"
    case "Travaux bâtiment"
        #main.fiche10 "selectindex 5"
    case "Renseignements"
        #main.fiche10 "selectindex 6"
    case "Erreur adresse"
        #main.fiche10 "selectindex 7"
    case "Interprète"
        #main.fiche10 "selectindex 8"
    case "Accueil"
        #main.fiche10 "selectindex 9"
    case "Stationnement gênant"
        #main.fiche10 "selectindex 10"
    end select
 
    select case modelVoitureMODIF$
    case "Marque de la voiture"
        #main.fiche4 "selectindex 1"
    case "Peugeot"
        #main.fiche4 "selectindex 2"
    case "Renault"
        #main.fiche4 "selectindex 3"
    case "Mercedes"
        #main.fiche4 "selectindex 4"
    case "Audi"
        #main.fiche4 "selectindex 5"
    case "BMW"
        #main.fiche4 "selectindex 6"
    case "Volkswagen"
        #main.fiche4 "selectindex 7"
    case "Porsche"
        #main.fiche4 "selectindex 8"
    case "Jaguar"
        #main.fiche4 "selectindex 9"
    case "Lamborghini"
        #main.fiche4 "selectindex 10"
    case "Ferrari"
        #main.fiche4 "selectindex 11"
    case "Chrysler"
        #main.fiche4 "selectindex 12"
    case "Citroën"
        #main.fiche4 "selectindex 13"
    case "Toyota"
        #main.fiche4 "selectindex 14"
    case "Mini"
        #main.fiche4 "selectindex 15"
    case "Dacia"
        #main.fiche4 "selectindex 16"
    case "Opel"
        #main.fiche4 "selectindex 17"
    case "Ford"
        #main.fiche4 "selectindex 18"
    case "Nissan"
        #main.fiche4 "selectindex 19"
    case "Fiat"
        #main.fiche4 "selectindex 20"
    case "Honda"
        #main.fiche4 "selectindex 21"
    case "Jeep"
        #main.fiche4 "selectindex 22"
    case "Lotus"
        #main.fiche4 "selectindex 23"
    case "Maserati"
        #main.fiche4 "selectindex 24"
    case "Suzuki"
        #main.fiche4 "selectindex 25"
    case "Autre"
        #main.fiche4 "selectindex 26"
    end select
 
    Select case groupeMODIF$
    case "Groupe enquêteur concerné"
        #main.fiche7 "selectindex 1"
    case "GER 1"
        #main.fiche7 "selectindex 2"
    case "GEF 1"
        #main.fiche7 "selectindex 3"
    case "CRIME 1"
        #main.fiche7 "selectindex 4"
    case "CRIME 2"
        #main.fiche7 "selectindex 5"
    case "GRB"
        #main.fiche7 "selectindex 6"
    case "STUPS 1"
        #main.fiche7 "selectindex 7"
    case "STUPS 2"
        #main.fiche7 "selectindex 8"
    case "CITES"
        #main.fiche7 "selectindex 9"
    case "B1"
        #main.fiche7 "selectindex 10"
    case "B2"
        #main.fiche7 "selectindex 11"
    case "B3"
        #main.fiche7 "selectindex 12"
    case "B4"
        #main.fiche7 "selectindex 13"
    case "Etat Major"
        #main.fiche7 "selectindex 14"
    case "Autre"
        #main.fiche7 "selectindex 15"
    end select
 
    if sexeMODIF$ = "Homme" then #main.cb1, "set"
    if sexeMODIF$ = "Femme" then #main.cb2, "set"
    if sexeMODIF$ = "Avocat" then #main.cb3, "set"
    if colMODIF = 1 then #main.cb22, "set"
    if colisMODIF = 1 then #main.cb20, "set"
    if DANGERMODIF = 1 then #main.cb4, "set"
    if gavMODIF$ = "Oui" then #main.cb18, "set"
end if
 
'NOTICE NUMERO ;" / "; NUMEROMODIF
'NOTICE INDEX ;" / ";  INDEXMODIF
modelVoiture$ = "" : initialLOAD = 0
print #main.map, "flush"
wait
 
   '#main.map, "when leftButtonUp [popupMenu]"
   '[popupMenu]
   ' popupMenu "I will", [doNothing], "pop up where", [doNothing], "the mouse is", [doNothing]

 
[add]
print #main.fiche1, "!contents? nameTAPER$"
print #main.fiche2, "!contents? name2TAPER$"
print #main.fiche3, "!contents? dateNaissance$"
print #main.fiche5, "!contents? imatVoiture$"
print #main.fiche6, "!contents? permisVoiture$"
print #main.fiche14, "!contents? ronde$"
print #main.fiche8, "!contents? tel$"
print #main.fiche12, "!contents? motif$"
print #main.fiche11, "!contents? OPJ$"
print #main.fiche15, "!contents? rondeMotif$"
print #main.fiche13, "!contents? colis$"
print #main.fiche9, "!contents? col$"
 
if nameTAPER$ = "" and name2TAPER$ = "" and imatVoiture$ = "" and permisVoiture$ = "" and colis$ = "" and motif$ = "" and rondeMotif$ = "" and ronde$ = "" then wait
 
stationnement = 0
if sexeMODIF$ = "Homme" then SEXE = 1
if sexeMODIF$ = "Avocat" then SEXE = 3
if sexeMODIF$ = "Femme" then SEXE = 2
 
if gav$ = "" then gav$ = "Non"
if imatVoiture$ = "" then imatVoiture$ = ""
if imatVoiture$ = "" then saveVoiture$ = "Non enregistré"
if imatVoiture$ <> "" then saveVoiture$ = "Enregistré"
if ronde$ = "" then ronde = 0 : ronde$ = ""
if ronde$ <> "" then ronde = 1
if rondeMotif$ = "" then rondeMotif$ = "R.A.S"
if modelVoiture$ <> "" then modelVoiture = 1 : stationnement = 1
if modelVoiture$ = "" then modelVoiture = 0 : modelVoiture$ = ""
if nameTAPER$ = "" then nameTAPER$ = ""
if name2TAPER$ = "" then name2TAPER$ = ""
if motif$ = "" then motif$ = ""
if tel$ = "" then tel$ = ""
if dateNaissance$ = "" then dateNaissance$ = ""
if permisVoiture$ = "" then permisVoiture$ = ""
if SEXE=1 then sexe$ = "Homme" : sexe2$ = "Mr"
if SEXE=2 then sexe$ = "Femme" : sexe2$ = "Mme"
if SEXE=3 then sexe$ = "Avocat" : sexe2$ = "Maitre"
if SEXE= 0 then sexe$ = ""
if groupe$ = "" then groupe$ = ""
if secuCLICK1 = 1 then NUMBER = NUMEROback + 1 : INDEX = INDEXback + 1 : secuCLICK1 = 0
if OPJ$ = "" then OPJ$ = ""
if colis = 0 then colis$ = ""
if col = 0 then col$ = "" : statut = 0
if col = 1 then statut = 1
 
if statut = 0 then statut$ = "Civil"
if statut = 1 then statut$ = "Police"
 
if savMODIF = 0 then
IF INDEX < 1 then INDEX = 1
end if
 
FirstDay$=Date$() : time$ = time$()
 
if savMODIF = 1 then
    NUMERO = NUMEROMODIF
    INDEX = INDEXMODIF
    time$ = timeMODIF$
    FirstDay$ = FirstDayMODIF$
end if
 
 
 
open "data\"+FirstDay$+"\"+str$(NUMERO)+".sys" for output as #save
print #save, FirstDay$
print #save, time$
print #save, NUMERO
print #save, nameTAPER$
print #save, name2TAPER$
print #save, dateNaissance$
print #save, modelVoiture$
print #save, imatVoiture$
print #save, permisVoiture$
print #save, tel$
print #save, motif$
print #save, sexe$
print #save, sexe2$
print #save, groupe$
print #save, INDEX
print #save, OPJ$
print #save, gav$
print #save, ronde
print #save, ronde$
print #save, rondeMotif$
print #save, colis
print #save, colis$
print #save, col
print #save, col$
print #save, statut$
print #save, DANGER
print #save, stationnement
CLOSE #save
if savMODIF = 0 then
NUMERO = NUMERO + 1
INDEX = NUMERO
NUMEROmax = NUMEROmax + 1
 
end if
 
savMODIF = 0
MODIF = 0
[confirm]
close #main
goto [start]
[confirm2]
goto [start3]
 
[SEXE1]
SEXE=1
print #main.cb1, "set"
print #main.cb2, "reset"
print #main.cb3, "reset"
WAIT
[SEXE2]
SEXE=2
print #main.cb1, "reset"
print #main.cb2, "set"
print #main.cb3, "reset"
wait
[SEXE3]
SEXE=3
print #main.cb1, "reset"
print #main.cb2, "reset"
print #main.cb3, "set"
wait
 
[colis]
colis=1 : print #main.cb20, "set" : wait
[colis2]
colis=0 : print #main.cb20, "reset" : wait
[col]
col=1 : print #main.cb22, "set" : wait
[col2]
col=0 : print #main.cb22, "reset" : wait
[danger]
DANGER=1 : print #main.cb4, "set" : wait
[danger2]
DANGER=0 : print #main.cb4, "reset" : wait
 
[modelVoiture]
print #main.fiche4, "selectionindex? model"
select case model
    case 1
        modelVoiture$ = "Marque de la voiture"
    case 2
        modelVoiture$ = "Peugeot"
    case 3
        modelVoiture$ = "Renault"
    case 4
        modelVoiture$ = "Mercedes"
    case 5
        modelVoiture$ = "Audi"
    case 6
        modelVoiture$ = "BMW"
    case 7
        modelVoiture$ = "Volkswagen"
    case 8
        modelVoiture$ = "Porsche"
    case 9
        modelVoiture$ = "Jaguar"
    case 10
        modelVoiture$ = "Lamborghini"
    case 11
        modelVoiture$ = "Ferrari"
    case 12
        modelVoiture$ = "Chrysler"
    case 13
        modelVoiture$ = "Citroën"
    case 14
        modelVoiture$ = "Toyota"
    case 15
        modelVoiture$ = "Mini"
    case 16
        modelVoiture$ = "Dacia"
    case 17
        modelVoiture$ = "Opel"
    case 18
        modelVoiture$ = "Ford"
    case 19
        modelVoiture$ = "Nissan"
    case 20
        modelVoiture$ = "Fiat"
    case 21
        modelVoiture$ = "Honda"
    case 22
        modelVoiture$ = "Jeep"
    case 23
        modelVoiture$ = "Lotus"
    case 24
        modelVoiture$ = "Maserati"
    case 25
        modelVoiture$ = "Suzuki"
    case 26
        modelVoiture$ = "Autre"
end select
wait
 
 
[groupes]
print #main.fiche7, "selectionindex? groupeSelect"
Select case groupeSelect
    case 2
        groupe$ = "Groupe nominatif 1"
    case 3
        groupe$ = "Groupe nominatif 2"
    case 4
        groupe$ = "Groupe nominatif 3"
    case 5
        groupe$ = "Groupe nominatif 4"
    case 6
        groupe$ = "Groupe nominatif 5"
    case 7
        groupe$ = "Groupe nominatif 6"
    case 8
        groupe$ = "Groupe nominatif 7"
    case 9
        groupe$ = "Groupe nominatif 8"
    case 10
        groupe$ = "Groupe nominatif 9"
    case 11
        groupe$ = "Groupe nominatif 10"
    case 12
        groupe$ = "Groupe nominatif 11"
    case 13
        groupe$ = "Groupe nominatif 12"
    case 14
        groupe$ = "Groupe nominatif 13"
    case 15
        groupe$ = "Autre"
end select
WAIT
 
[motif]
print #main.fiche10, "selectionindex? MOTIF"
select case MOTIF
    case 2
        motif$ = "Convocation"
        #main.fiche12, "Convocation"
    case 3
        motif$ = "Rendez-vous"
        #main.fiche12, "Rendez-vous"
    case 4
        motif$ = "Entretien / Audition"
        #main.fiche12, "Entretien / Audition"
    case 5
        motif$ = "Travaux bâtiment"
        #main.fiche12, "Travaux bâtiment"
    case 6
        motif$ = "Renseignements"
        #main.fiche12, "Renseignements"
    case 7
        motif$ = "Erreur adresse"
        #main.fiche12, "Erreur adresse"
    case 8
        motif$ = "Interprète"
        #main.fiche12, "Interprète"
    case 9
        motif$ = "Accueil"
        #main.fiche12, "Accueil"
    case 10
        motif$ = "Stationnement gênant"
        #main.fiche12, "Stationnement gênant"
end select
wait
[gav]
if gav$ = "Oui" then
    gav$ = "Non"
    print #main.cb18, "reset"
    wait
end if
if gav$ = "Non" or gav$ = "" then
    gav$ = "Oui"
    print #main.cb18, "set"
    wait
end if
WAIT
 
[quit]
close #main
end
 
'fonctions ----------------------------------

function fileExist(dir$,file$)
    dim info$(10, 10)
    files dir$,file$, info$(
    if val(info$(0, 0)) > 0 then
        fileExist = 1
    else
        fileExist = 0
    end if
end function
 
[modif2]
IF INDEX2sav <= 1 or NUMERO < 1 THEN WAIT
MODIF = 1
[modif]
IF INDEX < 1 or NUMERO < 1 THEN WAIT
IF savMODIF = 0 and MODIF = 0 THEN WAIT
if savMODIF = 1 then goto [add]
 
MODIF = 1
gosub [rechercheDONE]
FirstDay$=Date$()
on error goto [wait]
 
'close #main

FirstDayMODIF$ = FirstDay$
FirstDay2MODIF$ = FirstDay2$
timeMODIF$ = time$
NUMEROMODIF = NUMERO
nameTAPERMODIF$ = nameTAPER$
name2TAPERMOFID$ = name2TAPER$
dateNaissanceMODIF$ = dateNaissance$
modelVoitureMODIF$ = modelVoiture$
imatVoitureMODIF$ = imatVoiture$
permisVoitureMODIF$ = permisVoiture$
telMODIF$ = tel$
motifMODIF$ = motif$
sexeMODIF$ = sexe$
sexe2MODIF$ = sexe2$
groupeMODIF$ = groupe$
INDEXMODIF = INDEX
OPJMODIF$ = OPJ$
gavMODIF$ = gav$
rondeMODIF = ronde
rondeMODIF$ = ronde$
rondeMotifMODIF$ = rondeMotif$
colisMODIF = colis
colisMODIF$ = colis$
colMODIF = col
colMODIF$ = col$
modelMODE = model
statutMODIF = statut
DANGERMODIF = DANGER
SEXEMODIF = SEXE
timeMODIF$ = time$
 
goto [start3]
 
 
[confirm3]
'notice INDEX
IF INDEX < 1 THEN WAIT
SUPPRESSION = 1
gosub [rechercheDONE]
 
FirstDay$=Date$()
on error goto [wait]
'notice "data\"+FirstDay$+"\"+str$(XX)+".sys"
kill "data\"+FirstDay$+"\"+str$(XX)+".sys"
SUPPRESSION = 0
 
nameTAPER$ = ""
name2TAPER$ = ""
dateNaissance$ = ""
modelVoiture$ = ""
imatVoiture$ = ""
permisVoiture$ = ""
tel$ = ""
motif$ = ""
sexe$ = ""
sexe2$ = ""
groupe$ = ""
OPJ$ = ""
gav$ = ""
ronde = 0
ronde$ = ""
rondeMotif$ = ""
colis = 0
colis$ = ""
col = 0
col$ = ""
model = 0
statut = 0
DANGER = 0
SEXE = 0
time$ = ""
 
INDEX2sav = INDEX2
MODIF = 0
close #main
goto [start]
 
[rechercheDONE]
print #main.contacts2, "selectionindex? REGISTRE"
counterSCAN = REGISTRE-1' : NUMERO = NUMERO - 1
XXxscan = REGISTRE
gosub [SCAN]
'notice "ok"
XX = INDEX
if SUPPRESSION = 1 then return
if MODIF = 1 then return
 
FirstDay$ = (""+FirstDay$ +", "+FirstDay2$+"")
INDEX2 = INDEX
INDEX2sav = INDEX2
dir$ = "" : file$ = "data\"+FirstDay$+"\"+str$(XX)+".sys"
 
if fileExist(dir$,file$) = 1 then
    open "data\"+FirstDay$+"\"+str$(XX)+".sys" for input as #save
    input #save, FirstDay$,FirstDay2$
    input #save, time$
    input #save, NUMERO
    input #save, nameTAPER$
    input #save, name2TAPER$
    input #save, dateNaissance$
    input #save, modelVoiture$
    input #save, imatVoiture$
    input #save, permisVoiture$
    input #save, tel$
    input #save, motif$
    input #save, sexe$
    input #save, sexe2$
    input #save, groupe$
    input #save, INDEX
    input #save, OPJ$
    input #save, gav$
    input #save, ronde
    input #save, ronde$
    input #save, rondeMotif$
    input #save, colis
    input #save, colis$
    input #save, col
    input #save, col$
    input #save, statut$
    input #save, DANGER
    input #save, stationnement
    CLOSE #save
    FirstDay$ = (""+FirstDay$ +", "+FirstDay2$+"")
    if ronde = 0 and modelVoiture$ = "" and colis = 0 and col = 0  then name$(INDEX) = ("["+FirstDay$+" à "+time$+"]  "+sexe2$+" "+nameTAPER$+" - "+motif$+" pour "+groupe$+" ("+OPJ$+")")
    if ronde = 1 then name$(INDEX) = ("RONDE / "+time$+" / "+ronde$+" / "+rondeMotif$)
    if colis = 1 then name$(INDEX) = ("COLIS / "+time$+" / Pour "+colis$)
    if modelVoiture$ <> "" then name$(INDEX) = ("STATIONNEMENT GENANT / "+time$+" / "+modelVoiture$+" / "+imatVoiture$+" / PDC n° "+permisVoiture$+" / "+sexe2$+" "+nameTAPER$)
    ronde = 0
    colis = 0
end if
 
NUMEROback = NUMERO
INDEXback = INDEX
secuCLICK1 = 1
INDEX = INDEX2
goto [start3]
 
[wait]
INDEX = 1 : NUMERO = 1 : counterSCAN = 1
wait
 
[SCAN]
INDEXmin = 0
securINDEX = 1 : securINDEX2 = 1
[SCAN2]
for x = 1 to 10
    FirstDay$=Date$()
    dir$ = "" : file$ = "data\"+FirstDay$+"\"+str$(x)+".sys"
    if fileExist(dir$,file$) = 1 then
        open "data\"+FirstDay$+"\"+str$(x)+".sys" for input as #save
        input #save, FirstDay$,FirstDay2$
        input #save, time$
        input #save, NUMERO
        input #save, nameTAPER$
        input #save, name2TAPER$
        input #save, dateNaissance$
        input #save, modelVoiture$
        input #save, imatVoiture$
        input #save, permisVoiture$
        input #save, tel$
        input #save, motif$
        input #save, sexe$
        input #save, sexe2$
        input #save, groupe$
        input #save, INDEX
        input #save, OPJ$
        input #save, gav$
        input #save, ronde
        input #save, ronde$
        input #save, rondeMotif$
        input #save, colis
        input #save, colis$
        input #save, col
        input #save, col$
        input #save, statut
        input #save, DANGER
        input #save, stationnement
        CLOSE #save
        counterSCAN = counterSCAN - 1
        'notice file$
        if counterSCAN = -1 then return
    end if
    stationnement = 0
    if securINDEX = 1 then INDEXmin = INDEX
    if INDEXmin > INDEX then INDEXmin = INDEX
    securINDEX = 0
next x
 
return
 
 
 
 
'-------------------------------------------------------------------------------------------
[dataTEST]
FirstDayMODIF$ = FirstDay$
FirstDay2MODIF$ = FirstDay2$
timeMODIF$ = time$
NUMEROMODIF = NUMERO
nameTAPERMODIF$ = nameTAPER$
name2TAPERMOFID$ = name2TAPER$
dateNaissanceMODIF$ = dateNaissance$
modelVoitureMODIF$ = modelVoiture$
imatVoitureMODIF$ = imatVoiture$
permisVoitureMODIF$ = permisVoiture$
telMODIF$ = tel$
motifMODIF$ = motif$
sexeMODIF$ = sexe$
sexe2MODIF$ = sexe2$
groupeMODIF$ = groupe$
INDEXMODIF = INDEX
OPJMODIF$ = OPJ$
gavMODIF$ = gav$
rondeMODIF = ronde
rondeMODIF$ = ronde$
rondeMotifMODIF$ = rondeMotif$
colisMODIF = colis
colisMODIF$ = colis$
colMODIF = col
colMODIF$ = col$
modelMODE = model
statutMODIF = statut
DANGERMODIF = DANGER
SEXEMODIF = SEXE
timeMODIF$ = time$
return
 
 
    [miseENpage]
    if formePRINT = 1 then close #form
    gosub [dataTEST]
    formePRINT = 1
    FirstDay$=Date$()
    time$ = time$()
 
        mois$ = "Janvier Février Mars Avril Mai Juin Juillet Aout Septembre Octobre Novembre Décembre"
    today$ = date$("mm/dd/yyyy")
    j = date$(today$)
    jsem$ = word$("lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche",int((j/7-int(j/7))*10)+1)
    date$ = jsem$+" "+mid$(today$,4,2)+" "+word$(mois$, val(today$))+" "+right$(today$,4)
 
 
    WindowWidth = 850 : WindowHeight = 750
    UpperLeftX=int((DisplayWidth-WindowWidth)/2) : UpperLeftY=int((DisplayHeight-WindowHeight)/2)
    open "Impression" for graphics as #form
    #form "trapclose [quitPRINTER]"
 
    #form "down"
    #form "backcolor 220 220 220"
    #form "size 2"
    #form "place 1 1 ; boxfilled 800 110"
    #form "font arial 16 bold"
 
    #form "place 20 34;\"; "Fiche de renseignement InDex :"
    #form "font arial 10"
    #form "\Police Nationale \Direction\Sous direction\"
    #form "place 520 60;\"; "Fait le ";date$;" à ";time$
 
    #form "backcolor white"
    #form "place 1 110"
    #form "boxfilled 800 471"
 
    #form "place 1 471"
    #form "boxfilled 800 1140"
 
    #form "font courier_new 10"
    #form "size 1"
    #form "place 280 130;\"; "Informations sur l'individu"
    #form "place 20 160;\"; "Nom : ";nameTAPERMODIF$
    #form "place 20 175;\"; "Prénom(s) : ";name2TAPERMOFID$
    #form "place 20 190;\"; "Date de naissance : ";dateNaissanceMODIF$
    #form "place 20 205;\"; "Sexe(s) : ";sexeMODIF$
 
    #form "place 20 240;\"; "Numéro du permis de conduire : ";permisVoitureMODIF$
    #form "place 20 255;\"; "Voiture(s) enregistrée(s) : ";modelVoitureMODIF$
    #form "place 20 270;\"; "imatriculation(s) : ";imatVoitureMODIF$
 
    #form "place 20 305;\"; "Téléphone(s) : ";telMODIF$
    if DANGERMODIF = 1 then rep$ = "OUI"
    if DANGERMODIF = 0 then rep$ = "NON"
    #form "place 20 320;\"; "Individu recherché : ";rep$
    #form "place 140 335;\"; "Par : "
    #form "place 100 350;\"; "Motif(s) : "
    #form "place 20 410;\"; "Note(s) complémentaire(s): "
 
    #form "place 270 493;\"; "Registre d'InDex sur l'individu"
 
    #form "flush"
if AttentionCAVAprinter = 1 then return
wait
 
    [miseENpage2]
    if formePRINT = 1 then close #form
    gosub [dataTEST]
    formePRINT = 1
    FirstDay$=Date$()
    time$ = time$()
 
        mois$ = "Janvier Février Mars Avril Mai Juin Juillet Aout Septembre Octobre Novembre Décembre"
    today$ = date$("mm/dd/yyyy")
    j = date$(today$)
    jsem$ = word$("lundi Mardi Mercredi Jeudi Vendredi Samedi Dimanche",int((j/7-int(j/7))*10)+1)
    date$ = jsem$+" "+mid$(today$,4,2)+" "+word$(mois$, val(today$))+" "+right$(today$,4)
 
 
    WindowWidth = 850 : WindowHeight = 750
    UpperLeftX=int((DisplayWidth-WindowWidth)/2) : UpperLeftY=int((DisplayHeight-WindowHeight)/2)
    open "Impression" for graphics as #form
    #form "trapclose [quitPRINTER]"
 
    #form "down"
    #form "backcolor 220 220 220"
    #form "size 2"
    #form "place 1 1 ; boxfilled 800 110"
    #form "font arial 16 bold"
 
    #form "place 20 34;\"; "Registre d'accueil InDex:"
    #form "font arial 10"
    #form "\Police Nationale \Direction\Sous direction\"
    #form "place 560 60;\"; "Fait le ";date$;" \à ";time$
 
    #form "backcolor white"
    #form "place 1 110"
    #form "boxfilled 800 1140"
    #form "flush"
if AttentionCAVAprinter = 1 then return
wait
 
 
[quitPRINTER]
close #form
formePRINT = 0
wait
 
    [print]
    AttentionCAVAprinter = 1
    GetDefaultPrinter = GetDefaultPrinter(origDefaultPrinter$)
    origDefaultPrinter$ = origDefaultPrinter$
    defaultPrinter$ = origDefaultPrinter$
    PRINTER.ENUM.LOCAL = hexdec("2")
    PRINTER.ENUM.CONNECTIONS = hexdec("4")
    nLocalPrinters = EnumPrinters(PrinterInfo$, PRINTER.ENUM.LOCAL)
    LocalPrinterInfo$ = PrinterInfo$
    nNetworkPrinters = EnumPrinters(PrinterInfo$, PRINTER.ENUM.CONNECTIONS)
    NetworkPrinterInfo$ = PrinterInfo$
    nPrinters = nLocalPrinters + nNetworkPrinters
    PrinterInfo$ = LocalPrinterInfo$;";";NetworkPrinterInfo$
    dim availablePrinters$(nPrinters)
    for i = 1 to nPrinters
        availablePrinters$(i) = word$(PrinterInfo$, i, ";")
    next i
 
    [printerSelection]
    WindowWidth = 250 : WindowHeight = 150
    UpperLeftX = 250 : UpperLeftY = 340
    listbox #dlg.sel, availablePrinters$(), [printScreen], 14, 20, 214, 54
    button #dlg.prnt, "Print", [printScreen], UL, 14, 84, 70, 28
    button #dlg.cncl, "Cancel", [closeDlg], UL, 160, 84, 70, 28
    stylebits #dlg, _WS_POPUP or _WS_THICKFRAME, _WS_CAPTION, 0, 0
    open "Select Printer" for dialog_modal as #dlg
    #dlg "trapclose [closeDlg]"
    #dlg.sel "select ";defaultPrinter$
    wait
 
    [printScreen]
    #dlg.sel "selection? selPrinter$"
    defaultPrinter$ = selPrinter$
    SetDefaultPrinter = SetDefaultPrinter(selPrinter$)
    gosub [miseENpage]
    #form "print svga"
    SetDefaultPrinter = SetDefaultPrinter(origDefaultPrinter$)
    notice "Impression envoyée !"
    [closeDlg]
    close #dlg
    AttentionCAVAprinter = 0
    if formePRINT = 1 then close #form
    formePRINT = 0
    wait
 
 
function EnumPrinters(byref PrinterInfo$, nFlags)
    open "winspool.drv" for dll as #winspool
        struct pcbNeeded, value as ulong
        struct pcReturned, value as ulong
        struct PrinterInfo4, _
            pPrinterName$ as ptr, _
            pServerName$ as ptr, _
            Attributes as ulong
        PrinterInfo4Len = len(PrinterInfo4.struct)
        Level = 4
        cbBuf = PrinterInfo4Len
        uFlags = _LMEM_MOVEABLE or _LMEM_ZEROINIT
        calldll #kernel32, "LocalAlloc", _
            uFlags as uLong, _
            cbBuf as uLong, _
            hMem as uLong
        calldll #kernel32, "LocalLock", _
            hMem as uLong, _
            pBuffer as uLong
 
[retryEnumPrinters]
    calldll #winspool, "EnumPrintersA", _
        nFlags as ulong, _
        PrinterName as ulong, _
        Level as ulong, _
        pBuffer as ulong, _
        cbBuf as ulong, _
        pcbNeeded as struct, _
        pcReturned as struct, _
        result as long
        if result = 0 then
            if GetLastError() = 122 then
                cbBuf = pcbNeeded.value.struct
                hOldMem = hMem
                calldll #kernel32, "LocalReAlloc", _
                    hOldMem as ulong, _
                    cbBuf as ulong, _
                    uFlags as ulong, _
                    hMem as ulong
                calldll #kernel32, "LocalLock", _
                    hMem as uLong, _
                    pBuffer as ulong
                goto [retryEnumPrinters]
            else
                call DisplayError
            end if
        else
            EnumPrinters = pcReturned.value.struct
            BufferPointer = pBuffer
            for count = 0 to EnumPrinters - 1
                calldll #kernel32, "RtlMoveMemory", _
                    PrinterInfo4 as struct, _
                    BufferPointer as ulong, _
                    PrinterInfo4Len as ulong, _
                    result as void
                BufferPointer = BufferPointer + PrinterInfo4Len
                pointer = PrinterInfo4.pPrinterName$.struct
                PrinterInfo$ = winstring(pointer); ";"; PrinterInfo$
            next count
            PrinterInfo$ = left$(PrinterInfo$, len(PrinterInfo$)-1)
        end if
        calldll #kernel32, "LocalFree", _
            hMem as uLong, _
            result as uLong
    close #winspool
end function
 
 
function GetDefaultPrinter(byref currentDefaultPrinter$)
    struct pcchBuffer, value as ulong
    currentDefaultPrinter$ = space$(_MAX_PATH)
    pcchBuffer.value.struct = _MAX_PATH
 
    open "winspool.drv" for dll as #winspool
 
    calldll #winspool, "GetDefaultPrinterA", _
        currentDefaultPrinter$ as ptr, _
        pcchBuffer as struct, _
        GetDefaultPrinter as long
 
    close #winspool
 
    if GetDefaultPrinter = 0 then
        call DisplayError
    else
        currentDefaultPrinter$ = left$(currentDefaultPrinter$, pcchBuffer.value.struct - 1)
    end if
end function
 
function SetDefaultPrinter(selectedDefaultPrinter$)
    open "winspool.drv" for dll as #winspool
 
    calldll #winspool, "SetDefaultPrinterA",_
        selectedDefaultPrinter$ as ptr,_
        SetDefaultPrinter as long
 
    close #winspool
    if SetDefaultPrinter = 0 then call DisplayError
end function
 
sub DisplayError
    ErrorCode = GetLastError()
 
    dwFlags = _FORMAT_MESSAGE_FROM_SYSTEM
    nSize = 1024
    lpBuffer$ = space$(nSize); chr$(0)
    dwMessageID = ErrorCode
 
    calldll #kernel32, "FormatMessageA", _
        dwFlags      as ulong, _
        lpSource     as ulong, _
        dwMessageID  as ulong, _
        dwLanguageID as ulong, _
        lpBuffer$    as ptr, _
        nSize        as ulong, _
        Arguments    as ulong, _
        result       as ulong
 
    print "Error "; ErrorCode; ": "; left$(lpBuffer$, result)
end sub
 
function GetLastError()
    calldll #kernel32, "GetLastError", _
    GetLastError as ulong
end function
 




Edité par atomose Le 15/12/2019 à 15h30
____________________
Yo !

MSN Web    
Le 15/12/2019 à 18h06

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
1203 lignes, on ne peut pas dire qu'il n'y a pas du travail.
____________________
Roro

   
Le 15/12/2019 à 22h55

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 385
oui bon ^^

j'ai encore pamal de truc a ajouter a ce programme, il peut devenir tres sympa. Plein de petit truc caché dessus ^^
____________________
Yo !

MSN Web    
Le 16/12/2019 à 09h56

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Bah, il faudrait surtout le rendre fonctionnel en y mettant une base de données fictive.
____________________
Roro

   
Le 16/12/2019 à 19h53

Libertynaute

Groupe: Membre

Inscrit le: 10/10/2017
Messages: 75
Hello atomise
Je trouve ton programme Index super intéressant.
J’ai une question:
Quelle est la raison du choix de l’extension .sys du fichier d’enregistrement des données ?
A+
____________________
Castel

   
Le 16/12/2019 à 21h45

Modérateur

Groupe: Modérateur

Inscrit le: 30/03/2011
Messages: 385
ahhh mystère ^^

non j'ai voulu le faire simplement pour que les bidoulleure ni touche pas en pensant que c'est important ^^ (du bluff) tkt pas c rien de méchant XD.
Oui roland, la base de donée est en cours de réalisation dessus. Tu ne peux pas encore chercher dedans mais tu peux la créé en ajoutant des entrées qui se différencies par la date du registre. La recherche scannera ces registre et identifira point par point les critère des individus recherché en fonction de la date du registre scanné (par exemple si le 3 février monsieur A est gentil et que le 12 il est méchant, ce sera le paramètre méchant que sera prise en compte avec la date des faits et les raisons de sa méchanceté. en gros, la recherche fait un historique de chaque caractère des individus et transmet au lecteur une synthèse de ceux ci).

Mais je l'ai pas encore terminé ;)
____________________
Yo !

MSN Web    
Le 17/12/2019 à 01h05

Administrateur

Groupe: Administrateur

Inscrit le: 04/03/2012
Messages: 2199
Castel a dit:
Citation:
Quelle est la raison du choix de l’extension .sys du fichier d’enregistrement des données ?


Les extensions de fichiers ne sont pas critiques, si tu mets : ".dll", Windows te mettra l'icône des dll.
____________________
Roro

   
Général » Gestion D'après gestock de Casstel  

 |  |

1 Utilisateur en ligne : 0 Administrateur, 0 Modérateur, 0 Membre et 1 Visiteur
Utilisateur en ligne : Aucun membre connecté
Répondre
Vous n'êtes pas autorisé à écrire dans cette catégorie