Vad gör européer på dagarna? Anders Kraftling SAS-ansvarig Statistiska Centralbyrån



Relevanta dokument
Översikt. Installation av EasyPHP 1. Ladda ner från Jag använder Release Installera EasyPHP.

Introduk+on +ll programmering i JavaScript

JAVASCRIPT. Beteende

WEBBUTVECKLING CSS. Formatmallar - CSS

IT för personligt arbete F2

Tentamen TEN1 HI

Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt

Målet för D1 är att studenterna ska kunna följande: Använda några av de vanligaste PROC:arna. Sammanställa och presentera data i tabeller och grafiskt

Copyright 2003, SAS Institute Inc. All rights reserved.

Dugga Datastrukturer (DAT036)

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

Prova på-laboration i PHP Johan Sjöholm johsj@ida.liu.se Institutionen för datavetenskap, Linköpings universitet

Programmering A C# VT Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson

Introduktion till PHP

Föreläsning 4: Poster

Statistikens grunder 1 och 2, GN, 15 hp, deltid, kvällskurs

E12 "Evil is going on"

Migrering av AppDevStudio och SAS/IntrNet applikationer till SAS 9. Daniel Lindborg Konsult SAS Institute

729G28. Webbprogrammering och databaser. Introduktion till webbutveckling med PHP. Jakob Pogulis Institutionen för Datavetenskap (IDA)

Distribuerade System, HT03

Twincat: PLC Control

Programmeringteknik. Planering MÅL LABB: MOMENT LAB4 HTML - EXEMPEL HTML. Webbdelen

Exemple på Tentauppgifter Webbprogrammering

Ajax TruClient. Erfarenheter, tips och trix från Swedbank IT. Christian Gerdes Performance Engineer, LIGHTS IN LINE AB

EDA095 HTML. Per Andersson. April 26, Lund University Innehåll: HTML, CSS, DOM, JavaScript

Föreläsning 1 & 2 INTRODUKTION

Webbservrar, severskript & webbproduktion

Beijer Electronics AB 2000, MA00336A,

F8 Webbteknologier 2. PHP PHP: Hypertext Preprocessor

Sockets: server. with Ada.Command_Line; use Ada.Command_Line; with Ada.Exceptions; use Ada.Exceptions; with Ada.Text_IO; use Ada.

Guide till RefWorks Skapa ett RefWorks-konto Under Citera och referera > RefWorks Hjälp funktioner i RefWorks Help Tutorial Help

VHDL och laborationer i digitalteknik

Klassdeklaration. Metoddeklaration. Parameteröverföring

PHP. Dynamiska webbsidor

Introduktion till integrering av Schenkers e-tjänster. Version 2.0

F8 Webbteknologier 1. Dynamiska webbsidor

Webbteknik II. Föreläsning 5. Restless farewell. John Häggerud, 2011

Objektorienterad programmering D2

Diagnostisktprov Utveckla i Azure

TDDD80. Mobila och sociala applikationer Introduktion HTTP,SaaS. Anders Fröberg Institutionen för Datavetenskap (IDA)

F8 Webbteknologier 2. EDA095 Nätverksprogrammering. Roger Henriksson Datavetenskap Lunds universitet

Avancerade Webbteknologier

Snabbguide Visma Compact API Version 5.1 Copyright Visma Spcs AB Visma Compact API

Namn: (Ifylles av student) Personnummer: Tentamensdatum: Tid: Hjälpmedel: Inga hjälpmedel

2I1073 Föreläsning 1. HTML och XHTML XHTML

MVC med Javascript och Ajax. Filip Ekberg

Föreläsning 6: Introduktion av listor

Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll,

Upsättning av Shoutcast-sändning

Objektorienterad Programkonstruktion. Föreläsning 11 6 dec 2016

Slutrapport för JMDB.COM. Johan Wibjer

1. Lära sig beräkna kon densintervall och täckningsgrad 2. Lära sig rita en exponentialfördelning 3. Lära sig illustrera centrala gränsvärdessatsen

Alla rättigheter till materialet reserverade Easec

2.1 Installation of driver using Internet Installation of driver from disk... 3

Novell Filr 1.2 skrivbordsprogram för Mac snabbstart

JAVASCRIPT-POWERED LOADRUNNER CHRISTIAN GERDES PERFORMANCE ENGINEER LIGHTS IN LINE AB

Din egen webserver med Apache

