Fetstil Fetstil Kursiv Understrykning linje färgläggning tabellverk Punktlista Nummerlista Vänster Centrerat högerställt Utfyllt Länk Bild htmlmode
  • Forum & Blog
    • Forum - översikt
      • .Net
        • asp.net generellt
        • c#
        • vb.net
        • f#
        • silverlight
        • microsoft surface
        • visual studio .net
      • databaser
        • sql-server
        • databaser
        • access
        • mysql
      • mjukvara klient
        • datorer och komponenter
        • nätverk, lan/wan
        • operativsystem
        • programvaror
        • säkerhet, inställningar
        • windows server
        • allmänt
        • crystal reports
        • exchange/outlook
        • microsoft office
      • mjukvara server
        • active directory
        • biztalk
        • exchange
        • linux
        • sharepoint
        • webbservers
        • sql server
      • appar (win/mobil)
      • programspråk
        • c++
        • delphi
        • java
        • quick basic
        • visual basic
      • scripting
        • asp 3.0
        • flash actionscript
        • html css
        • javascript
        • php
        • regular expresssion
        • xml
      • spel och grafik
        • DirectX
        • Spel och grafik
      • ledning
        • Arkitektur
        • Systemutveckling
        • krav och test
        • projektledning
        • ledningsfrågor
      • vb-sektioner
        • activeX
        • windows api
        • elektronik
        • internet
        • komponenter
        • nätverk
        • operativsystem
      • övriga forum
        • arbete karriär
        • erbjuda uppdrag och tjänster
        • juridiska frågor
        • köp och sälj
        • matematik och fysik
        • intern information
        • skrivklåda
        • webb-operatörer
    • Posta inlägg i forumet
    • Chatta med andra
  • Konto
    • Medlemssida
    • Byta lösenord
    • Bli bonsumedlem
    • iMail
  • Material
    • Tips & tricks
    • Artiklar
    • Programarkiv
  • JOBB
  • Student
    • Studentlicenser
  • KONTAKT
    • Om pellesoft
    • Grundare
    • Kontakta oss
    • Annonsering
    • Partners
    • Felanmälan
  • Logga in

Hem / Forum översikt / inlägg

Posta nytt inlägg


Kalkylering

Postades av 2004-05-21 13:30:29 - Mikael Johansson, i forum asp.net generellt, Tråden har 17 Kommentarer och lästs av 571 personer

Ska räkna ut värdet från flera olika funktioner där jag skickar ett värde till funktionen.

<code>
<% Dim kk As Integer = raknaSvar(DataBinder.Eval(Container, "DataItem.datum1")) - raknaSvar4(DataBinder.Eval(Container, "DataItem.datum1")) %>
</code>

Tyvärr får jag felmeddelande: Namnet Container har inte deklarerats.
Någon som vet hur man gör det korrekt?


Svara

Sv: Kalkylering

Postades av 2004-05-21 13:39:09 - Johan Normén

Container.DataItem skall det vara inte Container,"DataItem....."

Mvh Johan


Svara

Sv: Kalkylering

Postades av 2004-05-21 13:42:57 - Mikael Johansson

Tyvärr får jag samma fel när jag ändrat med :(


Svara

Sv: Kalkylering

Postades av 2004-05-21 13:49:27 - Patrik Dahlén

<code>
DataBinder.Eval(Container.DataItem, "datum1")
</code>
eller
<code>
Container.DataItem( "datum1" )
</code>

/pD
www.pdc.se
www.pdc.se/blog
www.patrik-dahlen.nu


Svara

Sv: Kalkylering

Postades av 2004-05-21 13:51:07 - Mikael Johansson

Så här ser det ut, allt ligger i en datalist
<code>
<table style="COLOR: black; BACKGROUND-COLOR: lightgrey" bordercolor="black">
<tbody>
<tr>
<td style="BACKGROUND-COLOR: silver" width="90">
<asp:Label id="lblDatum1" runat="server" font-size="XX-Small" text='<%# DataBinder.Eval(Container, "DataItem.datum1") %>'></asp:Label></td>
<% Dim kk As Integer = raknaSvar(Container.DataItem("datum1")) - raknaSvar4(Container.DataItem("datum1")) %>
<td width="50"><% =kk %></td>
<td width="120">
<%# raknaSvar(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="170">
<%# raknaSvar2(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="120">
<%# raknaSvar3(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="120">
<%# raknaSvar4(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="50">
<%# raknaSvar11(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="90">
<%# raknaSvar5(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="130">
<%# raknaSvar6(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="120">
<%# raknaSvar7(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="90">
<%# raknaSvar8(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="50">
<%# raknaSvar9(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="50">
<%# raknaSvar10(DataBinder.Eval(Container, "DataItem.datum1")) %></td>
<td width="70"></td>
</tr>
</tbody>
</table>
</code>

Det är uträkningen som inte fungerar, allt annat fungerar.


Svara

Sv: Kalkylering

Postades av 2004-05-21 15:11:32 - Raderat konto

Detta ser ut som lite av ett mishmash mellan Classic Asp o Asp.Net. Har du 10 olika funktioner, eller hur har du tänkt här? Hur ser ser dom här funktionerna ut? vad är det egentligen du vill göra?


Svara

Sv: Kalkylering

Postades av 2004-05-21 15:17:10 - Mikael Johansson

Ja, det är till och med 11 olika funktioner. Det ska vara en statistiksida. En typisk funktion ser ut:
<code>
Function raknaSvar(datum1 As String)
Dim id As String = Request.QueryString("id")

Dim connectionString As String = "server='(local)'; trusted_connection=true; Database='TM'"
Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)

