Gå til innhold
  • Bli medlem
Støtt hjemmeautomasjon.no!

Anbefalte innlegg

Skrevet

@Guahtdim, vedr liste ut eventer fra kalender til device.

Vet du hvordan jeg kan formatere teksten annerledes på dagens eventer og morgendagens, overimorgen osv?

Skulle i første omgang ihvertfall hatt dagens eventer i bold og fremtidige eventer i normal tekst.

 

Noe ala dette:

 

image.thumb.png.15fbb7b6e65122025b27f49618c3f7fd.png

 

Ser forøvrig at i scriptet for BLGData så henter den ut ev.starttime, ev.name:

 

For Each ev As Object In allEvents msg = msg & "<tr><td> " & ev.StartTime & " - " & ev.Name & "." & "</td></tr>"

 

Dette er fra scriptet ditt:

 

For Each ev As Object In allEvents msg = msg & "<br>" & ev & "</br>"

 

Aner ikke hva som kommer tilbake fra kalenderen?

Skrevet

Desverre så henter bare min bit ut hele strenger hvor alt er ferdig formatert. Jeg har prøvd å returnere det som objekter hvor man da kunne ha fått ut starttid, men jeg fikk det ikke til å fungere. Mulig jeg ser på det senere.

Skrevet (endret)

Jeg har gjort flere forsøk på å få ut litt mer avanserte objekter enn strenger, men jeg får det ikke til å fungere. Aner ikke hva jeg gjør feil. Jeg har en mistanke om at VB.Net er mye snillere enn C# som jeg bruker. 

 

Feilmeldingen i scriptet etter at rutinen i plugin er kjørt er :  Object reference not set to an instance of an object

Ett eller annet skjer på vei ut av plugin som gjør at det ikke blir korrekt, mens f.eks. en array av string går bra. Mulig noen andre utviklere her har en løsning?

Endret av Guahtdim
Skrevet
1 time siden, Guahtdim skrev:

Jeg har gjort flere forsøk på å få ut litt mer avanserte objekter enn strenger, men jeg får det ikke til å fungere. Aner ikke hva jeg gjør feil. Jeg har en mistanke om at VB.Net er mye snillere enn C# som jeg bruker. 

 

Feilmeldingen i scriptet etter at rutinen i plugin er kjørt er :  Object reference not set to an instance of an object

Ett eller annet skjer på vei ut av plugin som gjør at det ikke blir korrekt, mens f.eks. en array av string går bra. Mulig noen andre utviklere her har en løsning?

 

Takk for forsøket! Skulle gjerne hjulpet, men kommer litt til kort når det gjelder koding :)

 

Skrevet (endret)

Tenkte det kunne være greit å dele scriptet HS brukeren Pierre bruker for å få formatteringen som på bildet i min forrige post på dagens og morgendagens eventer.

Dette brukes mot BLGData pluginen, men det er nok mye som kan brukes der for GCalseer.

 

 

This is script to copy all calendar's appointments for today and tomerrow
'The string can then be used easyly in HSTouch, or by speaking

'You must have BLGData plugin installed and running, with at least one agenda in the setup into a device's string.
'You must also create or use a device where to store, use it's adress iin the settings below



Sub Main(ByVal Parm As Object)

dim chaine as string=""
dim User_email,Calendar_name,prefix_heure as string
dim NumberofDays as integer
dim TodayGCal_device as integer
dim jour as string = DateTime.Now.Date.Tostring("dd/MM/yyyy")
dim heure as string = Now.Tostring("HH:mm")
dim today_txt,today_txt_allday,tomorrow_txt,tomorrow_txt_allday,bckgrd_color,event_name as string

'user's settings=========================================================================

TodayGCal_device=760 'the adress of the device where the events are going to be dumped in the string
User_email= "[email protected]" 'user email as in the BLGData plugin
Calendar_name="[email protected]" 'Calendar name as in the BLGData plugin
NumberofDays=1 'number of days to fetch ahead
bckgrd_color="#A0EAE7"
today_txt=" A "
today_txt_allday=""
tomorrow_txt="DEMAIN A "
tomorrow_txt_allday="DEMAIN "

'end of user's settings=========================================================================


