webForumDet fria alternativet

Sortera

ASPur ASP

5 svar · 590 visningar · startad av devotion

Medlem sedan jan. 20013 582 inlägg
Frågan#1

Hepp!

Jag har följande kod som ligger i en loop:

sDocNote = oChk.Data.Note
			sDocDate = oChk.Data.Date
			sDocUser = oChk.Data.User
			if sDocNote <> "" then
				sDocNotes = sDocNotes & "[" & FormatDateTime(sDocDate, 2) & "] " & sDocNote & " /" & sDocUser & "<br>"
			end if

Tanken är att jag senare skriver ut med:

Response.write sDocNotes

Problemet är att jag inte kan sortera på datum i loopen, utan det blir som det blir...

Kan man göra på något annat sätt, så man kan sortera om det innan man skriver ut?

Mvh
Henrik

Medlem sedan juni 20019 519 inlägg
#2

skapa ett recordset av alla dina loop:ar och sortera recordsetet.

Medlem sedan jan. 20013 582 inlägg
#3

Problemet är att jag inte kan det... :(

Datat ligger inbäddad i ett fält, det finns ingen datumkolumn i databasen...

Kan man inte lösa det på annat sätt?

Mvh
Henrik

Medlem sedan juni 200032 967 inlägg
#4

Varför kan du inte det? Kan du använda datat kan du väl lägga in det i ett recordset?

Vi pratar alltså om ett recordset som inte fylls av någon SQL-fråga, utan ett tomt recordset du skapar, som du sedan fyller post för post i din befintliga loop.

Medlem sedan jan. 20013 582 inlägg
#5

Hmm, ok! :)

Jag kikar på det...

:)

Mvh
Henrik

Medlem sedan jan. 20013 582 inlägg
#6

Hepp!

Så här fick det bli:

dim Conn, Rs, sSQL
	dim sObjectNo
	dim oChk, oValue
	dim RsDocNotes
	dim sDocNotes
	
	sDocNotes = ""
	
	Set Conn = CreateObject( "ADODB.Connection" )
	Conn.Open Application.sDbConnectionString
	Set Rs = CreateObject( "ADODB.Recordset" )
	
	'Skapa ett tomt recordset med 3 kolumner
	Set RsDocNotes = CreateObject("ADODB.recordset")
	RsDocNotes.Fields.Append "NoteDate", 133 'adDBDate
	RsDocNotes.Fields.Append "Note", 129, 1024 'adChar
	RsDocNotes.Fields.Append "User", 129, 128 'adChar
	RsDocNotes.Open
	
	sSQL="SELECT DocId FROM tblDocRef WHERE OwnerType = 8 AND OwnerId = <Object1.Id> ORDER BY DocId"
	Rs.Open sSQL, Conn
	
	set oChk=Application.CreateUNChecklist()
	while not Rs.EOF
		if oChk.Open(CLng(Rs("DocId"))) then
			for i = 0 to oChk.Data.NrOfObjectListItems - 1
				set oValue = oChk.Data.GetValue("1_" & oChk.Data.ObjectListNr(i))
				sObjectNo = oChk.Data.ObjectListNr(i)
				
				if not oValue is nothing then
					'wee
				end if
				set oValue = Nothing
			next
			
			'Fylla på data i recordset
			if oChk.Data.Note <> "" then
				RsDocNotes.AddNew
				RsDocNotes("NoteDate").Value = FormatDateTime(oChk.Data.Date, 2)
				RsDocNotes("Note").Value = oChk.Data.Note
				RsDocNotes("User").Value = oChk.Data.User
				RsDocNotes.Update				
			end if
		end if
		Rs.Movenext
	wend
	set oChk = nothing
	
	'Sortera recordset och gå till första posten
	RsDocNotes.Sort = "NoteDate ASC"
	RsDocNotes.MoveFirst
	
	'Loopa ut recordsetet och skapa en sträng
	while not RsDocNotes.EOF
		sDocNotes = sDocNotes & "[" & RsDocNotes.Fields.Item("NoteDate") & "] " & RsDocNotes.Fields.Item("Note") & " /" & RsDocNotes.Fields.Item("User") & VbCrLf
		RsDocNotes.MoveNext
	wend 
	
	Response.write sDocNotes
	
	Rs.Close
	Set Rs=Nothing
	RsDocNotes.Close
	Set RsDocNotes=Nothing
	Set Conn=Nothing

Är det ok, eller kan det förbättras?

Mvh
Henrik

134 ms totalt · 3 externa anrop · v20260731065814-full.4bcf49fe
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
132 ms — hämta tråd, inlägg och bilagor (db)