Dim queryString As String = "SELECT COUNT([kategori]) FROM [stat] WHERE (([stat].[kategori] = 'M') AND ([stat].[datum1] = @Datum) AND ([stat].[docno] = @Id))"
Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)

sqlCommand.Parameters.Add("@Datum", System.Data.SqlDbType.VarChar).Value = datum1
sqlCommand.Parameters.Add("@Id", System.Data.SqlDbType.VarChar).Value = id

sqlConnection.Open
Dim antal As Object = sqlCommand.ExecuteScalar()

sqlConnection.Close

Return antal
End Function
</code>

Alla uträkningar direkt från funktionen fungerar nu, men sen vill jag lägga ihop eller dra ifrån olika funktioner med varandra och skriva ut. Det är just det jag inte får att fungera.


Svara

Sv: Kalkylering

Postades av 2004-05-21 15:24:32 - Raderat konto

Vad är skillnaden på funktionerna? Kan du inte använda 1 funktion och differentiera anropet baserat på en extra parameter (en enum eller integer t.ex.) Varför returnerar du ett objekt? Kan värdet vara NULL? Isåfall, varför inte hantera detta i funktionen och returnera '0'? Sorry, men detta verkar ärligt talat inte helt genomtänkt tycker jag... (Skall det vara Datum1 i alla poster i DataListen?)


Svara

Sv: Kalkylering

Postades av 2004-05-21 15:28:22 - Mikael Johansson

Heh, så sant, det är genomtänkt med en som inte är så bra på det här än (man lär sig). Skillnaderna i funktionerna ligger i kolumnen kategori, annars är de identiska. Värdet kan vara NULL, därför returnerade jag ett object. Men förslag på förändringar/förbättringar mottages tacksamt.

