Développez vos applications de gestions 10 fois plus vite

Partagez votre expérience de PureBasic avec les autres utilisateurs.
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Développez vos applications de gestions 10 fois plus vite

Message par microdevweb »

PB_RAD

:arrow: Téléchargement ICI

Est une RAD développé en PureBasic et pour PureBasic.

Il est développé en Objet et se compose de

6 modules/class

Voici que l'on peut obtenir en moins de 10 minutes et moins de 100 de lignes de code (note le code est en dessous)
Image

Code : Tout sélectionner

; TUTO PB_RAB
; Gestion d'un fichier de client simple
;=======================================================================================================================
; NB: les class PB_RAD sont en version béta et non dépourvue de bug

; Nous allons ici créer un fichier client simple
; Ce fichier aura une table liée (localité) qui aura elle même une table liée (pays)
; Le rad va s'occuper de tout
;
; Etape 1:
; Inclusion des fichiers nécessaires
; NB: le projet et le RAD sont dans 2 répertoires RAD et TUTO qui sont eux même dans un répertoire
; pour atteindre le répertoire RAD je vais donc devoir sortir du répertoire TUTO avec ..\  
; a vous de modifier IncludePath selon votre configuration
IncludePath "..\RAD"
XIncludeFile "DB.pbi"       ; Class nécessaire à l'analyse et la gestion de base de données
XIncludeFile "RAD.pbi"      ; Class commune à FicForm et TabForm
XIncludeFile "TBL.pbi"      ; Class pour l'affichage de table exigée par TabForm
XIncludeFile "FicForm.pbi"  ; Gestion des fenêtres de type fiche
XIncludeFile "TabForm.pbi"  ; Gestion  des fenêtre de type table

; Ici on créer l'analyse de notre base de données
; 1) On initialise
DB::Init("DATA","Client.sqlite","","") 
; libre à vous d'utiliser une autre exention que sqlite :)