Dim allEvents As Object()
    allEvents = hs.PluginFunction("BLGData", "", "GetCalendarEventsForXDays", new Object(){User_email,Calendar_name,NumberofDays})
    Try

      'Log("GoogleCalendar Script 1 Starting")
 chaine="<table bgcolor='" & bckgrd_color   & "'>"
    For Each ev As Object In allEvents
       ' hs.writelog("Info", " A: "  & ev.StartTime & " Pierre: " & ev.Name)

            ' on écarte aussi les événements dont l'heure de fin est passée
            if ev.StartDate=jour and ev.EndTime> heure then


                                'detecte les évènements journee entière pour aujourd'hui
                                if ev.StartTime="00:00" and ev.Endtime="00:00" then
                                            chaine= chaine & "<tr><td>" & today_txt_allday & chaine & "  " & ev.Name & ".</td></tr>"
                                else
                                    chaine= chaine & "<tr><td>" & today_txt & ev.StartTime & ": " & ev.Name & ". </td></tr>"
                                end if                                      

           elseif ev.StartDate>jour then
                            'detecte les évènements journee entière
                             if ev.StartTime="00:00" and ev.Endtime="00:00" then
                                            chaine= chaine & "<tr><td>" & tomorrow_txt_allday & ev.Name & ". </td></tr>"
                                else
                                chaine= chaine & "<tr><td>" & tomorrow_txt  & ev.StartTime & " : " & ev.Name & ". </td></tr>"
                                end if
           end if
            'chaine=chaine & "</tr>"
    '  Log("--- End Of Entry ---")
    Next
     'Log("End Of GoogleCalendar Script")
chaine=chaine & "</table>"
' Log("End Of GoogleCalendar Script 1")
     Log(chaine)    

'if string is empty the device value will be set to 0    
if striptags(chaine)="" then
        hs.SetDeviceValueByref(TodayGCal_device,0,true)
         hs.setdeviceString(TodayGCal_device,"",true)

  else 'if there is a string set the device value to 100
        hs.SetDeviceValueByref(TodayGCal_device,100,true)
        hs.setdeviceString(TodayGCal_device,chaine,true)

 end if



    Catch ex As Exception
        Log("Exception: " & ex.Message.ToString)
    End Try
End Sub

Sub Log(ByVal ParStr As String)
    hs.writelog("Ald_gcal_tostring", ParStr)
End Sub


Function striptags(Byval chaine as string)'enleve les tags
dim debut, fin as integer
'enleve les tags
        'hs.writelog "signature_mail",chaine
    do

      'cherche les <
        debut = Instr (chaine,"<")
     if debut <>0 then 'boucle a garder autrement erreur
        'hs.writelog "message",debut


      'cherche les >
        fin = Instr (chaine,">")
        'msgbox fin

      'enleve ce qui est entre les 2 bornes

       chaine = left(chaine,debut-1) & right(chaine,len(chaine)-fin)  
        'hs.writelog "signature_mail",chaine
      end if
    loop while debut<>0


    'msgbox data
    return chaine
end Function  

 

Endret av bio
Skrevet

I've been doing it all wrong! ?

 

Jeg lover dere herved samme funksjonalitet som i BLGData i script. Men jeg har ikke noen oversikt over når. 

 

Den som venter på noe godt og alt det der

  • Like 3
Skrevet
Ok, da er det ute. Kos dere. Nå skal jeg se videre på greiene som [mention=797]toonwolf[/mention] ønsker seg.
Du er helt rå! Tusen takk.
Skal prøve det så fort unga har sovna:)
Skrevet

Husk at dette ikke er en blåkopi av BLGData. Jeg tror jeg leverer litt andre data enn han. Jeg prøvde såvidt å få til scriptet til franskmannen og det ble ikke helt riktig. Jeg leverer hele tiden fullstendig dato+tidspunkt (ved heldags avtaler så er dato tidspunkt dagen og tidspunktet er 00:00)

Skrevet
1 time siden, Guahtdim skrev:

Husk at dette ikke er en blåkopi av BLGData. Jeg tror jeg leverer litt andre data enn han. Jeg prøvde såvidt å få til scriptet til franskmannen og det ble ikke helt riktig. Jeg leverer hele tiden fullstendig dato+tidspunkt (ved heldags avtaler så er dato tidspunkt dagen og tidspunktet er 00:00)

Skjønner ikke helt?

