aug 272010
 

Flattr this!

Man kan göra inknappandet av datum i ett formulär snyggare och ibland även behändigare.

Börja med att skapa en tabell i en ny databas och lägg till dessa poster:

ID (nyckel) och Datum[Date]

Skapa sen ett formulär som är baserat på denna tabell. ID är inte nödvändigt att ta med i formuläret. Välj inte tabellform utan kolumnform när placering av kontroller ska anges i punkt 5 i formulärguiden. Följande formulär kommer att se ut ungefär så här:

Här kan man skriva in datumet men det är svårt att veta vilket format som används.

Stäng nu formuläret och högerklicka på formulärikonen och välj redigera.

Markera nu datumrutan. Här märker man att både etiketten och rutan markeras tillsammans.

Högerklicka nu på fältet och välj Gruppera/Häv gruppering. Dubbelklicka sen på textrutan för att få upp egenskaperna för datumfält. Där ska vi jobba med Allmäntfliken.

Ändra ”Öppningsbar” till ”Ja”. När man nu trycker på så kommer datumfältet se ut på följande sätt när man trycker på rutan:

Vi kan snygga till det hela genom att sätta ”Datumformat” till hela året istället för 10-05-29 som visas som standard. Ser bättre ut med 2010-05-29.

Slutresultatet blir så här:

maj 242010
 

Flattr this!

Ibland vill man styra hur inknappningen av data sker. Det kan vara att man inte vill att användaren ska kunna skriva siffror och att bara ett visst antal tecken får skrivas in.

Jag kör med exemplet jag visade här.

Följande exempel är ett adressregister och vi har redan skrivit in ett antal data i tabellen. Nu vill jag begränsa så att man t.ex. inte kan skriva in 0-9 där förnamnet osv. är utan bara tillåta bokstäver, kanske till och med att första bokstaven är versal och dom övriga gemener.

Tabellen heter Namnregister och nu ska vi skapa ett formulär. Tryck på formulär till vänster och välj att skapa via guiden. Välj att alla fält utan ID ska vara med.

Tryck nästa tills ni kommit till punkt 5. Där väljer ni kolumner.

Tryck nästa på övriga frågor och välj ett passande namn för formuläret och tryck ”Färdigställ”

Nu har vi ett bra formulär som vi kan jobba med:

Stäng nu detta fönster och välj Formulär till vänster. Högerklicka på ikonen och välj Redigera för att komma i designläget.

Som ni ser så har vi ett extrafönster som heter Formulärdesign. Finns den inte tillgänglig så gå in i Visamenyn och välj Verktygsrader och sen ”Formulärdesign”. Tryck på knappen jag ringat in.

Följande fönster heter Formulär-Navigator och är väldigt användbart. Detta fönster är något som man ska lägga på minnet för det underlättar när man ska jobba med designen. Varje rad i fönstret motsvarar en sak i formuläret. Det kan vara antingen inskriven text, textruta, listbox m.m. Allt kommer med här.

Om ni trycker på dom olika sakerna i fönstret så markeras dessa delar i formuläret. Vanligtvis är texten grupperad med textrutan men här kan vi markera enbart textrutan. Detta går även att göra genom att hålla in ctrl på tangentbordet samtidigt som man trycker på textrutan men med navigatorn får man bättre översikt över vad som finns.

Tryck först på txtFörnamn och högerklicka sen på rutan som markerades. Där väljer ni ”Ersätt med” och väljer ”Maskerat fält”.

Här ser man fördelen med navigatorn. Textrutan ser som vanligt ut så man kan tro att ingenting har ändrats men som man kan se i navigatorn så har det ändrats:

Det står ABC framför alla textrutor utan txtFörnamn där det står LN. Detta beroende på att det är ett maskerat fält.

Gör nu likadant på rutorna txtEfternamn, txtPostnummer och txtPostadress.

När allt är klart så ska vi markera txtFörnamn igen. Här vill vi att förnamnet ska börja med stor bokstav. Högerklicka på txtFörnamn och välj ”Egenskaper”

Här får vi upp en ruta med tre flikar, Allmänt, Data och Händelser.

Rutan jag har markerat är den som vi ska använda, möjligtvis använda rutan under också.

Det finns koder för vad som ska skrivas in här. N står för number (nummer), a för bokstav (versal och gemen), A för versal bokstav osv.

