- Marcus Holmer
- Medlem ●
Jag har fått ett uppdrag av min nya chef. Han är affärsrådgivare och utvärderar omsättningsresultat varje månad för flera kunder i konfektionsbranschen. För en uppdragsgivare har han följande scenario:
Företaget har c:a 140 definerade organisationsenheter, dvs kombinationer av säljytor, tillverkare, varugrupper, artiklar och kommentarer. Dessa är just nu definerade i ett excel-ark.
I en Access-tabell har jag varje månad tusentals rader med alla köp som gjorts i varuhuset. I denna säljtabell står säljar_id, kundnummer, säljyta, tillverkare, varugrupp, artikel, antal varor, inköpspris, butikspris datum osv.
För utvärderingen summeras alla köp månadsvis för varje OrgNr och utvärderas sen ett helt år för alla organisationsenheter i två steg, en ny tabell för omsättning och en för lagerhållning.
Resultatet ser ungefär ut så här:
Månad OrgNr Lager
Jan 06 5000 324St
Feb 06 5000 301St
....
Dec 06 5000 287St
Jan 06 5001 302St
Feb 06 5001 290St
....
Dec 06 5001 277St
Jan 06 5002 262St
Feb 06 5002 291St
....
Dec 06 5002 269St
osv
Nu till kruxet:
Access kan inte utföra arrays, dvs för org_nr 1-140 summera alla värden för jan-dec och skriv dem i en tabell.
Vad jag måste göra i Access är att skapa 140 Queries och köra dem efter varandra mha ett VB-macro och i slutet av varje query spotta ut resultatet i en ny tabell.
Om jag definierar alla OrgNr i en parametertabell i FM, (här är det viktigt att komma ihåg att spalterna för varje OrgNr kan ha fler värden t ex "säljyta 9 och 13 men inte artikel 4300 och inte artikel 4500")
kan jag då enkelt, och jag menar verkligen enkelt läsa kriterierna i parametertabellen och använda dem i en dynamiskt query på säljtabellen (och inte 140 fördefinerade) för att skapa resultattabellen?
Låter det krångligt? Är det också I Access iaf. Förhoppningsvis är det enklare i FM. Om det stämmer säger jag till chefen att vi byter till FM.
Tacksam för all hjälp!
Jag tror att det ska vara möjligt, men det är bäst att vänta till Taz eller någon annan FM-guru får syn på tråden
Pice of cake!
I FileMaker kan du skapa en relation av alla dessa typer:
=
? <-- Inte lika med, dvs du kan exkludera saker, vBulletin skriver ? där.
>
<
? <-- Större än eller lika med, vBulletin skriver ? där.
? <-- Mindre än eller lika med, vBulltein skriver ? där.
X <-- Alla poster.
FileMaker har även ett väldigt smart sätt att betrakta radbrytningar i nyckelfält, om du tex vill "se" all försäljningsstatistik på två OrgNr som du skriver så här i ditt nyckelfält på ena sidan (ett nyckelfält är ett fält som används på ena sidan i en relation):
3773
3774
... och på andra sidan i relationen så har du en post med OrgNr=3773 och en annan med OrgNr=3774 så kommer denna relation att "se" båda posterna och kan därmed summera dem eller göra beräkningar eller vad du nu vill göra.
Det omvända förhållandet gäller också, du kan i en relation ange flera olika fält med olika villkor, tex (lika med) och ett annat med (inte lika med) på två olika fält på ena sidan och samma fält på andra sidan. Alltså kan du tex ha
"Organisationsnummer jag vill ha med - fält" som innehåller
3773
3774
3775
3776
... och "Organisationsnummer jag vill INTE vill ha med - fält"
3771
3772
Du kan lägga till flera saker i din relation baserat på relationen kan du sedan göra summeringar (tex omsättningen är ju en summa av alla summor i försäljningstabellen, som däri består av antal x pris).
Här är några skärmdumpar från min testdatabas som du kan se lite mera i. Lycka till!
Intressant problem detta! Roligt!
Men det är ju genialt!
Är det så jäkla enkelt? Nej, tyvärr inte helt... När jag tittar på din skärmdump över relationerna slår det mig att jag har uttryckt mig luddigt.
Org-numret existerar tyvärr inte i säljtabellen med alla sålda poster. Det existerar bara som namn på en definition av just de kriterierna (för den kombinationen) i parametertabellen.
I säljtabllen står bara idnumren för säljyta, varugrupp, artikel osv men inte Org-numret.
I utvärderingen måste dock Org-numret läsas ut och skrivas i första spalten av resultattabellen så man kan referera värden till ett visst Org-nummer.
Filtreringen av säljtabellen och summeringen i en resultattabell sker endast på basis av kriteriererna som står i samma post som Org-numret i parametertabellen alltså inte på Org-numret själv.
Det optimala vore om jag isf 140 queries (en för varje Org-nummer) kunde skapa en slinga som löpande läste kriterierna för varje Org-nummer och tilldelade dem namn i en array och sedan fyllde platshållarna i EN fördefinierad query som sedan kördes mot säljtabellen.
Fortfarande luddigt? Fråga på bara
Här en skrintjott på parametertabellen, fläche_nr =säljyta, abt_nr = avdelningsnr, h_nr = tillverkare, hwgr_nr = huvudvarugrupp, m2 = extrakriterie, wgr_nr = varugrupp för er som inte är så haj på tyska...
Min avsikt med mitt inlägg var att ge dig några pekare i rätt riktning, inte att lösa alla dina problem. Men om då är så "fast" i tankesättet att repetera qearys (gammal vana gissar jag) så får det mig att tro att du inte har riktigt koll på relationer och länkdata och alla fiffigheter man kan göra med dessa?
Korta svaret är förstås att det du vill göra går att göra och ganska enkelt i FM och du kan även bygga en väldans trevligt GUI medans du håller på och löser problemet. Men för att du skall kunna göra detta så måste du förstå relationer, länkdata och manus i FileMaker och kanske lite annat, och det ligger tyvärr lite utanför min ambition att förklara dessa saker för dig i ett foruminlägg.
Dock kan jag ge dig ännu ett par pekare i punktform:
Ett fält i FM kan fyllas med automatiska data, dessa kallas länkdata när de är baserade på en relation. För jämförelsens skull kan vi tänka oss en relation på ID_Artikel mellan en orderrad och en artikel, när man på orderraden fyller i ID_Artikel så kopieras priset från Artiklar till Orderrader (man vill ju tex inte att priset skall ändras på alla gamla orderrader, när man höjer priset i Artiklar, därför måste värdet kopieras). På samma sätt kan du göra! Om du in din "parametertabell" eller filtertabell sätter upp ett antal kriterier för hur säljdata skall filtreras för varje organisation, så kan du när du fyller i ID_Parameteruppsättning på organisationen kopiera en massa parametrar till Organisationer som är dess "filter" mot säljdata. Sedan gör du en sådan däringa knasig relation baserad på flera fält mm som jag visar i en av mina skärmdumpar ovan.. Vips så ser du på organisationen summor av dina säljdata (om det nu var det du ville, jag förstår inte riktigt vad du är ute efter längre.
Det finns något som heter rapporter och statistikfält och statistik-delar i FileMaker - de är avsedda just för att plutta ut säljrapporter baserade på ditt och datten och underkategorier (hur många som helst). Check it out!
Man kan "spara undan" information genom att göra enFM-snurra (en teknisk term för FM-utvecklare som jag förklarat flera gånger här i forumet), genom att göra en sådan och lagra data som är baserat på krånliga relationer, får man upp farten i systemet, men detta är aktuellt först när du får långa väntetider.
Lycka till!
Nej, jag ville inte att du löser det åt mig utan bara säga mig om det går att göra på ett enklare sätt än i Access.
Att jag fortfarande tänker i "repetera" kommer nog från PHP där "do - while" är väldigt smidigt. Tyvärr är det riktigt bökigt i VB och därför ville jag kolla upp FM, som jag själv har noll erfarenhet av.
Jag är ytterst tacksam för dina tips och att du gjorde dig så mycket möda med mina flummiga beskrivningar
Relationer i FileMaker är riktigt kul faktiskt och man kan göra enormt mycket med dem. Det låter som om du bara behöver se över databasstrukturen lite grann och addera ett par saker så är du i mål.
Om jag förstår saken rätt när jag funderat lite till (rätta mig alltså om jag missförstått något) så talar vi om tre saker: en utvärderingstabell (skall sorteras per organisation och månad), en parametertabell (med organisationsdata och ett filter mot säljdata) och slutligen en tabell med säljdata.
Om du utgår från din utvärderingstabell: Varje post innehåller ett ID på en post i parametertabellen och även ett organisationsnummer. På fältet ID_Parameteruppsättning finns en relation mellan de två tabellerna. I utvärderingstabellen så finns motsvarande fält som i parametertabellen. Via relationen jag nyss nämnde fylls de olika fälten automatiskt med länkdata när man anger ett nummer på en post i parametertabellen via sk länkdata. Det betyder att så här långt innehåller alltså utvärderingstabellen alla organisationer och inkopierat på varje organisation är alltså "filtret" mot säljdata.
Sedan sätter du upp en knasig flera-fälts-relation mellan utvärderingen och säljdata och vips kan i utvärderingen "se" rätt summor, lagerhållning, omsättning, tidsperiod osv...
Om du i utvärderingstabellen skapar poster för månader eller hur du nu vill göra och behåller din filteruppsättning så att säga, så kan du sedan använda dig funktionen Rapporter i FileMaker för att få en snygg sortering och summering på dina data, på tex säljare, organisation eller vad de nu är för parameter som är av intresse.
Jag skickade ett PM till Marcus men kan upprepa det här om någon känner behovet och som jag bor i Stockholm. Jag gillar att prata om FileMaker, så om någon vill bjuda mig på en fika eller en öl och ställa frågor om FileMaker, så kontakta mig via PM eller via min webbsite (som syns i min profil).
Allt ser ok ut så långt, lyckades nästan övertyga chefen att slänga ut Access.
Nu till nästa fråga. Vi arbetar med många olika kunder och de levererar data mha Access Excel, SPSS mm. Jag utgår ifrån att alla dessa format kan läsas in i FMP.
Vi skulle vilja samla alla data på en databasserver, med en databas för varje uppdragsgivare. Just nu har vi en Windows-server och MS SQL Server vore ett alternativ.
Om vi använder SQL Server på den, kan vi ändå använda Filemaker som Front-End? Och koppla upp mot databaserna mha ODBC?
Eller är Filemaker Pro Server så kraftfull att vi kan köra den på Windows-servern isf MS SQL Server? Vi kommer ha ett blandat (Mac&PC) nätverk så FMP vore ju smidigast så sett eftersom Access inte finns för Mac (tack gode gud!)
Finns det öht betänkligheter med att använda FMP rakt av?
Allt ser ok ut så långt, lyckades nästan övertyga chefen att slänga ut Access.
Kanon! Argumenten som jag tycker talar mest till FileMakers fördel vs Access är att en normalbegåvad datavan person kan utan att ha en massa utbildning i databasteori faktiskt skapa riktigt snygga, lättanvända lösningar som är riktigt tight anpassade till den egna affärsprocessen och detta med väldigt lite ansträngning. Det går helt enkelt fortare och lättare att utveckla saker i FileMaker än i Access. Det betyder i sin tur att den mesta utvecklingen av ett eget skräddarsytt affärsssystem för den egna affärsprocessen (vilket är nödvändigt så fort standardpaketen man kan köpa off-the-shelf inte innehålller de funktioner man söker eller går att anpassa) kan göras av egen personal istället för dyra utvecklare som jag själv tex.
För de kluriga sakerna så kan man ta in någon databasnörd, som jag själv tex, för att bygga eller utbilda på några timmar om hur man gör något extra fiffigt, som tex koppling till SQL-databaser, webbpublicering mm.
Vad detta betyder är att man får en kontroll över det egna affärssystemet man inte kan få med andra databaslösningar och dessutom så kostar det mindre att satsa på FileMaker än att börja tossa ihop något i Access som kräver mer utbildning och är långsammare att utveckla i. Förutsatt förstås att det finns någon eller några normalbegåvad datavan personer som vill lära sig Filemaker och börja jobba med det egna affärssystemet som en del i arbetsuppgifterna.
En annan fördel är att ju fler som kan FileMaker på företaget, desto flera kan tossa ihop snabba smålösningar, samla in någon information från flera källor (tex över webben efter bara några knapptryckningar) och sedan producera rapporter med diagram mm, en funktionalitet som helt enkelt inte existerar i Office-paketet.
Hur FileMaker kan vara ett stöd för IT-avdelningen eller i stora och små företag finns det många studier av under avdelningen Support > Downloads > Whitepapers på Filemakers webbsite under rubriken Industry:
http://filemaker.com/support/whitepapers.html
För att se vartenda steg i processen att webbpublicera en FileMakerdatabas om du har FileMaker Server Advanced så kolla min guide här: Direkt webbpublicering med FMSA
Nu till nästa fråga. Vi arbetar med många olika kunder och de levererar data mha Access Excel, SPSS mm. Jag utgår ifrån att alla dessa format kan läsas in i FMP.
Ja och nej.
Access är ett databasformat som bara Access kan läsa. Det kan finnas verktyg som kan dela upp en Accessdatabas i ett antal SQL-kommandon, textfiler osv och därifrån kan man föra över till FileMaker, men det har jag tyvärr ingen koll på. Ett annat alternativ är att bygga sin Access-databas så att den sparar sina data till text-filer (CSV - Comma Separeted Values), eller Excel tex.
Excel går alldeles utmärkt. FileMaker kan importera och exportera till Excel. FileMaker kan även använda ett Excelark för att bygga en databas, ange kolumnnamn bara så blir det fältnamn inuti FileMaker.
SPSS använder det ett eget format? Är det inte SIE? Troligen är det dock någon form av textfil - FileMaker kan läsa och spara ut sådana ganska så bra med de inbyggda funktionerna, men om man har det behovet kan FileMaker med hjälp av denna kära Plugin göra vad som helst, läsa/skriva en bokstav eller ord eller till nästa skiljetecken i taget tex och agera på detta. http://www.troi.com/software/fileplugin.html Alltså kan man bygga ett importscript för knasiga filformat som tex SIE som blandar olika saker i samma fil.
XML - Filemaker kan även läsa XML-filer och exportera till sådana. Du frågade inte om det, men jag tänkte jag skulle nämna det i alla fall.
eFakturering - En del företag, kommuner mm har börjat kräva att deras leverantörer kan leverera eFakturor, vilket i praktiken bara är en tjock XML-fil som skall se ut på ett visst sätt. Jag har producerat en lösning med vilken FileMaker endast med inbyggda funktioner skapar en sådan fil och med hjälp av ett par små snuttar av Applescript så fick man ett trevligt GUI också, dvs utan Plugin. Så det går att gör oerhört mycket roligt med FileMaker i kombination med tex Plugins och/eller Applescript. Du frågade inte om det heller men jag tänkte jag skulle nämna det också.
Vi skulle vilja samla alla data på en databasserver, med en databas för varje uppdragsgivare. Just nu har vi en Windows-server och MS SQL Server vore ett alternativ.
När det gäller hosting finns flera alternativ, du kan ha en FileMaker Server Advanced på en egen maskin (Mac eller Windows som Richard nämner ovan), eller så kan du helt enkelt hyra in denna tjänst för ca 900:- per månad från ett företag som tex FileMakerHosting.se eller FileMakerHosting.com (USA, längre svarstider men billigare). Eftersom en FileMaker Server Advanced kostar runt 24.000:- och en FileMaker Server (som saknar webb och ODBC/JDBC) kostar runt 12.000:- så är detta betydligt billigare än att husera en egen FileMaker Server Advanced om behoven är små till en början. Man kan ju ansluta till den server från varsomhelst i världen.
En enda FileMaker Server Advanced kan husera upp till 125 databasfiler och 250 användare och 100 webbanvändare och 50 ODBC/JDBC-användare samtidigt. Varje databasfil kan innehålla tusentals tabeller.
Att ha en FileMaker Server Advanced innebär tex att du kan ge dina kunder tillgång till sina data och databaser över webben. Det betyder att de bara behöver en webbläsare för att ansluta till databasen och jobba med den och de behöver inte Filemaker i den egna datorn. Denna funktionalitet existerar inte i Access och du kan bygga massa roliga lösningar med hjälp av detta, tex knyta ihop ett CMS med en FileMaker-databas, så att du på din webbsite låter din kund logga in och därefter är han i din FileMaker-databas och kan läsa/redigera sina egna data, göra avancerade sökningar mm, helt utan att du har varit tvungen att som normalt är programmera en webbapplikation för detta. Du har bara webbpublicerat en layout i FileMaker och i ditt CMS (tex Joomla) satt in en länk till en viss URL.
Om vi använder SQL Server på den, kan vi ändå använda Filemaker som Front-End? Och koppla upp mot databaserna mha ODBC?
FileMaker kan snacka SQL och hämta och lämna data via ODBC till en MSSQL server eller MySQL.
Detta företag gör tex utmärkta ODBC-drivrutiner för Mac så att man kan snacka med de två databaserna jag nämner ovan och många fler. Jag har precis utvecklat en lösning där en kund har en webshop (VirtueMart) på sin webbsite (Joomla CMS) och FileMaker hämtar ordrar, kunder mm från MySQL som är vad VirtueMart och Joomla lagrar sina data i och skickar upp artiklar, lagersaldon mm med en av Actual Technologies ODBC-drivrutiner.
http://www.actualtechnologies.com/
Eller är Filemaker Pro Server så kraftfull att vi kan köra den på Windows-servern isf MS SQL Server? Vi kommer ha ett blandat (Mac&PC) nätverk så FMP vore ju smidigast så sett eftersom Access inte finns för Mac (tack gode gud!)
Du säger inget om antal besökare, tabeller osv. Men Ja, det är den!
Finns det öht betänkligheter med att använda FMP rakt av?
Inte vad jag kan komma på.
Lycka till!
Varför inte FileMaker Server då? Den finns för Windows och även om den inte är lika högpresterande som MS SQL så kan det ju vara mer än nog, beroende på belastningen.
Jodå, var bara offline ett par dagar... Semester du vet
Ypperliga svar måste jag säga! Och tack för extrastipsen. Jag ska fr o m maj månad studera FM närmare och även de olika lösningarna som du länkade till.
Att "hosta" databaser åt kunderna är något vi redan har diskuterat och som vi förmodligen kommer att använda oss av. Att kunna låta kunderna gå in över ett webbgränssnitt är ju toppen. Vi hade funderat på RDC via VPN eller nåt liknande men detta är ju mycket enklare.
Vi kommer inte att bygga så mycket grafiska lösningar i början utan det är mest behandling av rådata, utvärderingar av större tabeller mha av queries, summeringar mm.
Utvärderingarna levereras sedan som excel-dokument så exporten är viktig men det ska ju inte vara några problem.
Återkommer med fler frågor de närmsta veckorna