PureBasic

Forums PureBasic
Nous sommes le Ven 25/Mai/2018 21:49

Heures au format UTC + 1 heure




Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 
Auteur Message
 Sujet du message: SpeDev (le retour)
MessagePosté: Ven 28/Avr/2017 11:12 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1386
Localisation: Belgique
Image

Cela part sur un autre concept avec utilisation de Dll

Exemple de code pour une gestion de client/produit (197 lignes seulement)
Code:
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


Le zip ICI :arrow: https://github.com/microdevweb/SpeDev/archive/master.zip

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

Remarques:
  • 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

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: SpeDev (le retour)
MessagePosté: Ven 28/Avr/2017 17:43 
Hors ligne
Avatar de l’utilisateur

Inscription: Sam 23/Sep/2006 18:32
Messages: 6449
Localisation: Isere
J'ai une erreur; il trouve pas "TabForm_SetOrder()" :|

_________________
ImageLe bonheur est une route...
Pas une destination

PureBasic Forum Officiel - Site PureBasic


Haut
 Profil  
Répondre en citant le message  
 Sujet du message: Re: SpeDev (le retour)
MessagePosté: Ven 28/Avr/2017 20:19 
Hors ligne
Avatar de l’utilisateur

Inscription: Mer 29/Juin/2011 14:11
Messages: 1386
Localisation: Belgique
@Kwai chang caine,

Oui je n'avais pas mis à jour le zip 8O , cela doit être en ordre maintenant.

_________________
Linux Mint / Windows 10 64 bits PB: 5.61 ; 5.62 beta


Haut
 Profil  
Répondre en citant le message  
Afficher les messages postés depuis:  Trier par  
Poster un nouveau sujet Répondre au sujet  [ 3 messages ] 

Heures au format UTC + 1 heure


Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 2 invités


Vous ne pouvez pas poster de nouveaux sujets
Vous ne pouvez pas répondre aux sujets
Vous ne pouvez pas éditer vos messages
Vous ne pouvez pas supprimer vos messages

Rechercher:
Aller à:  

 


Powered by phpBB © 2008 phpBB Group | Traduction par: phpBB-fr.com
subSilver+ theme by Canver Software, sponsor Sanal Modifiye