Jag räknar med att namn inte är längre än 15 tecken så därför blir det Aaaaaaaaaaaaaaa.

Tryck sen på txtEfternamn och txtPostadress och gör likadant. Efternamn, adress och postadress borde räcka med 15 tecken också.

När det gäller txtAdress så har jag inte kommit på hur man gör eller om det ens går. Problemet är blanksteg ihop med både bokstäver och siffror som inte verkar gå ihop. Har jag blanksteg med bara bokstäver så fungerar det. Får luska mer i detta.

Nu kommer det roliga med postnumret. Här vill vi att det automatiskt ska bli typ 543 23, alltså 3 tecken, mellanrum, 2 tecken.

Här skriver ni in följande:

Först 3 stycken NNN och sen ett L som står för ett tecken som inte går att skriva. I detta fallet blir det mellanrum. Sen är det 2 stycken NN. Notera att jag även har fyllt i raden under. Satte 3 stycken understreck, mellanrum och ytterligare 2 understreck. När detta har gjorts så hamnar dessa streck även i textrutan som vi har. Detta är enbart för att den som knappar in data ska veta vad som gäller.

När allt är färdigt stå testa och se hur resultatet blir genom att trycka på den inringade knappen:

Det är bara att knappa in lite olika data och se så allting stämmer.

maj 202010
 

Flattr this!

Ofta vill man ha en egen ordning när man trycker på tabb i ett formulär, kanske utesluta något fält från tabbandet.

Vi koncentrerar oss på filmdatabasen med genre som jag visade här.

Om man dubbelklickar på filmformuläret som jag ringat in på bilden så får man fram formuläret och kan börja jobba men så är inte fallet här. Inget av fälten är markerade utan jag är tvungen att klicka i något fält för att kunna skriva in en post.

Stäng nu detta fönster och gå in i designläget genom att vänsterklicka på den inringade ikonen och tryck ”redigera”.

För att fixa tabbordning och sätta fokus på ett fält så behöver vi komma åt en meny som är dold.

Gå in i Visamenyn och välj Verktygsrader och sen Formulärdesign som bilden under visar:

Formulärdesign kommer nu upp som ett eget fönster som ser ut så här:

”Formulärdesign” är ett av dom redskap man använder mest. Jag kommer att återkomma till detta i en senare blogg.

Vi kommer att fokusera på knapparna jag har ringat in.

För att välja vilket fält som ska vara i fokus när vi dubbelklickar på vårt formulär så markerar vi ett av fälten och trycker på den andra knappen jag har ringat in. Det står ”automatiskt fokus för kontrollelement” om man håller muspekaren över knappen.

Jag väljer ”Namn” eftersom filmens namn är bra att börja med. Nu kommer detta fält att vara fokuserat när vi dubbelklickar på formuläret.

Nu ska vi ändra tabbordning och personligen vill jag inte ha med underformuläret i tabbordningen utan kommer att utesluta denna.

Markera återigen ett av fälten ”namn” eller ”år” och tryck på den första knappen jag ringat in och följade ruta kommer upp:

Här kan man ändra på tabbföljden på Namn och År genom att trycka på knapparna till höger. Egentligen har vi för få fält att växla mellan. Hade man haft 15 olika och man hade flyttat på dessa rutor så hade tabbordningen spelat mer roll.

Notera att vi inte kan ha med vårt underformulär i denna tabbföljd utan detta kommer att ha en egen tabbordning. När ni är färdiga med tabbordningen så tryck OK.

Dubbelklicka nu på underformuläret och egenskaperna för underformuläret kommer upp:

Här kan man ange om underformuläret ska ingå i tabbordningen. Jag väljer ”Nej” på denna fråga eftersom jag inte vill ha med detta när jag tabbar mig fram. Står det redan nej så ändra till ja och sen nej igen. Fråga mig inte varför men det verkar som att det kan behövas en sådan manöver för att förändringen ska ske.

Stäng nu formuläret. Glöm inte att spara formuläret när frågan kommer fram.

Dubbelklicka nu på formuläret igen och ni ser att Namn är fokuserat precis som vi ville. Tryck tab på tangentbordet och det kommer att växlas mellan Namn och År och underformuläret Genre utesluts.

Detta hindrar en dock inte från att fokusera på Genre utan en enkel knapptryck på detta och vi har markerat detta fält.

