Toon posts:

[ASP] Speciaal ORDER functie

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb even een vraag,

Ik heb een ASP script die een database uitleest die een autonummering heeft.

Maar als ik hem laat sorteren op de id (Is de autonum) dan krijg ik een lijst zoals onderstaande tabel:

1
10
11
12
13
14
15
16
17
18
19
2
20
21
..
29
3
30

Maar ik wil niet dat hij bijvoorbeeld na de 29 de 3 geeft maar gewoon de 30.

Dus hoe kan ik het maken dat hij zoals onderstaande laten zien:

1
2
3
4
5
6
7
8
9
10
11
12
..
19
20
enz. enz.

Wie kan mij iets daarover vertellen!

Alvaste bedankt

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 15-09 19:11

Crazy D

I think we should take a look.

Dan is het een autonummering die je in een stringveldje hebt gestopt. Of je zet nu in je SQL query geen ORDER BY neer.

Exact expert nodig?


Verwijderd

Topicstarter
(Sorry, is geen AutoNummering veld)

Ik roep vanuit een Acces 97 database met onderstaande code de gegevens eruit:

Wat is er dan fout aan?

OrdNummer = Request.QueryString("onum")

SQL_STRING = "SELECT * FROM SubEindbladen WHERE OrderNummer LIKE '" & OrdNummer & "' ORDER BY SubNummer"

DSN_CONN_STRING="DRIVER={Microsoft Access Driver (*.mdb)}; "
DSN_CONN_STRING=DSN_CONN_STRING & "DBQ=" & server.mappath("dbase/GeleKaart.mdb")

set DB_CONN=server.createobject("ADODB.Connection")
DB_CONN.Open DSN_CONN_STRING

Wie heeft er een oplossing :9

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Mak de kolom subnummer een numerieke kolom en het gaat goed. Je hebt 'm nu als string gedefinieerd

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 15-09 19:11

Crazy D

I think we should take a look.

Idd is het een stringveld. Datatype wijzigen naar number.

Exact expert nodig?


Verwijderd

Topicstarter
Dan kan ook niet want er is kans dat er een aantal punten in voorkomen:

Bijv: 10.212.87.2231
Maar het kan ook zijn: 1102

En als ik er dan een nummeriek veld van maakt gaat acces met de punten stoeien :(

Iemand nog een oplossing!

  • disjfa
  • Registratie: April 2001
  • Laatst online: 12-05 15:11

disjfa

be

als ze opvolgend zijn kun je er gewoon een autonummeringsveldje bij zetten :? :)

disjfa - disj·fa (meneer)
disjfa.nl


Verwijderd

Topicstarter
Dat is dus ook niet het geval

Ons bedrijf mixt alles door elkaar dus dat gaat ook niet op!

Maar bestaad er geen stukje ASP code die eerst de records uit de database haalt met als id 1 karakter.

Als dat gebeurd is dan record die 2 karakters lang zijn

enz. enz. enz.

Verwijderd

kun je niet dat ene veld uit de db halen en door sql gelijk laten parsen als integer ofzo? alleen heb je dan denk ik wel een probleem met waarden zoals 13.45.1.345

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Op vrijdag 18 januari 2002 09:40 schreef jouwmobiel het volgende:
Dan kan ook niet want er is kans dat er een aantal punten in voorkomen:

Bijv: 10.212.87.2231
Maar het kan ook zijn: 1102

En als ik er dan een nummeriek veld van maakt gaat acces met de punten stoeien :(

Iemand nog een oplossing!
Wat is het nou, ik snap er geen ruk van, in je voorbeeld staan volgens mij hele andere dingen.

  • Skinny
  • Registratie: Januari 2000
  • Laatst online: 13-09 23:09

Skinny

DIRECT!

code:
1
2
3
SELECT <velden>
FROM <tabel>
ORDER BY ordernummer, len(ordernummer);

Resultaat :
Afbeeldingslocatie: http://www.endoria.net/upload/?bekijk=1011345745

SIZE does matter.
"You're go at throttle up!"


  • GdeKeijzer
  • Registratie: Januari 2001
  • Laatst online: 12-06 10:50

GdeKeijzer

Asjemenou?

Misschien kun je een omschrijving geven van wat nu fysiek de inhoud van de DB is en wat je hoopt te kunnen weergeven middels je ASP-script. Tot nog toe word ik er nog niet veel wijzer van.

Niet omdat het moet, maar omdat het kan....


Verwijderd

Topicstarter
Ik heb dus in mijn database bij OrderNummer een aantal ordernummers staan, maar de opbouw van onze ordernummer binnen ons bedrijf is heel verschillend.

Dus de ene is 1230, maar de andere weer 75.839.2 en de andere weer 99.002.00.

Maar het rotte is dat hij wel alles netjes sorteerd, maar hij laat niet eerst bij de laagste waarde! En als ik het veld OrderNummer nummeriek maakt en ik maak een nieuw ordernummer aan, bijv: 20.30.40 maakt acces er 203040 van!!!

Daarom sla ik ze op in een tekst-string want dan blijven de punten bestaand.

Ik hoop dat jullie het een beetje begrijpen:

Ik had eigenlijk gehoopt dat de code van Skinny zou werken, maar ik heb hem op een aantal manieren geprobeerd, maar hij geeft of een fout, of hij doet maar één van bijde code's

Wie weet er misschien wat :'(

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 15-09 19:11

Crazy D

I think we should take a look.

Beetje twijfelachtige ordernummers. Ik weet niet wat de gedachtegang is om ordernummer 1.1 , 1.2, 1.2.1, etc te maken is, maar ik zou me afvragen of je dat wel wilt als ordernummer.

Probeer eens iets als
SELECT ordernummer
FROM tabelletje
ORDER BY Right(Space(10) & ordernummer, 10)

Waarbij 10 de max lengte van het ordernummer-field is.
Kan alleen zijn dat de nummers met een . erin niet helemaal smooth gesorteerd worden, aangezien 10 (in ascii waardes) kleiner is dan 1.1 (ascii van 0 is kleiner dan de ascii code van de . en daar sorteerd ie op). Maar 1, 2, .., 10 wordt wel goed gesorteerd.
(handig dat je in een Access query VBA mag gebruiken ;))

