Calculations are not performed (was: Help)

Just starting out? Need help? Post your questions and find answers here.
ClueLess
Enthusiast
Enthusiast
Posts: 360
Joined: Sun Jan 11, 2009 1:04 am

Calculations are not performed (was: Help)

Post by ClueLess »

Hi All

Continue to develop an app and getting problems after probem. So far I have this code which doesn't work.

Can someone tell me why? The calculations at the end doesn't get done.

Code: Select all


Enumeration FormWindow
  #ArtigosWin
EndEnumeration

Enumeration FormGadget
  #Txt_Codigo_Item
  #Txt_Descricao_Item
  #Txt_Custo_Item
  #Txt_Margem_Item
  #Txt_Desconto_Item
  #Opt_Unidade_Item
  #Opt_IVA_Item
  #Txt_PVP_Item
  #But_Guardar_Artigo
  #But_Cancelar_Artigo
  #But_Limpar_Artigo
  #Lbl_Codigo_Item
  #Lbl_Descricao_Item
  #Lbl_Unidade_Item
  #Lbl_Custo_Item
  #Lbl_Margem_Item
  #Lbl_IVA_Item
  #Lbl_PVP_Item
  #Lbl_Desconto_Item
  #Lbl_IVA_Item_Copy1
EndEnumeration

  OpenWindow(#ArtigosWin, 0, 0, 654, 235, "", #PB_Window_SystemMenu)
  StringGadget(#Txt_Codigo_Item, 27, 40, 100, 30, "")
  StringGadget(#Txt_Descricao_Item, 147, 40, 353, 30, "")
  StringGadget(#Txt_Custo_Item, 28, 103, 100, 30, "")
  StringGadget(#Txt_Margem_Item, 147, 100, 100, 30, "")
  StringGadget(#Txt_PVP_Item, 528, 100, 100, 30, "")
  StringGadget(#Txt_Desconto_Item, 274, 100, 100, 30, "")
  ComboBoxGadget(#Opt_Unidade_Item, 527, 40, 100, 30)
  AddGadgetItem(#Opt_Unidade_Item, -1, "Unidade")
  AddGadgetItem(#Opt_Unidade_Item, -1, "Metro")
  AddGadgetItem(#Opt_Unidade_Item, -1, "Hora")
  ComboBoxGadget(#Opt_IVA_Item, 401, 100, 100, 30)
  AddGadgetItem(#Opt_IVA_Item, -1, "14")
  AddGadgetItem(#Opt_IVA_Item, -1, "Isento")
  SetGadgetState(#Opt_IVA_Item, 0)
  SetGadgetState(#Opt_Unidade_Item, 0)
  ButtonGadget(#But_Guardar_Artigo, 527, 167, 100, 30, "Guardar")
  ButtonGadget(#But_Cancelar_Artigo, 400, 167, 100, 30, "Cancelar")
  ButtonGadget(#But_Limpar_Artigo, 273, 167, 100, 30, "Limpar Form")
  TextGadget(#Lbl_Codigo_Item, 27, 20, 100, 17, "Codigo")
  TextGadget(#Lbl_Descricao_Item, 147, 20, 100, 17, "Descrição")
  TextGadget(#Lbl_Unidade_Item, 527, 20, 100, 17, "Unidade")
  TextGadget(#Lbl_Custo_Item, 27, 80, 100, 17, "Preço de Custo")
  TextGadget(#Lbl_Margem_Item, 147, 80, 100, 17, "Margem")
  TextGadget(#Lbl_PVP_Item, 528, 80, 100, 17, "PVP")
  TextGadget(#Lbl_Desconto_Item, 274, 80, 100, 17, "Desconto %")
  TextGadget(#Lbl_IVA_Item_Copy1, 401, 80, 100, 17, "Taxa de IVA %")

Procedure GuardarArtigo()
    
  Custo.i = Val(GetGadgetText(#Txt_Custo_Item))
  Margem.i = Val(GetGadgetText(#Txt_Margem_Item))
  Desconto.i = Val(GetGadgetText(#Txt_desconto_Item))
  IVA.i = Val(GetGadgetText(#Opt_IVA_Item))
  PVP.i = Custo * Margem / 100
  
   SetGadgetText(#Txt_PVP_Item, Str(PVP.i))
   
;   UseSQLiteDatabase()
;   
;   If OpenDatabase(0, "Facturacao.sqlite", "", "")
;     Debug "Connected to PureBasic.sqlite"
;   EndIf
  
  CodigoArtigo.s = GetGadgetText(#Txt_Codigo_Item)
  Descricao.s = GetGadgetText(#Txt_Descricao_Item)
  unidade.s = GetGadgetText(#Opt_Unidade_Item)
EndProcedure

Select WindowEvent()
  Case #PB_Event_Gadget
    Select EventGadget()
      Case #But_Guardar_Artigo
        GuardarArtigo()
    EndSelect
EndSelect

  
Repeat
  event = WaitWindowEvent()
Until event = #PB_Event_CloseWindow

User avatar
Mindphazer
Enthusiast
Enthusiast
Posts: 456
Joined: Mon Sep 10, 2012 10:41 am
Location: Savoie

Re: Calculations are not performed (was: Help)

Post by Mindphazer »

The calculations are done, but you don't set the results to the gadgets in the GuardarArtigo() procedure (i see no setgadgettext() in your code)
MacBook Pro 16" M4 Pro - 24 Gb - MacOS 15.4.1 - Iphone 15 Pro Max - iPad at home
...and unfortunately... Windows at work...
ClueLess
Enthusiast
Enthusiast
Posts: 360
Joined: Sun Jan 11, 2009 1:04 am

Re: Calculations are not performed (was: Help)

Post by ClueLess »

It is right after the calculation
User avatar
Kiffi
Addict
Addict
Posts: 1485
Joined: Tue Mar 02, 2004 1:20 pm
Location: Amphibios 9

Re: Calculations are not performed (was: Help)

Post by Kiffi »

You must move the "Case #PB_Event_Gadget" block into your repeat-until loop:

Code: Select all

Repeat
  
  event = WaitWindowEvent()
  
  Select event
    Case #PB_Event_Gadget
      Select EventGadget()
        Case #But_Guardar_Artigo
          GuardarArtigo()
      EndSelect
  EndSelect
  
Until event = #PB_Event_CloseWindow
Hygge
User avatar
Mindphazer
Enthusiast
Enthusiast
Posts: 456
Joined: Mon Sep 10, 2012 10:41 am
Location: Savoie

Re: Calculations are not performed (was: Help)

Post by Mindphazer »

Your Select is not inside de loop.
Here is the corrected code

Code: Select all

Enumeration FormWindow
  #ArtigosWin
EndEnumeration

Enumeration FormGadget
  #Txt_Codigo_Item
  #Txt_Descricao_Item
  #Txt_Custo_Item
  #Txt_Margem_Item
  #Txt_Desconto_Item
  #Opt_Unidade_Item
  #Opt_IVA_Item
  #Txt_PVP_Item
  #But_Guardar_Artigo
  #But_Cancelar_Artigo
  #But_Limpar_Artigo
  #Lbl_Codigo_Item
  #Lbl_Descricao_Item
  #Lbl_Unidade_Item
  #Lbl_Custo_Item
  #Lbl_Margem_Item
  #Lbl_IVA_Item
  #Lbl_PVP_Item
  #Lbl_Desconto_Item
  #Lbl_IVA_Item_Copy1
EndEnumeration

  OpenWindow(#ArtigosWin, 0, 0, 654, 235, "", #PB_Window_SystemMenu)
  StringGadget(#Txt_Codigo_Item, 27, 40, 100, 30, "")
  StringGadget(#Txt_Descricao_Item, 147, 40, 353, 30, "")
  StringGadget(#Txt_Custo_Item, 28, 103, 100, 30, "")
  StringGadget(#Txt_Margem_Item, 147, 100, 100, 30, "")
  StringGadget(#Txt_PVP_Item, 528, 100, 100, 30, "")
  StringGadget(#Txt_Desconto_Item, 274, 100, 100, 30, "")
  ComboBoxGadget(#Opt_Unidade_Item, 527, 40, 100, 30)
  AddGadgetItem(#Opt_Unidade_Item, -1, "Unidade")
  AddGadgetItem(#Opt_Unidade_Item, -1, "Metro")
  AddGadgetItem(#Opt_Unidade_Item, -1, "Hora")
  ComboBoxGadget(#Opt_IVA_Item, 401, 100, 100, 30)
  AddGadgetItem(#Opt_IVA_Item, -1, "14")
  AddGadgetItem(#Opt_IVA_Item, -1, "Isento")
  SetGadgetState(#Opt_IVA_Item, 0)
  SetGadgetState(#Opt_Unidade_Item, 0)
  ButtonGadget(#But_Guardar_Artigo, 527, 167, 100, 30, "Guardar")
  ButtonGadget(#But_Cancelar_Artigo, 400, 167, 100, 30, "Cancelar")
  ButtonGadget(#But_Limpar_Artigo, 273, 167, 100, 30, "Limpar Form")
  TextGadget(#Lbl_Codigo_Item, 27, 20, 100, 17, "Codigo")
  TextGadget(#Lbl_Descricao_Item, 147, 20, 100, 17, "Descrição")
  TextGadget(#Lbl_Unidade_Item, 527, 20, 100, 17, "Unidade")
  TextGadget(#Lbl_Custo_Item, 27, 80, 100, 17, "Preço de Custo")
  TextGadget(#Lbl_Margem_Item, 147, 80, 100, 17, "Margem")
  TextGadget(#Lbl_PVP_Item, 528, 80, 100, 17, "PVP")
  TextGadget(#Lbl_Desconto_Item, 274, 80, 100, 17, "Desconto %")
  TextGadget(#Lbl_IVA_Item_Copy1, 401, 80, 100, 17, "Taxa de IVA %")

Procedure GuardarArtigo()
    
  Custo.i = Val(GetGadgetText(#Txt_Custo_Item))
  Margem.i = Val(GetGadgetText(#Txt_Margem_Item))
  Desconto.i = Val(GetGadgetText(#Txt_desconto_Item))
  IVA.i = Val(GetGadgetText(#Opt_IVA_Item))
  PVP.i = Custo * Margem / 100
  Debug pvp
   SetGadgetText(#Txt_PVP_Item, Str(PVP.i))
   
;   UseSQLiteDatabase()
;   
;   If OpenDatabase(0, "Facturacao.sqlite", "", "")
;     Debug "Connected to PureBasic.sqlite"
;   EndIf
  
  CodigoArtigo.s = GetGadgetText(#Txt_Codigo_Item)
  Descricao.s = GetGadgetText(#Txt_Descricao_Item)
  unidade.s = GetGadgetText(#Opt_Unidade_Item)
EndProcedure


  
Repeat
  event = WaitWindowEvent()
  Select event
  Case #PB_Event_Gadget
    Select EventGadget()
      Case #But_Guardar_Artigo
        GuardarArtigo()
    EndSelect
EndSelect
Until event = #PB_Event_CloseWindow

MacBook Pro 16" M4 Pro - 24 Gb - MacOS 15.4.1 - Iphone 15 Pro Max - iPad at home
...and unfortunately... Windows at work...
Post Reply