Scriptet jeg bruker nå, som vel er uten properties om jeg skjønner riktig, sender ikke med 00:00 på heldagsevent? 

 

image.thumb.png.40dc92a033ff5f810121ace9d8011b3f.png

 

 

 

Har ikke prøvd med properties enda, prøver å skjønne hvordan jeg skal bruke de :)

 

 

Skrevet

Scriptet du bruker nå sender en ferdig formatert streng hvor det på heldags eventer ikke legges på tidspunkt.

 

Hvis du prøver det under så burde du kunne begynne å gjøre litt. Som du ser så sjekker jeg på om det er en heldagsevent (If ev.AlldayEvent then) og skriver da ut kun dato og ikke timer og minutter (Format(ev.StartDateTimeLocal,"yyyy-MM-dd"))

ev.Subject er "overskriften" på en kalenderoppføring

 

Så er det bare å begynne å leke med litt forskjellige ting ? 

 

Sub Main(ByVal Parms As Object) 
Dim msg as string = "" 
Try    
    Dim ParmArray() as String 
    ParmArray = Parms.tostring.split(",") 
    Dim tDevice = ParmArray(0) 
    Dim tCalendar = ParmArray(1)
    Dim tDays = cint(ParmArray(2))
    Dim allEvents As Object()
    

    allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) 

    For Each ev As Object In allEvents 
		If ev.AllDayEvent then
			msg = msg & "<br>" & Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) - " & ev.Subject & "</br>"
		Else
           msg = msg & "<br>" &  Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - " & ev.Subject & "</br>"
		End If
    Next 
    
    hs.WriteLog("test","events found: " & msg)    
        
    if msg="" then msg="No Events Scheduled"        
    hs.SetDeviceString(tDevice , msg, true) 
  
Catch ex As Exception        
    hs.WriteLog("", "Exception in script: " & ex.Message)    
End Try
hs.WriteLog("test","---=== DONE ===---")

End Sub

 

Skrevet
8 minutter siden, Guahtdim skrev:

Scriptet du bruker nå sender en ferdig formatert streng hvor det på heldags eventer ikke legges på tidspunkt.

 

Hvis du prøver det under så burde du kunne begynne å gjøre litt. Som du ser så sjekker jeg på om det er en heldagsevent (If ev.AlldayEvent then) og skriver da ut kun dato og ikke timer og minutter (Format(ev.StartDateTimeLocal,"yyyy-MM-dd"))

ev.Subject er "overskriften" på en kalenderoppføring

 

Så er det bare å begynne å leke med litt forskjellige ting ? 

 


Sub Main(ByVal Parms As Object) 
Dim msg as string = "" 
Try    
    Dim ParmArray() as String 
    ParmArray = Parms.tostring.split(",") 
    Dim tDevice = ParmArray(0) 
    Dim tCalendar = ParmArray(1)
    Dim tDays = cint(ParmArray(2))
    Dim allEvents As Object()
    

    allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) 

    For Each ev As Object In allEvents 
		If ev.AllDayEvent then
			msg = msg & "<br>" & Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) - " & ev.Subject & "</br>"
		Else
           msg = msg & "<br>" &  Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - " & ev.Subject & "</br>"
		End If
    Next 
    
    hs.WriteLog("test","events found: " & msg)    
        
    if msg="" then msg="No Events Scheduled"        
    hs.SetDeviceString(tDevice , msg, true) 
  
Catch ex As Exception        
    hs.WriteLog("", "Exception in script: " & ex.Message)    
End Try
hs.WriteLog("test","---=== DONE ===---")

End Sub

 

Fikk plutselig No events scheduled.. fanga den ikke opp noe? hmm..

Kjørte gamle scriptet igjen, da kom eventene..

 

Skrevet

Beklager, i min iver så hadde jeg glemt å tilrettelegge for de som kun kjører Google og ikke MS samtidig. Det skal være fikset i versjon 0020. Nedlastningslink oppdatert.

Skrevet
7 timer siden, Guahtdim skrev:

Beklager, i min iver så hadde jeg glemt å tilrettelegge for de som kun kjører Google og ikke MS samtidig. Det skal være fikset i versjon 0020. Nedlastningslink oppdatert.

Perfekt. Fungerer nå :)

Da er da bare å leke seg!

 

Tusen takk

 