Exact expert nodig?


Verwijderd

Topicstarter
Bedankt Cray_D Dat is wat ik zocht!!!!

Bedankt voor het geven van de goede code :9 :P :)

Inderdaad als ik met ordernummers met verschillende aantallen punten er in werkt dan doet hij ze inderdaad niet helemaal netjes op volgorde, maar het is best zo, dan gebruiken de mensen maar de zoekfunctie :)

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 15-09 19:11

Crazy D

I think we should take a look.

Op vrijdag 18 januari 2002 11:46 schreef jouwmobiel het volgende:
Bedankt Crazy_D Dat is wat ik zocht!!!!

Bedankt voor het geven van de goede code :9 :P :)
*D

En toch zou ik nadenken over je ordernummers Afbeeldingslocatie: http://gathering.tweakers.net/global/smileys/puh2.gif Waarom willen ze per se zulke vage ordernummers gebruiken...Afbeeldingslocatie: http://gathering.tweakers.net/global/smileys/puh2.gif

Exact expert nodig?


Verwijderd

Topicstarter
Helaas kan ik die niet aanpassen maar dat ligt aan de Administratie en projectleiders van ons bedrijf :(

Maar zo vind ik het prima toch!

Verwijderd

Topicstarter
VREEMD, als ik een overzicht wil van de ordernummers met onderstaande code krijg ik het netjes zoals het de bedoeling is:

SQL_STRING = "SELECT * FROM GeleKaart ORDER BY Right(Space(10) & OrderNummer, 10)"

Maar als ik dan op een ordernummer klikt dan krijg ik een lijst met alle subnummer van de aangeklikte ordernummer. Ik vraag ze op met volgende SQL_STRING:

SQL_STRING = "SELECT * FROM SubEindbladen WHERE OrderNummer LIKE '" & OrdNummer & "' ORDER BY Right(Space(10) & OrderNummer, 10)"

Maar als ik dan de subnummers opvraagt dan krijg ik een beetje een verkeerde volgorde:

SubNummer Opdrachtgever NaamProject
5
9999
93
92
91
90
80

enz. enz.

Hoe los ik dit op

  • Goodielover
  • Registratie: November 2001
  • Laatst online: 18-08 11:34

Goodielover

Only The Best is Good Enough.

Wat dat je van:
code:
1
order by to_num(replace(ordernummer,'.',''))

dit werkt in Oracle (denk ik) ik weet niet of MySQL dit ook kan.
Anders moet je er iets van maken in de trant van:
code:
1
2
3
4
select ordernummer
    ,to_num(replace(ordernummer,'.',''))
from   orders
order by 2

Ik begrijp uit jouw input tot nu toe dat de puntjes alleen voor opmaak van het ordernummer is, net zoiets als puntjes voor duizend, miljoen enz.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Op vrijdag 18 januari 2002 11:55 schreef jouwmobiel het volgende:
Helaas kan ik die niet aanpassen maar dat ligt aan de Administratie en projectleiders van ons bedrijf :(

Maar zo vind ik het prima toch!
Stuur ze op een DB cursus of laat ze hun bek houden, smoesjes als het is zoals het is moet je niet nemen.
Op brakke databases moet je niet gaan programmeren maar terug naar af, eerst DB goed dan de applicatie goed.
Als je projectmanagers/seniors dat niet begrijpen adviseer ik je sterk een te surfen naar www.monsterboard.nl

Verwijderd

Topicstarter
OEPS !!!!

Ik heb zelf een foutje gemaakt, want al wil ik de "subnummers" netjes zetten dan moet ik ze wil op "subnummer" laten soorteren, maar niet op "ordernummer", want het ordernummer is bij alle subnummers gelijk.

Waar een half uurtje luchpause wel niet goed voor is :)

Maar nogmaals bedankt voor al jullie reply's

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 15-09 19:11

Crazy D

I think we should take a look.

Op vrijdag 18 januari 2002 12:18 schreef raptorix het volgende:
Stuur ze op een DB cursus of laat ze hun bek houden, smoesjes als het is zoals het is moet je niet nemen.
Op brakke databases moet je niet gaan programmeren maar terug naar af, eerst DB goed dan de applicatie goed.
Agree.
([flame mode on]zou je ze dat bij Exact ook ff kunnen vertellen?[flame mode off])

Hebben ze ook nog verteld _waarom_ ze zulke ordernummers willen hebben? Ze kunnen wel zeggen dat het nu goed werkt, maar ja, als ik in een auto stap zal 't ook best goed komen. Allean heb ik geen rijbewijs, dus 't is allemaal relatief...

Ik kan op zich wel wat dingen bedenken waarom ze order 10.1 moeten kunnen gebruiken, maar alle ideeën die ik heb waarom je dat zou doen (zoals bv versies (offerte en order systeem in 1), suborders (je besteld 1 auto, intern heb je dan o.a. een order voor 4 banden)), maar al die dingen zijn uitstekend (zo niet beter) op andere manieren op te lossen. En ik begin wel erg nieuwsgierig te worden :P

Exact expert nodig?


Verwijderd

Topicstarter
Ons systeem zit heel anders in elkaar dan jullie denken, ik werk bij GTI (Elektro technisch install. bedrijf) waar ze klussen aannemen. Als er een nieuwe klus is krijgt dit een ordernummer, bijv: 10.230.20. Maar aan zo'n klus doe je niet alleen maar 1 draadje aansluiten, maar er komt dus nog veel meer bij kijken. Dus elke klus die zo op een bepaalde lokatie uitvoeren (Bijv. Shell, Unilever, enz.) word allemaal onder het zelfde ordernummer opgeslagen maar krijgt allemaal een apart Subnummer.

Dus 1 ordernummer kan wel 1000 of meer subnummers bevatten! En nu ben ik het aan het maken dat mensen via de intranet-site van GTI alles in kunnen vullen en uitlezen, en als ze bijvoorbeeld de totaal gewerkte uren per ordenummer willen weten hoeven ze maar op de knop te drukken en de ASP pagina berekend alle gewerkte uren van ALLE subnummers die in 1 ordernummer staan!!!

Snappen jullie een beetje wat de bedoeling is!

Oja, ik zit nog met een probleempje:

Ik wil graag als mensen een bedrag invoeren en hij wordt opgeslagen door het asp script. En er is bijvoorbeel 20 ingevoerd, dat de ASP script hem opslaat als 20.00

En bijv. 23.5 omzet naar 23.50

Ook moet hij het liefst als er een , in wordt gevoerd dat hij hem omvormd naar een .

Ik heb zelf al wat zitten rommelen, met:
Split(Uurloon, ".") en dergelijke, maar ik kom niet echt verder :'(

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Lijkt me duidelijk voorbeeld van een 1 op meer relatie, dit ga je niet bij elkaar etteren met gekunselde ordernummers maar dit dient gewoon opgenomen te worden in een aparte table.

  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Je komt niet verder omdat het je kennelijk ontbreekt aan basis kennis, uiteraard kunnen we je die functies nu voorkouwen, aangezien dit een opbouwend forum is zullen we een opbouwend antwoord geven:

Ga gewoon eens naar site over vbscript en bekijk eens wat string functions er zijn, kijk daarnaast eens naar de format functies daar vind je eigenlijk al de functies die je nodig zult hebben om je probleem op te lossen.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 15-09 19:11

Crazy D

I think we should take a look.

Projectadministratie. Kan nog steeds met normale doorlopende ordernr's, maar goed, zo werken ze nu eenmaal en ze zullen de boel vast niet omgooien omdat een paar nerds in /14 vinden dat zulke ordernr's bagger zijn :P

Als je db veld gewoon een double is, wordt 20 automatisch 20.00000000 . FormatNumber is dan de trick om 'm te uh formatteren :)
23.5 geldt hetzelfde voor. Enigste lastige is opslaan, als . decimaalteken is op de server, en ze typen een , in. Maar dat kun je vrij makkelijk Replace'n.

Exact expert nodig?


  • raptorix
  • Registratie: Februari 2000
  • Laatst online: 17-02-2022
Het gaat erniet om hoe ordernrs zijn opgebouwt, dat is opzich okidoki, het gaat erom op de manier waarop ze opgeslagen worden, dat is niet correct.

  • Nexopheus
  • Registratie: Juni 2001
  • Laatst online: 28-01 13:50
Normaliseren !!!!! :o

Wat niet kan is nog nooit gebeurd

Pagina: 1