Hur man differentierar vet jag tyvärr inte hur man gör, och sen har villkoren från uppdragsgivaren ändrats hela tiden :(


Svara

Sv: Kalkylering

Postades av 2004-05-21 15:56:59 - Raderat konto

Differentiera kan du t.ex göra genom att ge din funktion en annan signatur, typ:
<code>
Public Function RaknaSvar(ByVal datum As String, ByVal cat As Integer) As Integer
.
.
.
Dim antal As Object = sqlCommand.ExecuteScalar()

Con.Close()

Dim intRval As Int32

If IsDBNull(antal) Then
intRval = 0
Else
intRval = Ctype(antal, int32)
End IF

Return intRval

End Function
</code>
Sedan är ju detta typiskt något som du skulle kunna köra i metoden ItemDataBound.


Svara

Sv: Kalkylering

Postades av 2004-05-21 16:02:33 - Mikael Johansson

Ok, men den returnerar ett int-värde istället för object? Hur blir det då om jag ska ta minus på de olika villkoren?

Det är ju så att det läggs in en kategori från en radiobuttonlist med värde från A-M. Det som är bl.a. att jag ska ha en minus där antal A - antal D.


Svara

Sv: Kalkylering

Postades av 2004-05-21 16:11:42 - Raderat konto

Du uttrycker dig inte särskilt begripligt tycker jag. Vad tänkte du göra med nullvärdet? Du räknar ju förekomsten av ett visst antal poster 'kategori'. Egentligen behöver du inte ens checka NULL eftersom 'antal' antigen blir '0' eller ett positivt värde. Och '0' minus t.ex. '4' = '-4'.


Svara

Sv: Kalkylering

Postades av 2004-05-21 16:20:53 - Mikael Johansson

Ok, ska försöka förklara på ett annat sätt, tar hela bilden.

Man får in en textfil med information man importerar till en databas. Utifrån den databasen hämtar man in kundinformation och man arbetar med den. Beroende på händelse så tilldelas då varje kund en kategori bl.a. som sparas i databasen. Datumet när man jobbade med kunden sparas även in i db. Allt detta sker i andra filer och fungerar numera utmärkt. Nu ska det göras en statistiksida. Dels är det antalet av de olika kategorierna man vill kunna se, och det är efter datum när man jobbade med kunden, ex:

Datum Kat A Kat B katC Summa kat A + Kat B + Kat C
------------------------------------------------------------------------------------
2004-05-21 8 5 6 19


Det är summan jag nu vill få fram, och det är den som är problemet.


Svara

Sv: Kalkylering

Postades av 2004-05-21 16:49:55 - Raderat konto

Varför gör du inte detta i SQL Satsen? Exempel

SELECT OrderID AS Val1, EmployeeID As Val2, ShipVia As Val3, SUM(OrderID + EmployeeID + ShipVia) AS Total 
FROM Orders
WHERE OrderDate = '1996-07-04'
GROUP BY OrderID, EmployeeID, ShipVia

Detta ger (i mitt exempel):
Val1 Val2 Val3 Total
----------------------------------------------
10248 5 3 10256

Du förstår principen


Svara

Sv: Kalkylering

Postades av 2004-05-22 12:45:58 - Andreas Håkansson

Hasse,

Löste ditt problem sig eller behöver du mer hjälp? Om du är klar med detta problemet så markera inlägget som antingen <b>löst</b> (om du hittat en lösning - skriva gärna vad den var så andra kan ta del av både fråga och svar) eller <b>stängd</b> (om du inte hittat en lösning men problemet inte är aktuellt längre).

Om du inte löst problemet och vill ha mer hjälp så skriv ett inlägg som beskriver var du står idag med problemet (vad du har provat etc) så skall vi se om vi inte kan hitta en lösning.

//Andreas


Svara

Sv: Kalkylering

Postades av 2004-05-22 19:04:55 - Mikael Johansson

Hej alla!

Jag är jätteglad för tipset och jag tror jag förstår vad adec menar. Tyvärr har jag inte tillgång till filerna förrän på måndag, så att jag kan testa. Men jag lovar att så fort jag har testat, så ska jag ge feedback. Som jag sagt innan, ni alla är fantastiska. Tack vare er kan man flyta och kippa efter luft.

Hoppas ni får en underbar helg så länge.


Svara

Sv: Kalkylering

Postades av 2004-05-24 08:54:11 - Mikael Johansson

Jag har provat nu och tack vare koden ovan hjälpte den på ett annat ställe. Tyvärr är det en count och sum som skulle behövas här. Något liknande detta skulle det behöva se ut:

<code>
Function raknaSvar40(datum1 As String)
Dim id As String = Request.QueryString("id")

Dim connectionString As String = "server='(local)'; trusted_connection=true; Database='TM'"
Dim sqlConnection As System.Data.SqlClient.SqlConnection = New System.Data.SqlClient.SqlConnection(connectionString)

Dim queryString As String = "SELECT COUNT([kategori]) FROM [stat] WHERE (([stat].[kategori] = 'B') AND ([stat].[datum1] = @Datum) AND ([stat].[docno] = @Id)) As summa1, COUNT([kategori]) FROM [stat] WHERE (([stat].[kategori] = 'C') AND ([stat].[datum1] = @Datum) AND ([stat].[docno] = @Id)) As summa2 SUM(summa1 - summa2) "
Dim sqlCommand As System.Data.SqlClient.SqlCommand = New System.Data.SqlClient.SqlCommand(queryString, sqlConnection)

sqlCommand.Parameters.Add("@Id", System.Data.SqlDbType.VarChar).Value = id
sqlCommand.Parameters.Add("@Datum", System.Data.SqlDbType.VarChar).Value = datum1

sqlConnection.Open
Dim antal As Object = sqlCommand.ExecuteScalar()

sqlConnection.Close

Return antal
End Function
</code>

Självklart fungerar inte den koden, men tänket bakom.


Svara

Sv: Kalkylering

Postades av 2004-05-27 06:48:17 - Johan Olsson

T


Svara

Nyligen

  • 09:09 Vill du köpa medicinska tester?
  • 12:47 Vem beviljar assistansen – kommune
  • 14:17 Någon med erfarenhet av hemstädnin
  • 14:14 Bör man använda sig av en båtförme
  • 14:12 Finns det någon intressant hundblo
  • 14:25 Tips på verktyg för att skapa QR-k
  • 14:23 Tips på verktyg för att skapa QR-k
  • 20:52 Fungerer innskuddsbonuser egentlig

Sidor

  • Hem
  • Bli bonusmedlem
  • Läs artiklar
  • Chatta med andra
  • Sök och erbjud jobb
  • Kontakta oss
  • Studentlicenser
  • Skriv en artikel

Statistik

Antal besökare:
Antal medlemmar:
Antal inlägg:
Online:
På chatten:
4 569 166
27 952
271 704
776
0

Kontakta oss

Frågor runt konsultation, rådgivning, uppdrag, rekrytering, annonsering och övriga ärenden. Ring: 0730-88 22 24 | pelle@pellesoft.se

© 1986-2013 PelleSoft AB. Last Build 4.1.7169.18070 (2019-08-18 10:02:21) 4.0.30319.42000
  • Om
  • Kontakta
  • Regler
  • Cookies