Denna delen av 99 uppdateras inte längre utan har arkiverats inför framtiden som ett museum.
Här kan du läsa mer om varför.
Mac-nyheter hittar du på Macradion.com och forumet hittar du via Applebubblan.

Hämta data från flera register

Tråden skapades och har fått 16 svar. Det senaste inlägget skrevs .
1

Har sökt men inte hittat, så här är min fråga.
Har ett register för obetalda fakturor där jag hämtar poster från fakturaregistret.

Jag skriver manuellt in fakturanummret, då hämtas resten automatiskt, så långt var det enkelt, men sen....:-)
Jag har ytterligare ett fakturaregister med fakturor som jag vill ha in i samma register med obetalda fakturor.
Så hur gör jag för att kunna använda "lookup" från 2 olika register?

Mats B

Bra databasdesign dikterar att du skall importera det ena registret i det andra registret, så att du har ett register för obetalda fakturor.

OK. Det fungerade ju sådär.
Jag vill bestämma exakt vilka fakturor som importeras, inte alla utan bara de som jag har skrivit sen sist.
är väl ingen stjärna på filemaker men har ett flöde som fungerar för oss.
Ser ut så här:
Skriver fakturan, öppnar "obetalda" skriver in de nya fakturanummer jag skrivit, tar ev bort de betalda.
Då har jag en uppdaterad lista i "obetalda". Så långt inga problem, det är bara det att det finns ett register till som jag använder ibland när vi säljer till privatpersoner. Det är lite olika saker som skiljer.
Så nu skulle jag vilja att när jag skriver in ett nummer från detta, så ska "obetalda" hitta dom också. Precis som jag har fått till det att det gör från den ordinarie fakturadatabasen.

Med det upplägg du har skulle du kunna dubblera fälten i ditt "obetalda"-register. Två fält med fakturanummer, ett som hämtar från "företag" och ett som hämtar från "privat". Dubblera fälten som du länkar in data till också.

För varje obetald faktura har du en post antar jag? Om du vill ha en lista med alla obetalda kan du lägga de inlänkade fälten ovanpå varandra? (Om "privat"-fälten är ifyllda är ju "företags"-fälten tomma, och vice versa.)

Bra Ide
Det ska jag testa.

Nu ska jag bara hitta lite tid att greja.

Mats

Har provat lite, Inte helt enkelt att få bra
Vill väldigt gärna jobba i "table view" då blev det genast svårare att lägga fälten på varandra.
Layout mode gäller ju inte då.
Och att få till en layout som fungerar i List View är inte helt enkelt heller.

MAts

Rolf - det där är en riktigt dålig lösning. Varför rekommenderar du den till en nybörjare?

Ursprungligen av Taz_1999:

Rolf - det där är en riktigt dålig lösning. Varför rekommenderar du den till en nybörjare?

En lösning är bättre än en ingen lösning! I listläge är den här enkla lösningen helt OK, i tabelläge direkt usel.

Har som sagt provat utan nån framgång. Så frågan kvarstår
Går det att få "Lookup" att titta i två register, eller finns det någon elegantare väg?

Mats

Ursprungligen av Mats Bengtsson:

Har som sagt provat utan nån framgång. Så frågan kvarstår
Går det att få "Lookup" att titta i två register, eller finns det någon elegantare väg?

Mats

Nej, det går inte att få "lookup" att titta i två register.

Vad jag förstår skriver du in ett fakturanummer och vill hämta adress m.m. från två olika register/tabeller beroende på vad du skriver in? Det kan du göra med beräkningsfält.

Jag antar att du har olika fakturanummerserier för de båda varianterna. Om du skriver in ett fakturanummer, t.ex. mindre än 1000, så kan du hämta värden från register A, annars från register B. Det förutsätter att du har relationer till de båda registren med fakturanumret som nyckel.

Använd följande formel:

Adress = If (fakturanummer < 1000; RegisterA::Adress; RegisterB::Adress)

Vill du verkligen att innehållet ska länkas in, istället för att beräknas, kan du använda funktionen Lookup, så här:

Adress = If (fakturanummer < 1000; Lookup(RegisterA::Adress;""); Lookup(RegisterB::Adress;""))

När du importerar från en annan databas är det de visade posterna som importeras. Så gör du en sökning först i databasen du importerar från, ha den databasen öppen, importera till den andra så får du alltså exakt de poster du sökt fram importerade.

Senast redigerat 2009-08-24 21:19
Ursprungligen av Taz_1999:

När du importerar från en annan databas är det de visade posterna som importeras. Så gör du en sökning först i databasen du importerar från, ha den databasen öppen, importera till den andra så får du alltså exakt de poster du sökt fram importerade.

Ibland tar det lite tid att fatta:-)
Nu fungerar det. det är inte så många att importera från "specialfaktura" så det ska nog gå bra.

Tack för hjälpen Taz_1999

Mats B

Ditt problem med table view löser du så att du lägger ut de fält du vill ha i layouten i den ordning du vill ha kolumnerna. Lägg ut fälten uppifrån och ner i en vertikal linje så det inte kan vara några missförstånd (ur Filemakers synvinkel) i vilken ordning de skall komma. När du sedan byter till table view så får du kolumnerna i samma ordning.

Ursprungligen av Taz_1999:

Ditt problem med table view löser du så att du lägger ut de fält du vill ha i layouten i den ordning du vill ha kolumnerna. Lägg ut fälten uppifrån och ner i en vertikal linje så det inte kan vara några missförstånd (ur Filemakers synvinkel) i vilken ordning de skall komma. När du sedan byter till table view så får du kolumnerna i samma ordning.

Det var inget problem i min gamla lista. det var när jag försökte "fullösningen" som det krånglade till sig lite. Det hade nog gått men det var svårt att skriva ut på liggande A4.

Tack ändå

Mats

Jag tror jag nu förstår vad Mats inte förstod med god databasdesign. Du skall alltså ha ett register för en sak. Därför skall du importera alla poster (eller de du vill ha) till ena registret och sedan slänga det är importen är klar och inte mata in mera data i det. Då har du ett register för en sak, nu har du två register för samma sak. Det är ju därför du vill länka in från två register.

Exempel: Adresser. Man vill ha adresser till kunder, dvs ett kundregister, sedan vill man ha adresser till leverantörer, leverantörsregister, sedan till anställda, personalregister. Men det dumma är då att man på så vis sitter med tre register som innehåller ungefär samma sak, dvs adresser och kontaktuppgifter. Det är dålig databasdesign.

Istället bygger man ett register "Adresser" och i det registret har man ett fält "Typ" och där man kan kryssa för Kund, Leverantör, Personal, Övrig tex. Det är bra databasdesign.

Sedan går det visserligen att göra som Rolf föreslår, vilket jag självklart också känner till hur man gör (jag skulle dock ha två separata layouter istället, duplicera den ena och byt ut en del fält), men jag hade hoppats att denna dumma lösning inte skulle komma upp i denna tråd, för det är alltså en dum lösning, även om den fungerar. I ett senare skede kommer du, om du slår in på denna väg, att behöva duplicera allt möjligt för att arbeta dig runt grundproblemet - du har två register för samma "sak", vilket kostar tid och pengar. Du kanske tex vill ha ut statstik i en framtid? Du kanske vill se vad som säljer och inte säljer, vilka kunder som betalar och inte betalar? Du kanske vill integrera ditt system med något annat? I alla dessa fall måste du, om du bygger som du nu gjort, duplicera allting.

Senast redigerat 2009-08-25 09:47

Jag förstår hur du menar, och jag har 1 register för kunder 1 för produkter och 1 för fakturor och 1 för obetalda, så helt fel ute är jag nog inte, har ett flertal fungerande länkningar bl.a. från faktura, både kunder och produkter "fyller i sig själv"!
Tyvärr har jag ytterligare 2 fakturaregister, en för försäljning till utlandet utan moms och en för försäljning till privatpersoner, Men du menar att jag borde lägga ihop detta till ett fakturaregister med flera layoutvarianter eller? Jag ska i alla fall prova!

Mats B

Jag menar att du skall ha ETT faktura-register som innehåller utlandet utan moms, försäljning till privatpersoner och till företag.

Det är också viktigt för revisorer/skatteverket att varje fakturanummer kan hittas och att det inte finns några luckor i serien. Det är tillåtet att ha flera serier, men alltså inte luckor så vissa fakturanummer inte kan hittas.

1
Bevaka tråden