maj 152010
 

Flattr this!

Nu ska jag visa hur man kopplar våra tabeller med varandra via ett formulär. Tabellerna och relationerna skapade vi här.

Välj ”Formulär”  i Base och sen ”Skapa formulär med hjälp av guiden”.

Här har vi nu tre olika tabeller att välja mellan. Vi väljer filmtabellen (i mitt fall döpte jag den till Filmtabell för enkelhetens skull) som agerar som huvudtabell och därför blir huvudformulär. Välj fälten Filmnamn och År och tryck ”Nästa”.

Bocka i rutan ”Lägg till underordnat formulär” och välj ”FilmGenre”. Genre visas inte för att filmtabellen inte har någon relation dit utan vi drog en linje mellan FilmId i Filmtabellen och FilmID i FilmGenre. Tryck sen ”Nästa”.

Underformuläret blir i detta fallet FilmGenre eftersom det är där datan vi lägger in kommer att hamna. Välj att flytta över FilmID i formuläret. Detta blir den kompletta kopplingen mellan Filmtabellen och FilmGenre. Tryck ”Nästa”.

Välj att trycka på alternativen jag har markerat. I första fallet fungerar egentligen alternativen 1, 2 och 4. När det gäller det underordnade formuläret så vill vi ha det tabelliknande . Tryck ”Nästa”.

Punkt 6 gör vi ingenting med utan trycker nästa. Punkt 7 är bara rent grafiskt så tryck på ”nästa” när detta är gjort. Välj ett bra namn på formuläret i punkt 8 och tryck ”Färdigställ”.

Som ni kan se så har vi ett bristfälligt underformulär där bara FilmId finns. Denna är fullt komplett kopplad till Filmtabellen som ni kan se på denna bild:

Nu är det kopplingen mellan FilmGenre- och Genretabellen som ska fixas och så här gör man:

Stäng formuläret och gå till Formulär i huvudfönstret och välj där att högerklicka på vårt formulär och välj ”Redigera”.

Nu när vi är i designläget så ska vi fixa en kolumn från Genre-tabellen. Högerklicka till höger om FilmID och välj ”Infoga kolumn”. Välj sen ”listruta” och det kommer att se ut så här:

Högerklicka nu på ”Listruta 1” och välj ”Kolumn”.  Detta fönster kommer visas:

Fönstret innehåller 3 olika flikar, allmänt, data och händelser. Vi fokuserar mest på datafliken, men vi kan ändra etiketten under allmänt så det ser lite snyggare ut. Ändra till Genre istället för ”Listruta 1”.

Gå sen till datafliken och ändra till detta:

”Datafält” ska ändras till ”GenreID”, ”typ av listinnehåll” till sql och sen den allra viktigaste, Listinnehåll. Denna kommer att visa alternativen som går att välja mellan, i vårt fall action, komedi m.m.

Jag fick inte med hela sql-frågan men det ska stå:

SELECT ”Genre”, ”GenreID” FROM ”Genretabell”

Ta notis om att Genre står före GenreID och detta måste vara i denna ordning för annars fungerar det inte. Första fältet anger vad som går att välja mellan, andra fältet är kopplingen till Genredatabasen.

Själva namnen som står här baseras helt och hållet till vad ni har döpt tabellerna till. I mitt fall valde jag Genretabell för att man lätt ska veta att det är en tabell det rör sig om.

Tryck sen på denna knappen för att knappa in uppgifter i databasen:

Ser väl inte så jättesnyggt ut men det fungerar.

Skriv in en film och år och tryck sen under ”Genre” för att välja genre. Man kan välja bland dom som är inskrivna i genretabellen.

Det som inte är speciellt bra här är att när man trycker på underformuläret så blir det i fokus och alltså går det inte att skriva in en ny post i huvudformuläret. Tryck därför någonstans på det beige området för att det ska få fokus igen och tryck sen på pilarna längst ner för att skriva in en ny post.

Så här ser det ut i FilmGenre för min del nu efter att ha knappat in några filmer:

Som ni ser så har jag knappat in 4 filmer från 0-3. Film 0 har två genrer, 0 och 1. I mitt fall betyder detta filmen Dödligt vapen som har FilmID 0. Filmen är en actionkomedi, action fick GenreID 0 och komedi GenreID 1.

