Avatar billede zantiago Nybegynder
19. februar 2003 - 12:45 Der er 32 kommentarer og
1 løsning

Udregning i asp!

Hej Eksperter

Jeg skal lave et site der kan lave udregninger, lidt ala en faktura.

Jeg har 5 felter: quantity1, quantity2, osv...
Ligeledes 5 stk: price1, price2 osv...
Der skal man kunne trykke på en knap der udregner subtotal (tekstfelt), og i bunden total (tekstfelt). Derefter skal man trykke submit, så bliver resultaterne gemt i en database (SQL)..

Jeg har bikset lang tid med det, så jeg vil gerne se lidt kode :o)

På forhånd tak

/Bruhn
Avatar billede dk_akj Nybegynder
19. februar 2003 - 13:01 #1
Kom med det du har så ser vi om vi ikke kan rette det til så det virker.

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 13:53 #2
Det jeg prøvede før var java script, og det skal det ikke være her. Så jeg har ikke så meget at kigge på andet en ren html :o(

Håber stadig i kan hjælpe

/Bruhn
Avatar billede amd Nybegynder
19. februar 2003 - 13:59 #3
kan vi, kom med din kode
Avatar billede dk_akj Nybegynder
19. februar 2003 - 14:06 #4
OK, du har en form med de angivne felter den submitter du mod getdata.asp som ser sådan ud:

<%
dim conn, strConn

' opret databaseforbindelse
strConn  = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("din_db.mdb")
Set Conn = Server.CreateObject("ADODB.Connection")
Conn.open strConn

' hent mængder
quantity1 = request.form ("quantity1")
quantity2 = request.form ("quantity2")
quantity3 = request.form ("quantity3")
quantity4 = request.form ("quantity4")
quantity5 = request.form ("quantity5")

'hent priser
price1 = request.form ("price1")
price2 = request.form ("price2")
price3 = request.form ("price3")
price4 = request.form ("price4")
price5 = request.form ("price5")


sql = "insert into tabelnavn set (qty_1, qty_2, qty_3 ,.........) values (" & quantity1 &"," & quantity2 & "," & quantity3 &"," ....... & ")"
conn.execute (sql)

%>

HVordan din sqlstreng skal opbygges afhænger selvfølgeligt af hvordan din database ser ud.

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 14:45 #5
Database:
quantity1, quantity2......... + price1, price2........ + subtotal1, subtotal2..... + total

Har du så mulighed for at give mig en præcis SQL nu?
Avatar billede zantiago Nybegynder
19. februar 2003 - 15:01 #6
HUSK, den skal gerne kunne udregne det inden den opdaterer databasen, så man lige ser totalen inden man submitter!! c",)
Avatar billede dk_akj Nybegynder
19. februar 2003 - 15:02 #7
hvad skal subtotal være ??

Visning af subtotal laves lettes i javascript clientside.

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 15:05 #8
quantity1 + price1 = subtotal1
quantity2 + price2 = subtotal2
quantity3 + price3 = subtotal3
quantity4 + price4 = subtotal4
quantity5 + price5 = subtotal5

Subtotal1 + Subtotal2 + Subtotal3 + Subtotal4 + Subtotal5 = Total
Avatar billede dk_akj Nybegynder
19. februar 2003 - 15:06 #9
Ok men der er vel quantity1 * price1 = subtotal1 ??

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 15:09 #10
Doohhhh - Ja selvfølgelig.. :o)
Avatar billede dk_akj Nybegynder
19. februar 2003 - 15:14 #11
quantity1 = request.form ("quantity1")
quantity2 = request.form ("quantity2")
quantity3 = request.form ("quantity3")
quantity4 = request.form ("quantity4")
quantity5 = request.form ("quantity5")

'hent priser
price1 = request.form ("price1")
price2 = request.form ("price2")
price3 = request.form ("price3")
price4 = request.form ("price4")
price5 = request.form ("price5")

' subtotaler
sub1 = quantity1 * price1
sub2 = quantity2 * price2
sub3 = quantity3 * price3
sub4 = quantity4 * price4
sub5 = quantity5 * price5

'total
sub1 + sub2 + sub3 + sub4 + sub5