; 2) Le fichier pays
DB::AddTable("pays","id")
DB::AddColumn("nom","pays",DB::#Type_Text,DB::#Not_Null|DB::#Unique)
; Je veux que le nom soit remplit et un seule pays du même nom

; 2) Localité
DB::AddTable("localite","id")
DB::AddColumn("nom","Localité",DB::#Type_Text,DB::#Not_Null)
DB::AddColumn("code","Code postal",DB::#Type_Text,DB::#Not_Null)
DB::AddColumn("id_pays","Pays",DB::#Type_Link,DB::#Not_Null,"pays","id","nom")
; Je veux une seule localité avec le même pays et le même code postal
; je vais donc ajouté une clé composée
DB::AddCompositeKey("nom"+Chr(10)+"code"+Chr(10)+"id_pays")
; 3) Client
DB::AddTable("client","id")
DB::AddColumn("nom","Nom",DB::#Type_Text,DB::#Not_Null)
DB::AddColumn("adresse","Adresse",DB::#Type_Text,DB::#Not_Null)
DB::AddColumn("id_localite","Localité",DB::#Type_Link,DB::#Not_Null,"localite","id","nom")
DB::AddColumn("telephone","Téléphone",DB::#Type_Phone)
DB::AddColumn("gsm","GSM",DB::#Type_Phone)
DB::AddColumn("remarque","Remarque",DB::#Type_Note)
; Je veux un seul client pour une même localité
; je vais donc ajouté une clé composée
DB::AddCompositeKey("nom"+Chr(10)+"id_localite")

;Je génère maintenant la base de données
DB::Build()

; Création des fenêtres
; Etape 1 : Création des objets 
; --> FicForm
Global.RAD::_FicForm paysFic,localiteFic,clientFic
; --> TabForm
Global.RAD::_TabForm paysTab,LocaliteTab,clientTab
; Etape 2 : Instanciation des objets et création des fenêtres
; ATTENTION l'ordre peut être important en effet les fenêtres de type fiche peuvent
; faire appel à des objet de type table donc ces derniers doivent être créé avant

; Les pays
paysFic=FicForm::New("pays","Nouveau pays","Edition d'un pays")
paysFic\AddGadget("nom")
paysFic\SetSize(300,0,0,0)

paysTab=TabForm::New("pays","Liste des pays",800,600,paysFic)
paysTab\AddColumn("nom",1,TabForm::#ShearchOn)
; Note : la taille de la colonne est en pourcentage
;        les divers flag permette l'affichage d'un bouton de recherche ou filtre (pour les colonne liée)
paysTab\SetOrder("pays.nom")

; Les localités
localiteFic=FicForm::New("localite","Nouvelle localité","Edition d'une localité")
localiteFic\AddGadget("id_pays",0,paysTab)
; paysTab est la fenêztre qui sera ouverte lord du clic sur le bouton
localiteFic\AddGadget("nom")
localiteFic\AddGadget("code")
localiteFic\SetSize(300,0,0,0)

LocaliteTab=TabForm::New("localite","Liste des localités",800,600,localiteFic)
LocaliteTab\AddColumn("id_pays",0.5,TabForm::#FiltersOn)
LocaliteTab\AddColumn("nom",0.5,TabForm::#ShearchOn)
LocaliteTab\SetOrder("pays.nom,localite.nom")

; Les clients
clientFic=FicForm::New("client","Nouveau client","Edition d'un client",2)

; ICI je place 2 colonnes car les téléphones seront l'un  à coté de l'autre
clientFic\AddGadget("nom",2)
clientFic\AddGadget("adresse",2)
clientFic\AddGadget("id_localite",2,LocaliteTab)
clientFic\AddGadget("telephone")
clientFic\AddGadget("gsm")
clientFic\AddGadget("remarque",2)
clientFic\SetSize(300,0,0,0)

clientTab=TabForm::New("client","Liste des clients",800,600,clientFic)
clientTab\AddColumn("id_localite",0.5,TabForm::#FiltersOn)
clientTab\AddColumn("nom",0.5,TabForm::#ShearchOn)
clientTab\SetOrder("localite.nom,client.nom")

; On teste tout ca
; j'ouvre une fenêtre principale
Procedure Exit()
  CloseWindow(0)
  End
EndProcedure
OpenWindow(0,0,0,800,600,"Tuto PB_RAD une simple fichier client",
           #PB_Window_ScreenCentered|#PB_Window_SystemMenu|#PB_Window_MaximizeGadget)
BindEvent(#PB_Event_CloseWindow,@Exit(),0)

clientTab\Open(0)

Repeat
  WaitWindowEvent()
ForEver 
Dernière modification par microdevweb le sam. 20/mai/2017 8:50, modifié 8 fois.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
SPH
Messages : 4722
Inscription : mer. 09/nov./2005 9:53

Re: Développez vos applications de gestions 10 fois plus vit

Message par SPH »

Bug : quand on clique sur une ligne vierge, ca plante (je suis sur que ce n'est qu'un bug temporaire) :idea:
http://HexaScrabble.com/
!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.00 - 64 bits
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

Merci pour cete info SPH, je regarderais à cela
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

Une nouvelle version est en ligne.
Elle reprend
  • des corrections de bugs
  • la gestion presque complète des fichiers annexes
    • Pays
    • Localité
    • catégories
    • sous-catégories
    • Tva
    • Produits
Je suis moi même étonné de la rapidité de développement (une fois RAD opérationnel) pour crée les deux fenêtres nécessaires à la gestion d'un fichier.

Reste à faire
  • Ajout édition de facture (ne pourra être fait que partiellement avec le RAD) qui devra évoluer dans ce sens
  • Les impressions, qui vont demandé la conception d'un nouveau module
  • Vérification et corrections de bugs
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

Voici une nouvelle version, j'ai tout passé en Objet et au final pour l'appli final c'est encore moins de code
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Développez vos applications de gestions 10 fois plus vit

Message par Ar-S »

Je suis ton topic d'assez loin mais c'est intéressant, merci pour ce boulot.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

Merci Ar-S

Note: nouvelle version
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

Voila le développement de l'application de facturation est presque terminée, il reste les impressions et un gros débogage.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

Voila le développement de la gestion proprement dite est terminé, reste les impressions
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Kwai chang caine
Messages : 6962
Inscription : sam. 23/sept./2006 18:32
Localisation : Isere

Re: Développez vos applications de gestions 10 fois plus vit

Message par Kwai chang caine »

Je ne pense pas que cette application me soit utile un jour, quoi qu'on ne sache jamais vraiment
Mais en tout cas ça commence à ressembler à un giciel de pro
Merci pour le partage 8)
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

@Kwai chang caine,

Evidemment si tu ne développe jamais aucun logiciel de gestion cela ne te sera pas très utile. Mais merci pour le compliment.
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

J'ai modifié le post avec un exemple plus simple
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Avatar de l’utilisateur
Ar-S
Messages : 9472
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: Développez vos applications de gestions 10 fois plus vit

Message par Ar-S »

Je viens de tester vite fais. ça tiens la route mais je trouve étrange le fait d'ouvrir N fenêtres pour configurer Pays, Localisation etc..
Je verrai plus une seule fenêtre soit via panel soit via combogadget que tu affiches/caches.
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
Avatar de l’utilisateur
ChrisR
Messages : 221
Inscription : sam. 14/févr./2015 16:20

Re: Développez vos applications de gestions 10 fois plus vit

Message par ChrisR »

Je viens de tester rapidement, c'est très intéressant,
Peut-être lié à la réponse d'Ar-S!
je verrai bien les fenêtres pays, localisations,... comme sous-fenêtres MDI ouvertes dans des onglets d'un Panel ou d'un TabBarGadget.
Avatar de l’utilisateur
microdevweb
Messages : 1798
Inscription : mer. 29/juin/2011 14:11
Localisation : Belgique

Re: Développez vos applications de gestions 10 fois plus vit

Message par microdevweb »

Bonjour Ar-S,

En temps normal on crée un menu pour la gestion des fichiers annexes. Dans ce cas j'ai juste voulu démontré que les modules (class) s'occupe de tout.

Maintenant il est normal que l'ors de l création de par exemple client l'opérateur puisse ajouté une localité, voir un pays etc

Ce qui serait possible de faire, un combo avec saisie l'opérateur rentre le nom (exemple pays) et s'il n'existe pas il est créé automatiquement avec ouverture d'une fenêtre si nécessaire. Mais ça ce ne sera pas pour tout de suite je dois m'attaquer à une class pour l'impression et c'est pas du gâteau
Windows 10 64 bits PB: 5.70 ; 5.72 LST
Work at Centre Spatial de Liège
Répondre