Snabbguide för. Visma Integration för Visma Administration 500/1000/2000 Visma Integration för Visma Förening. Utvecklarpaket
|
|
- Mats Fransson
- för 9 år sedan
- Visningar:
Transkript
1 Snabbguide för Visma Integration för Visma Administration 500/1000/2000 Visma Integration för Visma Förening Utvecklarpaket Version: 5.0 Oktober by Visma Spcs AB
2 BESKRIVNING AV VISMA INTEGRATION FÖR VISMA ADMINISTRATION 500/1000/2000 OCH VISMA FÖRENING... 1 INLEDNING... 1 MÖJLIGHET TILL INTEGRATION... 1 VILKEN TYP AV LÖSNING BEHÖVER JAG?... 1 Integration för eget bruk... 1 Integration för kommersiella utvecklare... 2 KORT TEKNISK BESKRIVNING... 2 PROGRAMMERINGSSPRÅK... 2 SYSTEMKRAV... 2 VAD ÄR MÖJLIGT MED HJÄLP AV API:ET?... 3 ANVÄNDNING AV API... 4 FUNKTIONER SOM UTFÖR DATABASOPERATIONER... 4 ADKADD... 4 ADKSETSORTORDER... 6 ADKFIND... 6 ADKFIRST... 7 ADKLAST... 7 ADKNEXT... 8 ADKPREVIOUS... 8 ADKUPDATE... 9 ADKDELETE... 9 ADKDELETEROW ADKGETCUSTOMERPRICE ADKGETVATPRECENTONARTICLE HJÄLPFUNKTIONER SOM INTE UTFÖR DATABASOPERATIONER ADKOPEN ADKOPENEX ADKCLOSE ADKCREATEDATA ADKCREATEDATAROW ADKDELETESTRUCT ADKRESETSTRUCT FELHANTERING ADKSETWARNINGFUNCTION DATUM ADKGET ADKSET ADKGETTYPE ADKGETLENGTH ADKGETDECIMALS ADKGETFIELDNAME ADKGETDATAROW ADKISREADWRITE ADKGETADMSIZE DYNAMISK MENY... 15
3 Beskrivning av Visma Integration för Visma Administration 500/1000/2000 och Visma Förening Inledning Visma Spcs är en av Sveriges största leverantörer av ekonomiprogram till mindre företag i Sverige. I Visma Spcs produktsortiment ingår många produkter, bl.a. Visma Administration, Visma Lön och Visma Skatt. De flesta programmen har tiotusentals användare och för att låta dessa slutanvändare koppla på för- och eftersystem till Visma Administration 500/1000/2000 och Visma Förening, har Visma Spcs utvecklat ett generellt programmeringsgränssnitt API (Application Program Interface) och tagit fram produkterna Visma Integration för Visma Administration 500/1000/2000 och Visma Integration för Visma Förening. Möjlighet till integration Genom Visma Integration är det alltså möjligt att integrera Visma Administration 500/1000/2000 och Visma Förening med en extern programvara. För att kunna skapa denna integration krävs en programmeringsinsats. Visma Spcs har därför även tagit fram en utvecklardokumentation som innehåller all nödvändig information för programmering mot dessa program. Genom att teckna ett licensavtal med Visma Spcs får du som utvecklare tillgång till denna dokumentation och kan därmed skapa integrerade lösningar. Om du har behov av att integrera en extern programvara med Visma Administration 500/1000/2000 och Visma Förening, men inte själv har programmeringsresurser, ber vi dig besöka vår hemsida Under rubriken Produkter och tjänster och Visma Integration (API) finns en lista över befintliga API-leverantörer. Vilken typ av lösning behöver jag? Utvecklarpaketet för Visma Integration vänder sig i huvudsak till två olika kundgrupper: 1. Företag som är i behov av en integrerad lösning för eget bruk och som inte har för avsikt att sälja denna vidare till andra företag. 2. Kommersiella utvecklare som vill skapa integrerade lösningar med syftet att sälja dessa vidare till andra företag, dvs. till slutanvändare. Integration för eget bruk Om du själv har programmeringsresurser eller har möjlighet att köpa denna kunskap från något annat företag, kan du komplettera programmen Visma Integration med den nödvändiga utvecklardokumentationen. Detta alternativ innebär att du som slutkund själv köper både programmet och utvecklardokumentationen samt tecknar ett avtal med Visma Spcs för utveckling för eget bruk. En begränsning i detta avtal är att det inte ger dig rättighet att sälja den integrerade lösningen vidare till andra företag, utan kan endast använda den internt på ditt företag. I denna lösning ingår: Programmet Visma Integration för Visma Administration 500,1000 eller 2000, eller Visma Integration för Visma Förening Licensavtal avseende Visma Integration för Visma Administration 500, 1000 eller 2000, eller Visma Förening. Rättighet att programmera mot API:et för eget bruk Därutöver får du även tillgång till den nödvändiga utvecklardokumentationen som består av: 1
4 Referensmanual med utförliga kodexempel i C++ Exempelprojekt: C++ C# Pascal Visual Basic Alla nödvändiga filer för programmering Rätt till en timmes fri handledning. Möjlighet till ytterligare handledning mot debitering f.n kr per timme exkl. moms. Debitering sker per påbörjad halvtimme. Observera att en grundförutsättning för att kunna köpa någon av produkterna Visma Integration för Visma Administration 500, 1000, 2000 respektive Visma Integration för Visma Förening, är att du har någon av produkterna Visma Administration 500/1000/2000 eller Visma Förening samt ett giltigt serviceavtal för aktuellt program. För ytterligare information hänvisas till Visma Spcs på telefon eller e-postadressen sales@vismaspcs.se. Integration för kommersiella utvecklare Om du har för avsikt att skapa en integrerad miljö och sälja den kompletta lösningen vidare till slutkunder, har du möjlighet att teckna ett utvecklaravtal med Visma Spcs. I utvecklaravtalet ingår programmen Visma Integration för Visma Administration 500/1000/2000 respektive Visma Integration för Visma Förening för utvecklarändamål, ej för eget bruk, samt nödvändiga filer för programmering. Utvecklaravtalet ger dig därmed möjlighet att skapa lösningar som kan integreras med både Visma Administration 500, Visma Administration 1000, Visma Administration 2000 och Visma Förening. Därutöver ingår i utvecklaravtalet: Referensmanual med utförliga kodexempel i C++ Exempelprojekt: C++ C# Pascal Visual Basic Alla nödvändiga filer för programmering Rätten att använda logotypen Licenserad API-utvecklare vid kommunikation med slutkund. Rätt till en timmes fri handledning. Möjlighet till ytterligare handledning mot debitering. Debitering sker per påbörjad halvtimme. För ytterligare information hänvisas till Visma Spcs på telefon eller e-postadressen sales@vismaspcs.se. Kort teknisk beskrivning Programmeringsspråk API:et är framtaget för programmering i C++, men det finns även möjlighet att använda andra programmeringsspråk. Om du önskar information om programmering i andra språk ber vi dig kontakta oss på telefon eller e-postadressen sales@vismaspcs.se. Systemkrav Systemkraven för en integrerad lösning kan delas upp i två delar: 2
5 Systemkrav för den externa produkten Systemkrav för produkterna Visma Administration 500/1000/2000 respektive Visma Förening. Visma Administration 500/1000/2000 respektive Visma Förening kan användas på något av operativsystemen 2000/XP/Vista. För att använda programmet rekommenderas Pentium II-processor eller bättre. För installationen krävs minst 180 MB ledigt på hårddisken och därutöver ytterligare utrymme under användandet. Om du har för avsikt att använda ditt externa program samtidigt som du använder Visma Administration respektive Visma Förening måste du köpa till en användarlicens för Visma Integration. Vad är möjligt med hjälp av API:et? API:et består av följande: En dll-fil, Adk.dll, som inkluderas i det integrerade systemet. En header-fil skriven i C, Adk.h, som exponerar ett antal funktioner vilka används för att hämta, lägga till eller ändra information i programmets databas..net-wrapper (installeras ihop med produkterna Visma Administration 500/1000/2000 respektive Visma Förening) Vid användandet av API:et kommer all kommunikation med programmets databas att ske via API:et. API:et erbjuder möjligheten att arbeta med vissa förutbestämda delar av programmet. I vissa programdelar är det endast möjligt att läsa från databasen, alltså hämta första, hämta nästa och söka efter en post. Vilka programdelar som är möjliga att arbeta med samt vad som går att utföra i respektive del framgår av tabellen nedan. Benämning Rättighet Artikel Kund Leverantör Projekt 3) Faktura rad Leverantörsfaktura rad Offert 1) rad Order 2) rad Manuell inleverans 2) Manuell utleverans 2) Beställning 1) Läsa, Skriva och radera rad 3
6 Inventering 2) Läsa och skriva Artikelgrupp Artikelkonto Läsa Betalsätt Distrikt 2) Enhet Företagsuppgifter Läsa och skriva Inköpspriser Konto Läsa Kundkategori Leveranssätt Leveransvillkor Prislista Priser Rabattavtal Rabattavtalsrader Resultatenhet Språk 4) Säljare 2) Valuta 4) Speditör 4) Medlemmar 5) Fria kategorier ) Inkommande följesedlar 1) Kolli 2) Leveransaviseringskolli 1) Läsa Avikande leveransadr. Landskoder Kundinbetalningar Bortskrivningskoder Företagsinställningar Läsa Utbetalningar Läsa Kontakter 4) Verifikationer Läsa och skriva Bokföringsår Läsa Rabattkoder Läsa och skriva Kontakttitlar 4) Kontaktgrupper 4) Kontaktkopplingar 4) Skattereduktion 1) Finns endast i Visma Administration ) Finns endast i Visma Administration 1000/2000 3) Finns endast i Visma Administration 1000/2000 och Visma Förening 4) Finns inte i Visma Förening 5) Finns endast i Visma Förening Användning av API Användning av API:et bygger på en grundstruktur där det finns ett antal grundfunktioner som är standardiserade och används till samtliga programdelar. Det går att dela upp de funktioner som finns i två kategorier. Den första kategorin är de funktioner som utför operationer mot databasen, t ex hämta första eller lägga till. Den andra kategorin är de funktioner som underlättar och gör användandet av API:et möjligt. Nedan följer en genomgång av hur API:et ska användas. Funktioner som utför databasoperationer Här beskrivs de funktioner som utför operationer mot databasen, t ex att lägga till en ny post eller söka upp en befintlig post. Centralt för dessa funktioner är en generell struktur som innehåller all information som kan hämtas eller skickas till Visma Administration 500/1000/2000 och Visma Förening. Denna struktur innehåller olika fält beroende på vilken programdel som arbete ska ske mot. Samtliga fält som finns med i respektive struktur motsvarar ett fält i Visma Administration 500/1000/2000 respektive Visma Förening. AdkAdd 4
7 Funktionen AdkAdd() används för att addera något till databasen. Det första som måste göras är att skapa en datastruktur av den typ som ska användas. Detta görs med funktionen AdkCreateData(). I Adk.h-filen specificeras de delar av programmet som det är möjligt att arbeta med. Nedan följer ett exempel där en faktura med tillhörande rader skapas. Först används funktionen AdkCreateData() för att skapa en datastruktur. Hit skickas ADK_DB_INVOICE_HEAD med som inargument. Inparametern i anropet talar om att strukturen ska användas för ett fakturahuvud. När strukturen för fakturahuvudet är skapad kan fälten i strukturen tilldelas olika värden, vilket görs med de olika AdkSet-funktionerna. Om t ex ett värde för kundnummer ska anges på fakturan används Adk.h och där framgår att fältet ADK_OOI_HEAD_CUSTOMER_NUMBER i strukturen representerar kundnumret. Det framgår även att det är en sträng. Funktionen AdkSetStr() används för att tilldela detta fält ett värde. När valda fält är tilldelade i huvudet kan rader skapas och dessa kan kopplas till fakturahuvudet. För att skapa rader anropas AdkCreateDataRow() med inparametrarna ADK_DB_INVOICE_ROW och antalet rader som ska skapas. Därefter skapas en vektor av strukturer för fakturarader, en för varje fakturarad. När aktuella fält är tilldelade i respektive rad ska de kopplas samman med huvudet. Kopplingen sker genom funktionen AdkSetData(). I strukturen för huvudet finns fältet ADK_OOI_HEAD_ROWS som utgör kopplingen till raderna. När raderna är kopplade, ska antalet rader anges. Detta görs till fältet ADK_OOI_HEAD_NROWS i huvudet med hjälp av funktionen AdkSetDouble(). Initieringen av datastrukturen är därefter klar och funktionen AdkAdd() kan användas för att skriva till databasen. För att kunna avgöra vad det är som ska läggas till kontrollerar AdkAdd() först vilken programdel som strukturen representerar. Nedan följer ett komplett kodexempel i C++ på hur en faktura skapas: ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_INVOICE_HEAD); error = AdkSetStr(pData, ADK_OOI_HEAD_CUSTOMER_NUMBER,"Kund1"); error = AdkSetStr(pData, ADK_OOI_HEAD_TYPE_OF_INVOICE, "F"); int ninvoicerows = 3; error = AdkSetDouble(pData, ADK_OOI_HEAD_NROWS, ninvoicerows); PADK_DATA prowdata = AdkCreateDataRow(ADK_DB_INVOICE_ROW, ninvoicerows); for(int i = 0; i < ninvoicerows; i++) { PADK_DATA ptempdata = AdkGetDataRow(pRowData,i); error = AdkSetStr(pTempData, ADK_OOI_ROW_ARTICLE_NUMBER, "Artikel1"); error = AdkSetDouble(pTempData, ADK_OOI_ROW_QUANTITY2, 10); } error = AdkSetData(pData, ADK_OOI_HEAD_ROWS, prowdata); error = AdkAdd(pData); AdkDeleteStruct(pData); Static Error As ADKERROR pdata = AdkCreateData(ADK_DB_INVOICE_HEAD) Error = AdkSetStr(pData, ADK_OOI_HEAD_CUSTOMER_NUMBER, Kund1 ) Error = AdkSetStr(pData, ADK_OOI_HEAD_TYPE_OF_INVOICE, "F") nrader=3 pdatarow = AdkCreateDataRow(ADK_DB_INVOICE_ROW, nrader) For i = 0 To (nrader - 1) pdatatemp = AdkGetDataRow(pDataRow, i) Error = AdkSetStr(pDataTemp, ADK_OOI_ROW_ARTICLE_NUMBER, Artikel1 ) Error = AdkSetDouble(pDataTemp, ADK_OOI_ROW_QUANTITY2, 10) Next i Error = AdkSetData(pData, ADK_OOI_HEAD_ROWS, pdatarow) Error = AdkSetDouble(pData, ADK_OOI_HEAD_NROWS, nrader) 5
8 Error = AdkAdd(pData) Error = AdkDeleteStruct(pData) AdkSetSortOrder Funktionen AdkSetSortOrder() bestämmer vilken sorteringsordning som ska användas till en databastabell. AdkSetSortOrder() tar två inparametrar, den första är en pekare till en datastruktur som är kopplad till den tabell som sorteringsordning ska bestämmas för och den andra används för att ange sorteringsordning. Alla sorteringsordningar finns specificerade i Adk.h-filen. AdkSetSortOrder() används t ex vid en sökning. Sorteringsordningen gäller fram till dess att AdkSetSortOrder() anropas med en ny sorteringsordning för den aktuella tabellen. AdkFind Funktionen AdkFind() söker information i någon av de programdelar som API:et kan användas mot. På samma sätt som AdkAdd() är funktionen generell för samtliga delar av programmet. AdkFind() tar en inparameter, pekaren till den datastruktur sökning ska utföras i. Vilken sökordning som ska användas bestäms med hjälp av funktionen AdkSetSortOrder(), som beskrivits ovan. För att söka efter en kund kan sökning ske på bl.a. kundnummer eller kundnamn. Funktionen är uppbyggd så att det fält som sökning ska ske på tilldelas ett värde och sedan skickas datastrukturen in till funktionen. Övriga värden som det funna elementet innehåller fylls på i datastrukturen. Nedan följer ett kodexempel i C++ vilket sökning sker efter en kund ( Kund1 ). ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_CUSTOMER); ADK_SORT_ORDER nsortorder = ecustomernr; error = AdkSetStr(pData, ADK_CUSTOMER_NUMBER, "Kund1"); error = AdkSetSortOrder(pData, nsortorder); error = AdkFind(pData); Static Error As ADKERROR pdata = AdkCreateData(ADK_DB_CUSTOMER) Error = AdkSetSortOrder(pData, ecustomernr) Error = AdkSetStr(pData, ADK_CUSTOMER_NUMBER, " Kund1") Error = AdkFind(pData) Först skapas en datastruktur för typen kund. För att kunna söka på kundnummer måste därefter en variabel av typen ADK_SORT_ORDER skapas och variabeln måste ges värdet för kundnummer. För att kunna söka på kundnummer skapas därefter en variabel av typen ADK_SORT_ORDER och variabeln ges värdet för kundnummer. På nästa rad tilldelas det värde som sökning ska ske på, i detta fall Kund1. Därefter anropas funktionen AdkSetSortOrder() för att ange sökordning och slutligen anropas AdkFind(). Om sökningen går bra och en post hittas för det sökta värdet, fylls datastrukturen i med all data som denna post har. Om det finns fler poster med samma värde kommer den första att returneras. Sedan finns möjligheten att med hjälp av funktionen AdkNext() stega framåt. Om ingen träff sker på det sökta värdet returneras en felkod. Hur denna kod hanteras beskrivs i avsnittet om felhantering. Nu innehåller datastrukturen som skickades in till AdkFind() alla de värden som den funna posten i databasen har. För att kunna utläsa värden från datastrukturen används AdkGet-funktionerna. Nedan följer ett kodexempel, som är en fortsättning på föregående exempel, där data hämtas från den funna posten. 6
9 char* stemp = new char[51]; error = AdkGetStr(pData, ADK_CUSTOMER_NAME, &stemp, 50); int btemp; error = AdkGetBool(pData, ADK_CUSTOMER_REMINDER, &btemp); double dtemp; error = AdkGetDouble(pData, ADK_CUSTOMER_CREDIT_LIMIT, &dtemp); double dtemp2; error = AdkGetDouble(pData, ADK_CUSTOMER_ROW_DISCOUNT, &dtemp2); Dim stemp As String stemp = Space(50) Error = AdkGetStr(pData, ADK_CUSTOMER_NAME, stemp, 50) Dim btemp As Boolean Error = AdkGetBool(pData, ADK_CUSTOMER_REMINDER, btemp) Dim dtemp As Double Error = AdkGetDouble(pData, ADK_CUSTOMER_CREDIT_LIMIT, dtemp) Dim dtemp2 As Double Error = AdkGetDouble(pData, ADK_CUSTOMER_ROW_DISCOUNT, dtemp2) AdkFirst Funktionen AdkFirst() hämtar den första posten i en programdel. Funktionen tar en inparameter, pekaren till den datastruktur där data från det första elementet ska skrivas. Nedan följer ett kodexempel där den första artikeln som finns i databasen hämtas. ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_ARTICLE); error = AdkFirst(pData); Static Error As ADKERROR pdata = AdkCreateData(ADK_DB_ARTICLE) Error = AdkFirst(pData) Här skapas en datastruktur av typen artikel, sedan anropas funktionen AdkFirst() och datastrukturen fylls med värden. För att läsa värden från datastrukturen används AdkGetfunktionerna, som beskrivits tidigare. AdkLast Funktionen AdkLast() hämtar den sista posten i en programdel. Funktionen tar en inparameter, pekaren till den datastruktur där data från det sista elementet ska skrivas. Nedan följer ett kodexempel i C++ där den sista artikeln som finns i databasen hämtas. ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_ARTICLE); error = AdkLast(pData); Static Error As ADKERROR pdata = AdkCreateData(ADK_DB_ARTICLE) Error = AdkLast(pData) Här skapas en datastruktur av typen artikel, sedan anropas funktionen AdkLast() och datastrukturen fylls med värden. För att läsa värden från datastrukturen används AdkGet-funktionerna, som beskrivits tidigare. 7
10 AdkNext Funktionen AdkNext() hämtar nästa post i en programdel. Förutsättningen för att kunna använda denna funktion är att en post tidigare har lästs in i datastrukturen, t ex med AdkFind() eller AdkFirst(). Nedan följer ett kodexempel i C++ på hur alla artiklar läses upp. ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_ARTICLE); error = AdkFirst(pData); do { char* temp = new char[31]; error = AdkGetStr(pData, ADK_ARTICLE_NAME, &temp, 30); printf( %s\n, temp); error = AdkNext(pData); delete[] temp; } while(error.lrc!= ADKE_EOF); Static Error As ADKERROR temp = Space(30) pdata = AdkCreateData(ADK_DB_ARTICLE) Error = AdkFirst(pData) While Error.lRc <> ADKE_EOF Error2 = AdkGetStr(pData, ADK_ARTICLE_NUMBER, temp, 30) Combo2.AddItem (temp) Error = AdkNext(pData) Wend Här skapas en datastruktur av typen artikel. Först hämtas den första posten i artikelregistret och sedan skrivs dess artikelnummer på skärmen. Därefter anropas funktionen AdkNext(). Finns det ingen nästa post kommer ett felmeddelande att returneras och loopen bryts. För att läsa värden från datastrukturen används AdkGet-funktionerna, som beskrivs i avsnittet om AdkFind(). AdkPrevious Funktionen AdkPrevious() hämtar föregående post i en programdel. Förutsättningen för att kunna använda denna funktion är att en post tidigare har lästs in i datastrukturen, t ex med AdkFind() eller AdkLast(). Nedan följer ett kodexempel i C++ på hur alla artiklar läses upp. ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_ARTICLE); error = AdkLast(pData); do { char* temp = new char[31]; error = AdkGetStr(pData, ADK_ARTICLE_NAME, &temp, 30); printf( %s\n, temp); error = AdkPrevious(pData); delete[] temp; } while(error.lrc!= ADKE_BOF); Static Error As ADKERROR temp = Space(30) pdata = AdkCreateData(ADK_DB_ARTICLE) Error = AdkLast(pData) 8
11 While Error.lRc <> ADKE_BOF Error2 = AdkGetStr(pData, ADK_ARTICLE_NUMBER, temp, 30) Combo2.AddItem (temp) Error = AdkPrevious(pData) Wend Här skapas en datastruktur av typen artikel. Först hämtas den sista posten i artikelregistret och sedan skrivs dess artikelnummer på skärmen. Därefter anropas funktionen AdkPrevious(). Finns det ingen nästa post kommer ett felmeddelande att returneras och loopen bryts. För att läsa värden från datastrukturen används AdkGet-funktionerna, som beskrivs i avsnittet om AdkFind(). AdkUpdate Funktionen AdkUpdate() uppdaterar en befintlig post i databasen. Användandet av funktionen sker på följande vis: En datastruktur skapas med AdkCreateData() och tilldelas de värden som ska ändras. För att peka ut vilken post som ska ändras används det aktuella registrets nyckel, t ex artikelnummer om det är en artikelpost som ska uppdateras. Nedan följer ett kodexempel i C++ på hur en artikel uppdateras. ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_ARTICLE); error = AdkSetStr(pData, ADK_ARTICLE_NUMBER, "Artikel1"); error = AdkSetStr(pData, ADK_ARTICLE_NAME, "UppdateradArtikel1"); error = AdkSetStr(pData, ADK_ARTICLE_SHORT_NAME, "Uppd.Art1"); error = AdkUpdate(pData); Static Error As ADKERROR pdata = AdkCreateData(ADK_DB_ARTICLE) Error = AdkSetStr(pData, ADK_ARTICLE_NUMBER, "Artikel1");) Error = AdkSetStr(pData, ADK_ARTICLE_NAME, "UppdateradArtikel1") Error = AdkSetStr(pData, ADK_ARTICLE_SHORT_NAME, "Uppd.Art1") Error = AdkUpdate(pData) Först pekas den aktuella artikeln ut med hjälp av dess artikelnummer, sedan tilldelas de värden till aktuella fält som ska uppdateras. När värden är tilldelade anropas funktionen AdkUpdate() som utför uppdateringen i databasen. Det är inte möjligt att uppdatera nyckelfält. AdkDelete Funktionen AdkDelete() raderar en post i databasen. Innan AdkDelete() anropas måste en datastruktur skapas med AdkCreateData(). För att peka ut vilken post som ska raderas används det aktuella registrets nyckel, t ex artikelnummer när en artikelpost ska raderas. Nedan följer ett kodexempel i C++ på hur en artikel raderas. ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_ARTICLE); error = AdkSetStr(pData, ADK_ARTICLE_NUMBER, "Artikel1"); error = AdkDelete(pData); Static Error As ADKERROR pdata = AdkCreateData(ADK_DB_ARTICLE) Error = AdkSetStr(pData, ADK_ARTICLE_NUMBER, "Artikel1");) Error = AdkDelete(pData) 9
12 Först pekas den aktuella artikeln ut med hjälp av dess artikelnummer och sedan anropas funktionen AdkDelete() som utför raderingen i databasen. Om utförandet av funktionen AdkDelete() gick bra kommer minnet som datastrukturen pdata upptar att avallokeras. AdkDeleteRow Funktionen AdkDeleteRow() fungerar på liknande sätt som AdkDelete(). AdkDeleteRow() raderar en rad i en datastruktur. Funktionen används på följande sätt: En datastruktur skapas med hjälp av AdkCreateData(). För att peka ut vilken post som ska raderas används det aktuella registrets nyckel, t ex ordernummer om det är en orderrad som ska raderas. För att peka ut vilken rad som ska raderas används radens radnummer, som skickas med som en inparametrar. Nedan följer ett kodexempel i C++ på hur en orderrad raderas. ADK_ERROR error; ZeroMemory(&error, sizeof(adk_error)); PADK_DATA pdata = AdkCreateData(ADK_DB_ORDER_HEAD); error = AdkSetDouble(pData, ADK_OOI_HEAD_DOCUMENT_NUMBER, ); error = AdkDeleteRow(pData, 1); Static Error As ADKERROR pdata = AdkCreateData(ADK_DB_ORDER_HEAD) Error = AdkSetDouble(pData, ADK_OOI_HEAD_DOCUMENT_NUMBER, ) Error = AdkDeleteRow(pData, 1) Först pekas den aktuella ordern ut med hjälp av dess dokumentnummer och sedan anropas funktionen AdkDeleteRow() med pekaren till orderhuvudets datastruktur samt vilken orderrad som ska raderas. I fallet ovan är det rad nummer 1. Om utförandet av funktionen AdkDeleteRow() gick bra kommer datastrukturen pdata att fyllas på med det aktuella orderhuvudets data. Även de kvarvarande raderna kommer att skapas och fyllas med aktuell data. AdkGetCustomerPrice Funktionen AdkGetCustomerPrice() returnerar en specifik kunds pris med avseende på de parametrar som anges. AdkGetCustomerPrice(CHAR* strcustomer, CHAR* strarticle, DOUBLE dquantity, BOOL binvdisc, BOOL browdisc, BOOL binclvat, INT iselcir, DOUBLE* dval) strcustomer En charpekare som innehåller kundnumret till vilket man vill beräkna ett pris. strarticle En charpekare som innehåller artikelnumret till vilket man vill få fram priset. dquantity Antalet artiklar som är tänkta att säljas (för att beräkna artikelns stafflingpris). binvdisc Om kundens eventuella fakturarabatt ska användas vid beräkningen eller inte. browdisc Om kundens eventuella radrabatter ska tas med vid beräkningen eller inte. binclvat Om priset ska vara inklusive eller exklusive moms. binclvat I vilket pris beräkningen ska ske o 0 Kundens valuta o 1 Inhemsk valuta o 2 Slutgiltig prislistas valuta dval Minnesadress där värdet kommer att skrivas. AdkGetVatprecentOnArticle Funktionen användas för att hämta momssatsen för en specifik artikel i artikelregistret. Då det hittills varit en flerstegsprocess att få ut momssatsen skapades denna funktion för att underlätta hämtningen. Funktionen tar två inparametrar 10
13 AdkGetVatpercentOnArticle(CHAR* strarticle, DOUBLE* dval) strarticle En charpekare som innehåller det artikelnummer för vilken momssats önskas. dval Minnesadress där värdet kommer att skrivas. AdkGetSie Funktionen används för att generera SIE-filer på motsvarande sätt som går att göra i programmet. Hjälpfunktioner som inte utför databasoperationer Här beskrivs de funktioner som inte arbetar direkt mot databasen men som ändå behövs för att API:et ska fungera korrekt. AdkOpen Funktionen AdkOpen() används för att öppna en databas till ett befintligt företag. Funktionen tar två inparametrar, den första är en sträng som pekar ut var gemensamma filer för Visma Administration 500/1000/2000 respektive Visma Förening är installerat. Den andra är en sträng som pekar ut var det aktuella företaget är sparat. AdkOpenEx Funktionen AdkOpenEx() används för att öppna en databas till ett befintligt företag. Funktionen tar tre inparametrar, den första är en sträng som pekar ut var gemensamma filer för Visma Administration 500/1000/2000 respektive Visma Förening är installerat. Den andra är en sträng som pekar ut var det aktuella företaget är sparat. Den tredje används för att slå av respektive på loggning av funktionsanrop via adk.dll. AdkClose Funktionen AdkClose() stänger den koppling mot databasen som API:et har öppnat. AdkCreateData Funktionen AdkCreateData() skapar en datastruktur och returnerar en pekare till den skapade datastrukturen. AdkCreateData() tar en inparameter, som anger vilken typ av struktur som ska skapas. Observera att strukturerna endast får skapas av AdkCreateData() eller AdkCreateDataRow() och tas bort med AdkDeleteStruct(). AdkCreateDataRow Funktionen AdkCreateDataRow() skapar en datastruktur och returnerar en pekare till den skapade datastrukturen. AdkCreateDataRow() tar två inparametrar, som anger vilken typ av och antalet strukturer som ska skapas. AdkDeleteStruct Funktionen AdkDeleteStruct() avallokerar minne till en skapad datastruktur. AdkDeleteStruct() tar en inparameter, pekaren till den datastruktur som ska avallokeras. Den returnerar en datastruktur av typen ADK_ERROR. AdkResetStruct 11
14 Funktionen AdkResetStruct() nollställer minnet till en skapad datastruktur. AdkResetStruct() tar en inparameter, pekaren till den datastruktur som ska nollställas. Den returnerar en datastruktur av typen ADK_ERROR. Felhantering Felhanteringen i API:et använder sig av en datastruktur. Denna struktur är byggd på följande vis: typedef struct _Error { LONG lrc; LONG ldbtable; LONG lfield; LONG lfunction; LONG lprogrampart; } ADK_ERROR, *PADK_ERROR; Datastrukturen består av 5 element, dessa beskrivs nedan: lrc Felmeddelandet, alla kontroller bör göras mot detta värde. Det antar värdet 0 från början. Är det oförändrat har allt gått bra, är det förändrat har något gått fel. ldbtable - Pekar ut vilken databastabell som användes när felet uppstod. lfield - Pekar ut vilket fält i aktuell databas som användes när felet uppstod. lfunction - Pekar ut vilken funktion som anropades innan felet uppstod, t ex AdkAdd. Även det som ska läggas till pekas ut, t ex AdkAddCustomer. lprogrampart - Pekar ut den del i API:et där felet uppstod (används internt). När en funktion returnerar en datastruktur av typen ADK_ERROR ska en validering ske mot det returvärde som ges. Är värdet skilt från ADKE_OK har ett fel uppstått. Valideringen ska ske mot den kod som finns i lrc, vilket kan ske på följande sätt. If(error.lRc!= ADKE_OK) { //Error! } Till alla felkoder som beskrivs ovan kan feltexter hämtas. Detta görs med hjälp av funktionen AdkGetErrorText(). Denna funktion tar fyra inparametrar: AdkGetErrorText(ADK_ERROR* error, ADK_ERROR_TEXT_TYPE nerrortexttype, CHAR** achbuf, INT ilen) Nedan följer en redogörelse för de fyra inparametrarna: error - Datastrukturen som innehåller felmeddelanden. nerrortexttype - Vilken typ av fel som ska hämtas. Dessa definieras i enumen ADK_ERROR_TEXT_TYPE som finns definierad i Adk.h. achbuf Pekare till en sträng. Här kommer feltexten att skrivas. ilen - Integer som definierar hur många tecken som finns i den fjärde parametern. AdkSetWarningFunction Funktionen AdkSetWarningFunction() anger vilken funktion som ska anropas vid varningar. Hanteringen av varningar är i API:et löst genom att de rapporteras till en funktion som ligger utanför API:et och som måste skapas av den som utvecklar mot API:et. Funktionen ska ta en pekare till en datastruktur av typen ADK_ERROR. När en varning uppstår kommer denna funktion att anropas. AdkSetWarningFunction() anropas för att ange vilken funktion som ska användas för att ta emot varningar. Nedan följer en definition av funktionen och dess inparametrar: AdkSetWarningFunction(void(*function)(ADK_ERROR*)) 12
15 function Funktionspekare till en funktion som tar en pekare till en datastruktur av typen ADK_ERROR som inparameter. Datum I databasen behandlas datum som datatypen long (Juliandatum). För att underlätta användningen tillhandahåller API:et två datumfunktioner. Den första är AdkLongToDate() som konverterar en long till ett vanligt datum i en sträng. Funktionen tar tre inparametrar där den första är det long värde som ska omvandlas, den andra en strängpekare där datumet skrivs och den tredje är längden på den sträng där datumet ska skrivas. Skickas ett felaktigt värde till den första parametern kommer funktionen att ge dagens datum. Den andra funktionen är AdkDateToLong() som konverterar ett datum i form av en sträng till en long (Juliandatum). Funktionen tar två inparametrar där den första är en charpekare till strängen som ska konverteras och den andra är en referens till den long där datum ska skrivas som long (Juliandatum). Vid användandet av AdkDateToLong() är det viktigt att strängen är i formatet YYYY-MM-DD, vid felaktig användning kommer dagens datum att anges. AdkLongToDate() och AdkDateToLong() returnerar en datastruktur av typen ADK_ERROR. AdkGet AdkGet är ett antal funktioner som hämtar data ur en datastruktur och används t ex efter funktionen AdkFind() för att läsa de värden som blivit funna. Funktionerna tar tre inparametrar. Den första inparametern är pekaren till den datastruktur där data ska hämtas. Den andra inparametern är fältid till det fält där värdet ska hämtas. Den tredje inparametern är en referensvariabel där det önskade värdet kommer att skrivas. AdkGetStr() tar även en fjärde inparameter som anger referensvariabelns längd. De AdkGetfunktioner som finns tillgängliga är: AdkGetStr() AdkGetBool() AdkGetData() AdkGetDouble() AdkGetDate() AdkGet returnerar en datastruktur av typen ADK_ERROR. AdkSet AdkSet är ett antal funktioner som skriver värden i en datastruktur. De används t ex innan funktionen AdkAdd anropas (som skriver värdena från den aktuella datastrukturen till databasen). Samtliga AdkSet-funktionerna tar tre inparametrar. Den första inparametern är pekaren till den datastruktur där värden ska skrivas. Den andra inparametern är fältid till det fält där värdet ska skrivas. Den tredje inparametern är det värde som ska skrivas. De AdkSet funktioner som finns tillgängliga är: AdkSetStr() AdkSetBool() AdkSetData() AdkSetDouble() AdkSetDate() AdkSet returnerar en datastruktur av typen ADK_ERROR. AdkGetType 13
16 Funktionen AdkGetType() används för att hämta ett fälts datatyp. Nedan följer en definition av funktionen och dess inparametrar: AdkGetType(ADK_DATA* pdata, INT ifieldid, ADK_FIELD_TYPE* etype) pdata Pekaren till den datastruktur där datatypen ska hämtas. ifieldid - Fältid till det aktuella fältet. etype - Pekare till en variabel av typen ADK_FIELD_TYPE. Denna typ kan endast anta godkända datatypvärden. ADK_FIELD_TYPE finns definierad i Adk.h. AdkGetType() returnerar en datastruktur av typen ADK_ERROR. AdkGetLength Funktionen AdkGetLength() hämtar ett fälts längd. Nedan följer en definition av funktionen och dess inparametrar: AdkGetLength(ADK_DATA* pdata, INT ifieldid, INT* ilength); pdata - Pekaren till den datastruktur där längden ska hämtas. ifieldid - Fältid till det aktuella fältet. ilength - Pekare till en integer där längden på fältet skrivs. AdkGetLength() returnerar en datastruktur av typen ADK_ERROR. AdkGetDecimals Funktionen AdkGetDecimals() hämtar det antal decimaler ett fält kan innehålla. Nedan följer en definition av funktionen och dess inparametrar: AdkGetDecimals(ADK_DATA* pdata, INT ifieldid, INT* idec) pdata En pekare till den datastruktur där antalet decimaler ska hämtas från ett fält. ifieldid - Id till det fält där antalet decimaler ska hämtas. idec Minnesadressen till en int, här kommer antalet decimaler att anges. AdkGetDecimals ()returnerar en datastruktur av typen ADK_ERROR. AdkGetFieldName Funktionen AdkGetFieldName() hämtar namnet på ett fält, det alias som finns till varje fält i databasen. Nedan följer en definition av funktionen och dess inparametrar: AdkGetFieldName(INT idatabaseid, INT ifieldid, CHAR** ppsvalue, INT ilen) idatabaseid Den databastabell där fältnamnet ska hämtas. ifieldid - Fältid till det aktuella fältet. ppsvalue - Pekare till en charpekare där namnet på fältet skrivs. ilen Längden på ppsvalue. AdkGetFieldName() returnerar en datastruktur av typen ADK_ERROR. AdkGetDataRow Funktionen AdkGetDataRow() returnerar en pekare till en rad i en datastruktur med flera element. Funktionen används t ex när en speciell rad ska pekas ut i en struktur med flera fakturarader. Nedan följer en definition av funktionen och dess inparametrar: 14
17 AdkGetDataRow(ADK_DATA* pdatarow, INT iix) pdatarow Pekaren till datastrukturen. iix Indexet till önskad rad. AdkIsReadWrite Funktionen AdkIsReadWrite() returnerar en boolean som anger om ett fält är ReadWrite eller ej. Om returvärdet är sant innebär det att det aktuella fältet är ReadWrite, om returvärdet är falskt innebär det att det aktuella fältet är ReadOnly. Nedan följer en definition av funktionen och dess inparametrar: AdkIsReadWrite(ADK_DATA* pdata, INT ifieldid) pdata Pekaren till aktuell datastruktur. ifieldid Fältid till det aktuella fältet. AdkGetAdmSize Visma Integration för Visma Administration 500/1000/2000 och Visma Integration för Visma Förening använder alla filen adk.dll. Filen är lika oavsett vilket av dessa program den jobbar mot. Dessa program innehåller olika moduler och funktionalitet, t.ex. finns offerthantering bara i Visma Administration Det kan därför vara nödvändigt att ta reda på vilket program man jobbar mot så att ens egna program kan anpassas till det program som finns installerat hos slutanvändaren. Funktionen AdkGetAdmSize() hämtar information ur adk.dll om vilket program som är installerat. Detta kan erhållas antingen som ett heltalsvärde eller som en textsträng, beroende på medskickade inparametrar. Denna funktion kan anropas utan att AdkOpen()har anropats innan. piadmsize En int-pekare som är definierad utanför API:et. Värdet kommer att skrivas där. NULL tillåtet. chbuf Minnesadressen till en char-pekare som är definierad utanför API:et. Värdet kommer att skrivas in där. NULL tillåtet. Minst 44 tecken bör reserveras för resultatet utanför API:et för att hela texten ska få plats. ibufsize storleken på textbufferten som reserverats för resultatet. Om chbuf är NULL saknar denna parameter betydelse. Om exempelvis Visma Integration för Visma Administration 2000 är installerat returneras värdet ADKI_ADMIN2000 till piadmsize och texten Visma Integration för Visma Administration 2000 skrivs till chbuf. Övriga returvärden är: ADKI_ADMIN Visma Integration för Visma Administration 1000 ADKI_ADMIN500 - Visma Integration för Visma Administration 500 ADKI_FORENING - Visma Integration för Visma Förening Dynamisk meny I Visma Administration 500/1000/2000 respektive Visma Förening finns möjlighet att själv lägga till val i programmenyn. Detta görs med hjälp av filen DynamicMenu.xml. Denna fil används för Menyn och kommer endast att finnas tillgänglig för de kunder som har Visma Integration för Visma Administration 500/1000/2000 eller Visma Integration för Visma Förening. Den kommer dessutom enbart visas om det finns något valbart alternativ. 15
18 Följande tre taggar med tillhörande parametrar finns att tillgå <Menu> Submeny o Name Namnet på menyn <MenuItem> o Path Sökväg till programmet o Parameters Parametrar som ska skickas med vid exekveringen %P Ger programnamnet %F Ger sökväg till aktivt företag %G Ger sökväg till gemensamma filer %R Ger aktuellt register %U Ger unikt id Övrigt ger exakt det som skrivs <Separator> Exempel <?xml version="1.0" encoding="iso "?> <DynamicMenuSetup> <Menu Name="Notepad"> <MenuItem Path="C:\NOTEPAD.EXE" Parameters="C:\Text.txt">Anteckningar</MenuItem> </Menu> <Separator /> 16
Visma Integration för. Visma Administration 500 Visma Administration 1000 Visma Administration 2000 Visma Förening. Referensmanual
Visma Integration för Visma Administration 500 Visma Administration 1000 Visma Administration 2000 Visma Förening Referensmanual Version: 5.1 2010-11-03 2001-2010 by Visma Spcs AB AFFÄRSLOGIK... 5 INSTALLATION...
Snabbguide Visma Compact API Version 5.1 Copyright 2006-2008 Visma Spcs AB Visma Compact API
Snabbguide Visma Compact API Version 5.1 Copyright 2006-2008 Visma Spcs AB Visma Compact API Introduktion Visma Compact API är ett programmeringsgränssnitt framtaget för att underlätta integration av Visma
Introduktion till integrering av Schenkers e-tjänster. Version 2.0
Introduktion till integrering av Schenkers e- Version 2.0 Datum: 2008-06-18 Sida 2 av 8 Revisionshistorik Lägg senaste ändringen först! Datum Version Revision 2008-06-18 2.0 Stora delar av introduktionen
Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB
Snabbguide Visma Compact API Copyright 2006-2010 Visma Spcs AB Komma igång med Compact API Hur APIet fungerar Visma Compacts API läser och skriver direkt till databasen via ett antal färdiga metoder som
Programmeringsteknik med C och Matlab
Programmeringsteknik med C och Matlab Kapitel 2: C-programmeringens grunder Henrik Björklund Umeå universitet Björklund (UmU) Programmeringsteknik 1 / 32 Mer organisatoriskt Imorgon: Datorintro i lab Logga
Användarmanual Pagero Connect 2.0
Användarmanual Pagero Connect 2.0 Innehåll 1. Grundläggande information... 3 1.1 Aktivera ditt Pagero Onlinekonto... 3 1.2 Ladda ner Pagero Connect 2.0... 3 1.3 Startsida... 4 1.4 Minimerad vy... 5 1.5
Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Omtentamen i Programmering C, 5p, fristående, kväll, 040110.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till tentauppgifterna sätts ut på kurssidan på nätet idag kl 19. Denna tenta kommer att vara färdigrättad On 14/1-04 och kan då hämtas på mitt
Chapter 3: Using Classes and Objects
Chapter 3: Using Classes and Objects I dessa uppgifter kommer du att lära dig om hur man använder klasser och metoder från java biblioteket. Du kommer inte att förstå allt som händer bakom metod anrop
Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Omtentamen i Programmering C, 5p, A1, D1, E1, Fri, Pr1, Te/Ek1, 040607.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet idag kl 13.00. Denna tenta kommer att vara färdigrättad On 9/6 och kan då hämtas på mitt tjänsterum,
Föreläsning 3.1: Datastrukturer, en översikt
Föreläsning.: Datastrukturer, en översikt Hittills har vi i kursen lagt mycket fokus på algoritmiskt tänkande. Vi har inte egentligen ägna så mycket uppmärksamhet åt det andra som datorprogram också består,
Tentamen OOP 2015-03-14
Tentamen OOP 2015-03-14 Anvisningar Fråga 1 och 2 besvaras på det särskilt utdelade formuläret. Du får gärna skriva på bägge sidorna av svarsbladen, men påbörja varje uppgift på ett nytt blad. Vid inlämning
Rolladministration i PaletteArena 5.3
SLU Rolladministration i PaletteArena 5.3 Jenny Kjellström 2012-03-16 Beskriver hur man lägger upp och inaktiverar en mottagare, hur man flyttar/styr om fakturor från/till andras inkorgar samt hur man
Grundläggande programmering med C# 7,5 högskolepoäng
Grundläggande programmering med C# 7,5 högskolepoäng Provmoment: TEN1 Ladokkod: NGC011 Tentamen ges för: Omtentamen DE13, IMIT13 och SYST13 samt öppen för alla (Ifylles av student) (Ifylles av student)
Föreläsning 6: Introduktion av listor
Föreläsning 6: Introduktion av listor Med hjälp av pekare kan man bygga upp datastrukturer på olika sätt. Bland annat kan man bygga upp listor bestående av någon typ av data. Begreppet lista bör förklaras.
2. Komma igång Skapa grupper och elever Skriv också ut sidan 13 så att eleverna har en snabbguide till programmet.
2. Komma igång Skapa grupper och elever Börja med att läsa texten nedan om hur man börjar jobba med programmet efter installationen. Skriv gärna ut sidan och ha bredvid dig tills du känner att du behärskar
Visma Analys. Ekonomilösningar som du vill ha det
Visma Analys Analysera ditt företags ekonomi och ta bättre beslut med hjälp av Visma Analys ett effektivt verktyg för nyckeltalsanalyser, spårning av felaktigheter i bokföringen, samt för planering och
Fortnox. För att aktivera bokföring genom Fortnox för er förening finns dessa krav:
Krav Fortnox För att aktivera bokföring genom Fortnox för er förening finns dessa krav: Föreningen ska ha en ordförande och en kassör registrerad i IdrottOnline, båda två personerna måste ha en e-postadress
Hogia Administration AB bedriver kontinuerlig utveckling av programmen och reserverar sig för avvikelse mellan program och handbok.
Innehållsförteckning Systemkrav....................................3 Val av installation..............................12 Behörigheter..................................12 InstallationsCD................................13
Föreläsning 2 Objektorienterad programmering DD1332. Typomvandling
metoder Föreläsning 2 Objektorienterad programmering DD1332 Array [modifierare] String metodnamn (String parameter) Returtyp (utdata typ) i detta fall String Indata typ i detta fall String 1 De får man
Objektorienterad programmering i Java
Objektorienterad programmering i Java Föreläsning 4 Täcker i stort sett kapitel 6 i kursboken Java Software Solutions 1 Läsanvisningar Den här föreläsningen är uppbyggd som en fortsättning av exemplet
Översikt. Installation av EasyPHP 1. Ladda ner från http://www.easyphp.org/ Jag använder Release 5.3.4.0 2. Installera EasyPHP.
Laboration 1 Översikt 1. Att komma igång med laborationsmiljön a. installera Aptana Studio 3 b. Installera EasyPHP 2. Testa lite programmering a. Testa enkla uppgifter b. Testa automatiskt 3. Skapa inloggningsformulär
Inledande programmering med C# (1DV402) 27+15=42 1 (22)
27+15=42 1 (22) Variabler Upphovsrätt för detta verk Detta verk är framtaget i anslutning till kursen Inledande programmering med C# vid Linnéuniversitetet. Du får använda detta verk så här: Allt innehåll
Skizz till en enkel databas
Skizz till en enkel databas Data: Register En vektor Funktioner: Databas Initiera huvudloop Avsluta Poster (struct( struct) val Mata in Skriv ut Spara Hämta Ändra Radera Enligt diskussion 1999-11-23 Bertil
Nyheter i version 2015.2, 2015.1 och 2014.4
Nyheter i version 2015.2, 2015.1 och 2014.4 Här följer en sammanställning av programförändringar som skett i de senare versionerna av Hogia Ekonomi, Hogia Approval Manager och Hogia Order/Lager/Inköp.
Sätt att skriva ut binärträd
Tilpro Övning 3 På programmet idag: Genomgång av Hemtalet samt rättning Begreppet Stabil sortering Hur man kodar olika sorteringsvilkor Inkapsling av data Länkade listor Användning av stackar och köer
Att använda pekare i. C-kod
Att använda pekare i C-kod (Bör användas av de som känner sig lite hemma med C-programmering!) Rev 1, 2005-11-23 av Ted Wolfram www.wolfram.se Syfte: Man kan tycka att det är komplicerat att använda pekare
Manual för punch-out handel via Göteborgsregionens kommunalförbund (GR) webbutik
Manual för punch-out handel via Göteborgsregionens kommunalförbund (GR) webbutik Vid beställning av böcker via GR används vår koppling via Proceedo till GR:s webbutik. Orderblocket hämtas sedan till Proceedo
Tentamen *:58/ID100V Programmering i C Exempel 3
DSV Tentamen *:58/ID100V Sid 1(5) Tentamen *:58/ID100V Programmering i C Exempel 3 Denna tentamen består av fyra uppgifter som tillsammans kan de ge maximalt 22 poäng. För godkänt resultat krävs minst
Introduktion Schenker-BTL AB, Stab IT Beskrivning över informationsintegreringmed Schenker, metodbeskrivning version 1.
Schenker har interna system som handhar information som är av intresse för våra kunder/partners. Idag finns ett flertal av dem tillgängliga via Internet, sk Online-tjänster. Dessa erbjuder inte bara hämtning
SMD 134 Objektorienterad programmering
SMD 134 Objektorienterad programmering Dagens agenda: Typer i Java: primitiva datatyperna, referenstyper Variabler och variabeltilldelningar med primitiva typer Konstanter av de olika typerna. Heltalsräkning
Kompilering och exekvering. Föreläsning 1 Objektorienterad programmering DD1332. En kompilerbar och körbar java-kod. Kompilering och exekvering
Föreläsning 1 Objektorienterad programmering DD1332 Introduktion till Java Kompilering, exekvering, variabler, styrstrukturer Kompilering och exekvering Ett program måste översättas till datorns språk
Visma Export v2.0.4. För OpenCart 1.5.x (upp till 1.5.6)
Visma Export v2.0.4 För OpenCart 1.5.x (upp till 1.5.6) Viktigt! Detta är den *ICKE OFFICIELLA* Visma Export tillägget till OpenCart. Denna produkt är inte resultatet av ett samarbete med företaget Visma
Speciellt viktigt vid inköpsorderregistreringen är: Under egna referenser ifylles vem som är inköpare.
Inköp Generellt 1 Registrera inköpsorder 2 Utskrift inköpsorder 5 Bekräfta inköpsorder 6 Bekräfta leveransavisering 6 Ankomstregistrering 7 Inleverans 8 Mottagningsrapport 11 Utskrift påminnelse 12 Utskrift
Tentamen, EDA501 Programmering M L TM W K V
LUNDS TEKNISKA HÖGSKOLA 1(0) Institutionen för datavetenskap Tentamen, EDA501 Programmering M L TM W K V 2010 05 31, 8.00 13.00 Anvisningar: Denna tentamen består av 4 uppgifter. Preliminärt ger uppgifterna
Björn Abelli Programmeringens grunder med exempel i C#
Björn Abelli Programmeringens grunder med exempel i C# Övningshäfte (bearbetning pågår) Senaste uppdatering: 2004-12-12 I denna version finns övningar för de mest centrala avsnitten. Häftet kommer att
Föreläsning 2: Avlusning och antilustekniker
2D1458, Problemlösning och programmering under press Föreläsning 2: Avlusning och antilustekniker Datum: 2007-09-11 Skribent(er): Emil Hesslow, Stefan Pettersson Föreläsare: Per Austrin Föreläsningen handlade
Objektsamlingar i Java
1 (6) Objektsamlingar i Java Objektorienterad programmering 3 Syfte Att ge träning i att använda objektsamlingar i Java. Mål Efter övningen skall du kunna använda objektsamlingsklasserna ArrayList och
Programmering A. Johan Eliasson johane@cs.umu.se
Programmering A Johan Eliasson johane@cs.umu.se 1 Jag Undervisar mest grundläggande programmering på Institutionen för datavetensakap Applikationsutveckling för iphone Applikationsutveckling i Java Datastrukturer
RemoteX Visma Connect Manual för version 4.4
RemoteX Visma Connect Manual för version 4.4 RemoteX Technologies Innehållsförteckning Förord... 4 Systemkrav för Visma Connect... 5 Installation av Visma Connect... 5 Uppgradering av Visma Connect...
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal??
Programmera i C Varför programmera i C när det finns språk som Simula och Pascal?? C är ett språk på relativt låg nivå vilket gör det möjligt att konstruera effektiva kompilatorer, samt att komma nära
Objektorienterad programmering D2
Objektorienterad programmering D2 Laboration nr 2. Syfte Att få förståelse för de grundläggande objektorienterade begreppen. Redovisning Källkoden för uppgifterna skall skickas in via Fire. För senaste
Dagens föreläsning. Repetition. Repetition - Programmering i C. Repetition - Vad C består av. Repetition Ett första C-program
Dagens föreläsning Programmeringsteknik för Ingenjörer VT05 Föreläsning 3-4 Repetition Datatyper Uttryck Operatorer Satser Algoritmer Programmeringsteknik VT05 2 Repetition Repetition - Programmering i
Hjälpmedel för kompilatorkonstruktion, DVB004
Hjälpmedel för kompilatorkonstruktion, DVB004 Version 4.2 021104 Göran Fries 031104 GF Kompilatorn kan lämpligen konstrueras i tre ganska fristående pass (p1,p2,p3). Första passet gör en lexikalisk analys,
Lösningsförslag, tentamen FYTA11 Javaprogrammering
Lunds universitet FYTA11 Institutionen för Astronomi och Teoretisk fysik HT 12 Lösningsförslag, tentamen FYTA11 Javaprogrammering Onsdag 9 januari 2013, 10:15 14:15 Instruktioner Hjälpmedel: Papper och
7 Mamut Client Manager
7 Mamut Client Manager Tilläggsprodukten Mamut Client Manager består av programmen Client Start och Client Update. Med hjälp av Mamut Client Manager kan du från ett fönster öppna, uppdatera och administrera
Användarmeddelande (november 2014) Ny programversion. Version 14.3a
Användarmeddelande (november 2014) Ny programversion FLEX Reseräkning Bäste kund! Version 14.3a På följande sidor kan du läsa om de nyheter som har tillkommit i FLEX Reseräkning i version 14.3a. Bland
Smartair System. TS1000 Version 4.23
Smartair System TS1000 Version 4.23 Denna manual är ett komplement till: 2069-1001 Smartair System Installations och driftsättningsmanual version 4.20A Denna manual beskriver nyheter i Smartair TS1000
Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga)
Grundläggande programmering med C# Provmoment: Ladokkod: Tentamen ges för: 7,5 högskolepoäng TEN1 NGC011 Tentamen DE12, IMIT12, SYST12, ITEK11 (även öppen för övriga) (Ifylles av student) (Ifylles av student)
Nyheter 3LPro 2014.Q2
INFORMATION FRÅN VITEC VITEC Nyheter 3LPro 2014.Q2 Nyhetsdokument VITEC Affärsområde Fastighet www.vitec.se infofastighet@vitec.se Växel 090-15 49 00 GÖTEBORG: REDEG 1 B, 426 77 V. FRÖLUNDA KALMAR: SVENSKNABBEVÄGEN
Manual för version V2
Innehållsförteckning 1. Om 2. Installera Administration 3. Programmets skrivbord 4. Lägga upp din första kund 5. Kontaktpersoner 6. Besiktningsadresser 7. Kontrollpunkter/Besiktningspunkter 8. Koppla kontrollpunkter/besiktningspunkter
Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java.
Laboration 1 Avsikt Att bekanta dig med NetBeans programmeringsmiljö och skriva några enkla program med programmeringsspråket Java. Del 1 Ta fram dokumentet NetBeans5_5.pdf från kurssidan och arbeta med
Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa
Lena Kallin Westin 2005-08-22 Institutionen för datavetenskap Umeå universitet TENTAMEN Uppgift (poäng) 1 (2) 2 (3) 3 (4) 4 (4) 5 (3) 6 (4) 7 (6) 8 (6) 9 (8) Summa Inlämnad Poäng Kurs : Programmeringsteknisk
19. Skriva ut statistik
19. Skiva ut statistik version 2006-05-10 19.1 19. Skriva ut statistik Den här dokumentationen beskriver hur man skriver ut statistik från SPFs medlemsregister via Internet. Observera att bilderna är exempel
Introduktion till arv
Introduktion till arv 6 INTRODUKTION TILL ARV Arv Generell-Speciell Arv för att utnyttja det vi redan gjort Återanvändning Basklass Härledd klass Varför arv? Inför en subklass för att uttrycka specialisering
Övningar Dag 2 En första klass
Kurs i C++ Sid 1 (5) Övningar Dag 2 En första klass Denna övning går ut på att steg för steg bygga upp en klass och skapa objekt. Vi kommer att utgå från en sammansatt datatyp i en struct och parallellt
Handledning för Exder eprinter
Handledning för Exder eprinter Innehållsförteckning Den här handledningen beskriver vad Exder eprinter är för något, hur ni installerar och hur ni kommer igång. Alla fakturamottagare har olika krav på
Start-Up Customization Applikation för TI-83 Plus
TI Start-Up Customization Applikation för TI-83 Plus Komma igång Börja här Hur Anpassa Start-Up med en bild Anpassa Start-Up med ett program Anpassa Start-Up med en applikation Stänga av Start-Up Customization
Internettjänsten Skolmjölk
Jordbruksverkets vägledning Internettjänsten Skolmjölk Mars 2008 VG 2:34 Jordbruksverkets vägledningar finns på vår hemsida: www.sjv.se Innehåll 1. Inledning... 4 2. Vad krävs för att söka stöd med hjälp
4 Sammansatta datatyper
4 Sammansatta datatyper De enkla datatyper som vi hittills använt är otillräckliga när man ska hantera stora datamängder. Vill man exempelvis läsa in 100 reella mätvärden, som man tillfälligt vill spara
TimeLox HCU handterminal. Användarguide. ASSA ABLOY, the global leader in door opening solutions.
TimeLox HCU handterminal Användarguide ASSA ABLOY, the global leader in door opening solutions. INNEHÅLLSFÖRTECKNING START...3 1 UPPSÄTTNINGSMENY...3 1.1 SYSTEMUPPSÄTTNING...3 1.1.1 NYTT SYSTEM-ID...3
Twincat: PLC Control
Dokument Förklaring Dat. Revision KI-221-003-003 Kom igång med trukturerad Text 080402 1.0 Twincat: PLC Control Kom igång med Strukturerad Text (ST) programmering 1. Kod exempel. a. Exemplen som demonstreras
INNEHÅLL. INNEHÅLL 26 mars 2009. 1 Installation av SHOPsync 1. 2 Konfigurering av SHOPsync 2
INNEHÅLL 26 mars 2009 INNEHÅLL 1 Installation av SHOPsync 1 2 Konfigurering av SHOPsync 2 3 Övriga inställningar i webbutiken & ekonomiprogrammet 13 i SHOPsync manual Nordisk e-handel AB KAPITEL 1 INSTALLATION
Minnestilldelning (allokering) och frigörande (avallokering) av minne
Pekare i C++ Pekare används mycket i C++. De är bra både för att de tillåter dynamisk minnesallokering och för att de är referenser. En pekarvariabel innehåller en adress till ett element, den pekar på
Handbok Företagsinteckning
Handbok Företagsinteckning Denna handbok beskriver hur du arbetar i Bolagsverkets e-tjänst Företagsinteckning. Datum: 2009-10-21 Version: 1.2 Upprättad av: Conny Berglund Ändringar Version Datum Ändrade
Enkla datatyper minne
Enkla datatyper minne 143.56 sant Sonja A falskt 18 1999-10-29 Bertil Gralvik, KTH Ingenjörsskolan 1 Addera två tal Algoritmen Summera tal Mata in två tal Beräkna Skriv ut resultat Mata in tal 1 Mata in
Programmering A C# VT 2010. Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08
Programmering A C# VT 2010 Ett kompendie över Programmering A (50p) i c# Stefan Fredriksson 2010 02 08 Innehåll Hjälp och referenser... 3 Kap 1 Introduktion... 3 Steg för steg... 3 Kapitel 2 Variabler...
ÅRSSKIFTE Pyramid Business Studio
ÅRSSKIFTE Pyramid Business Studio 2 december 2004 Memo för årsskifte Pyramid Business Studio Denna sammanställning innehåller de vanligast förekommande frågorna inför och efter årsskiftet och redovisar
Tentamen i Programmering grundkurs och Programmering C
1 of 7 Örebro universitet Institutionen för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
CSN-rapportering, gymnasiet
CSN-rapportering, gymnasiet Förutsättning, modul CSN. Förberedelser Göra inställningar i enhetsregistret 1. Välj Organisation Enhet 2. Sök efter rätt enhet, dvs den enhet eleverna som ska rapporteras tillhör.
Enklast att skriva variabelnamn utan ; innehåll och variabelnamn skrivs ut
F5: Filhantering in- och utmatning (kap. 2 och 8) 1 Utskrift på skärm, inläsning från tangentbord (kap. 2) Spara och hämta variabler med save och load (kap. 2) Kommandot textread Mer avancerad filhantering:
Textsträngar från/till skärm eller fil
Textsträngar från/till skärm eller fil Textsträngar [Kapitel 8.1] In- och utmatning till skärm [Kapitel 8.2] Rekursion Gränssnitt Felhantering In- och utmatning till fil Histogram 2010-10-25 Datorlära,
Lite om felhantering och Exceptions Mer om variabler och parametrar Fält (eng array) och klassen ArrayList.
Institutionen för Datavetenskap Göteborgs universitet HT2009 DIT011 Objektorienterad programvaruutveckling GU (DIT011) Föreläsning 3 Innehåll Lite om felhantering och Exceptions Mer om variabler och parametrar
ITK:P1 Föreläsning 1. Programmering. Programmeringsspråket Java. Stark typning Explicit typning Strukturerat Hög säkerhet
ITK:P1 Föreläsning 1 Att programmera i språket Java DSV Peter Mozelius Programmering Olika typer av programmering som t ex: o Imperativ programmering (C, Pascal m fl) o Funktionell programmering (Lisp,
Tentamen. 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.
Tentamen 2D4135 vt 2005 Objektorienterad programmering, design och analys med Java Lördagen den 28 maj 2005 kl 9.00 14.00, sal E33 Tentan har en teoridel och en problemdel. På teoridelen är inga hjälpmedel
Major Release 3.1. Vad innebär Major Release 3.1 för svenska användare?
Major Release 3.1 Vad innebär Major Release 3.1 för svenska användare? Agenda Vad förändras och vad innebär det? Förändringarna i detalj Dokumentation Sammanfattning Vad förändras och vad innebär det?
Nyheter i PaletteArena 6.3
Nyheter i PaletteArena 6.3 I april 2016 uppgraderade Sveriges lantbruksuniversitet sitt elektroniska fakturahanteringssystem PaletteArena (Palette) från version 5.3 till version 6.3. Det är inte mycket
2015-10-29 Integrationsguide Version 2.3. INTEGRATIONSGUIDE Svea Ekonomi / Webpay
INTEGRATIONSGUIDE Svea Ekonomi / Webpay Inledning För att Svea Ekonomi/Webpay ska kunna garantera en väl fungerade produkt tillsammans med en kvalitetssäkring mot våra partners och kunder har vi tagit
Handledning för handel med Örebro Läns Landsting EDI
Handledning för handel med Örebro Läns Landsting EDI SFTI 6.1 v 2.5 Expert Systems kundtjänst: E-post: support@expertsystems.se Tel: 08-446 34 00 Senast uppdaterat:10-10-14 Exder Örebro läns Landsting
Klicka på Skrivare. När utskriften är klar och du kontrollerat att allt är rätt godkänner du Utbetalningsjournalen och verifikationen skapas.
Leverantörsreskontra Markera löpnummer 1, 2, 3 och 4. Välj Kommando Ändra betalstatus m m eller klicka på knappen Markera Betald och klicka OK. Nu är dina betalningar klara och du ska nu ta ut en utbetalningsjournal
Antivirus Pro 2011. Snabbguide
Antivirus Pro 2011 Snabbguide Viktigt! På CD-fodralet finns den aktiveringskod som du behöver för att aktivera produkten. Förvara den på ett säkert ställe. Den här produkten får endast användas om det
Datorsystem Laboration 2: Minnesmappade bussar
Datorsystem Laboration 2: Minnesmappade bussar Senast uppdaterad: 14 oktober 2012 Version 1.2 Student: Lärare: Underskrift: Underskrift: Datum: Datorsystem Laboration 2 1 Innehåll 1 Inledning 2 1.1 Introduktion..................................
Affärsdokumentspecifikation Publiceringsdatum: 2011-02-01 Version: 1.60 Prislista 20.1.1 Tillhörande meddelandespecifikation: MS 59
Affärsdokumentet används för överföring av pris- och rabattinformation för avtalade produkter. Samtliga uppgifter i denna prislista skall användas vid fakturamatchning. Gällande prislista vid fakturatillfället
Visual Basic, en snabbgenomgång
Visual Basic, en snabbgenomgång Variabler och Datatyper En variabel är som en behållare. Olika behållare passar bra till olika saker. I Visual Basic(härefter VB) finns olika typer av behållare för olika
Det finns en referensbok (Java) hos tentavakten som du får gå fram och läsa men inte ta tillbaka till bänken.
Tentamen Programmeringsteknik I 2014-10-17 Skrivtid: 0800-1300 Hjälpmedel: Java-bok 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
RemoteX Visma Connect Manual för version 4.2
RemoteX Visma Connect Manual för version 4.2 RemoteX Technologies Innehållsförteckning Förord... 3 Systemkrav för Visma Connect... 4 Installation av Visma Connect... 4 Uppgradering av Visma Connect...
Installation av. Vitec Online
Installation av Vitec Online Innehållsförteckning Inledning... 3 Allmän konfiguration av router och brandvägg... 4 Installera Vitec Online Server... 6 Lösenord för inloggning i Mäklarsystemet... 9 Klientinstallation...
Övningsmaterial för Visma eekonomi
Övningsmaterial för Visma eekonomi VILL DU HA ÖVNINGAR I VISMA eekonomi? DET HÄR ÖVNINGSMATERIALET ÄR TILL FÖR DIG! Senast uppdaterad: 2016-01-10 Introduktion Välkommen till nya jobbet! Vi på Övningsbolaget
Tentamen i. för D1 m fl, även distanskursen. fredag 13 januari 2012
1 of 6 Örebro universitet Akademin för naturvetenskap och teknik Thomas Padron-McCarthy (thomas.padron-mccarthy@oru.se) Tentamen i Programmering grundkurs och Programmering C för D1 m fl, även distanskursen
OOP Objekt-orienterad programmering
OOP F6:1 OOP Objekt-orienterad programmering Föreläsning 6 Mer om klasser och objekt Hantera många objekt ArrayList tostring() metoden this Vi vill ofta hantera många objekt i ett program: OOP F6:2 public
Handledning. Att skicka elektronisk fristående Svefaktura 1.0 till Landstinget i Östergötland
Handledning Att skicka elektronisk fristående Svefaktura 1.0 till Landstinget i Östergötland Expert Systems kundtjänst: E-post: support@expertsystems.se Tel: 08-446 34 00 Senast Uppdaterad: 11-04-10 Exder
Innehåll MySQL Intro. Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata
Innehåll MySQL Intro Allmänt om Lagrade Procedurer Enkel utformning Skapa en lagrad procedur Använda parameter som indata 1 Lagrad procedur / Stored Procedure Lagrad procedur har många namn, förkortningen
Tentamen, EDAA20/EDA501 Programmering
LUNDS TEKNISKA HÖGSKOLA 1(4) Institutionen för datavetenskap Tentamen, EDAA20/EDA501 Programmering 2011 10 19, 8.00 13.00 Anvisningar: Denna tentamen består av fem uppgifter. Preliminärt ger uppgifterna
Artiklar via UB:s sö ktja nst
1 Artiklar via UB:s sö ktja nst UBs startsida har fått ett nytt utseende. I centrum finns nu UBs söktjänst. Istället för tre sökrutor möts du nu som användare av en sökruta där det är meningen att du kan
Föreläsning 11. Arrayer. Arrayer. Arrayer. Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt. Kan ha en array av t.
Föreläsning 11 Arrayer Arrayer Lagrar flera värden av samma typ Kan vara primitiva typer eller objekt int[] tal = new int[3]; Kan ha en array av t.ex: Heltal (int) Tecken (char) Personer (objekt av klassen
Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 19.00. Tentamen i Programmering C, Fri, Kväll, 041211.
1(8) ÖREBRO UNIVERSITET INSTITUTIONEN FÖR TEKNIK Lösningar till uppgifterna sätts ut på kurssidan på nätet i dag kl 19.00. Denna tenta kommer att vara färdigrättad Ti 14/12 och kan då hämtas på mitt tjänsterum,
Vilken status har fakturorna i en bunt? Är fakturorna betalningsgodkända? Är fakturorna betalda?
Leverantörsreskontra Betalningsplan Vilka fakturor förfaller ett visst datum? Rapporten visar de obetalda fakturor som har förfallodatum ett visst datum oberoende valuta. Den sorteras först efter förfallodatum
TDDI02. Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU
TDDI02 Programmeringsprojekt. Föreläsning 3 Jonas Lindgren, Institutionen för Datavetenskap, LiU På denna föreläsning: Verifikation, Validering och Testning XP Extreme Programming Vad är ett fel? I engelskan
Senast uppdaterat: 09-02-03 Exder EDI direktorder sida 1 av 18
Senast uppdaterat: 09-02-03 Exder EDI direktorder sida 1 av 18 Innehållsförteckning INNEHÅLLSFÖRTECKNING...1 ANVÄNDARHANDLEDNING FÖR EXDER EDI DIREKTORDER...2 FLÖDEN...3 Axfood Direktorder...3 ARTIKLAR...4
DSV A Procedurell programmering 5 poäng Tentamen 2002-12-04
DSV A Procedurell programmering 5 poäng Tentamen 2002-12-04 Uppgift 1 3 poäng Vilka uppgifter ingår i programutveckling, dvs vilka faser bör man gå igenom när man utvecklar ett större program? Beskriv
2. Registrera en ny medlem
2. Registrera en ny medlem version 2006-05-10 2.1 2. Registrera en ny medlem Den här dokumentationen beskriver hur man registrerar en ny i SPFs medlemsregister via Internet. Observera att bilderna är exempel