image.png.6e96e394fda29d6fab65f4da7fac2a17.png

  • Like 1
Skrevet (endret)

@Guahtdim, my krype litt til korset da jeg ikke klarer å google meg frem til riktig kode ?

Har du mulighet til å hjelpe meg?

 

Jeg prøver å få scriptet til å sjekke om det er dagens eller morgendagens dato. For å ha forskjellige format på de to.

Ønsker primært å få til noe ala dette:

image.png.a6a2eb9bbc9a06c015df2529d9a2fe38.png

 

Sånn at jeg kan kun ha noe ala dette ved å sjekke dagens og morgendagens kalender (1)

 

Dagens heldagsevent

KL 08:00 - Dagens avtale

Imorgen heldagsevent

Imorgen kl 08:00 - Morgendagens avtale

 

Endret av bio
Skrevet (endret)

Jeg er litt usikker på hva du er ute etter siden skriver dagens og morgendagens kalender. Jeg antar at du mener samme kalender, men de forskjellige dagene.

NB: Når du sender inn 2 for 2 dager i min plugin så ber du egentlig om de neste 48 timene, ikke de neste 2 dagene. Derfor har jeg laget litt ekstra håndtering i eksempel 2 for å håndtere de man finner som er utenfor idag og imorgen. 

 

Spoiler

Sub Main(ByVal Parms As Object) 
Dim msg as string = "" 
Try    
    Dim ParmArray() as String 
    ParmArray = Parms.tostring.split(",") 
    Dim tDevice = ParmArray(0) 
    Dim tCalendar = ParmArray(1)
    Dim tDays = cint(ParmArray(2))
    Dim allEvents As Object()
    
	'hs.WriteLog("test","starter script")
    allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) 
    For Each ev As Object In allEvents 
		hs.WriteLog("test",ev.Subject)
		Dim calendarEventAsString as string=""
		If ev.AllDayEvent then
			calendarEventAsString = Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) : " & ev.Subject 
		Else
           calendarEventAsString= Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - " & Format(ev.EndDateTimeLocal,"HH:mm")& " : " & ev.Subject 
		End If
		
		' hs.WriteLog("test",calendarEventAsString)
		' hs.WriteLog("test now",Now.Date)
		' hs.WriteLog("test lokal",ev.StartDateTimeLocal.Date)
		If ev.StartDateTimeLocal.Date = Now.Date then
			calendarEventAsString= "<b>" & calendarEventAsString & "</b>"
		End If
		msg=msg & calendarEventAsString & "</br>"
    Next 
    
    hs.WriteLog("test","events found: " & msg)    
        
    If msg="" then 
		msg="No Events Scheduled"
	End If	
    
	hs.SetDeviceString(tDevice , msg, true) 
  
Catch ex As Exception        
    hs.WriteLog("", "Exception in script: " & ex.Message)    
End Try
hs.WriteLog("test","---=== DONE ===---")

End Sub

 

 

 

 

Vi kan dra det litt videre slik at du får noe som ligner med på din formatering:

Spoiler

Sub Main(ByVal Parms As Object) 
Dim msg as string = "" 
Try    
    Dim ParmArray() as String 
    ParmArray = Parms.tostring.split(",") 
    Dim tDevice = ParmArray(0) 
    Dim tCalendar = ParmArray(1)
    Dim tDays = cint(ParmArray(2))
    Dim allEvents As Object
    

    allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) 
    For Each ev As Object In allEvents 

		Dim calendarEventAsString as string=""
		
		
		If ev.StartDateTimeLocal.Date=Now.Date Then
			If ev.AllDayEvent then
				calendarEventAsString ="Dagens "
			else
				calendarEventAsString ="Kl. "
			End If
		End If
		If ev.StartDateTimeLocal.Date=Now.Date.AddDays(1) then
			If ev.AllDayEvent then
				calendarEventAsString ="Imorgen "
			else
				calendarEventAsString ="Imorgen kl. "
			End If
		End If
		
		
		If ev.StartDateTimeLocal.Date < Now.Date.AddDays(2) then
			If ev.AllDayEvent then
				calendarEventAsString = calendarEventAsString & ev.Subject 
			else
				calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"HH:mm") & " - " & ev.Subject
			End If
		Else
			If ev.AllDayEvent then
				calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) - "  & ev.Subject 
			else
				calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - "  & ev.Subject 
			End If
		End If
		
		If ev.StartDateTimeLocal.Date = Now.Date then
			calendarEventAsString= "<b>" & calendarEventAsString & "</b>"
		End If
		msg=msg & calendarEventAsString & "</br>"
    Next 
    
    hs.WriteLog("test","events found: " & msg)    
        
    If msg="" then 
		msg="No Events Scheduled"
	End If	
    
	hs.SetDeviceString(tDevice , msg, true) 

 
  
