Foro | | | | H.Brill | Ciao, Ich bräuchte etwas Aiuto. Ich will ein Tourenplan- programm machen und bekomme die Abwicklung mit einem TabControl nicht so hin.
Im oberen LV soll der Kundenstamm rein. Unten im Tabcontrol sollen per die einzelnen Tage (Mo - FR) LVs erstellt werden. In diese sollen nun die einzelnen Kunden übernommen werden. So sind per jeden Tag verschiedene Kunden drin. Später will ich dann noch ein Ausdrucken der versch. Tage sowie Löschen, Verschieben usw. einbauen.
Das Problem ist, wenn ich einen Kunden im Kundenstamm anklicke, einen Tab-Reiter auswähle und mit <Setze> reinkopieren will, dann erscheinen die Kunden bei jedem Tag (Tab).
Scheint nur ein kleiner Fehler zu sein. Was habe ich übersehen ? KompilierenMarkierenSeparierenDeclare TabControl&,ende%, hd%, OK%, nz%, sp1%, lade1%, setze%
Declare index1%, tabnr%
Declare Memo1&,Memo2&,Memo3&,lv1&, lv2&, lv3&, lv4&, lv5&, klv&, lvdll&
Declare text1$, Edits$, sfile$
Edits$ = "01111111"
$I Listview_Funktionen.inc
Proc SpeichereKlv
Declare x&
Declare bereich#
IfNot sfile$ = ""
x&=GetNeededMemory(klv&,1)
Dim bereich#,x&
x&=ListviewToCsv(klv&,bereich#,0,0)
WriteFileQuick(addr(sfile$),bereich#,0,x&)
Dispose bereich#
EndIf
EndProc
Proc LadeKlv
Declare bytes&
Declare bereich#
bytes&=@FileSize(sfile$)
If bytes& > 0
Dim bereich#,bytes&
ReadFileQuick(addr(sfile$),bereich#,0,bytes&)
CsvToListview(klv&,bereich#,bytes&,8)
Dispose bereich#
EndIf
EndProc
lvdll&=usedll("Listview.dll")
hd% = @Create("Dialog",%HWnd,"Tourenplan - Programm von H.Brill",10,10,%MaxX - 100,%MaxY - 100)
nz% = @Create("Button", hd%, "Neue Zeile",10, 10, 80, 20)
sp1% = @Create("Button", hd%, "Speichern", 10, 40, 80, 20)
lade1% = @Create("Button", hd%, "Laden", 10, 70, 80, 20)
setze% = @Create("Button", hd%, "Setze", 10, 300, 80, 20)
Let klv&=CreateListview(hd%,%hinstance,0,$ffffff,-1,$31)
InsertColumn(klv&, " ", 20, 0)
InsertColumn(klv&, "Kdnr", 50, 0)
InsertColumn(klv&, "Name", 150, 0)
InsertColumn(klv&, "Wohnort", 150, 0)
InsertColumn(klv&, "Straße", 150, 0)
InsertColumn(klv&, "Telefon", 120, 0)
InsertColumn(klv&, "Verrechn.", 100, 0)
InsertColumn(klv&, "Preiszone", 100, 0)
ShowListview(klv&, 10, 100, 850, 150)
Let TabControl&=Create("TABCTRL",hd%,"Freitag",10,380,900,400)
InsertTab(TabControl&,0,"Donnerstag")
InsertTab(TabControl&,0,"Mittwoch")
InsertTab(TabControl&,0,"Dienstag")
InsertTab(TabControl&,0,"Montag")
Let lv1&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv1&, " ", 20, 0)
InsertColumn(lv1&, "Kdnr", 50, 0)
InsertColumn(lv1&, "Name", 150, 0)
InsertColumn(lv1&, "Wohnort", 150, 0)
InsertColumn(lv1&, "Straße", 150, 0)
InsertColumn(lv1&, "Telefon", 120, 0)
InsertColumn(lv1&, "Verrechn.", 100, 0)
InsertColumn(lv1&, "Preiszone", 100, 0)
ShowListview(lv1&, 10, 40, 800, 200)
Let lv2&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv2&, " ", 20, 0)
InsertColumn(lv2&, "Kdnr", 50, 0)
InsertColumn(lv2&, "Name", 150, 0)
InsertColumn(lv2&, "Wohnort", 150, 0)
InsertColumn(lv2&, "Straße", 150, 0)
InsertColumn(lv2&, "Telefon", 120, 0)
InsertColumn(lv2&, "Verrechn.", 100, 0)
InsertColumn(lv2&, "Preiszone", 100, 0)
ShowListview(lv2&, 10, 40, 800, 200)
Let lv3&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv3&, " ", 20, 0)
InsertColumn(lv3&, "Kdnr", 50, 0)
InsertColumn(lv3&, "Name", 150, 0)
InsertColumn(lv3&, "Wohnort", 150, 0)
InsertColumn(lv3&, "Straße", 150, 0)
InsertColumn(lv3&, "Telefon", 120, 0)
InsertColumn(lv3&, "Verrechn.", 100, 0)
InsertColumn(lv3&, "Preiszone", 100, 0)
ShowListview(lv3&, 10, 40, 800, 200)
Let lv4&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv4&, " ", 20, 0)
InsertColumn(lv4&, "Kdnr", 50, 0)
InsertColumn(lv4&, "Name", 150, 0)
InsertColumn(lv4&, "Wohnort", 150, 0)
InsertColumn(lv4&, "Straße", 150, 0)
InsertColumn(lv4&, "Telefon", 120, 0)
InsertColumn(lv4&, "Verrechn.", 100, 0)
InsertColumn(lv4&, "Preiszone", 100, 0)
ShowListview(lv4&, 10, 40, 800, 200)
Let lv5&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv5&, " ", 20, 0)
InsertColumn(lv5&, "Kdnr", 50, 0)
InsertColumn(lv5&, "Name", 150, 0)
InsertColumn(lv5&, "Wohnort", 150, 0)
InsertColumn(lv5&, "Straße", 150, 0)
InsertColumn(lv5&, "Telefon", 120, 0)
InsertColumn(lv5&, "Verrechn.", 100, 0)
InsertColumn(lv5&, "Preiszone", 100, 0)
ShowListview(lv5&, 10, 40, 800, 200)
InitMessages(hd%)
SelectColumnEdits(klv&, addr(Edits$))
EnableEdits(klv&, 1)
EnableEdits(lv1&, 1)
EnableEdits(lv2&, 1)
EnableEdits(lv3&, 1)
EnableEdits(lv4&, 1)
EnableEdits(lv5&, 1)
If Equ(%key,2)
Let ende%=1
EndIf
Clear OK%
WhileNot Ok%
WaitInput
If @GetFocus(nz%)
SetItem klv&, "", "", "", "", "", "", "", ""
ElseIf @GetFocus(sp1%)
sfile$ = @SaveFile$("Datei speichern", "TourNr.csv")
SpeichereKlv
ElseIf @GetFocus(lade1%)
sfile$ = @LoadFile$("Datei laden", "TourNr|*.csv")
LadeKlv
ElseIf @GetFocus(setze%)
index1% = GetSelectedLine(klv&)
tabnr% = @GetActiveTab(TabControl&)
Hier soll abhängig vom Reiter des Tabcontrols
in das entsprechende Listview reinkopiert werden
Case @Equ(tabnr%, 0) : CopyLineTo(klv&, lv1&, index1%, 0)
Case @Equ(tabnr%, 1) : CopyLineTo(klv&, lv2&, index1%, 0)
Case @Equ(tabnr%, 2) : CopyLineTo(klv&, lv3&, index1%, 0)
Case @Equ(tabnr%, 3) : CopyLineTo(klv&, lv4&, index1%, 0)
Case @Equ(tabnr%, 4) : CopyLineTo(klv&, lv5&, index1%, 0)
EndIf
If @Equ(%key, 2)
Ok% = 1
EndIf
Wend
@DestroyWindow(hD%)
CloseMessages(hd%)
End
|
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 20.01.2005 ▲ |
| |
| | | Nun - Du hast noch viele andere Problemchen in Deinem Source - aber so ists ein bisl besser (getfocus gesetzt). KompilierenMarkierenSeparierenDeclare TabControl&,ende%, hd%, OK%, nz%, sp1%, lade1%, setze%
Declare index1%, tabnr%
Declare Memo1&,Memo2&,Memo3&,lv1&, lv2&, lv3&, lv4&, lv5&, klv&, lvdll&
Declare text1$, Edits$, sfile$
Edits$ = "01111111"
$I Listview_Funktionen.inc
Proc SpeichereKlv
Declare x&
Declare bereich#
IfNot sfile$ = ""
x&=GetNeededMemory(klv&,1)
Dim bereich#,x&
x&=ListviewToCsv(klv&,bereich#,0,0)
WriteFileQuick(addr(sfile$),bereich#,0,x&)
Dispose bereich#
EndIf
EndProc
Proc LadeKlv
Declare bytes&
Declare bereich#
bytes&=@FileSize(sfile$)
If bytes& > 0
Dim bereich#,bytes&
ReadFileQuick(addr(sfile$),bereich#,0,bytes&)
CsvToListview(klv&,bereich#,bytes&,8)
Dispose bereich#
EndIf
EndProc
lvdll&=usedll("Listview.dll")
hd% = @Create("Dialog",%HWnd,"Tourenplan - Programm von H.Brill",10,10,%MaxX - 100,%MaxY - 100)
nz% = @Create("Button", hd%, "Neue Zeile",10, 10, 80, 20)
sp1% = @Create("Button", hd%, "Speichern", 10, 40, 80, 20)
lade1% = @Create("Button", hd%, "Laden", 10, 70, 80, 20)
setze% = @Create("Button", hd%, "Setze", 10, 300, 80, 20)
Let klv&=CreateListview(hd%,%hinstance,0,$ffffff,-1,$31)
InsertColumn(klv&, " ", 20, 0)
InsertColumn(klv&, "Kdnr", 50, 0)
InsertColumn(klv&, "Name", 150, 0)
InsertColumn(klv&, "Wohnort", 150, 0)
InsertColumn(klv&, "Straße", 150, 0)
InsertColumn(klv&, "Telefon", 120, 0)
InsertColumn(klv&, "Verrechn.", 100, 0)
InsertColumn(klv&, "Preiszone", 100, 0)
ShowListview(klv&, 10, 100, 850, 150)
Let TabControl&=Create("TABCTRL",hd%,"Freitag",10,380,900,400)
InsertTab(TabControl&,0,"Donnerstag")
InsertTab(TabControl&,0,"Mittwoch")
InsertTab(TabControl&,0,"Dienstag")
InsertTab(TabControl&,0,"Montag")
Let lv1&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv1&, " ", 20, 0)
InsertColumn(lv1&, "Kdnr", 50, 0)
InsertColumn(lv1&, "Name", 150, 0)
InsertColumn(lv1&, "Wohnort", 150, 0)
InsertColumn(lv1&, "Straße", 150, 0)
InsertColumn(lv1&, "Telefon", 120, 0)
InsertColumn(lv1&, "Verrechn.", 100, 0)
InsertColumn(lv1&, "Preiszone", 100, 0)
ShowListview(lv1&, 10, 40, 800, 200)
Let lv2&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv2&, " ", 20, 0)
InsertColumn(lv2&, "Kdnr", 50, 0)
InsertColumn(lv2&, "Name", 150, 0)
InsertColumn(lv2&, "Wohnort", 150, 0)
InsertColumn(lv2&, "Straße", 150, 0)
InsertColumn(lv2&, "Telefon", 120, 0)
InsertColumn(lv2&, "Verrechn.", 100, 0)
InsertColumn(lv2&, "Preiszone", 100, 0)
ShowListview(lv2&, 10, 40, 800, 200)
Let lv3&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv3&, " ", 20, 0)
InsertColumn(lv3&, "Kdnr", 50, 0)
InsertColumn(lv3&, "Name", 150, 0)
InsertColumn(lv3&, "Wohnort", 150, 0)
InsertColumn(lv3&, "Straße", 150, 0)
InsertColumn(lv3&, "Telefon", 120, 0)
InsertColumn(lv3&, "Verrechn.", 100, 0)
InsertColumn(lv3&, "Preiszone", 100, 0)
ShowListview(lv3&, 10, 40, 800, 200)
Let lv4&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv4&, " ", 20, 0)
InsertColumn(lv4&, "Kdnr", 50, 0)
InsertColumn(lv4&, "Name", 150, 0)
InsertColumn(lv4&, "Wohnort", 150, 0)
InsertColumn(lv4&, "Straße", 150, 0)
InsertColumn(lv4&, "Telefon", 120, 0)
InsertColumn(lv4&, "Verrechn.", 100, 0)
InsertColumn(lv4&, "Preiszone", 100, 0)
ShowListview(lv4&, 10, 40, 800, 200)
Let lv5&=CreateListview(TabControl&,%hinstance,0,$ffffff,-1,$31)
InsertColumn(lv5&, " ", 20, 0)
InsertColumn(lv5&, "Kdnr", 50, 0)
InsertColumn(lv5&, "Name", 150, 0)
InsertColumn(lv5&, "Wohnort", 150, 0)
InsertColumn(lv5&, "Straße", 150, 0)
InsertColumn(lv5&, "Telefon", 120, 0)
InsertColumn(lv5&, "Verrechn.", 100, 0)
InsertColumn(lv5&, "Preiszone", 100, 0)
ShowListview(lv5&, 10, 40, 800, 200)
InitMessages(hd%)
SelectColumnEdits(klv&, addr(Edits$))
EnableEdits(klv&, 1)
EnableEdits(lv1&, 1)
EnableEdits(lv2&, 1)
EnableEdits(lv3&, 1)
EnableEdits(lv4&, 1)
EnableEdits(lv5&, 1)
If Equ(%key,2)
Let ende%=1
EndIf
Clear OK%
WhileNot Ok%
WaitInput
If @GetFocus(nz%)
SetItem klv&, "", "", "", "", "", "", "", ""
setfocus (%hwnd)
ElseIf @GetFocus(sp1%)
sfile$ = @SaveFile$("Datei speichern", "TourNr.csv")
SpeichereKlv
setfocus (%hwnd)
ElseIf @GetFocus(lade1%)
sfile$ = @LoadFile$("Datei laden", "TourNr|*.csv")
LadeKlv
setfocus (%hwnd)
ElseIf @GetFocus(setze%)
index1% = GetSelectedLine(klv&)
tabnr% = @GetActiveTab(TabControl&)
Hier soll abhängig vom Reiter des Tabcontrols
in das entsprechende Listview reinkopiert werden
Case @Equ(tabnr%, 0) : CopyLineTo(klv&, lv1&, index1%, 0)
Case @Equ(tabnr%, 1) : CopyLineTo(klv&, lv2&, index1%, 0)
Case @Equ(tabnr%, 2) : CopyLineTo(klv&, lv3&, index1%, 0)
Case @Equ(tabnr%, 3) : CopyLineTo(klv&, lv4&, index1%, 0)
Case @Equ(tabnr%, 4) : CopyLineTo(klv&, lv5&, index1%, 0)
setfocus (%hwnd)
EndIf
If @Equ(%key, 2)
Ok% = 1
EndIf
Wend
@DestroyWindow(hD%)
CloseMessages(hd%)
End
Salve, iF |
| | | | |
| | Frank Abbing | Hallo Heinz,
uiui, da corre aber einiges schief. Ist auch überhaupt keine Listview.dll-Frage, sondern eine allgemeine Profanfrage.
Wie auch immer: Um per jeden Reiter des Tabcontrols eine eigene Anzeige zu erhalten, mußt du naturalmente deine Listviews (und naturalmente auch andere Controls) passend ein-und ausblenden! Nur ein Listview - das, welches zu dem aktuellen Reiter gehört - darf gerade angezeigt werden. Die anderen mußt du ausschalten (Showwindow). Ändert sich der Reiter (Abfrage mit Profans TabChanged()), dann muß das passende Listview eingeblendet werden... |
| | | | |
| | H.Brill | Hallo Frank, Danke per den Tipp. Werde es heute abend mal ausprobieren. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 21.01.2005 ▲ |
| |
| | H.Brill | Ciao, Habe endlich mein Problem gelöst und kann weitermachen. War nur ne Kleinigkeit.
Da hätte ich noch ne Frage :
Ich habe in meinen verschiedenen Listviews Checkboxen eingebaut ($4). Das Speichern der einzelnen Tage geht soweit auch. Nun möchte ich auch die Zustände der Checkboxen mit abspeichern, um sie beim späteren Laden wieder genauso per jedes Listview zu haben.
Muß ich dazu jedes Listview mit GetChecked() abklappern und in un extra File schreiben oder geht das auch einfacher ?
Oder kann man da bei den Funktionen CsvToListview und ListviewToCsv was machen (Verbesserungsvorschlag) ? |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 22.01.2005 ▲ |
| |
| | Frank Abbing | Hallo Heinz,
das würde naturalmente das Csv-Format hinfällig machen, sodass andere Programme diese File nicht mehr richtig laden könnten. Möchte ich auf keinen Fall. Du wirst per den Checkboxen-Stand eine zusätzliche File benötigen, evt. potuto ich dafür zwei Funktion machen, z.B. CheckboxStateToMem() und MemToCheckboxState(). |
| | | | |
| | H.Brill | Hallo Frank, Solche zwei Funktionen wären nicht schlecht. Ich denke, daß auch andere sowas brauchen können, zumal man dann nicht von Hand zu Fuß sondern mit zwei Funktionen arbeiten kann.
Am besten, daß man es mit WriteFileQuick und ReadFileQuick bequem auf Platte speichern bzw. lesen kann.
Kannst es dir mal überlegen. |
| | | Benutze XPROFAN X3 + FREEPROFAN Wir sind die XProfaner. Sie werden von uns assimiliert. Widerstand ist zwecklos! Wir werden alle ihre Funktionen und Algorithmen den unseren hinzufügen.
Was die Borg können, können wir schon lange. | 23.01.2005 ▲ |
| |
| | Frank Abbing | ...Grubbelprubbel... Ja, mach ich... |
| | | | |
| | Frank Abbing | Hallo nochmal,
sind in der Mache, die beiden Funktionen. |
| | | | |
| | Frank Abbing | Nochmal ich.
hab die Funktionen fertig und dir die Beta + Source zugeschickt. Teste mal, ob es das ist, was du gesucht hast. |
| | | | |
|
AnswerThemeninformationenDieses Thema hat 3 subscriber: |