array nach datum sortieren
stefansvw
- javascript
Hallo,
mein Problem ist folgendes:
Ich habe eine While-Schleife in der jede Auftragsnummer durchlaufen wird. In dieser Schleife habe ich folgende if-Bedingung
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j] = auftr;
datum[j] = datum_auftr ;
j++;
}
das ergebis dabei ist, das in einer Tabelle alles angezeigt wird nur nicht nach Datum sondern nach Auftragsnummer sortiert.
Am Schluss soll es eigentlich so aussehen:
Beispiel:
Auftragsnummer Datum
12345 23.12.2006
34567 11.11.2006
68352 10.06.2006
12212 01.01.2006
usw.
die Ausgabe selbst sieht in etwa so aus
...
sHtml += " <td width='13%' class='textdat'>" + datumq(datum[0]) + " |<br><img src='blank.gif' width='1' height='2'> " + auftragsnr[0] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datumq(datum[1]) + " |<br> " + auftragsnr[1] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datumq(datum[2]) + " |<br> " + auftragsnr[2] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datumq(datum[3]) + " |<br> " + auftragsnr[3] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datumq(datum[4]) + " |<br> " + auftragsnr[4] +"</td>";
...
PS. datumq ist eine funktion welche das Datum das aus einer DB gehohlt wird in deutsch abwandelt.
Könnt Ihr mir einen Tip geben wie ich das alles nach datum sortieren kann?
Gruß
stefan
Hallo stefansvw,
hilft Dir vieleicht http://www.j-berkemeier.de/TableSort.html weiter. Kann auch nach Datum sortieren.
Gruß, Jürgen
Hallo stefansvw,
hilft Dir vieleicht http://www.j-berkemeier.de/TableSort.html weiter. Kann auch nach Datum sortieren.
Gruß, Jürgen
habe ein vergessen. Es sind ca. 1000 Auftragsnummern und die letzten fünf sollen automatisch geordnet angezeigt werden.
würde am liebsten ein Array erstellen das so ausschaut:
array[0][0] 12345
array[0][1] 23.12.2006
array[1][0] 68352
array[1][1] 10.06.2006
usw.
dann müsste es mit sort() doch gehen.
Nur mein Problem ist das ich weiß nicht wie ich es in der if-Bedingung
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j] = auftr;
datum[j] = datum_auftr ;
j++;
}
umsetzen kann
würde am liebsten ein Array erstellen das so ausschaut:
array[0][0] 12345
array[0][1] 23.12.2006
array[1][0] 68352
array[1][1] 10.06.2006
Und das Problem es zu tun?
dann müsste es mit sort() doch gehen.
stimmt.
Nur mein Problem ist das ich weiß nicht wie ich es in der if-Bedingung
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j] = auftr;
datum[j] = datum_auftr ;j++;
}umsetzen kann
if( auftragsline == auftr_li[temp] )
{
array[j][0] = auftr;
array[j][1] = datum_auftr ;
j++;
}
Struppi.
würde am liebsten ein Array erstellen das so ausschaut:
array[0][0] 12345
array[0][1] 23.12.2006
array[1][0] 68352
array[1][1] 10.06.2006Und das Problem es zu tun?
dann müsste es mit sort() doch gehen.
stimmt.
Nur mein Problem ist das ich weiß nicht wie ich es in der if-Bedingung
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j] = auftr;
datum[j] = datum_auftr ;j++;
}umsetzen kann
if( auftragsline == auftr_li[temp] )
{
array[j][0] = auftr;
array[j][1] = datum_auftr ;j++;
}
>
> Struppi.
Das habe ich nun versucht:
function Array2D(x,y)
{
this.items = new Array(x);
for(i=0;i<y;i++){this.items[i] = new Array(y);}
}
var auftragsnr = new Array2D(5,5);
auftragsnr.items[0][0] = "";
auftragsnr.items[1][0] = "";
auftragsnr.items[2][0] = "";
auftragsnr.items[3][0] = "";
auftragsnr.items[4][0] = "";
var datum = new Array2D(5,5);
datum.items[0][1] = "";
datum.items[1][1] = "";
datum.items[2][1] = "";
datum.items[3][1] = "";
datum.items[4][1] = "";
while(rc == 0)
{
....
if( auftragsline == auftr\_li[temp] )
{
auftragsnr.items[j][0] = auftr;
datum.items[j][1] = datum\_auftr;
j++;
}
...
}
Ausgabe:
sHtml += " <td width='13%' class='textdat'>" + datum.items[0][1] + " |<br><img src='blank.gif' width='1' height='2'> " + auftragsnr.items[0][0] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datum.items[1][1] + " |<br> " + auftragsnr.items[1][0] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datum.items[2][1] + " |<br> " + auftragsnr.items[2][0] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datum.items[3][1] + " |<br> " + auftragsnr.items[3][0] +"</td>";
sHtml += " <td width='13%' class='textdat'>" + datum.items[4][1] + " |<br> " + auftragsnr.items[4][0] +"</td>";
Ergebnis:
Überall ist nun kein Wert drin.
Was mache ich den hier noch falsch. Warum wird das Array nicht gefüllt?
Hallo stefansvw,
ich glaube, Du solltest Dir erst mal in der Doku ansehen, wie man mit 2D-Arrays umgeht und wie man diese Sortieren kann. Ohne Basics hat das wenig Sinn.
Gruß, Jürgen
Hallo stefansvw,
habe ein vergessen. Es sind ca. 1000 Auftragsnummern und die letzten fünf sollen automatisch geordnet angezeigt werden.
gut, mein Sortierer sortiert das ganze Array. Aber 1000 Zeilen sind kein Problem.
dann müsste es mit sort() doch gehen.
Du musst nur die richtige Vergleichsfunktion wählen, die die richtige Spalte im richtigen Format interpretiert. Mein Beispiel macht u.A. genau das.
Nur mein Problem ist das ich weiß nicht wie ich es in der if-Bedingung
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j] = auftr;
datum[j] = datum_auftr ;j++;
}umsetzen kann
siehe Struppis Antwort.
Gruß, Jürgen
hi,
Könnt Ihr mir einen Tip geben wie ich das alles nach datum sortieren kann?
Array.sort() nimmt eine Vergleichsfunktion als Parameter entgegen.
gruß,
wahsaga
hi,
Könnt Ihr mir einen Tip geben wie ich das alles nach datum sortieren kann?
Array.sort() nimmt eine Vergleichsfunktion als Parameter entgegen.
gruß,
wahsaga
mit dem habe ich es schon probiert doch leider ohne Erfolg
hi,
mit dem habe ich es schon probiert doch leider ohne Erfolg
Dann probiere es mit einer vernünftigen Problembeschreibung.
gruß,
wahsaga
hi,
mit dem habe ich es schon probiert doch leider ohne Erfolg
Dann probiere es mit einer vernünftigen Problembeschreibung.
gruß,
wahsaga
in dieser if-Bedingung
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j] = auftr;
datum[j] = datum_auftr ;
j++;
}
wird es ja nach dem sort() nicht so aussschauen
Auftragsnummer Datum
12345 23.12.2006
34567 11.11.2006
68352 10.06.2006
12212 01.01.2006
sondern eher so
12212 23.12.2006
12345 11.11.2006
34567 10.06.2006
68352 01.01.2006
dann stimmen ja die Auftragsnummer nicht mehr mit dem datum überein.
hi,
in dieser if-Bedingung [...]
wird es ja nach dem sort() nicht so aussschauenAuftragsnummer Datum
12345 23.12.2006
34567 11.11.2006
68352 10.06.2006
12212 01.01.2006sondern eher so
12212 23.12.2006
12345 11.11.2006
34567 10.06.2006
68352 01.01.2006dann stimmen ja die Auftragsnummer nicht mehr mit dem datum überein.
Dann hast du nicht sortiert, sondern die Daten lediglich vermurkst.
gruß,
wahsaga
hi,
in dieser if-Bedingung [...]
wird es ja nach dem sort() nicht so aussschauenAuftragsnummer Datum
12345 23.12.2006
34567 11.11.2006
68352 10.06.2006
12212 01.01.2006sondern eher so
12212 23.12.2006
12345 11.11.2006
34567 10.06.2006
68352 01.01.2006dann stimmen ja die Auftragsnummer nicht mehr mit dem datum überein.
Dann hast du nicht sortiert, sondern die Daten lediglich vermurkst.
gruß,
wahsaga
Wie würdest Du das machen ? So ?
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j].sort() = auftr;
datum[j].sort() = datum_auftr ;
j++;
}
hi,
Wie würdest Du das machen ?
Ich würde erst mal das Fullquoting einstellen, denn TOFU wird auch nicht leckerer, wenn du's umdrehst.
So ?
if( auftragsline == auftr_li[temp] )
{
auftragsnr[j].sort() = auftr;
datum[j].sort() = datum_auftr ;j++;
}
Nein.
Wert in Array packen, Array anschliessend sortieren.
Um "mehrdimensionales" Array nach bestimmten "Spalten" zu sortieren, Hilfsfunktion benutzen, wie im Beispiel zu Array.sort() erklärt.
gruß,
wahsaga