Catch ex As Exception        
    hs.WriteLog("", "Exception in script: " & ex.Message)    
End Try
hs.WriteLog("test","---=== DONE ===---")

End Sub

ScriptResult.png.812b81d1a9ad2209b544efecf2dc0ae5.png

 

Edit: Første post oppdatert med scriptene som er lagt inn her.

Endret av Guahtdim
Oppdatert til Linux-vennlig script uten ElseIf
Skrevet (endret)

 

4 timer siden, Guahtdim skrev:

Jeg er litt usikker på hva du er ute etter siden skriver dagens og morgendagens kalender. Jeg antar at du mener samme kalender, men de forskjellige dagene.

NB: Når du sender inn 2 for 2 dager i min plugin så ber du egentlig om de neste 48 timene, ikke de neste 2 dagene. Derfor har jeg laget litt ekstra håndtering i eksempel 2 for å håndtere de man finner som er utenfor idag og imorgen. 

 

  Vis skjult innhold


Sub Main(ByVal Parms As Object) 
Dim msg as string = "" 
Try    
    Dim ParmArray() as String 
    ParmArray = Parms.tostring.split(",") 
    Dim tDevice = ParmArray(0) 
    Dim tCalendar = ParmArray(1)
    Dim tDays = cint(ParmArray(2))
    Dim allEvents As Object()
    
	'hs.WriteLog("test","starter script")
    allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) 
    For Each ev As Object In allEvents 
		hs.WriteLog("test",ev.Subject)
		Dim calendarEventAsString as string=""
		If ev.AllDayEvent then
			calendarEventAsString = Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) : " & ev.Subject 
		Else
           calendarEventAsString= Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - " & Format(ev.EndDateTimeLocal,"HH:mm")& " : " & ev.Subject 
		End If
		
		' hs.WriteLog("test",calendarEventAsString)
		' hs.WriteLog("test now",Now.Date)
		' hs.WriteLog("test lokal",ev.StartDateTimeLocal.Date)
		If ev.StartDateTimeLocal.Date = Now.Date then
			calendarEventAsString= "<b>" & calendarEventAsString & "</b>"
		End If
		msg=msg & calendarEventAsString & "</br>"
    Next 
    
    hs.WriteLog("test","events found: " & msg)    
        
    If msg="" then 
		msg="No Events Scheduled"
	End If	
    
	hs.SetDeviceString(tDevice , msg, true) 
  
Catch ex As Exception        
    hs.WriteLog("", "Exception in script: " & ex.Message)    
End Try
hs.WriteLog("test","---=== DONE ===---")

End Sub

 

 

 

 

Vi kan dra det litt videre slik at du får noe som ligner med på din formatering:

  Skjul innhold