DCAT-AP. Vad är det och vad kommer härnäst

Objektorienterad programmering

emopluppen Användning av "Ant" Niklas Backlund Version: 1.4 ( 2002/04/26 07:27:52 UTC)

HexaFlip. Kravspecifikation

Tänk på följande: Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.

Services + REST och OAuth

Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)

Installationsanvisningar

ANVÄNDARMANUAL ANSLUTA TILL REGION HALLAND VIA CITRIX

Objektorienterad programmering i Java. Föreläsning 5 Kort om Java-Applets

Examination i. PROGRAMMERINGSTEKNIK F1/TM1 TIN212 (Dugga) Dag: Onsdag Datum: Tid: (OBS 3 tim) Rum: V

Retrieve a set of frequently asked questions about digital loans and their answers

Nya webbservern Dvwebb.mah.se

Elisabet Stöök Konsult SAS Institute AB Copyright 2003, SAS Institute Inc. All rights reserved.

NU! NU! Bygg en webbplats NU! Bygg en webbplats. Swedish Language Edition published by Docendo Sverige AB. Bygg en webbplats.

Objektsamlingar i Java

Tentamen för kursen Objektorienterad programvaruutveckling GU (DIT010)

Denna laboration skapades för elever vid Roslagens Högskola men kan användas av vem som helst. Namnen på servrarna måste i så fall ändras.

Klient/server. Översikt. Lektion 1: Webbtekniker från Microsoft. Webbteknik från Microsoft. Klient/server. Designmönster. Utrullning.

Grundläggande programmering med C# 7,5 högskolepoäng

Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata

PAINTFEUD. Erfarenheter

Systemkrav. Systemkrav för Hogia Approval Manager. Gäller från och med programversion

PM- Företagande inom vård/omsorg

Business Model You Din personliga affärsplan framtagen på åtta timmar.

Webservice tjänsten GetPerson Slagning mot befolkningsregister

Modern webbutveckling. av Robert Welin-Berger

Databasens består av: Tabell Kolumner fält Rader poster (varje post är unik)

"HTML5 och relaterade API:er"

Lösningsförslag till tentamen i EDA011/EDA017 Programmeringsteknik för F, E, I, π och N 27 maj 2008

Installationsanvisning Boss delad databas

SAS Grid Computing. Kent Odelli, IT Architect SAS Institute. Copyright 2010, SAS Institute Inc. All rights reserved.

Vindbrukskollen Nationell databas för planerade och befintliga vindkraftverk Insamling och utveckling

Datorövning 5. Statistisk teori med tillämpningar. Lära sig beräkna konfidensintervall och utföra hypotestest för:

Tentamen i TDP004 Objektorienterad Programmering Lösningsförslag

Programmeringsuppgifter 1

Surfning. Webbklienter och webbservrar. Specialskrivna webbservrar. Kommunikation med sockets

SurveyXact funktionsöversikt Version 6.3. Allmänt om SurveyXact

ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet

I denna laboration skriver jag inte ut resultatet på de flesta frågorna utan du kör dem själv i din miljö.

Essential Php Security Författare: Shiflett, Chris Antal sidor: 124 Förlag: O'Reilly

Användarhandbok - SRS

Transkript:

Vad gör européer på dagarna? Anders Kraftling SAS-ansvarig Statistiska Centralbyrån

Agenda Hur man med SAS kan ta reda på vad européerna gör! Vad gör européer på dagarna? Ett uppdrag från Eurostat Bakgrund till undersökningen En SAS/IntrNet applikation Hur den används Hur den fungerar Hur vi byggde den 2

Sekundär agenda Generella SAS-tips Tabelldriven programmering Genererad programkod från data Namnstandard Hur man undkommer fnutt-helvetet Goda råd i allmänhet vid utveckling av webbapplikationer med SAS 3

HETUS Harmonised European Time Use Survey Många nationer gör tidsanvändningsundersökningar Används inom bland annat genusforskning Harmoniseringen initierades i början på 1990-talet Många länder vill nu sammanställa data och jämföra En webbapplikation ett naturligt val men hur? Möjligheten till dynamiska tabelluttag inte public Login över https 4

HETUS Ett uppdrag från Eurostat Uppdraget att sammanställa data gick till Finland bygga uttagsapplikationen gick till Sverige Deltagande länder i denna fas: Spanien, Frankrike, England, Tyskland, Norge, Sverige, Finland I fas 2 tillkommer ytterligare cirka 10 länder 5

