Persoonlijke bellerkaart factboxes maken
De FactBox maken
Deze documentatie legt uit hoe je een aangepaste FactBox maakt voor de Phone Connect Caller Card en hoe je deze koppelt aan de Caller Cards.
We beginnen met het maken van een aangepaste FactBox die in dit voorbeeld de projecten toont die gekoppeld zijn aan de betreffende contactpersoon of klant.
| AL |
|---|
| page 00002 "SIM_CTI Mijn Nieuwe FactBox"
{
ApplicationArea = All;
Caption = 'Mijn Nieuwe FactBox';
PageType = Cardpart;
layout
{
area(content)
{
group(Algemeen)
{
Caption = 'Algemeen';
field("ArtikelNr."; GlobalProjectAmountInteger)
{
Caption = 'Projecten';
ToolTip = 'Hier ziet u de gevonden projectvermeldingen';
// Wordt geactiveerd wanneer de gebruiker op het veld klikt (Drill-Down-actie)
trigger OnDrillDown()
var
LocalJobListPage: Page "Job List";
begin
// Alleen gemarkeerde records in de projectlijst tonen
GlobalRecordJob.MarkedOnly;
// De weergave van de lijst instellen op gemarkeerde records
LocalJobListPage.SetTableView(GlobalRecordJob);
// De projectlijst uitvoeren
LocalJobListPage.RunModal();
CalcEntries();
CurrPage.Update();
end;
}
}
}
}
// Bepaalt de relatie tussen een contactpersoon of klant en stelt globale variabelen in
procedure CheckRelation(ParamCode: Code[20]; ParamEnumSIMCTIBusinessMappingType: Enum "SIM_CTI Business Mapping Type")
var
LocalRecordContact: Record Contact;
LocalRecordContactBusinessRelation: Record "Contact Business Relation";
begin
// Alleen bedrijfsrelaties tonen die gekoppeld zijn aan klanten
LocalRecordContactBusinessRelation.SetRange("Link to Table", LocalRecordContactBusinessRelation."Link to Table"::Customer);
// Logica verwerken op basis van het Mapping Type (Contact of Klant)
case ParamEnumSIMCTIBusinessMappingType of
ParamEnumSIMCTIBusinessMappingType::Contact:
begin
// De contactrecord ophalen
LocalRecordContact.Get(ParamCode);
// De globale contactcode instellen afhankelijk van bedrijfsnummer
if LocalRecordContact."Company No." <> '' then
GlobalContactCode := LocalRecordContact."Company No."
else
GlobalContactCode := ParamCode;
// De gekoppelde klant vinden
LocalRecordContactBusinessRelation.SetRange("Contact No.", GlobalContactCode);
if LocalRecordContactBusinessRelation.FindFirst() then
GlobalCustomerCode := LocalRecordContactBusinessRelation."No.";
end;
ParamEnumSIMCTIBusinessMappingType::Customer:
begin
// Als het Mapping Type Klant is, klantcode instellen en gekoppeld contact zoeken
GlobalCustomerCode := ParamCode;
LocalRecordContactBusinessRelation.SetRange("No.", ParamCode);
if LocalRecordContactBusinessRelation.FindFirst() then
GlobalContactCode := LocalRecordContactBusinessRelation."Contact No.";
end;
end;
// Na instellen van de globale variabelen de projectvermeldingen berekenen
CalcEntries();
end;
// Berekent het aantal relevante projectvermeldingen
procedure CalcEntries()
var
LocalRecordContact: Record Contact; // Lokale variabele om contactpersonen te doorlopen
begin
GlobalProjectAmountInteger := 0; // Teller resetten
if GlobalContactCode <> '' then begin
// Filter op contactpersonen met hetzelfde bedrijfsnummer
LocalRecordContact.SetRange("Company No.", GlobalContactCode);
if LocalRecordContact.FindSet() then
repeat
// Filter op klant indien ingesteld
if GlobalCustomerCode <> '' then
GlobalRecordJob.SetRange("Sell-to Customer No.", GlobalCustomerCode);
// Filter op contactnummer
GlobalRecordJob.SetRange("Sell-to Contact No.", LocalRecordContact."No.");
// Relevante projecten markeren
if GlobalRecordJob.FindSet() then begin
GlobalRecordJob.Mark();
GlobalRecordJob.Reset(); // Reset voor volgende iteratie
end;
until LocalRecordContact.Next() = 0;
end;
// Filters resetten en gemarkeerde projecten tellen
GlobalRecordJob.Reset();
GlobalRecordJob.SetRange("Sell-to Customer No.", GlobalCustomerCode);
GlobalRecordJob.MarkedOnly;
// Aantal gemarkeerde projecten optellen
GlobalProjectAmountInteger += GlobalRecordJob.Count;
// Pagina verversen om het veld bij te werken
CurrPage.Update();
end;
var
GlobalRecordJob: Record Job; // Bevat projectvermeldingen
GlobalProjectAmountInteger: Integer; // Aantal gevonden projecten
GlobalCustomerCode: Code[20]; // Klantcode
GlobalContactCode: Code[20]; // Contactcode
}
|
De onderstaande voorbeeldcode toont hoe de relatie tussen de contactpersoon en de klant wordt bepaald, en hoe de bijbehorende gegevens voor beide worden weergegeven.
De FactBox toevoegen aan de Caller Card
Zodra je je FactBox hebt gemaakt, moet deze gekoppeld worden aan de gewenste Phone Connect Caller Card.
Hiervoor maak je een nieuwe Page Extension van de betreffende Caller Card.
In het onderstaande voorbeeld wordt de Caller Card "Call In Contact Sales" uitgebreid. Aangezien dit een contactpersoon betreft, wordt de Enum-waarde ingesteld op Contact.
| AL |
|---|
| pageextension 00001 "SIM_CTIDocu CTI" extends "SIM_CTI Call In Cont. - Sales"
{
layout
{
addafter(SIM_CTISalesFB)
{
part(NewFactbox; "SIM_CTI Mijn Nieuwe FactBox")
{
ApplicationArea = all;
}
}
}
trigger OnAfterGetCurrRecord()
var
LocalEnumSIMCTIBusinessMappingType: Enum "SIM_CTI Business Mapping Type";
begin
CurrPage.NewFactbox.Page.CheckRelation(Rec."No.", LocalEnumSIMCTIBusinessMappingType::Contact);
end;
}
|
Zodra je je aangepaste FactBox hebt gemaakt en gekoppeld aan de Caller Card, is de configuratie voltooid.
Je FactBox is nu klaar voor gebruik.