Sub Main(ByVal Parms As Object) 
Dim msg as string = "" 
Try    
    Dim ParmArray() as String 
    ParmArray = Parms.tostring.split(",") 
    Dim tDevice = ParmArray(0) 
    Dim tCalendar = ParmArray(1)
    Dim tDays = cint(ParmArray(2))
    Dim allEvents As Object()
    
	'hs.WriteLog("test","starter script")
    allEvents = hs.PluginFunction("GCalSeer", "", "GetItemsFromCalendar", new Object(){tCalendar ,tDays }) 
    For Each ev As Object In allEvents 
		hs.WriteLog("test",ev.Subject)
		Dim calendarEventAsString as string=""
		
		
		If ev.StartDateTimeLocal.Date=Now.Date And ev.AllDayEvent Then
			calendarEventAsString ="Dagens "
		else If ev.StartDateTimeLocal.Date=Now.Date And Not ev.AllDayEvent   Then
			calendarEventAsString ="Kl. "
		else If ev.StartDateTimeLocal.Date=Now.Date.AddDays(1) And ev.AllDayEvent   Then
			calendarEventAsString ="Imorgen "
		else If ev.StartDateTimeLocal.Date=Now.Date.AddDays(1) And Not ev.AllDayEvent   Then
			calendarEventAsString ="Imorgen kl. "
		End If
		
		
		If ev.AllDayEvent And ev.StartDateTimeLocal.Date < Now.Date.AddDays(2) then
			calendarEventAsString = calendarEventAsString & ev.Subject 
		Else If Not ev.AllDayEvent And ev.StartDateTimeLocal.Date < Now.Date.AddDays(2) then
			calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"HH:mm") & " - " & ev.Subject
		Else If Not ev.AllDayEvent And ev.StartDateTimeLocal.Date >= Now.Date.AddDays(2) then
			calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - "  & ev.Subject 
		Else
			calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) - "  & ev.Subject 
		End If
		
		If ev.StartDateTimeLocal.Date = Now.Date then
			calendarEventAsString= "<b>" & calendarEventAsString & "</b>"
		End If
		msg=msg & calendarEventAsString & "</br>"
    Next 
    
    hs.WriteLog("test","events found: " & msg)    
        
    If msg="" then 
		msg="No Events Scheduled"
	End If	
    
	hs.SetDeviceString(tDevice , msg, true) 
  
Catch ex As Exception        
    hs.WriteLog("", "Exception in script: " & ex.Message)    
End Try
hs.WriteLog("test","---=== DONE ===---")

End Sub

ScriptResult.png.812b81d1a9ad2209b544efecf2dc0ae5.png

 

Edit: Første post oppdatert med scriptene som er lagt inn her.

 

Perfekt. Resultatet av scriptet der var akkurat slik jeg tenkte det! 

 

Men jeg får ikke samme resultatet som deg ?

 

image.png.915dc3c9a414e53cfd0a8c339f778182.png

 

 

 

 

 

 

 

Endret av bio
  • Like 1
Skrevet

Merkelig.

Kunne du endret scriptet ditt og limt inn følgende etter

For Each ev As Object In allEvents 
		hs.WriteLog("test",ev.Subject)

hs.WriteLog("test now",Now)

hs.WriteLog("test now Date",Now.Date)

hs.WriteLog("test StartDateTimeLocal",ev.StartDateTimeLocal)

hs.WriteLog("test date",ev.StartDateTimeLocal.Date)

 

Og så i loggen klippe ut det som blir laget når du kjører scriptet?

Skrevet

 

image.png.e366900668acff49615d391d93646ee0.png

 

Mar-05 13:05:47   test ---=== DONE ===---
Mar-05 13:05:47   test events found: Dagens Heldagsevent5mars
Kl. 17:30 - Enkeltevent5mars
Kl. Heldagsevent 6mars
Kl. 09:30 - Enkeltevent6mars
Kl. 07:00 - Enkeltevent7mars
Mar-05 13:05:47   test date 07/03/2019
Mar-05 13:05:47   test StartDateTimeLocal 07/03/2019 07:00:00
Mar-05 13:05:47   test now Date 05/03/2019
Mar-05 13:05:47   test now 05/03/2019 13:05:47
Mar-05 13:05:47   test Enkeltevent7mars
Mar-05 13:05:47   test date 06/03/2019
Mar-05 13:05:47   test StartDateTimeLocal 06/03/2019 09:30:00
Mar-05 13:05:47   test now Date 05/03/2019
Mar-05 13:05:47   test now 05/03/2019 13:05:47
Mar-05 13:05:47   test Enkeltevent6mars
Mar-05 13:05:47   test date 06/03/2019
Mar-05 13:05:47   test StartDateTimeLocal 06/03/2019
Mar-05 13:05:47   test now Date 05/03/2019
Mar-05 13:05:47   test now 05/03/2019 13:05:47
Mar-05 13:05:47   test Heldagsevent 6mars
Mar-05 13:05:47   test date 05/03/2019
Mar-05 13:05:47   test StartDateTimeLocal 05/03/2019 17:30:00
Mar-05 13:05:47   test now Date 05/03/2019
Mar-05 13:05:47   test now 05/03/2019 13:05:47
Mar-05 13:05:47   test Enkeltevent5mars
Mar-05 13:05:47   test date 05/03/2019
Mar-05 13:05:47   test StartDateTimeLocal 05/03/2019
Mar-05 13:05:47   test now Date 05/03/2019
Mar-05 13:05:47   test now 05/03/2019 13:05:47
Mar-05 13:05:47   test Heldagsevent5mars
Mar-05 13:05:45   Event Event Kalender Kalender - Robert - Refresh control - Copy triggered by the event page 'Run' button.
Skrevet