Webb-applikationen 3 skikt Klienten Gränssnittsfunktionalitet Webbserver Webbfunktionalitet Applikationsserver Programfunktionalitet Skikt 1 Skikt 2 Skikt 3 6

HETUS Klienten Demo 7

Klienten https:/www.h.scb.se/hetus Applikations -server SQLserver Webbservern SASapplikation SAS 8

Skikt 1 - Klienten TIPS: Applikationens framsida Utseende Style Templates tus.css Funktionalitet ute i klientens browser Logik Javascript tus.js Data JavascriptArrayer dat.js Fasta sidor page.html Hämtas från Webb-servern Dynamiska sidor page.htm Hämtas eller genereras från SAS-servern 9

Skikt 2 - Webbservern Applikationens mellanskikt Lagrar alla fasta HTML-sidor Lagrar alla resursfiler Bilder, JavaScript, Cascading Style Sheets Har CGI-funktionalitet installerad Broker.exe Broker.cfg Förmedlar begäran till SAS-servern 10

TIPS: för broker.cfg SocketService Tus "Harmonised European Time Used Survey" ServiceAdmin "The administrator" ServiceAdminMail "hetus@scb.se" ServiceDescription "Harmonised European Time Used Surv Server scb6849.scb.intra Port 6003 ServiceSASPoweredLogo "../tus/images/hetussas.gif" ServiceSASPoweredHref "../tus/default.htm" ServiceSASPoweredAlt "Click to get to the Main Menu" ServiceAppendFile "//scb6849/inetpub/tus/copyright.ht ServiceSet SystemPath "<enhet:\\sökväg>" FullDuplex True ServiceAppendFile: Infogas sist i varje HTML-output vid varje request ServiceSet: Tilldelar en makrovariabel som är tillgänglig i hela applikationen 11

Skikt 3 Applikationsservern En tjänst (service) är startad Definierad på en port (socket) Lyssnar efter begäran Startar en SAS-session Stänger den efter timeout (default=15 min) Tjänsten konfigurerad med Datakatalog(er) Programkatalog(er) Vanliga SAS-program 12

TIPS: för proc appserv proc appsrv... unsafe='&";%''' allocate library tmplib '<enhet:sökväg>'; allocate file logfile '<enhet:sökväg\logs\%a_%p.log> allocate library t_dat '<enhet:sökväg>' access=readon allocate file t_pgm '<enhet:sökväg>'; proglibs t_pgm; datalibs t_dat; Exekvera dessa rader för varje request /* Run for each request */ request init=t_pgm.parameters.sas; run; /* Run for each session */ session init=t_pgm.init.sas; 13

Förutsättningar för att enkelt kunna bygga en Webb-applikation 1000-tals manår av färdigskriven kod att parametersätta och köra SAS tillhandahåller en funktion att installeras på Webb-servern för att förmedla anrop till en SAS-server Resultatet kan i realtid destineras direkt till klienten _webout formas med egna Styles och egna Tagsets genom att parsas 14

HETUS-applikationens struktur Datakatalog Formatkatalog Katalog med Webbsidor SAS-makron SAS-program System-katalog http://localhost/scripts91/broker.exe?_service=tus& _sessionid=uvbuwecvj52&_program=t_pgm.getpage.sas&page=meantable.htm Möjligheter i applikationen (1) 15

Gruppera (och summera tid) för: Huvudaktiviteteter Skapa Filtrera egna med episoder villkor Biaktiviteteter Kombinera WHERE-statement episod-egenskaper Lokaler eller förflyttningar I sällskap med 16

Möjligheter i applikationen (1) Välja episod-egenskaper (summerad tid) Huvudaktivitet Biaktivitet Lokal eller förflyttning I sällskap med En episod Välja redovisningsvariabler i tre nivåer Välja redovisning Summerad tid per dag eller vecka Deltagarandel i procent 17

Möjligheter i applikationen (2) Gruppera (och summera tid) för respektive: Huvudaktiviteteter Biaktiviteteter Lokaler eller förflyttningar I sällskap med 18

