Cela part sur un autre concept avec utilisation de Dll
Exemple de code pour une gestion de client/produit (197 lignes seulement)
Code : Tout sélectionner
XIncludeFile "FicForm_Include.pbi"
XIncludeFile "DB_Include.pbi"
XIncludeFile "TabForm_Include.pbi"
XIncludeFile "Tbl_Include.pbi"
Enumeration
#MainForm
#FicPays
#FicLocalite
#FicClient
#FicCategorie
#FicTva
#FicProduit
#TabPays
#TabLocalite
#TabClient
#TabCategorie
#TabTva
#TabProduit
EndEnumeration
Enumeration
#MainMenu
#M_Pays
#M_Localite
#M_Client
#M_Categorie
#M_Tva
#M_Produit
EndEnumeration
Procedure Exit()
CloseWindow(#MainForm)
End
EndProcedure
Procedure myEventMenu()
Select EventMenu()
Case #M_Pays
TabForm_Open(#TabPays,#False,-1,#MainForm)
Case #M_Localite
TabForm_Open(#TabLocalite,#False,-1,#MainForm)
Case #M_Client
TabForm_Open(#TabClient,#False,-1,#MainForm)
Case #M_Categorie
TabForm_Open(#TabCategorie,#False,-1,#MainForm)
Case #M_Tva
TabForm_Open(#TabTva,#False,-1,#MainForm)
Case #M_Produit
TabForm_Open(#TabProduit,#False,-1,#MainForm)
EndSelect
EndProcedure
Procedure MakeDb()
DB_Init("DB_Facture.sqlite","","")
DB_AddTable("client","id")
DB_AddColumn("nom","Nom",#Db_Type_Text,#DB_Not_Null|#DB_Unique)
DB_AddColumn("adresse","Adresse",#Db_Type_Text)
DB_AddColumn("id_localite","Localité",#Db_Type_Link)
DB_SetLink("localite","id","nom",#DB_1N_01)
DB_AddTable("localite","id")
DB_AddColumn("nom","Localité",#Db_Type_Text,#DB_Not_Null|#DB_Unique)
DB_AddColumn("code","Code postal",#Db_Type_Text,#DB_Not_Null|#DB_Unique)
DB_AddColumn("id_pays","Pays",#Db_Type_Link)
DB_SetLink("pays","id","nom",#DB_1N_01)
DB_AddTable("pays","id")
DB_AddColumn("nom","Pays",#Db_Type_Text,#DB_Not_Null|#DB_Unique)
DB_AddTable("categorie","id")
DB_AddColumn("nom","Catégorie",#Db_Type_Text,#DB_Not_Null|#DB_Unique)
DB_AddTable("tva","id")
DB_AddColumn("nom","Taux TVA",#Db_Type_Text,#DB_Not_Null|#DB_Unique)
DB_AddColumn("taux","Valeur",#Db_Type_Float,#DB_Not_Null)
DB_AddTable("produit","id")
DB_AddColumn("nom","Nom Produit",#Db_Type_Text,#DB_Not_Null|#DB_Unique)
DB_AddColumn("id_categorie","Catégorie",#Db_Type_Link)
DB_SetLink("categorie","id","nom",#DB_1N_01)
DB_AddColumn("id_tva","Taux TVA",#Db_Type_Link)
DB_SetLink("tva","id","nom",#DB_1N_01)
DB_AddColumn("pa","Prix d' Achat",#Db_Type_Float)
DB_AddColumn("pv","Prix de vente",#Db_Type_Float)
DB_Build()
EndProcedure
Procedure FicPays()
FicForm_Init(#FicPays,"pays","nom","Nouveau pays","Edition d'un pays",400,0,0)
EndProcedure
Procedure FicLocalite()
Protected field.s
field="nom"+Chr(10)+"code"+Chr(10)+"id_pays"
FicForm_Init(#FicLocalite,"localite",field,"Nouvelle localité","Edition d'une localité",400,0,0)
FicForm_SetLinkButton(#FicLocalite,"id_pays",#TabPays)
EndProcedure
Procedure FicClient()
Protected field.s
field="nom"+Chr(10)+"adresse"+Chr(10)+"id_localite"
FicForm_Init(#FicClient,"client",field,"Nouveau client","Edition d'un client",400,0,0)
FicForm_SetLinkButton(#FicClient,"id_localite",#TabLocalite)
EndProcedure
Procedure FicCategorie()
Protected field.s
field="nom"
FicForm_Init(#FicCategorie,"categorie",field,"Nouvelle catégorie","Edition d'une catégorie",400,0,0)
EndProcedure
Procedure FicTva()
Protected field.s
field="nom"+Chr(10)+"taux"
FicForm_Init(#FicTva,"tva",field,"Nouveau taux de TVA","Edition d'un taux de TVA",400,0,0)
EndProcedure
Procedure FicProduit()
Protected field.s
field="id_categorie"+Chr(10)+"nom"+Chr(10)+"id_tva"+Chr(10)+"pa"+Chr(10)+"pv"
FicForm_Init(#FicProduit,"produit",field,"Nouveau Produit","Edition d'un Produit",400,0,0)
FicForm_SetLinkButton(#FicProduit,"id_categorie",#TabCategorie)
FicForm_SetLinkButton(#FicProduit,"id_tva",#TabTva)
EndProcedure
Procedure TabPays()
Protected TabW
TabForm_Init(#TabPays,"pays",#FicPays,"Liste des pays",400,600,0)
TabForm_SetOrder("nom ASC")
TabW=TabForm_GetTableWith(#TabPays)
TabForm_AddColumn("nom",TabW,#Tbl_ShearchOn)
EndProcedure
Procedure TabLocalite()
Protected TabW
TabForm_Init(#TabLocalite,"localite",#FicLocalite,"Liste des localitées",800,600,0)
TabForm_SetOrder("nom ASC")
TabW=TabForm_GetTableWith(#TabLocalite)
TabForm_AddColumn("id_pays",TabW/3,#Tbl_FiltersOn)
TabForm_AddColumn("nom",TabW/3,#Tbl_ShearchOn)
TabForm_AddColumn("code",TabW/3)
EndProcedure
Procedure TabClient()
Protected TabW
TabForm_Init(#TabClient,"client",#FicClient,"Liste des clients",800,600,0)
TabForm_SetOrder("client.nom ASC")
TabW=TabForm_GetTableWith(#TabClient)
TabForm_AddColumn("id_localite",TabW * 0.4,#Tbl_FiltersOn)
TabForm_AddColumn("nom",TabW * 0.6,#Tbl_ShearchOn)
EndProcedure
Procedure TabCategorie()
Protected TabW
TabForm_Init(#TabCategorie,"categorie",#FicCategorie,"Liste des catégories",800,300,0)
TabW=TabForm_GetTableWith(#TabCategorie)
TabForm_AddColumn("nom",TabW ,#Tbl_ShearchOn)
EndProcedure
Procedure TabTva()
Protected TabW
TabForm_Init(#TabTva,"tva",#FicTva,"Liste des taux de TVA",800,600,0)
TabW=TabForm_GetTableWith(#TabTva)
TabForm_AddColumn("nom",TabW * 0.5 ,#Tbl_ShearchOn)
TabForm_AddColumn("taux",TabW * 0.5,#Tbl_AlignToRight)
TabForm_FixNumberDecimal(2)
EndProcedure
Procedure TabProduit()
Protected TabW
TabForm_Init(#TabProduit,"produit",#FicProduit,"Liste des produit",800,600,0)
TabForm_SetOrder("categorie.nom ASC,produit.nom ASC")
TabW=TabForm_GetTableWith(#TabProduit)
TabForm_AddColumn("id_categorie",TabW * 0.5 ,#Tbl_FiltersOn)
TabForm_AddColumn("nom",TabW * 0.5,#Tbl_ShearchOn)
EndProcedure
Procedure OpenMainForm()
OpenWindow(#MainForm,0,0,800,600,"Facturation",#PB_Window_SystemMenu|#PB_Window_Maximize)
CreateMenu(#MainMenu,WindowID(#MainForm))
MenuTitle("Fichier")
MenuItem(#M_Pays,"Pays")
MenuItem(#M_Localite,"Localités")
MenuItem(#M_Client,"Clients")
MenuItem(#M_Categorie,"Catégorie")
MenuItem(#M_Tva,"Taux de TVA")
MenuItem(#M_Produit,"Produit")
BindEvent(#PB_Event_CloseWindow,@Exit(),#MainForm)
BindEvent(#PB_Event_Menu,@myEventMenu(),#MainForm)
EndProcedure
MakeDb()
FicPays()
FicLocalite()
FicClient()
FicCategorie()
FicTva()
FicProduit()
TabPays()
TabLocalite()
TabClient()
TabCategorie()
TabTva()
TabProduit()
OpenMainForm()
Repeat
WaitWindowEvent()
ForEver
Contenu du zip
- DB.dll
- DB.lib
- DB_Include.pbi
- FicForm.dll
- FicForm.lib
- FicForm_Include.pbi
- TabForm.dll
- TabForm.lib
- TabForm_Include.pbi
- Tbl.dll
- Tbl.lib
- Tbl_Include.pbi
- La doc est dans le fichier NomDll_include.pbi
- A l’exception de la dll TBL, les dll sont en cours de développement
- Seul les Dll sont à fournir en plus de votre exécutable à l'utilisateur final