mal wieder MySQL

Anfängerfragen zum Programmieren mit PureBasic.
Benutzeravatar
chrizl
Beiträge: 60
Registriert: 31.08.2004 15:03
Wohnort: Pbg.
Kontaktdaten:

Beitrag von chrizl »

Hm, also ich habe schon so einiges mit MySQL und co auf die Beine gestellt.

Aber was ich erstmal loswerden muss, da es ja sonst kein Mensch hier schafft:
Hast du im Deutschunterricht geschlafen?
Das kann man ja nicht lesen, was du da schreibst.
Erstmal Groß- und Kleinschreibung total durcheinander, dann findet man nur ganz selten mal nen Komma oder nen Punkt oder dergleichen, so dass man sich die Sätze was weiss ich wie zusammenbasteln könnte.

Naja, aber zum Thema:
Was für einen Hoster hast du denn?
Wo befindet sich die Datenbank, ist dass irgend so ein Free-Hoster, ist das ein Firmenserver oder wie?
Wenn man so einen Anhaltspunkt hätte, könnte man dir vlt. schon mehr dazu sagen.
Denn wenn du richtig was mit Datenbanken machen willst, dann fang mit MySQL oder dergleichen an.
Wenn du dir da was in Excel zusammenbasteln willst, kommt du schneller in Knüpp, als du eigentlich willst.
Mit freundlichen Grüßen,
chrizl
Ronny S.
Beiträge: 73
Registriert: 24.11.2008 16:08

Beitrag von Ronny S. »

Wir hatten ihm schon alles nötige zum Thema gesagt, mehr war einfach nicht machbar.
Es ist im Grunde der Sache nicht Wert das Posting wieder an die Luft zu heben.
Er hat jetzt seine Mysql DB mit aktivierten "skip-networking" und kann sein Projekt vollenden, oder auch nicht :?
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

1. weiss ich das ich in Deutsch ne Niete bin!!
2. hab mein datenbank prob gelösst (MySQL)!
3. peil ich pb 4.3 nicht ganz (Window/Gadget handling) konnte ich nie wirklich:-).

Bekomme immer nen Fehler vom Debugger (The specified 'WindowID' is not valid) ohne Debugger leuft es auch nicht wirklich:
Also hier der Code sry weils alles ist ^^:

JA SIND RECHTSCHREIBFEHLER DRIN

Code: Alles auswählen

;{ Globals


Structure History
  Name.s
  Table.s
  Extra.s
EndStructure

Global NewList Tab.History()

; PureBasic Visual Designer v3.95 build 1485 (PB4Code)


;- Window Constants
;
Enumeration
  #Window_0
EndEnumeration

;- MenuBar Constants
;
Enumeration
  #MenuBar_1
EndEnumeration

Enumeration
  #MENU_9
  #MENU_11
  #MENU_12
  #MENU_13
  #MENU_15
  #MENU_16
  #MENU_17
  #MENU_19
  #MENU_20
  #MENU_21
  #MENU_22
  #MENU_23
  #MENU_24
  #MENU_25
  #MENU_26
  #MENU_28
  #MENU_29
  #MENU_30
  #MENU_31
  #MENU_32
  #MENU_33
  #MENU_34
  #MENU_35
  #MENU_37
  #MENU_38
  #MENU_39
  #MENU_40
  #MENU_41
  #MENU_42
EndEnumeration

;- Gadget Constants
;
Enumeration
  #Panel_2
  #ListIcon_0
EndEnumeration


Declare Open_Window_0()
Declare ConnectDatabase(odbc$,user$,pass$)
Declare.s ExePath()
Declare ShowTab(name$,table$,extra$)
Declare ShowWin(nr,name$,sql$)
Declare History()
Declare AddHistory(Name$,Table$,Extra.s)
Declare DelTabIfExist(Name$)
Declare ClearHistory()
Declare AddKunde() 
Declare DelKunde() 
Declare AddAuftrag(KID$)
Declare.s AddArbeitsplan(AuftragID$)
Declare.s AddRechnung(AuftragID$,Tarif$,Zeit$)
Declare.s GetTabName()
Declare.s AddExtra(AuftragID$,Extra$)
;}