sql = "insert into tabelnavn"
sql = sql & " set"
sql = sql & "(quantity1, quantity2,quantity3,quantity4,quantity5,price1,price2,price3,price4,price5,subtotal1,subtotal2,subtotal3,subtotal4,subtotal5,total ) "
sql = sql & " values "
sql = sql & "(" quantity1 &"," & quantity2 &"," & quantity3 &"," & quantity4 &"," & quantity5 & ","
sql = sql &  price1 &"," & price2 &"," & price3 &"," & price4 &"," & price5 & ","
sql = sql &  sub1 &"," & sub2 &"," & sub3 &"," & sub4 &"," & sub5 & ","
sql = sql &  total & ")"

conn.execute (sql)


'//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 15:32 #12
Hmm.. får en fejl:
Error Type:
Microsoft VBScript compilation (0x800A0401)
Expected end of statement
/logistik/web/test_udregning.asp, line 36, column 16

Linjen er:
sql = sql & "(" quantity1 &"," & quantity2 &"," & quantity3 &"," & quantity4 &"," & quantity5 & ","


< - hele skidtet - >
sql = "insert into tabelnavn"
sql = sql & " set"
sql = sql & "(quantity1, quantity2,quantity3,quantity4,quantity5,price1,price2,price3,price4,price5,subtotal1,subtotal2,subtotal3,subtotal4,subtotal5,total ) "
sql = sql & " values "
sql = sql & "(" quantity1 &"," & quantity2 &"," & quantity3 &"," & quantity4 &"," & quantity5 & ","
sql = sql &  price1 &"," & price2 &"," & price3 &"," & price4 &"," & price5 & ","
sql = sql &  subtotal1 &"," & subtotal2 &"," & subtotal3 &"," & subtotal4 &"," & subtotal5 & ","
sql = sql &  total & ")"
Avatar billede dk_akj Nybegynder
19. februar 2003 - 15:36 #13
sql = sql & "(" quantity1 &"," & quantity2 &"," & quantity3 &"," & quantity4 &"," & quantity5 & ","

rettes til:
sql = sql & "(" &  quantity1 & "," & quantity2 & "," & quantity3 & "," & quantity4 & "," & quantity5 & ","

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 15:46 #14
Ok - Har lige lidt problemer med mit opkald til db:

Set RS1=Server.CreateObject("ADODB.Recordset")
Set oSQL1=Server.CreateObject("ADODB.connection")

oSQL1.connectionstring="DSN=AGI"
oSQL1.Open

----------

Kan du skrive det om så det passer til dit smukke kodning ? c",)
Avatar billede dk_akj Nybegynder
19. februar 2003 - 15:53 #15
Har du oprettet en DSN under odbc forbindelser ?? Det skal/kan du gøre hvis det er din egen webserver.

Har du webhotel skal du lave den DSN-less:


Set oSQL1=Server.CreateObject("ADODB.connection")
Set RS1=Server.CreateObject("ADODB.Recordset")

strConn  = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + Server.MapPath("din_db.mdb")
Set oSQL1 = Server.CreateObject("ADODB.Connection")
oSQL1.open strConn

dette forudsætter at din db ligger i samme folder som dette script

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 15:57 #16
Jeg har en DSN / Egen webserver, bruger ovenstående opkald, når jeg laver asp.. Vil bare have det tilrettet så det passer til dit script.. Begyndte at få fejl på det nemlig..
Avatar billede dk_akj Nybegynder
19. februar 2003 - 15:57 #17
Hvad får du af fejl ??
Avatar billede zantiago Nybegynder
19. februar 2003 - 15:59 #18
Error Type:
Microsoft VBScript runtime (0x800A01A8)
Object required: ''
/logistik/web/test_udregning.asp, line 4
Avatar billede zantiago Nybegynder
19. februar 2003 - 16:02 #19
Dim strConn, conn

linje 4: strConn.connectionstring="DSN=AGI"
    Set Conn=Server.CreateObject("ADODB.connection")
    Conn.Open strConn
Avatar billede dk_akj Nybegynder
19. februar 2003 - 16:02 #20
og linie 4 er ???
Avatar billede dk_akj Nybegynder
19. februar 2003 - 16:04 #21
prøv : strConn = "DSN=AGI" eller lav den om dit dsnless.

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 16:10 #22
Virker nu, ny fejl:

