![]() |
Anzeige:
|
|
|||||||
| Dlls, Includes, Units & Prozeduren Alles zu den Themen Dlls, Includes, Units & Prozeduren |
|
![]() |
|
|
LinkBack | Themen-Optionen | Ansicht |
|
|
#1 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 28.01.2010
Ort: bayerischer Untermain
Beiträge: 84
|
Servus Frank Beim Ausprobieren der dbftocsv.prf zerhackt er mir das Datum unabhängig vom eingestellten Format (mit oder ohne Punkte) und nimmt das letzte Zeichen rüber in die nächste Spalte. Statt: Datum | KdNr 2010.01.28 | 0815 macht Listview draus: 2010.01.2 | 80815 Ne Idee, woran das liegen könnte? Beste Grüsse: mk
|
|
|
|
|
|
|
#2 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.091
|
Servus,
wie heisst der Quellcode genau? Ein Code mit diesem Namen ist gar nicht im Paket. Oder poste einfach mal diesen Quellcode, möglichst klein.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#3 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 28.01.2010
Ort: bayerischer Untermain
Beiträge: 84
|
Ich hab aus dem DLL-Paket ein Beispielprogramm genommen, und erprobe damit grad den Umgang mit listview.
Code:
Declare bereich#,listview&,lvdll&,text$,bytes&,x&,y&,z&, hGrid&
Def GetSysColor(1) !"USER32","GetSysColor"
$I Listview_Funktionen.inc
lvdll&=usedll("Listview.dll")
SetTrueColor 1
Windowstyle 256
window 100,100
Windowtitle "DBF Datei einlesen (mit automatischer Spaltenbildung)"
hGrid& = @Create("Window", %hWnd, " Vorgänge", ((%MaxX-1080)/2)+%MaxX, (%MaxY-1000)/2, 1080, 1000)
'
'Cls GetSysColor(15)
listview&=CreateListView(hGrid&,%hinstance,-1,Rgb(255,255,255),-1,$421) '24
text$="XBAUST.DBF"
bytes&=@FileSize(text$)
If bytes&>0
Dim bereich#,bytes&+1
ReadFileQuick(addr(text$),bereich#,0,bytes&) ' Dbf-Datei laden
bytes&=DbfToCsv(bereich#,bytes&,0,0,2) ' Dbf konvertieren nach Csv
x&=CsvToHeader(listview&,bereich#,addr(y&)) ' Automatisch Spalten aus Csv-Datei erstellen
CsvToListview(listview&,(bereich#+y&),(bytes&-y&),x&) ' Csv Datei als Items in Listview einlesen
Dispose bereich#
EndIf
SetColumnName(listview&,"BNr.",0)
SetColumnWidth(listview&,0,40)
SetColumnName(listview&,"Beleg",1)
SetColumnWidth(listview&,1,-1)
SetColumnName(listview&,"Nr.",2)
SetColumnWidth(listview&,2,40)
SetColumnName(listview&,"Datum",3)
SetColumnWidth(listview&,3,80)
SetColumnName(listview&,"KdNr.",4)
SetColumnWidth(listview&,4,-2)
AutoSortListview listview&,1,1,1,1
ShowListView(listview&,16,16,760,540)
InitMessages(%hwnd)
x&=GetColumns(listview&)
y&=GetLines(listview&)
text$="DBF Datei einlesen (mit automatischer Spaltenbildung) [Spalten "+Str$(x&)+"] [Zeilen "+Str$(y&)+"]"
Windowtitle text$
While 1
waitinput
Case %key=2:BREAK
EndWhile
CloseMessages(%hwnd)
freedll lvdll&
$I Listview_Dispose.inc
End
|
|
|
|
|
|
#4 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.091
|
Kannst du die Dbf auch posten? Vielleicht versteckt sich der Fehler dort.
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#5 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 28.01.2010
Ort: bayerischer Untermain
Beiträge: 84
|
die DBF ist neu erstellt, erst zwo Zeilen lang, sollte kein Problem sein.
http://www.fandomobserver.de/files/XBAUST.dbf |
|
|
|
|
|
|
#6 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Bei dieser einfachen Art, eine dbf zu laden und speichern enstehen immer wieder Probleme. Das Datums-Feld in der dbf in Typ C (8 ohne 10 mit Trenner) ändern.
Da es auch bei größeren MEMO-Feldern Probleme gibt, arbeite ich immer nur mit z.B. dbf ins Listview laden: Code:
@dbUse(#1)
@dbGo("TOP")
WhileLoop &dbRecCount
Field1$ = @Trim$(@dbGetField$(1))
Field2$ = @Trim$(@dbGetField$(2))
Field3$ = @trim$(@dbGetField$(3))
Field4$ = @Trim$(@dbGetField$(4))
Case @val(@dbGetField$(5)) <> 0 : Field5$ = @trim$(@dbGetField$(5)) 'num-Feld aber keine Anzeige wenn 0
Field6$ = @Mid$(@dbGetField$(6),7,2) +"." + @Mid$(@dbGetField$(6),5,2)+ "." + @Mid$(@dbGetField$(6),1,4) 'Datums-Feld
Field7$ = @str$(&dbRecNo) ' zum Speichern, im Listview 0 breit
long bereich#,0=addr(Field1$)
long bereich#,4=addr(Field2$)
long bereich#,8=addr(Field3$)
long bereich#,12=addr(Field4$)
long bereich#,16=addr(Field5$)
long bereich#,20=addr(Field6$)
long bereich#,24=addr(Field7$)
SItem(listview_I&,bereich#,63)
@dbGo(">")
EndWhile
@dbClose(#1)
Dispose bereich#
Code:
Dim bereich#,512
@dbOpen(#1,Inventar_dbf$)
@dbUse(#1)
x1%=0
While x1% < GetLines(listview_I&)
GetItemText(listview_I&,bereich#,8,x1%)
Aend_Mitgl& = Val(String$(bereich#,0))
@dbGo(Aend_Mitgl&)
y1% = 1
While y1%<9
GetItemText(listview_I&,bereich#,(y1% - 1),x1%)
text$=String$(bereich#,0)
IF y1% = 6
text$=@Mid$(text$,7,4) + @Mid$(text$,4,2)+ @Mid$(text$,1,2)
ElseIf y1% = 7
text$=@Mid$(text$,7,4) + @Mid$(text$,4,2)+ @Mid$(text$,1,2)
EndIf
@dbPutField(y1%,text$)
y1% = y1% + 1
EndWhile
@dbPutRec(0)
x1% = x1% + 1
EndWhile
@dbClose(#1)
Dispose bereich#
Geändert von THFR (29.01.2010 um 02:28 Uhr) |
|
|
|
|
|
#7 (Direktlink) |
|
Super-Moderator
![]() Registriert seit: 05.02.2009
Ort: Westliches NRW
Alter: 44
Beiträge: 5.091
|
Danke, Thomas!
__________________
Gruß, Frank ![]() Webpage http://frabbing.bplaced.net mit Freeware - Tools, Spiele und Grafiken. |
|
|
|
|
|
#8 (Direktlink) |
|
Ist öfter hier
![]() Registriert seit: 28.01.2010
Ort: bayerischer Untermain
Beiträge: 84
|
mit den problematischen Datumsfeldern. Das Abspeichern als Typ C statt D klappt prima. Und ich kann sogar mit ReadFileQuick arbeiten und auch die Umwandlung der Datumsanzeige mit @CToD$ und umgekehrt klappt...
|
|
|
|
|
|
#9 (Direktlink) |
|
Stammuser
![]() Registriert seit: 04.04.2009
Ort: Lübeck
Beiträge: 264
|
Ist aber halt nur eine Krücke. Die von Frank eingebaute Möglichkeit dbf-> Listview und Listview->dbf geht ja praktisch über dbf Export zur csv und umgekehrt. Wer dbf kennt, kennt auch die entstehenden Probleme beim Export und Import und wenn eine dbf nicht zwingend erforderlich ist, dann doch gleich alles in einer csv belassen.
Gruß Thomas |
|
|
|
![]() |
|
| Lesezeichen |
| Themen-Optionen | |
| Ansicht | |
|
|
Ähnliche Themen
|
||||
| Thema | Autor | Forum | Antworten | Letzter Beitrag |
| Listview.dll und sortieren nach Datum | Ralph Theobald | Dlls, Includes, Units & Prozeduren | 1 | 24.01.2010 20:21 |
| Wie baue ich listview ein? | Peter C. | Dlls, Includes, Units & Prozeduren | 12 | 31.03.2009 08:14 |
| listview | Peter C. | Spezielles | 6 | 29.03.2009 00:41 |
| Listview | Peter C. | Helfer & Tools | 3 | 28.03.2009 09:30 |
| Automatisch neues Datum/Altes Datum bei Wiederöffnung | Oli2004 | Office-Anwendungen | 3 | 20.08.2004 12:49 |