Skjermene
Tabell-API-ene som leverer dataene og de fire skjermene i appen — dashbord, kontoliste, kontokort og salgsmulighetstavle.
Dette er den lengste etappen i veiledningen, og den som gir appen et ansikt. Til slutt har du fire skjermer tegnet og i drift på de ekte dataene fra modellen: en Início med indikatorer og et diagram, en liste over Contas, en Ficha de Conta som lagrer, og en tavle med Oportunidades med kort du kan dra.
Før skjermene er det likevel et kort steg som gjør dem mulige.
Først tabell-API-ene
En skjerm snakker ikke med databasen. Den snakker med datastores — databeholderne på hver skjerm — og datastorene leser og skriver gjennom tabell-API-ene i appen. Et tabell-API peker på en entitet i modellen og genererer, helt av seg selv, operasjonene for lesing og skriving.
Vi lager tre, én per entitet:
- Velg panelet Kode i sidefeltet.
- På linjen API-er, klikk på + (Ny API).
- I Navn, skriv
contas. Navnet er grunnlaget for operasjonene (getContas,addContas,updateContas,deleteContas) — derfor skal du ikke sette prefikser somgetellerlistarforan. - Klikk på Opprett API. Byggeren åpnes på fanen Bygg.
- I seksjonen Pipeline, velg blokken Tabell.
- I feltet Tabell, velg
Dados CRM ▸ Contas. - Under Eksponerte handlinger, la Select, Insert, Update og Delete stå avkrysset — CRM-et trenger alle fire.
- La Offentlig tilgang (uten økt) stå helt avslått: denne appen er for folk med en innlogget økt.
- Under Inkluderte felt, bekreft at feltene skjermene skal bruke, er krysset av. For kontoene er det alle.
- Slå på bryteren Publisert og klikk på Lagre.

Gjenta for de to andre:
| API | Entitet | Handlinger | Merknader |
|---|---|---|---|
contas |
Contas | Select, Insert, Update, Delete | Alle felt. |
contactos |
Contactos | Select, Insert, Update, Delete | Inkluderer navigatoren conta (bare feltet nome). |
oportunidades |
Oportunidades | Select, Insert, Update, Delete | Inkluderer navigatoren conta (bare feltet nome). |
Navigatorene er det som gjør det mulig å vise navnet på kontoen ved
siden av en salgsmulighet uten å skrive en eneste linje SQL: kryss dem av i
listen over inkluderte felt, og feltet conta.nome blir tilgjengelig på
skjermene.
Nota
Et API i utkast er bare synlig for den som bygger. Glemmer du å publisere det, finner ikke datastorene på skjermene det — det er hovedårsak nummer én til at «skjermen laster ingenting». Kapittelet API-byggeren tar for seg API-ene i dybden.
Lage de fire skjermene
Skjermene bor i panelet UI, i seksjonen Skjermer.
- Velg panelet UI i sidefeltet.
- På linjen Skjermer, klikk på knappen Ny skjerm.
- Skriv navnet og bekreft med Opprett. Skjermen åpnes med én gang i arbeidsområdet.

Lag alle fire på én gang, i denne rekkefølgen:
| Navn på skjermen | Rute | Hva den skal bli |
|---|---|---|
Início |
/inicio |
Salgspanelet, med indikatorer og diagram. |
Contas |
/contas |
Listen over kontoer. |
Ficha de Conta |
/ficha-de-conta |
Skjemaet for én konto. |
Oportunidades |
/oportunidades |
Kanban-tavlen. |
Ruten utledes fra navnet, og den ser du (og redigerer) i inspektøren når ingen widget er valgt. La dem stå som de er — veiledningen viser til dem lenger ned.
Dica
Jobb alltid på enheten Web (1280px) gjennom hele denne veiledningen. De to andre — Nettbrett og Mobil — har sitt eget, uavhengige design; de tar vi senere, når web-designet er stabilt.
Skjermen Início — salgspanelet
Åpne skjermen Início. Designet har fire deler: en tittel, en stripe med indikatorer, et diagram og en tabell.
Tittelen
- Dra en Etikett fra paletten til toppen av canvaset.
- I kategorien Innhold i inspektøren, skriv teksten
Painel comercial. - I kategorien Utseende, øk Størrelse på teksten — det er tittelen på siden.
Stripen med indikatorer
Fire tall side om side lages med én KPI-widget med fire indikatorer, ikke med fire widgets: justering og avstander blir riktige av seg selv.
- Dra en KPI inn under tittelen og strekk den over hele bredden.
- I kategorien Data starter seksjonen Indikatorer med én. Bruk Legg til indikator til du har fire.
- Hver indikator har en Etikett, et ikon, et Eget datasett (datastoren til den) og en verdi med Aggregering.
Sett dem opp slik:
| Etikett | Datastore (tabell-API) | Filter | Verdi |
|---|---|---|---|
Contas ativas |
contas |
— | Antall av id |
Oportunidades abertas |
oportunidades |
fase ≠ fechada_ganha og fase ≠ fechada_perdida |
Antall av id |
Valor em pipeline |
oportunidades |
samme filter | Sum av valor |
Fechado este trimestre |
oportunidades |
fase = fechada_ganha |
Sum av valor |
På de to pengeindikatorene, åpne Format og velg valutaen EUR med null desimaler — 475 850 leses bedre enn 475850.
Diagrammet
- Dra et Diagram til venstre halvdel, under KPI-en.
- I kategorien Data, lag listedatastoren på API-et
oportunidades. - I Diagramtype, velg Søyler.
- I Kategorifelt (X-akse / sektorer), velg
fase. - I Verdifelt, legg til
valor. - I kategorien Utseende, slå på Vis tittel og skriv
Pipeline por fase.
Tabellen over nærmeste avslutninger
- Dra en Tabell til høyre halvdel, ved siden av diagrammet.
- I kategorien Data, lag listedatastoren på
oportunidades, med filteret for de åpne fasene (det samme som på indikatorene), sortert pådata_fechostigende og Per side satt til 8. - I kategorien Data, seksjonen Kolonner, definer fire kolonner:
| Felt | Overskrift |
|---|---|
titulo |
Oportunidade |
conta.nome |
Conta |
valor |
Valor (€) |
data_fecho |
Fecho |
- Slå på Vis tittel og skriv
Próximos fechos.

Skjermen Contas — listen
Åpne skjermen Contas. Det er tre widgets.
- En Etikett på toppen, med teksten
Contas. - En Knapp i øvre høyre hjørne: i kategorien Innhold, teksten
Nova contaog ikonetplus. - En Tabell som fyller resten av skjermen. I kategorien Data, lag
listedatastoren på API-et
contas, sortert pånomestigende, og definer kolonnene:
| Felt | Overskrift |
|---|---|
nome |
Nome |
sector |
Sector |
cidade |
Cidade |
telefone |
Telefone |
email |
Email |
estado |
Estado |
Nå gjenstår det å koble på de to bevegelsene som gjør denne listen til noe brukbart. Begge skrives i kategorien Hendelser, i TypeScript:
På Knappen, i hendelsen onClick — åpne et blankt kort, for å
opprette:
keplin.nav.go("/ficha-de-conta");
På Tabellen, i hendelsen onRowClick — åpne kortet til raden som ble
klikket:
keplin.nav.go("/ficha-de-conta/" + keplin.event.row.id);

Nota
keplin.event.row er raden brukeren klikket på, med alle feltene fra
datastoren. Det er derfor row.id holder for å sette sammen adressen til
kortet.
Skjermen Ficha de Conta — skjemaet
Dette er skjermen med flest deler, og den som best viser hvordan dataene virker. Åpne skjermen Ficha de Conta.
Ruteparameteren
- Klikk på et tomt område på canvaset — inspektøren viser nå selve skjermen.
- I seksjonen Ruteparametere, klikk på + legg til parameter og
skriv
id. - La Påkrevd stå av. Det er med vilje: uten
idåpner skjermen blank, og det er slik det samme skjemaet også brukes til å opprette en ny konto.
Ruten blir nå /ficha-de-conta/:id.

De to datastorene på skjermen
Fortsatt med skjermen valgt, i kategorien Data:
- Klikk på + post. Klikk på datastoren som ble laget, for å åpne modalen Konfigurer datastore.
- I Navn på datastoren, skriv
conta. - I Tabell-API, velg
contas. - I Hvilken post som skal lastes (nøkkel), klikk på + nøkkelfelt og
sett sammen betingelsen: feltet
id, operatoreneq, verdien Param ▸id. - La Last inn automatisk stå på og lukk med Ferdig.

Så den andre, for kontaktene til kontoen:
- Klikk på + liste og åpne den.
- Navn
contactosConta, Tabell-APIcontactos. - I Filtre (where), legg til: feltet
conta_id, operatoreneq, verdien Param ▸id. - Sorter på
nomestigende.
Dica
Uten betingelser i nøkkelen laster en postdatastore en ny, tom post.
Det er den oppførselen som sparer deg for en egen skjerm til å «opprette
konto»: åpnet uten id starter skjemaet blankt, og lagringen blir en
innsetting.
Skjemaet
- Dra et Panel til venstre på canvaset. I kategorien Utseende, slå
på Vis tittel og skriv
Dados da empresa. - Dra Tekstfeltene inn i panelet — slipper du en widget inne i et
panel, blir den barn av det. For hver av dem, skriv etiketten i
kategorien Innhold, og velg datastoren
contaog feltet i kategorien Data, seksjonen Databinding:
| Etikett | Felt | Påkrevd |
|---|---|---|
Nome |
nome |
ja |
NIF |
nif |
nei |
Sector |
sector |
nei |
Cidade |
cidade |
nei |
Telefone |
telefone |
nei |
Email |
email |
nei |
- Til statusen bruker du en Nedtrekksliste i stedet for et tekstfelt:
etiketten
Estado, koblet tilconta▸estado, Påkrevd slått på, og faste alternativer:
| Verdi | Etikett |
|---|---|
ativo |
Ativo |
prospeto |
Prospeto |
inativo |
Inativo |
- Dra en Tabell til høyre for panelet, koblet til datastoren
contactosConta, med kolonnenenome(Nome),cargo(Cargo) ogtelefone(Telefone), og tittelenContactos desta conta.
Lagre og gå tilbake
To Knapper under panelet, hver med sin onClick-hendelse:
Guardar (ikonet save):
const ok = await keplin.data.store("conta").save();
if (ok) {
keplin.ui.toast("Conta guardada");
keplin.nav.go("/contas");
}
Voltar (ikonet arrow-left):
keplin.nav.go("/contas");
save() validerer først — påkrevde felt og regler — og lagrer bare hvis alt
går gjennom; den gir true når den har lagret. Det er derfor meldingen og
navigasjonen ligger inne i if-en.
Skjermen Oportunidades — kanban-tavlen
Åpne skjermen Oportunidades.
- En Etikett på toppen, med teksten
Oportunidades. - Dra en Kanban inn under den, over hele bredden.
- I kategorien Data, lag listedatastoren på API-et
oportunidades(uten filter — tavlen viser alt), med Per side satt til 50. - I Statusfelt (kolonne), velg
fase. Det er dette feltet som sier hvilken kolonne hvert kort bor i — og det er det som blir skrevet når noen drar et kort. - I Kilde for kolonnene, velg Statisk og bruk + legg til kolonne seks ganger:
| Verdi | Etikett | Farge |
|---|---|---|
prospecao |
Prospeção |
grå |
qualificacao |
Qualificação |
blå |
proposta |
Proposta |
ravgul |
negociacao |
Negociação |
lilla |
fechada_ganha |
Ganha |
grønn |
fechada_perdida |
Perdida |
rød |
- Slå på Tillat å dra kort og Antall kort; la Kolonne for uten kategori stå av.
- I Mal for kortet, si hva hvert kort skal vise:
| Felt | Rolle |
|---|---|
titulo |
Tittel |
conta.nome |
Undertekst |
valor |
Verdi |
- Under tavlen legger du til en Tabell med tittelen
Todas as oportunidades, koblet til en listedatastore påoportunidades, med kolonnenetitulo,conta.nome,valor,fase,data_fechoogresponsavel.

Nota
Å dra et kort mellom kolonner lagrer den nye verdien av fase i posten,
gjennom tabell-API-et — derfor virker dragingen bare hvis datastoren har
primærnøkkel og API-et har handlingen Update aktiv.
Se resultatet
Det finnes ingen lagreknapp på skjermene: endringene lagres av seg selv, og øvre høyre hjørne sier hvor de står (Lagrer…, Lagret).
For å se skjermen på ordentlig, klikk på Forhåndsvis: plattformen lagrer det som står igjen, og åpner skjermen i den ekte appen, i en ny nettleserfane. Du går gjennom innloggingen som en hvilken som helst bruker — kontoene som logger inn i appen, lages i etappen Publisere og bruke, og inntil da kan du bruke den som allerede finnes.
Hvorfor ikke …?
- Hvorfor dukker ikke API-et mitt opp i listen over datastores? API-et er et utkast. Åpne det og slå på Publisert.
- Hvorfor åpner det seg alltid et tomt kort? Postdatastoren har ingen
betingelser i Hvilken post som skal lastes (nøkkel), eller parameteren
idkommer ikke fram i ruten. Sjekk at ruten er/ficha-de-conta/:id. - Hvorfor ser jeg ikke kolonnen
conta.nome? Navigatoren er ikke med under Inkluderte felt i tabell-API-et — eller datastoren ble satt opp før du krysset den av. Åpne Konfigurer datastore på nytt og velg API-et om igjen for å friske opp portrettet av feltene. - Hvorfor lar ikke kanban meg dra? Primærnøkkelen mangler i datastoren, eller handlingen Update mangler i tabell-API-et.
- Hvorfor er diagrammet tomt? Kategorifeltet eller Verdifeltene er ikke valgt — eller filteret i datastoren slipper ikke gjennom en eneste rad.
Skjermene finnes, men det er ennå ingen måte å hoppe mellom dem på. Neste etappe: navigasjon og tema.