Film nummer 2 har FilmID 1 och är en actionfilm osv. Denna tabell matas på för varje ny post man lägger in.

OBS!! Notera att om man mixtrar för mycket med tabeller och kopplingar m.m. så kan det bli något problem på vägen som är oåterkallerligt. I min strävan att skriva detta höll jag på att ändra lite här och där och till slut fungerade inte filmtabellen som den skulle och det var omöjligt att komma ur läget. Mitt val var därför att skapa filmtabellen på nytt för att allt skulle bli normalt igen. För att skapa denna igen så måste man ta bort kopplingen under Verktyg/Relationer.

maj 032010
 

Flattr this!

Jag tänkte visa hur man gör ett enkelt formulär och som grund till detta använder jag filmdatabasen jag visade här:

Skapa den första tabellen i OOo Base

Själv la jag databasen under Dokument i hemmappen där jag döpte den till ”Filmdatabas.odb”. Det är bara att dubbelklicka på den via någon filbläddrare så startas databasen automatiskt.

Nu väljer vi istället att göra ett formulär baserat på tabellen vi gjorde. Se därför till att det finns en tabell tillgänglig innan:

Därefter markerar man ”Formulär” till vänster och får då upp dessa alternativ:

Välj ”Skapa formulär med hjälp av guiden”.

I följande fönster får man frågan vilken tabell och vilka fält som ska användas. Eftersom jag valde att tabellen skulle heta ”Filmer” och jag inte har någon annan tabell så finns det inga valmöjligheter här. Däremot kan jag ställa mig frågan vilka av fälten ID, Namn, Regissör och Beskrivning som ska användas.

Om ni kom ihåg så var ID en nyckel som vi satte till autovärde för att den skulle bli unik med början 0,1,2 osv. Eftersom man inte kan skriva in i denna så finns det ingen anledning att ha med den i formuläret heller. Vi väljer således att flytta över Namn, Regissör och Beskrivning till högersidan via pilarna i mitten.

Tryck sen på ”Nästa” för att komma till punkt två.

Eftersom vi bara har en tabell tillgänglig så kan vi inte göra något med underformulär, dessutom försvinner även möjligheten till att påverka punkt 3-4 utan här trycker vi på ”Nästa” och kommer då fram till punkt 5 som är ”Placera kontroller”.

Här finns fyra alternativ hur ”huvudformuläret” ska se ut, alltså vårt formulär. Testa att tryck på dessa och kolla hur utseendet blir på bakomvarande fönster.

När utseendet är till belåtenhet så tryck ”Nästa” (notera att detta är ett enkelt formulär och att man kan göra betydligt mer åt det visuella senare om man skulle vilja).

Punkt 6 ser bra ut som den är. Det är mest frågor om data får ändras m.m.  utan vi trycker ”nästa för att komma till punkt 7.

Här kan man ändra färgen på bakgrunden om man vill. Den beige färgen kanske inte uppskattas av alla utan man har ett antal färger att välja mellan. Dessutom hur man vill ha ”fältinramningen”. Även här ser man direkt hur resultatet blir i underliggande fönster. Tryck ”nästa” när allt är klart.

I punkt 8 får man frågan vad formuläret ska heta och dessutom om man vill arbeta eller modifiera formuläret. Skriv in ett passande namn på formuläret så det framgår tydligt vad formuläret gör. Jag väljer namnet ”Filmformulär” som duger för mig. Välj sen ”Modifiera formuläret” och tryck ”Färdigställ”.

Nu har vi följande fönster framme:

Jag har markerat en knapp som är väldigt användbar. Den anger om fönstret är i modifieringsläge eller arbetsläge.

Modifieringsläge: Om man vill flytta kontroller eller lägga till någon egen design.

Arbetsläge: Helt enkelt att knappa in data i tabellen.

När man väljer arbetsläge så förstår man varför fältet ID inte ska vara med i formuläret utan förpassas i bakgrunden.

Kommer ta upp mer om att arbeta med design i formulär vid senare tillfälle.

Stäng nu formuläret med krysset uppe till höger, har man ändrat något i formuläret så fås frågan om man ska spara ändringarna.

Nu har det tillkommit ett formulär i följande fönster:

Dubbelklickar man på formuläret så kommer man i arbetsläget. Högerklickar man på den och väljer ”redigera” så kommer man i modifieringsläget.