Eller ikke.

 

Noen med Linux erfaring som kan si hvorfor mine else if ikke fungerer? Selv etter at jeg har gjort de om til korrekte ElseIf så feiler det for noen som kjører Linux.

Skrevet

ElseIf fungerer tydeligvis ikke så bra på Linux. Jeg har oppdatert kode i mine poster til å være det som fikk det til å fungere.

  • Like 2
Skrevet

Hvis "ElseIf", kanskje noe av det mest grunnleggende innen programmering, ikke fungerer, så er det noe alvorlig galt med mono!

 

Men det kan være en kompiler-tabbe også. Det er mulig det kan løses med parenteser og AndAlso.

 

		If ev.StartDateTimeLocal.Date = Now.Date And ev.AllDayEvent Then
			calendarEventAsString = "Dagens "
		ElseIf (ev.StartDateTimeLocal.Date = Now.Date AndAlso Not ev.AllDayEvent)   Then
			calendarEventAsString = "Kl. "
		ElseIf (ev.StartDateTimeLocal.Date = Now.Date.AddDays(1) AndAlso ev.AllDayEvent)   Then
			calendarEventAsString = "Imorgen "
		ElseIf (ev.StartDateTimeLocal.Date = Now.Date.AddDays(1) AndAlso Not ev.AllDayEvent)   Then
			calendarEventAsString = "Imorgen kl. "
		End If
		
		
		If (ev.AllDayEvent AndAlso ev.StartDateTimeLocal.Date < Now.Date.AddDays(2) then
			calendarEventAsString = calendarEventAsString & ev.Subject 
		ElseIf (Not ev.AllDayEvent AndAlso ev.StartDateTimeLocal.Date < Now.Date.AddDays(2)) then
			calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"HH:mm") & " - " & ev.Subject
		ElseIf (Not ev.AllDayEvent AndAlso ev.StartDateTimeLocal.Date >= Now.Date.AddDays(2)) then
			calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd HH:mm") & " - "  & ev.Subject 
		Else
			calendarEventAsString= calendarEventAsString & Format(ev.StartDateTimeLocal,"yyyy-MM-dd") & " (hele dagen) - "  & ev.Subject 
		End If

 

  • Like 1
Skrevet (endret)

Ikke umulig at det hadde fikset seg med AndAlso (som jeg ikke var klar over før igår ettermiddag) og litt bedre bruk av parenteser, men problemet er at jeg ikke har drevet med vb.net så syntax sitter ikke i ryggmargen. Det merkelige er at det er så forskjell mellom å kjøre i Linux og Windows.

 

Vi kom uansett i mål ved å droppe else if og heller lage litt mer if setninger. Ikke optimalt, men siden det ikke er store kodesnutten så er det greit for min del.

Mulig jeg drar igang en større sjekk på dette når jeg ikke har så mye annet å gjøre. Sånn i 2035 eller noe sånt ?

 

Endret av Guahtdim
  • Like 1

Bli med i samtalen

Du kan publisere innhold nå og registrere deg senere. Hvis du har en konto, logg inn nå for å poste med kontoen din.

Gjest
Skriv svar til emnet...

×   Du har limt inn tekst med formatering.   Lim inn uten formatering i stedet

  Du kan kun bruke opp til 75 smilefjes.

×   Lenken din har blitt bygget inn på siden automatisk.   Vis som en ordinær lenke i stedet

×   Tidligere tekst har blitt gjenopprettet.   Tøm tekstverktøy

×   Du kan ikke lime inn bilder direkte. Last opp eller legg inn bilder fra URL.

×
×
  • Opprett ny...

Viktig informasjon

Vi har plassert informasjonskapsler/cookies på din enhet for å gjøre denne siden bedre. Du kan justere dine innstillinger for informasjonskapsler, ellers vil vi anta at dette er ok for deg.