Procedure Open_Window_0()
  If OpenWindow(#Window_0, 142, 207, 800, 629, "New window ( 0 )",  #PB_Window_SystemMenu | #PB_Window_TitleBar )
    UseGadgetList(WindowID(#Window_0)) 
    If CreateMenu(#MenuBar_1, WindowID(#Window_0))
      MenuTitle("Kunden")
      MenuItem(#MENU_9, "Neu")
      MenuItem(#MENU_11, "Löschen")
      MenuBar()
      MenuItem(#MENU_12, "Anzeigen")
      MenuTitle("Aufträge")
      MenuItem(#MENU_13, "Neu")
      MenuItem(#MENU_15, "Löschen")
      MenuBar()
      MenuItem(#MENU_16, "Anzeigen")
      MenuTitle("Hosting")
      MenuItem(#MENU_17, "Neu")
      MenuItem(#MENU_19, "Löschen")
      MenuBar()
      MenuItem(#MENU_20, "Anzeigen")
      MenuTitle("Bezahlungen")
      MenuItem(#MENU_21, "Anzeigen")
      MenuBar()
      MenuItem(#MENU_22, "Bezahlen/Erhalten")
      MenuBar()
      MenuItem(#MENU_23, "Liste Leeren")
      MenuTitle("Ansicht")
      MenuItem(#MENU_24, "Konto")
      MenuBar()
      MenuItem(#MENU_25, "Laufende Aufträge")
      MenuItem(#MENU_26, "Laufende Arbeitspläne")
      MenuBar()
      MenuItem(#MENU_28, "Hostings")
      MenuBar()
      MenuItem(#MENU_29, "Webspace")
      MenuItem(#MENU_30, "Mailspace")
      MenuItem(#MENU_31, "Traffic")
      MenuItem(#MENU_32, "Datenbank")
      MenuTitle("Sonstiges")
      MenuItem(#MENU_37, "Neuer Reseller")
      MenuItem(#MENU_38, "Reseller löschen")
      MenuItem(#MENU_39, "Reseller bearbeiten")
      MenuBar()
      MenuItem(#MENU_40, "Neuer Tarif")
      MenuItem(#MENU_41, "Tarif löschen")
      MenuItem(#MENU_42, "Tarif bearbeiten")
      EndIf
      
        ;- Panel6
        PanelGadget(#Panel_2, 0, 0, 800, 610)
 
    EndIf
EndProcedure

Procedure ConnectDatabase(odbc$,user$,pass$)
  If UseODBCDatabase() = 0
    ProcedureReturn #False
  EndIf
  If  OpenDatabase(0,odbc$,user$,pass$)
    ProcedureReturn #True
  Else
    ProcedureReturn #False
  EndIf
EndProcedure

Procedure.s ExePath() 
  ExePath$ = Space(1000) 
  GetModuleFileName_(0,@ExePath$,1000) 
  ProcedureReturn GetPathPart(ExePath$) 
EndProcedure 

Procedure ShowTab(name$,table$,extra$)
  AddGadgetItem(#Panel_2,-1,name$)  
  
  DatabaseQuery(0, "SELECT * FROM "+table$+extra$)
  
  Anz=DatabaseColumns(0)
  Dim Col(Anz)
   
  For i = 0 To Anz-1
    If i = 1
      ListIconGadget(50+CountGadgetItems(#Panel_2),0,0,800,610,DatabaseColumnName(0,i),100,#PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect) 
    ElseIf i > 1
      AddGadgetColumn(50+CountGadgetItems(#Panel_2),i-1,DatabaseColumnName(0,i),100)
    EndIf
    Col(i)=DatabaseColumnType(0,i) 
  Next 
  
  While NextDatabaseRow(0)
    str$=""
    For i = 1 To Anz-1
      If Col(i)=#PB_Database_Long
        str$+Str(GetDatabaseLong(0,i))+Chr(10)
      ElseIf Col(i)=#PB_Database_String
        str$+GetDatabaseString(0,i)+Chr(10) 
      ElseIf Col(i)=#PB_Database_Float
        str$+StrF(GetDatabaseFloat(0,i))+Chr(10) 
      ElseIf Col(i)=#PB_Database_Double
        str$+StrD(GetDatabaseDouble(0,i))+Chr(10)      
      EndIf
    Next
    str$=Mid(str$,1,Len(str$)-1)
    AddGadgetItem(50+CountGadgetItems(#Panel_2),-1,str$) 
  Wend
  FinishDatabaseQuery(0)
EndProcedure

Procedure ShowWin(nr,name$,sql$)
  OpenWindow(nr,0,0,640,520,name$,#PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  SetActiveWindow(nr)
  
  
  DatabaseQuery(0,sql$)
  
  Anz=DatabaseColumns(0)
  Dim Col(Anz)
   
  For i = 1 To Anz-1
    If i = 1
      ListIconGadget(100+nr,0,0,640,520,DatabaseColumnName(0,i),100)
    ElseIf i > 1
      AddGadgetColumn(100+nr,i-1,DatabaseColumnName(0,i),100)
    EndIf
    Col(i)=DatabaseColumnType(0,i) 
  Next 
  
  While NextDatabaseRow(0)
    str$=""
    For i = 0 To Anz-1
      If Col(i)=#PB_Database_Long
        str$+Str(GetDatabaseLong(0,i))+Chr(10)
      ElseIf Col(i)=#PB_Database_String
        str$+GetDatabaseString(0,i)+Chr(10) 
      ElseIf Col(i)=#PB_Database_Float
        str$+StrF(GetDatabaseFloat(0,i))+Chr(10) 
      ElseIf Col(i)=#PB_Database_Double
        str$+StrD(GetDatabaseDouble(0,i))+Chr(10)
     
     
      EndIf
    Next
    str$=Mid(str$,1,Len(str$)-1)
    AddGadgetItem(100+nr,-1,str$) 
  Wend
    
  Repeat
  Until WaitWindowEvent() = #PB_Event_CloseWindow
  FinishDatabaseQuery(0)
  CloseWindow(nr)
  SetActiveWindow(#Window_0)
EndProcedure

Procedure History()
  ClearGadgetItems(#Panel_2)
  Anz = ListSize(Tab()) 
  For i = 1 To Anz
    SelectElement(Tab(),i-1)
    
    If i = Anz
      ShowTab(Tab()\Name,Tab()\Table,Tab()\Extra)
    Else
      ShowTab(Tab()\Name+"->",Tab()\Table,Tab()\Extra)
    EndIf  
  Next
EndProcedure

Procedure AddHistory(Name$,Table$,Extra.s)
  AddElement(Tab())
  Tab()\Name = Name$
  Tab()\Table = Table$
  Tab()\Extra = Extra$  
  History()
EndProcedure

Procedure DelTabIfExist(Name$)
  found=-1
  ForEach Tab()
    If Tab()\Name = Name$
      found=ListIndex(Tab()) 
    EndIf
  Next
  If found >= 0
    SelectElement(Tab(),found)
    DeleteElement(Tab())
  EndIf
  History()
EndProcedure

Procedure ClearHistory()
  ClearGadgetItems(#Panel_2)
  ClearList(Tab()) 
EndProcedure

Procedure AddKunde() 
  WinID=OpenWindow(#PB_Any, 497, 417, 165, 200, "Neuer Kunde",  #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  OldGadgetList = UseGadgetList(WindowID(WinID)) 
  TextGadget(110, 0, 10, 70, 20, "KundenID")
  TextGadget(111, 0, 30, 70, 20, "Username ")
  TextGadget(112, 0, 50, 70, 20, "Passwort")
  TextGadget(113, 0, 70, 70, 20, "Vorname")
  TextGadget(114, 0, 90, 70, 20, "Nachname")
  TextGadget(115, 0, 110, 70, 20, "Adresse")
  TextGadget(116, 0, 130, 70, 20, "Mail")
  TextGadget(117, 0, 150, 70, 20, "Sonstiges")
  StringGadget(11, 70, 10, 90, 20, "")
  StringGadget(12, 70, 30, 90, 20, "")
  StringGadget(13, 70, 50, 90, 20, "")
  StringGadget(14, 70, 70, 90, 20, "")
  StringGadget(15, 70, 90, 90, 20, "")
  StringGadget(16, 70, 110, 90, 20, "")
  StringGadget(17, 70, 130, 90, 20, "")
  StringGadget(18, 70, 150, 90, 20, "")
  ButtonGadget(10, 0, 180, 160, 20, "Hinzufügen")
  Quit10=0
  Repeat
    WinEvent=WaitWindowEvent()
    If Winevent = #PB_Event_Gadget
      If EventGadget() = 10
        DatabaseUpdate(0,"INSERT INTO Kunden (KundenID,Username,Passwort,Vorname,Nachname,Adresse,Mail,Sonstiges) VALUES('"+GetGadgetText(11)+"','"+GetGadgetText(12)+"','"+GetGadgetText(13)+"','"+GetGadgetText(14)+"','"+GetGadgetText(15)+"','"+GetGadgetText(16)+"','"+GetGadgetText(17)+"','"+GetGadgetText(18)+"')")
        FinishDatabaseQuery(0)
        Quit10=1    
      EndIf  
    EndIf    
  Until WinEvent=#PB_Event_CloseWindow Or Quit10=1
  CloseWindow(WinID)
  UseGadgetList(OldGadgetList)
  History()
EndProcedure

Procedure DelKunde() 
  WinID=OpenWindow(#PB_Any, 497, 417, 165, 65, "Kunde Löschen",  #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  OldGadgetList = UseGadgetList(WindowID(WinID))
  TextGadget(110, 0, 10, 70, 20, "KundenID")
  StringGadget(11, 70, 10, 90, 20, "")
  ButtonGadget(10, 0, 40, 160, 20, "Löschen")
  Quit10=0
  Repeat
    WinEvent=WaitWindowEvent()
    If Winevent = #PB_Event_Gadget
      If EventGadget() = 10
        KID$=GetGadgetText(11)
        DatabaseQuery(0, "SELECT AuftragID FROM Aufträge WHERE KundenID='"+KID$+"'")
        While NextDatabaseRow(0)
          AID$=GetDatabaseString(0,0)
          DatabaseUpdate(0,"DELETE FROM Hosting     WHERE AuftragID='"+AID$+"'")
          DatabaseUpdate(0,"DELETE FROM Arbeitsplan WHERE AuftragID='"+AID$+"'")
          DatabaseUpdate(0,"DELETE FROM Bezahlungen WHERE AuftragID='"+AID$+"'")
          DatabaseUpdate(0,"DELETE FROM Webspace    WHERE AuftragID='"+AID$+"'")
          DatabaseUpdate(0,"DELETE FROM Mailspace   WHERE AuftragID='"+AID$+"'")
          DatabaseUpdate(0,"DELETE FROM Traffic     WHERE AuftragID='"+AID$+"'")
          DatabaseUpdate(0,"DELETE FROM Datenbank   WHERE AuftragID='"+AID$+"'")
          DatabaseUpdate(0,"DELETE FROM Aufträge    WHERE AuftragID='"+AID$+"'")
          FinishDatabaseQuery(0)  
        Wend
        DatabaseUpdate(0,"DELETE FROM Kunden WHERE KundenID='"+KID$+"'")
        FinishDatabaseQuery(0)
        Quit10=1    
      EndIf  
    EndIf    
  Until WinEvent=#PB_Event_CloseWindow Or Quit10=1
  CloseWindow(WinID)
  UseGadgetList(WindowID(OldGadgetList))
  History()
EndProcedure

Procedure AddAuftrag(KID$) 
  WinID=OpenWindow(#PB_Any, 0, 0, 165, 305, "Neuer Auftrag",#PB_Window_SystemMenu | #PB_Window_ScreenCentered,WindowID(#Window_0))
  OldGadgetList = UseGadgetList(WindowID(WinID))
  TextGadget(110, 0, 10, 70, 20, "KundenID")
  TextGadget(111, 0, 30, 70, 20, "AuftragID ")
  TextGadget(112, 0, 50, 70, 20, "Name")
  TextGadget(113, 0, 70, 70, 20, "Datum")
  TextGadget(114, 0, 90, 70, 20, "Beschreibung")  
  TextGadget(120, 0, 110, 70, 20, "Webspace")
  TextGadget(121, 0, 130, 70, 20, "Mailspace")
  TextGadget(122, 0, 150, 70, 20, "Traffic")
  TextGadget(123, 0, 170, 70, 20, "Datenbank")  
  TextGadget(140, 0, 190, 70, 20, "Domains")  
  TextGadget(116, 0, 230, 70, 20, "Arbeitsplan")
  TextGadget(117, 0, 250, 70, 20, "End Datum")  
  StringGadget(11, 70, 10, 90, 20, "")
  StringGadget(12, 70, 30, 90, 20, "")
  StringGadget(13, 70, 50, 90, 20, "")
  StringGadget(14, 70, 70, 90, 20, "")
  StringGadget(15, 70, 90, 90, 20, "")
  OptionGadget(118,0,210,80,20,"Erstellung")
  OptionGadget(119,80,210,80,20,"Hosting")
  StringGadget(16, 70, 230, 70, 20, "")
  StringGadget(17, 70, 250, 90, 20, "")  
  StringGadget(124, 70, 110, 70, 20, "")
  StringGadget(125, 70, 130, 70, 20, "")
  StringGadget(126, 70, 150, 70, 20, "")
  StringGadget(127, 70, 170, 70, 20, "")
  StringGadget(134, 70, 190, 70, 20, "")
  ButtonGadget(128, 140, 110, 20, 20, "+")
  ButtonGadget(129, 140, 130, 20, 20, "+")
  ButtonGadget(130, 140, 150, 20, 20, "+")
  ButtonGadget(131, 140, 170, 20, 20, "+")
  ButtonGadget(132, 140, 230, 20, 20, "+")
  ButtonGadget(133, 140, 190, 20, 20, "+")
  ButtonGadget(10, 0, 280, 160, 20, "Hinzufügen")
  SetGadgetState(118,1)
  SetGadgetText(11,KID$)
  SetGadgetText(14,FormatDate("%dd.%mm.%yyyy",Date()))
  Quit10=0
  ApID$=""
  Repeat
    WinEvent=WaitWindowEvent()
    If Winevent = #PB_Event_Gadget
      If EventGadget() = 118
        DisableGadget(16,0)
        DisableGadget(17,0)
        DisableGadget(132,0)
      ElseIf EventGadget() = 119
        DisableGadget(16,1)
        DisableGadget(17,1)
        DisableGadget(132,1)
      
      ElseIf EventGadget() = 128 And GetGadgetText(12)<>"" ;web
        ID$ = AddExtra(GetGadgetText(12),"webspace")
        If GetGadgetText(124)=""         
          SetGadgetText(124,ID$)
        Else 
          SetGadgetText(124,GetGadgetText(124)+" & "+ID$)
        EndIf 
      ElseIf EventGadget() = 129 And GetGadgetText(12)<>"" ;mail
        ID$ = AddExtra(GetGadgetText(12),"mailspace")
        If GetGadgetText(125)=""         
          SetGadgetText(125,ID$)
        Else 
          SetGadgetText(125,GetGadgetText(125)+" & "+ID$)
        EndIf 
      ElseIf EventGadget() = 130 And GetGadgetText(12)<>"" ;traffic
        ID$ = AddExtra(GetGadgetText(12),"traffic")
        If GetGadgetText(126)=""         
          SetGadgetText(126,ID$)
        Else 
          SetGadgetText(126,GetGadgetText(126)+" & "+ID$)
        EndIf
      ElseIf EventGadget() = 131 And GetGadgetText(12)<>"" ;data
        ID$ = AddExtra(GetGadgetText(12),"datenbank")
        If GetGadgetText(127)=""         
          SetGadgetText(127,ID$)
        Else 
          SetGadgetText(127,GetGadgetText(127)+" & "+ID$)
        EndIf 
      ElseIf EventGadget() = 133 And GetGadgetText(12)<>"" ;data
        ID$ = AddExtra(GetGadgetText(12),"domains")
        If GetGadgetText(134)=""         
          SetGadgetText(134,ID$)
        Else 
          SetGadgetText(134,GetGadgetText(134)+" & "+ID$)
        EndIf 
      ElseIf EventGadget() = 132 And GetGadgetText(12)<>"" ;AP
        ApID$ = AddArbeitsplan(GetGadgetText(12))
        SetGadgetText(16,ApID$)
      ElseIf EventGadget() = 10
        
        
        
        ;DatabaseUpdate(0,"INSERT INTO Kunden (KundenID,Username,Passwort,Vorname,Nachname,Adresse,Mail,Sonstiges) VALUES('"+GetGadgetText(11)+"','"+GetGadgetText(12)+"','"+GetGadgetText(13)+"','"+GetGadgetText(14)+"','"+GetGadgetText(15)+"','"+GetGadgetText(16)+"','"+GetGadgetText(17)+"','"+GetGadgetText(18)+"')")
        
        
        Quit10=1    
      EndIf  
    EndIf    
  Until WinEvent=#PB_Event_CloseWindow Or Quit10=1
  CloseWindow(WinID)
  UseGadgetList(OldGadgetList)
  History()
EndProcedure

Procedure.s AddArbeitsplan(AuftragID$)
  Structure Arbeitsplan
    Tarif.s
    Zeit.s
    Bearbeiter.s
    Datum.s
    Beschreibung.s
    Status.s
    RechnungsID.s
  EndStructure
  
  Protected NewList AP.Arbeitsplan()
  
  WinID=OpenWindow(#PB_Any, 334, 409, 630, 405, "Arbeitsplan",#PB_Window_SystemMenu | #PB_Window_ScreenCentered,WindowID(10))
  OldGadgetList = UseGadgetList(WindowID(WinID))
  TextGadget(150, 0, 10, 50, 20, "AuftragID:")
  TextGadget(151, 180, 10, 70, 20, "ArbeitsplanID:")
  StringGadget(159, 60, 10, 100, 20, "")
  StringGadget(158, 250, 10, 110, 20, "")
  SetGadgetText(159,AuftragID$)
  ListIconGadget(160, 0, 40, 630, 280, "#", 40,#PB_ListIcon_GridLines | #PB_ListIcon_FullRowSelect)
  AddGadgetColumn(160, 1, "Tarif", 80)
  AddGadgetColumn(160, 2, "Zeit(h)", 50)
  AddGadgetColumn(160, 3, "Bearbeiter", 100)
  AddGadgetColumn(160, 4, "Datum", 70)
  AddGadgetColumn(160, 5, "Beschreibung", 110)
  AddGadgetColumn(160, 6, "Status", 86)
  AddGadgetColumn(160, 7, "RechnungsID", 90)
  TextGadget(152, 0, 330, 30, 20, "Tarif:")
  TextGadget(153, 100, 330, 30, 20, "Zeit(h):")
  TextGadget(154, 140, 330, 60, 20, "Bearbeiter:")
  TextGadget(155, 240, 330, 40, 20, "Datum:")
  TextGadget(156, 320, 330, 80, 20, "Beschreibung:")
  TextGadget(174, 460, 330, 40, 20, "Status:")
  TextGadget(157, 550, 330, 60, 20, "Rechnung:")
  
  ComboBoxGadget(161, 0, 350, 90, 20)
  StringGadget(162, 100, 350, 30, 20, "")
  StringGadget(163, 140, 350, 90, 20, "")
  StringGadget(164, 240, 350, 70, 20, "")
  StringGadget(165, 320, 350, 130, 20, "")
  StringGadget(166, 460, 350, 80, 20, "")
  StringGadget(167, 550, 350, 50, 20, "")  
  
  ButtonGadget(175, 600, 350, 20, 20, "+")
  ButtonGadget(168, 0, 380, 30, 20, "+")
  ButtonGadget(169, 50, 380, 30, 20, "-")
  ButtonGadget(170, 450, 380, 170, 20, "Arbeitsplan speichern")
  ButtonGadget(171, 100, 380, 50, 20, "Auf")
  ButtonGadget(172, 170, 380, 50, 20, "Ab")
  ButtonGadget(173, 270, 380, 130, 20, "Abbrechen")
  SetGadgetText(166,"unbearbeitet")
  
  DatabaseQuery(0, "SELECT Name FROM Tarife")
  AddGadgetItem(161,-1,"")
  While NextDatabaseRow(0)
    AddGadgetItem(161,-1,GetDatabaseString(0,0))
  Wend
  FinishDatabaseQuery(0)
    
  P_Return$=""
  Quit20=0
  Repeat
    WinEvent=WaitWindowEvent()
    If Winevent = #PB_Event_Gadget
      If EventGadget() = 175          ;rechnung
        If GetGadgetText(159)
          SetGadgetText(167,AddRechnung(GetGadgetText(159),GetGadgetText(161),GetGadgetText(162)))        
        EndIf
      ElseIf EventGadget() = 168      ;add        
        If GetGadgetText(167)="Erstellen"
          rech$=""
        Else
          rech$=GetGadgetText(167)
        EndIf  
        AddElement(AP())
        AP()\Tarif = GetGadgetText(161)
        AP()\Zeit = GetGadgetText(162)
        AP()\Bearbeiter = GetGadgetText(163)
        AP()\Datum = GetGadgetText(164)
        AP()\Beschreibung = GetGadgetText(165)
        AP()\Status = GetGadgetText(166)
        AP()\RechnungsID = rech$
        SetGadgetState(161,0)
        SetGadgetText(162,"")
        SetGadgetText(163,"")
        SetGadgetText(165,"")
        SetGadgetText(167,"")
        
        ClearGadgetItems(160)
        i=10
        ForEach AP()
          AddGadgetItem(160,-1,Str(i)+Chr(10)+AP()\Tarif+Chr(10)+AP()\Zeit+Chr(10)+AP()\Bearbeiter+Chr(10)+AP()\Datum+Chr(10)+AP()\Beschreibung+Chr(10)+AP()\Status+Chr(10)+AP()\RechnungsID)
          i+10
        Next
      ElseIf EventGadget() = 169 ;del
        pos=GetGadgetState(160)
        SelectElement(AP(),pos) 
        DeleteElement(AP())
        ClearGadgetItems(160)
        i=10
        ForEach AP()
          AddGadgetItem(160,-1,Str(i)+Chr(10)+AP()\Tarif+Chr(10)+AP()\Zeit+Chr(10)+AP()\Bearbeiter+Chr(10)+AP()\Datum+Chr(10)+AP()\Beschreibung+Chr(10)+AP()\Status+Chr(10)+AP()\RechnungsID)
          i+10
        Next
      ElseIf EventGadget() = 171 ;Auf
        pos=GetGadgetState(160)
        If pos > 0
          SelectElement(AP(),pos) 
          *FirstElement = @AP()
          SelectElement(AP(),pos-1) 
          *SecondElement = @AP()
          SwapElements(AP(),*FirstElement,*SecondElement)
        EndIf
        ClearGadgetItems(160)
        i=10
        ForEach AP()
          AddGadgetItem(160,-1,Str(i)+Chr(10)+AP()\Tarif+Chr(10)+AP()\Zeit+Chr(10)+AP()\Bearbeiter+Chr(10)+AP()\Datum+Chr(10)+AP()\Beschreibung+Chr(10)+AP()\Status+Chr(10)+AP()\RechnungsID)
          i+10
        Next
      ElseIf EventGadget() = 172 ;Ab
        pos=GetGadgetState(160)
        If pos < ListSize(AP())-1
          SelectElement(AP(),pos) 
          *FirstElement = @AP()
          SelectElement(AP(),pos+1) 
          *SecondElement = @AP()
          SwapElements(AP(),*FirstElement,*SecondElement)
        EndIf
        ClearGadgetItems(160)
        i=10
        ForEach AP()
          AddGadgetItem(160,-1,Str(i)+Chr(10)+AP()\Tarif+Chr(10)+AP()\Zeit+Chr(10)+AP()\Bearbeiter+Chr(10)+AP()\Datum+Chr(10)+AP()\Beschreibung+Chr(10)+AP()\Status+Chr(10)+AP()\RechnungsID)
          i+10
        Next
      ElseIf EventGadget() = 170 ;save
        APID$=GetGadgetText(158)
        If GetGadgetText(158)<>"" And GetGadgetText(159)<>""
          i=10
          ForEach AP()
            DatabaseUpdate(0,"INSERT INTO Arbeitsplan (ArbeitsplanID,AuftragID,Arbeitsgang,Tarif,Zeit,Beschreibung,state,RechnungsID,Datum,Bearbeiter) VALUES ('"+GetGadgetText(158)+"','"+GetGadgetText(159)+"',"+Str(i)+",'"+AP()\Tarif+"',"+AP()\Zeit+",'"+AP()\Beschreibung+"','"+AP()\Status+"','"+AP()\RechnungsID+"','"+AP()\Datum+"','"+AP()\Bearbeiter+"')")
            i+10
          Next
          FinishDatabaseQuery(0)
          CloseWindow(WinID) 
          UseGadgetList(OldGadgetList)   
          ProcedureReturn APID$
        EndIf      
      ElseIf EventGadget() = 173 ;abbort
        P_Return$=""
        Quit20=1
      EndIf  
    EndIf    
  Until WinEvent=#PB_Event_CloseWindow Or Quit20=1
  CloseWindow(WinID)
  UseGadgetList(OldGadgetList)    
  ProcedureReturn P_Return$  
EndProcedure

Procedure.s AddRechnung(AuftragID$,Tarif$,Zeit$)
  WinID=OpenWindow(#PB_Any, 396, 599, 160, 190, "Rechnung",#PB_Window_SystemMenu | #PB_Window_ScreenCentered,WindowID(20))
  OldGadgetList = UseGadgetList(WindowID(WinID))
  TextGadget(200, 0, 10, 60, 20, "AuftragsID:")
  TextGadget(201, 0, 30, 80, 20, "RechnungsID:")
  TextGadget(202, 0, 50, 30, 20, "Preis:")
  OptionGadget(203, 80, 50, 70, 20, "Monatlich")
  OptionGadget(204, 80, 70, 60, 20, "Jährlich")
  OptionGadget(205, 80, 90, 60, 20, "Einamlig")
  SetGadgetState(205,1)
  TextGadget(206, 0, 110, 40, 20, "Höhe:")
  StringGadget(207, 80, 10, 80, 20, "")
  SetGadgetText(207,AuftragID$)
  StringGadget(208, 80, 30, 80, 20, "")
  StringGadget(209, 80, 110, 50, 20, "")
  ComboBoxGadget(210, 20, 140, 120, 20)
  ButtonGadget(211, 0, 170, 160, 20, "Speichern")
  TextGadget(212, 140, 110, 20, 20, "€")
  
  
  DatabaseQuery(0, "SELECT * FROM Tarife")
  
   fount=0
  While NextDatabaseRow(0)
    Tarif2$=GetDatabaseString(0,2)
    If Tarif2$=Tarif$
      h$=Str(GetDatabaseLong(0,4))
      m$=Str(GetDatabaseLong(0,5))
      y$=Str(GetDatabaseLong(0,6))
      e$=Str(GetDatabaseLong(0,7))
      If h$<>"0"
        Zeit=Val(Zeit$)
        PreisA=Val(h$)
        Preis$=Str(PreisA*Zeit)
        SetGadgetText(209,Preis$)
        SetGadgetState(205,1)
      ElseIf m$<>"0"
        SetGadgetText(209,m$)
        SetGadgetState(203,1)
      ElseIf y$<>"0"
        SetGadgetText(209,y$)
        SetGadgetState(204,1)
      ElseIf e$<>"0"
        SetGadgetText(209,e$)
        SetGadgetState(205,1)
      EndIf  
      AddGadgetItem(210,-1,GetDatabaseString(0,3))
      SetGadgetState(210,0)
      fount=1    
    EndIf
  Wend
  FinishDatabaseQuery(0)
  If fount=0
    AddGadgetItem(210,-1,"Ausgabe")
    AddGadgetItem(210,-1,"Einnahme")
    SetGadgetState(210,0)
  EndIf
  
  P_Return$=""
  Repeat
    WinEvent=WaitWindowEvent()
    If Winevent = #PB_Event_Gadget
      If EventGadget() = 211
        ID2$=GetGadgetText(207)
        ID1$=GetGadgetText(208)          
        If ID2$<>"" And ID1$<>""
          If GetGadgetState(203)
            DatabaseUpdate(0,"INSERT INTO Rechnungen (RechnungsID,PreisMonat,AuftragID,EinAusgabe)      VALUES ('"+ID1$+"','"+GetGadgetText(209)+"',"+GetGadgetText(207)+",'"+GetGadgetText(210)+"')")
          ElseIf GetGadgetState(204)
            DatabaseUpdate(0,"INSERT INTO Rechnungen (RechnungsID,PreisJahr,AuftragID,EinAusgabe)       VALUES ('"+ID1$+"','"+GetGadgetText(209)+"',"+GetGadgetText(207)+",'"+GetGadgetText(210)+"')")
          ElseIf GetGadgetState(205)
            DatabaseUpdate(0,"INSERT INTO Rechnungen (RechnungsID,PreisEinmalig,AuftragID,EinAusgabe) VALUES ('"+ID1$+"','"+GetGadgetText(209)+"',"+GetGadgetText(207)+",'"+GetGadgetText(210)+"')")
          EndIf
          Debug DatabaseError()
          FinishDatabaseQuery(0)
          CloseWindow(WinID)
          UseGadgetList(OldGadgetList)
          ProcedureReturn ID1$
        EndIf
      EndIf  
    EndIf    
  Until WinEvent=#PB_Event_CloseWindow 
  CloseWindow(WinID)
  UseGadgetList(OldGadgetList)    
  ProcedureReturn P_Return$
  
  
EndProcedure

Procedure.s GetTabName()
  Index=GetGadgetState(#Panel_2)
  SelectElement(Tab(),Index)
  ProcedureReturn Tab()\Table
EndProcedure

Procedure.s AddExtra(AuftragID$,Extra$)
  If Extra$="webspace" Or Extra$="mailspace" Or Extra$="traffic"
    Type$="Grösse"
  ElseIf Extra$="datenbank"
    Type$="Anzahl"
  ElseIf Extra$="domains"
    Type$="Typ"
  EndIf
  WinID=OpenWindow(#PB_Any,0,0, 195, 165, Extra$,#PB_Window_SystemMenu | #PB_Window_ScreenCentered,WindowID(10))
  OldGadgetList = UseGadgetList(WindowID(WinID))
  TextGadget(158, 0, 10, 50, 20, "AuftragID:")
  TextGadget(159, 0, 30, 80, 20, Extra$+"ID:")
  TextGadget(160, 0, 50, 50, 20, "Reseller:")
  TextGadget(161, 0, 70, 40, 20, Type$+":")
  TextGadget(162, 0, 90, 70, 20, "Beschreibung:")
  TextGadget(163, 0, 110, 70, 20, "RechnungID:")  
  StringGadget(150, 80, 10, 110, 20, "")
  StringGadget(151, 80, 30, 110, 20, "")
  ComboBoxGadget(152, 80, 50, 110, 20)
  StringGadget(153, 80, 70, 110, 20, "")
  StringGadget(154, 80, 90, 110, 20, "")
  StringGadget(155, 80, 110, 90, 20, "")  
  ButtonGadget(156, 170, 110, 20, 20, "+")
  ButtonGadget(157, 10, 140, 170, 20, "Speichern")  
  SetGadgetText(150,AuftragID$)

  Structure Reseller
    ID.l
    ResellerID.s
    Name.s
  EndStructure  
  
  Protected NewList Reseller.Reseller()
  DatabaseQuery(0, "SELECT * FROM Reseller")  
  i=0
  While NextDatabaseRow(0)
    name$ = GetDatabaseString(0,3)
    AddElement(Reseller())
    Reseller()\ID=i
    Reseller()\ResellerID=GetDatabaseString(0,1) 
    Reseller()\Name=name$  
    AddGadgetItem(152,i,name$)
    i+1  
  Wend
  FinishDatabaseQuery(0)
  SetGadgetState(152,0)
 
  SelectElement(Reseller(),GetGadgetState(152))
  DatabaseQuery(0, "SELECT "+Extra$+" FROM Reseller WHERE ResellerID='"+Reseller()\ResellerID+"'") 
  While NextDatabaseRow(0)   
    SetGadgetText(153,Str(GetDatabaseLong(0,0)))    
  Wend
  FinishDatabaseQuery(0)
    
  P_Return$=""
  Quit20=0
  Repeat
    WinEvent=WaitWindowEvent()
    If Winevent = #PB_Event_Gadget
      If EventGadget() = 175      ;rechnung
        If GetGadgetText(156)
          SetGadgetText(155,AddRechnung(GetGadgetText(150),"",""))        
        EndIf     
      ElseIf EventGadget() = 152 ;reseller
        SelectElement(Reseller(),GetGadgetState(152))
        DatabaseQuery(0, "SELECT "+Extra$+" FROM Reseller WHERE ResellerID='"+Reseller()\ResellerID+"'") 
        While NextDatabaseRow(0)   
          SetGadgetText(153,Str(GetDatabaseLong(0,0)))    
        Wend
        FinishDatabaseQuery(0)
      ElseIf EventGadget() = 157 ;save
        ID$=GetGadgetText(151)
        If ID$<>"" And GetGadgetText(150)<>""
          SelectElement(Reseller(),GetGadgetState(152))
          DatabaseUpdate(0,"INSERT INTO "+Extra$+" ("+Extra$+"ID, AuftragID, ResellerID, "+Type$+", Beschreibung, RechnungsID) VALUES ('"+ID$+"','"+GetGadgetText(150)+"','"+Reseller()\ResellerID+"','"+GetGadgetText(153)+"','"+GetGadgetText(154)+"','"+GetGadgetText(155)+"')")
          FinishDatabaseQuery(0)
          CloseWindow(WinID)
          UseGadgetList(OldGadgetList)    
          ProcedureReturn ID$
        EndIf   
      EndIf  
    EndIf    
  Until WinEvent=#PB_Event_CloseWindow Or Quit20=1  
  CloseWindow(WinID)
  UseGadgetList(OldGadgetList)    
  ProcedureReturn P_Return$  

EndProcedure



If ConnectDatabase("myodbc","root","") = 0
  MessageRequester("ERROR","Cannot connect to Database")
  End
EndIf

Open_Window_0()

AddHistory("Kunden","Kunden","")
History()

Global Kunde.s

Repeat
  WinEvent=WaitWindowEvent()
  Select WinEvent
  Case #PB_Event_Gadget
    If EventGadget()=51+GetGadgetState(#Panel_2)
      If EventType()=#PB_EventType_LeftDoubleClick 
        table$=GetTabName()
        Select table$
        Case "Kunden"
          KID$=GetGadgetItemText(51+GetGadgetState(#Panel_2),GetGadgetState(51+GetGadgetState(#Panel_2)),0)
          Kunde = KID$
          DelTabIfExist("Aufträge")
          AddHistory("Aufträge","Aufträge"," WHERE KundenID='"+KID$+"'") 
          SetGadgetState(#Panel_2,1)
        EndSelect
      EndIf 
    EndIf
  Case #PB_Event_Menu
    MenuEvent=EventMenu()
    Select MenuEvent
    
      ;-Menu Kunden
      Case #MENU_9
        AddKunde()
      Case #MENU_11
        DelKunde() 
      Case #MENU_12
        ClearHistory()
        AddHistory("Kunden","Kunden","")
       
      ;-Menu Aufträge   
      Case #MENU_13
        If GetTabName()="Aufträge" And Kunde<>""          
          AddAuftrag(Kunde)
        Else
          AddAuftrag("")
        EndIf       
      Case #MENU_15
       ;"Löschen"
      Case #MENU_16
        ClearHistory()
        AddHistory("Aufträge","Aufträge","")
       
      ;-Menu Hosting
      Case #MENU_17
       ;"Neu"
      Case #MENU_19
       ;"Löschen"
      Case #MENU_20
        ClearHistory()
        AddHistory("Hosting","Hosting","")
       
      ;-Menu Bezahlungen
      Case #MENU_21
        ClearHistory()
        AddHistory("Bezahlungen","Bezahlungen","")
      Case #MENU_22
       ;"Bezahlen/Erhalten"
      Case #MENU_23
       ;"Liste Leeren"
       
      ;-Menu Anzeigen
      Case #MENU_24
        ShowWin(101,"Konto","")
      Case #MENU_25 
        ShowWin(102,"Aufträge","")
      Case #MENU_26
        ShowWin(103,"Arbeitspläne","")
      Case #MENU_28
        ShowWin(104,"Hosting","SELECT * FROM Hosting")
      Case #MENU_29
        ShowWin(105,"Webspace","SELECT * FROM Webspace")
      Case #MENU_30
        ShowWin(106,"Mailspace","SELECT * FROM Mailspace")
      Case #MENU_31
        ShowWin(107,"Traffic","SELECT * FROM Traffic")
      Case #MENU_32
        ShowWin(108,"Datenbank","SELECT * FROM Datenbank")      
    EndSelect
  Case #PB_Event_CloseWindow
    Quit=1   
  EndSelect  
Until Quit=1
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
edel
Beiträge: 3667
Registriert: 28.07.2005 12:39
Computerausstattung: GameBoy
Kontaktdaten:

Beitrag von edel »

Wenn der Debugger meldet " The specified 'WindowID' is not valid", dann
heisst das, dass du eine ungueltige Fenster Nummer uebergeben hast.
Benutzeravatar
unix
Beiträge: 361
Registriert: 15.02.2005 19:25
Wohnort: Zwischen Coburg und Bamberg :-)
Kontaktdaten:

Beitrag von unix »

ja schon klar aber das sollte eine gültige nummer sein dank UseGadgetList() ermittelt ja die alte ID die es auch gibt

Code: Alles auswählen

WinID=OpenWindow(#PB_Any, 497, 417, 165, 200, "Neuer Kunde",  #PB_Window_SystemMenu | #PB_Window_ScreenCentered)
  OldGadgetList = UseGadgetList(WindowID(WinID)) 
CloseWindow(WinID)
  UseGadgetList(OldGadgetList)
und vorher gibt es scho ein fenster

oder braucht da open window nen parentWindow
Hier steht normalerweise die Putzfrau drin,
die hat aber Urlaub.
MfG : Unix
Benutzeravatar
Bisonte
Beiträge: 2468
Registriert: 01.04.2007 20:18

Beitrag von Bisonte »

Du schliesst ein Fenster und willst auf dessen Gadgetliste zugreifen...

Das kann nicht klappen.

Ich frag mich sowieso, warum du die WinID speicherst ... wenn das Fenster eh gleich wieder geschlossen wird....
PureBasic 6.21 (Windows x86/x64) | Windows11 Pro x64 | AsRock B850 Steel Legend Wifi | R7 9800x3D | 64GB RAM | GeForce RTX 5080 | ThermaltakeView 270 TG ARGB | build by vannicom​​
Antworten