Seite 2 von 2

Verfasst: 27.05.2007 00:41
von hardfalcon
Ma ne ganz dumme Frage (schlagt mich bitte nicht): Warum willst du da morikus was neues Programmieren? Warum nimmst du nicht einfach ne Tabellenkalkulation oder ein Datenbankprogramm für den Job (neuerdings ist ja bei OpenOffice "out-of-the-Box" anscheinend auch ne recht brauchabre Stand-Alone-Datenbank dabei). Die Tatsache, dass man das Rad neu erfinden *könnte*, bedeutet ja nicht, das man nicht auch ein bestehendes Rad verwenden könnte... :allright:

Verfasst: 27.05.2007 00:52
von Xaby
OpenOffice.org Base :shock:

Nun war ich fast schon soweit, dass ich meinen Code posten konnte und dann kommst du. Kannst einem aber auch jeden Spaß verderben :cry:

Naja, sie hat noch ein zwei Fehler, werd ins Bett.

Aber ist einfach, übersichtlich und verständlich. Kann nicht viel, aber hier schon mal eine fehlerhafte Version:

Code: Alles auswählen

Enumeration
  #MainWin 
EndEnumeration


If OpenWindow(#MainWin, 0, 0, 420, 420, "Liste", #PB_Window_SystemMenu | #PB_Window_ScreenCentered) And CreateGadgetList(WindowID(0))
  ListIconGadget(2,  10, 280, 400, 130, "Kunde",200,#PB_ListIcon_FullRowSelect|#PB_ListIcon_GridLines|#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
  SetGadgetData(2,0) ; Anzahl der Spalten
  
  ListIconGadget(3,  10, 20, 150, 130, "Anzahl",50,#PB_ListIcon_FullRowSelect|#PB_ListIcon_AlwaysShowSelection)
  AddGadgetColumn(3,1,"ID",60)
  
  ListIconGadget(4, 235,5, 170, 110, "Bez.",70,#PB_ListIcon_FullRowSelect|#PB_ListIcon_MultiSelect|#PB_ListIcon_AlwaysShowSelection)
  AddGadgetColumn(4,1,"ID",30)
  AddGadgetColumn(4,2,"Preis",40)
  
   
  
  StringGadget(21,10,250,200,20,"Name")
  ButtonGadget(22,220,250,40,20,"\/") 
  
  SpinGadget( 31,180,50,40,20,0,100,#PB_Spin_Numeric)
  SetGadgetState(31,1)
  ButtonGadget( 32,180,70,40,20,"<--")
  ButtonGadget( 33,170,100,20,20,"-")
  ButtonGadget( 34,170,120,20,20,"+")
   
  StringGadget(41,250,120,100,20,"Bezeichnung")
  StringGadget(42,250,140,100,20,"ID001")
  StringGadget(43,250,160,100,20,"76",#PB_String_Numeric) ; Preis in Cent
  
  ButtonGadget( 44,360,120,30,60,"/\")
  
  
  ; ID, NAME, PREIS, Liter
  
  Repeat 
    Event=WaitWindowEvent()
    
    If GetActiveWindow()=#MainWin 
      If Event=#PB_Event_CloseWindow 
        Quit=1
      EndIf
   
    
    
    If Event=#PB_Event_Gadget
      GadgetNr=EventGadget()
      
      
      If GadgetNr=22 ; [ \/ ]  fügt Kunden hinzu (Kunden mit gleichem Namen stehen einfach so in der Liste, ohne eindeutige Identifizierung!)
        If GetGadgetText(21)<>"" ; oder schon mal vorhanden, müsste hier überprüft werden
          AddGadgetItem(2,-1,GetGadgetText(21))
        EndIf  
        
      EndIf
      If GadgetNr=44 ; [ /\ ]
        ;If GetGadgetText(41) ... fügt auch leere Felder und falsch ausgefüllte hinzu
        AddGadgetItem(4,-1,GetGadgetText(41)+Chr(10)+GetGadgetText(42)+Chr(10)+GetGadgetText(43))
      EndIf
      
      If GadgetNr=32 ; [<--]
        If GetGadgetState(31)<>0 And GetGadgetState(4)<>-1 ; Liste der Ware
          AddGadgetItem(3,-1,GetGadgetText(31)+Chr(10)+GetGadgetItemText(4,GetGadgetState(4),1))
          
          Debug CountGadgetItems(3)
          Debug GetGadgetData(2)
          
          While GetGadgetData(2) < CountGadgetItems(3)*2
            SetGadgetData(2,GetGadgetData(2)+2)
            AddGadgetColumn(2,GetGadgetData(2),"Anz.",40)
            AddGadgetColumn(2,GetGadgetData(2),"ID",40)
          Wend 
          
          SetGadgetItemText(2,GetGadgetState(31),GetGadgetItemText(3,CountGadgetItems(3)-1,0),(CountGadgetItems(3)-1)*2+1)
          SetGadgetItemText(2,GetGadgetState(31),GetGadgetItemText(3,CountGadgetItems(3)-1,1),(CountGadgetItems(3)-1)*2+2)
          
        EndIf  
      EndIf
      
      If GadgetNr=2 ; KundenAuswahl
        ;If GetGadgetState(2)>-1
          ClearGadgetItemList(3) ; Liste mit gekauften Getränken wird geleert
          
          If GetGadgetData(2)>1
          For i=1 To GetGadgetData(2); /2
            AddGadgetItem(3,-1,GetGadgetItemText(2,GetGadgetState(2),i))
            
          Next
          EndIf
        ;EndIf  
      EndIf
      
   
   EndIf 
  EndIf   
    
    
  Until Quit
  
EndIf

CloseWindow(0)

Verfasst: 27.05.2007 22:41
von skey-z
Danke für die Initative Xaby, werde mal schauen, was sich daraus machen lässt.

@hardfalcon

falls du meinen ersten Post gelesen hast, ich habe PB erst seit einigen Tagen und um mich einzuarbeiten erstelle ich halt ein paar Programme, die es vlt. auch schon zu Hauf gibt, aber es heist ja 'learning by doing', also mache ich es auch so.