Error Type:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E14)
[Microsoft][ODBC SQL Server Driver][SQL Server]Incorrect syntax near the keyword 'set'.
/logistik/web/test_udregning.asp, line 41
Avatar billede dk_akj Nybegynder
19. februar 2003 - 17:17 #23
ups
ret :
sql = "insert into tabelnavn"
sql = sql & " set"
sql = sql & "(quantity1,

til:
sql = "insert into tabelnavn"
sql = sql & " (quantity1,

set bruges kun ved update.

//akj
Avatar billede zantiago Nybegynder
19. februar 2003 - 17:34 #24
Yeeeeehaaaaaa!!!!!!
Avatar billede zantiago Nybegynder
25. februar 2003 - 15:05 #25
Uhh - Når jeg nu skal rette i det, hvad så?? Jeg kan ikke skrive :
where Id = " & Request("Id") & "

Hvad så???

/Bruhn
Avatar billede dk_akj Nybegynder
26. februar 2003 - 08:15 #26
Hvad mener du med at rette i det ??

//akj
Avatar billede zantiago Nybegynder
26. februar 2003 - 13:48 #27
filen er en slags rapport, som hele tiden skal kunne ændres.. Derfor vil jeg gerne kunne rette i filen. Man opretter først del 1, uden udregninger, kun tekst. Der får filen et ID! Når man så skal lave udregningerne, åbner man det id, man skal lave, og taster talene ind.. Men lige nu kan den kun oprette en ny række.. Forstår du?
Avatar billede dk_akj Nybegynder
27. februar 2003 - 07:18 #28
Så skal du bruge update komandoen.

conn.execute ("Update tabelnavn set quantity1 = " & quantity1 & "," & quantity2 = " & quantity2 ..... osv ")

//akj
Avatar billede zantiago Nybegynder
27. februar 2003 - 09:03 #29
Men der er jo stadig ikke angovet hvilken række den skal gå ind i.. Skal der ikke angives et id?
Eks.: where Id = " & Request("Id") & "

/Bruhn
Avatar billede dk_akj Nybegynder
27. februar 2003 - 09:04 #30
sorry, jo selvfølgeligt skal der det

conn.execute ("Update tabelnavn set quantity1 = " & quantity1 & "," & quantity2 = " & quantity2 ..... osv where id = etellerandet")
Avatar billede zantiago Nybegynder
27. februar 2003 - 09:05 #31
ok Tak - Det prøver jeg lige..
Avatar billede zantiago Nybegynder
27. februar 2003 - 15:27 #32
Hvad er det lige der er galt?


sql = "Update [logistikrma_test]"
sql = sql & "(quantity1, quantity2,quantity3,quantity4,quantity5,quantity6, quantity7,quantity8,quantity9,quantity10,price1,price2,price3,price4,price5,price6,price7,price8,price9,price10,subtotal1,subtotal2,subtotal3,subtotal4,subtotal5,subtotal6,subtotal7,subtotal8,subtotal9,subtotal10,total ) "
sql = sql & " values "
sql = sql & "(" &  quantity1 & "," & quantity2 & "," & quantity3 & "," & quantity4 & "," & quantity5 & "," &  quantity6 & "," & quantity7 & "," & quantity8 & "," & quantity9 & "," & quantity10 & ","
sql = sql &  price1 &"," & price2 &"," & price3 &"," & price4 &"," & price5 & "," & price6 &"," & price7 &"," & price8 &"," & price9 &"," & price10 & ","
sql = sql &  subtotal1 &"," & subtotal2 &"," & subtotal3 &"," & subtotal4 &"," & subtotal5 & "," & subtotal6 &"," & subtotal7 &"," & subtotal8 &"," & subtotal9 &"," & subtotal10 & ","

sql = sql &  total & ") Where Id = " & Request("Id") & ""

conn.execute (sql)
Avatar billede zantiago Nybegynder
27. februar 2003 - 15:31 #33
Microsoft OLE DB Provider for ODBC Drivers error '80040e14'

[Microsoft][ODBC SQL Server Driver][SQL Server]Line 1: Incorrect syntax near '('.

/logistik/web/rma_status_show_ny.asp, line 977
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester