ich habe eine Faktura DBF und einen Index
Code: Alles auswählen
FAKTU->KDNR + FAKTU->ARTNR
wenn ich nun wissen will was der Kunde kauft kann ich einen SCOPE auf die Kundennummer machen.
Code: Alles auswählen
SEEK(FAKTU->KDNR)
IF FOUND()
SET SCOPE TO FAKTU->KDNR
Browse()
SET SCOPE TO
ENDIF
mögliche Lösungen :
1.) Indexkey mit UNIQUE
2.) "sammeln" in einem Array
Nachteile :
zu 1.) es wird nur der 1st Treffer, der meisten älter ist, angezeigt.
man bekommt keine Summe "wie oft" der Artikel zu welchem (Tages) Preis verkauft wurde.
zu 2.) das "sammeln" kann eine ganze Zeit lang dauern ( 500000 Sätze ) wo man nichts "sieht" ( Sand Uhr)
Frage : was kommt raus bei
Code: Alles auswählen
INDEX ON FAKTU->KDNR + FAKTU->ARTNR TO KDKAUFT UNIQUE DESCENDING
sonst noch eine Idee wie man zu einer (schnellen) Anzeige kommt ?
Nachtrag : so sieht der Cl*pper Code aus
Code: Alles auswählen
SEEK(cKDNR)
IF FOUND()
DO WHILE !EOF()
IF cARTNR <> FAKTU->ARTNR
cARTNR := FAKTU->ARTNR
Zeile++
SumAnZahl := 0
SumPreis := 0
ENDIF
IF Zeile = MaxRow() - nUnten
IF JaNein("Weiter J/N")
CLS
Zeile := nOben
ELSE
EXIT
ENDIF
ENDIF
SumAnZahl += FAKTU->Anzahl
SumPreis += FAKTU->Anzahl * FAKTU->Preis
@ Zeile, Spalte SAY cARTNR+"...mehr Text ..."+STR(SumAnZahl)+" "+STR(SumPreis)+" "+STR(SumPreis/SumAnZahl)
SKIP
IF cKDNR <> FAKTU->KDNR
EXIT
ENDIF
ENDDO
ENDIF