SAS-tips: dynamisk kod [1] /*==================================================== Check to see if there is groupdefinitiones in the call = Create syntax. Sum time (user definied collapsed groups) ====================================================*/ data _null_;... p1 = index(intext,"#"); if p1 > 0 then Konstruera do; SAS-syntax och lägg i en SAS-makrovariabel... outsyntax=catt(outcomp," ",outlabel); call symput("syntax",%nrstr(trim(outsyntax))); end; else do; call symput("syntax",""); end; run; 19

SAS-tips: dynamisk kod [2] /*==================================================== Create a dataset with the INVW (the inverted weight) ====================================================*/ data episod/view=episod; set &dsn /* If user selected countries => Subset countries here %if &country_list ne %str() %then (where=(cid in(&country_list)));; /*================================================== Sum to groups eventually if there is code for it ==================================================*/ &syntax Sätt in Makrovariabeln i sin context => Innehåller den syntax så exekveras den, annars händer ingenting 20

Möjligheter i applikationen (3) Skapa egna episoder Kombinera episod-egenskaper Filtrera med villkor WHERE-statement 21

TIPS: för JavaScript // ================================================= // gotowhere. Open the WHERE-screen // ================================================= function gotowhere() { var winpop = window.open("../tus/where.html", "winwhere","location,height=450,width=600") } // ================================================= // putwhere. Close the WHERE-screen // ================================================= För värdet från ett Browser-fönster till ett annat fönster function putwhere() { var txtwhere = document.frmwhere.txtwhere.value var txtwheretitle = document.frmwhere.txtwheretitle.va window.opener.document.forms[0].where.value = txtwhere window.opener.document.forms[0].seltxt.value = txtwheretitle window.close() window.opener.focus() } 22

Möjligheter i applikationen (3) Välja ett av flera beskrivna format Format är typiskt genomgående (multilabel notsorted) Ger möjlighet att enkelt framställa Summor med vald plats i tabellen Därav rader Osäkerhetsgranskning görs för celler med litet antal i urval för medelvärdestabeller Prickmarkeras (..) Insikter funna 23

SAS-tips: format (multilabel notsorted) /*============================================= Skapa multilabelformat =============================================*/ proc format; value $kon (multilabel notsorted) '1' = 'Män' '2' = 'Kvinnor' '1'-'2' = 'Båda könen' ; value alder (multilabel notsorted) 16-19 = '16-19 år' 20-24 = '20-24 år' 25-44 = '25-44 år' 45-64 = '45-64 år' 65-high = '65 år-' 16-high = 'Summa' 20-64 = '20-64 år' ; run; 24

SAS-tips: format (multilabel notsorted) /*============================================= Ta fram tabellen som ett SAS-dataset =============================================*/ proc tabulate data=sam101a_dat order=data; class Kon Alder SyssStat/missing mlf preloadfmt; by Fors00 Region notsorted; format Alder alder. Kon $kon. SyssStat $syssstat.; table Alder=' ', Kon=' ' * SyssStat=' '*N=' '*f=nlnum7.0 /printmiss misstext='-' box='åldersklasser'; run; 25

Insikter funna Tekniken medger att gamla SAS-program kan få en renässans Ett 15 år gammalt SAS-makro har satts i arbete igen Proc tabulate SAS/ODS ger (nästan) outtömliga möjligheter till att hantera dokumenttyper och utseende Eget Tagset Egen Style TUStag TUSstyle 26

Lärdomar dragna [1] Sträva efter att hitta en transparens Samtliga variabler klädda med lablar och format Intelligent konstruerad standard för variabelnamn och associerade format Medger autogenerering av JavaCode Naturlig association mellan variabler och format Ordning och reda i katalogstrukturen Många instanser av kataloger att hålla koll på Webbservern SAS Applikationsservern 27

Lärdomar dragna [2] Undvik data _null_ och PUT-satser: data _null_; file _webout; put <html> ; put <body> ; run; Undvik även i möjligaste mån ods markup text=: data _null_; ods markup text='<br><form action="*">'; ods markup text='<input type=button value="new table" style="width:100 onclick="javascript:window.history.go(-1)">'; ods markup text='</form>'; run; 28

Lärdomar dragna [3] Arbetsgång 1. Sätt upp och starta SAS/IntrNet tjänsten 2. Skriv eller anpassa SAS-programmen 3. Sätt upp en ODS-template för att få outputen exakt som du vill ha den 4. Skriv in en URL i adressfältet mot tjänsten 5. Använda HTML-outputen som stomme till ett gränssnitt för applikationen 29

Tack för mig! 30

31