Manuale Kimo
  • Piacere, sono Kimo
  • Introduzione
    • Finalità di Kimo
    • Moduli e App
      • Kimo SFA
      • Kimo B2B
      • Console di Amministrazione
    • Architettura
  • Installazione
    • Requisiti minimi di sistema
    • Check-list per il deploy
    • Installare Kimo SFA su iPad
    • Installare Kimo B2B su device
    • Tool accessori
      • SyncThing
  • Impostazioni
    • Utenti
      • Ricercare utenti
      • Creare un utente per SFA
        • Modificare codice Agente associato all'utente
      • Console di Amministrazione: Creare un utente per B2B
      • Web App: Creare un utente per B2B
      • API: Creare un utente per B2B
      • Creare un utente di tipo Direzionale
      • Cambiare codice agente per un utente di Kimo
      • Attivare un utente
      • Riattivare un utente
      • Criteri di definizione delle password
      • Reset della password
      • Cancellare e ripristinare un utente
      • Eliminare un profilo utente dall'App SFA
      • Impersonificare un utente
    • Ruoli e autorizzazioni
    • Business Rules
      • Account
      • Activity
      • Api
      • B2b\Account
      • B2b
      • B2b\Cart
      • B2b\Document
      • B2b\ErpDocument
      • B2b\Help
      • B2b\Item
      • B2b\Password
      • B2b\Price
      • B2b\Promotion
      • B2b\QuantitySelector
      • B2b\UserProfile
      • Barcode
      • Budgets
      • Cart
      • Communication
      • CompanyNews
      • Contact
      • Crm
      • Custom
      • Discount
      • Document
      • DocumentLine
      • DocumentMail
      • DocumentNotification
      • DocumentSearch
      • DocumentTransformation
      • Elly
      • Entity
      • Erp
      • ErpDocument
      • ErpDocumentLinesReport
      • ErpDocumentMail
      • ErpDocumentType
      • FreeField
      • Fulfillment
      • Idrolab
      • ilDataPool
      • ItemAvailability
      • Item
      • ItemImage
      • ItemPriceListFile
      • ItemUom
      • ManualItem
      • MapAccounts
      • MarketingForm
      • MobileWarehouseAvailability
      • Opportunity
      • Password
      • PendingEdits
      • Pinaxo
      • PointsPerSaleBalance
      • PointsPerSale
      • PowerBI
      • PriceCalculation
      • PricePerCustomerCsvMail
      • Promotion
      • PromotionLine
      • Reassortment
      • ReceivableBook
      • ReceivableBookMail
      • ReceivableInstallment
      • Rma
      • SalesControl
      • SalesControlDocument
      • SalesControlDocumentLine
      • Shipment
      • ShippingCharge
      • SmartBI
      • Sync
      • VariableMatrix
      • Vat
      • WelcomeWizard
    • Impostazioni di sistema
    • Metadati sulle entità
    • Valori di default
    • FreeLookup
    • Stati Erp
    • Import/Export
    • Tipo Report
      • Document Data Model
    • Motore di template (Template Engine)
    • Impostazione chiave Google (Geocoding)
    • Timeframe (periodi temporali)
  • Interfaccia utente
    • SFA
      • Layout
        • Elenco
          • AccountActivitiesTableRow
          • AccountsSearch
          • ActivitiesSearch
          • ActivityEditor
          • ActivityToPlan
          • BankAccountEditor
          • BankAccountsSearch
          • BudgetLineEditor
          • BudgetLinePickerEditor
          • BudgetLinesForAccount
          • BudgetLineTableRow
          • BudgetsDrillDownTableRow
          • CartEditor
          • CartLineTableRowEditor
          • CartsSearch
          • CommunicationsSearch
          • ContactEditor
          • ContactForm
          • ContactsSearch
          • CustomerEditor
          • CustomerForm
          • CustomerScheduledPaymentsTableRow
          • DocumentAlternatives
          • DocumentArchiving
          • DocumentConfirmation
          • DocumentHeaderEditor
          • DocumentLineEditor
          • DocumentLineGroupHeader
          • DocumentLineTableRowEditor
          • DocumentLineVariableEditor
          • DocumentReport
          • DocumentReportRecipient
          • DocumentsSearch
          • ErpDocumentArchiving
          • ErpDocumentHeaderEditor
          • ErpDocumentLineEditor
          • ErpDocumentLinesReport
          • ErpDocumentLineTableRowEditor
          • ErpDocumentLineVariableEditor
          • ErpDocumentsSearch
          • ItemForm
          • ItemLotAvailabilitiesSearch
          • ItemsDrillDownTableRow
          • ItemsSearch
          • ItemWarehouseAvailabilitiesSearch
          • MobileWarehouseAvailabilitiesSearch
          • PromotionActivationByItemHeader
          • PromotionActivationLineTableRow
          • PromotionActivationTableRow
          • PromotionDirectActivationHeader
          • PromotionEditorLineTableRow
          • PromotionInfoHeader
          • PromotionLineEditor
          • PromotionLineSelector
          • Reassortment
          • ReceivableBook
          • ReceivableInstallmentEditor
          • ReceivableInstallmentsMultipleCashEditor
          • ReceivablesBookReport
          • ReceivablesBookReportRecipient
          • SalesConditionForDocumentLineSelector
          • ShipmentSiteEditor
          • Signature
          • SmartBIDrillDownTableRow
      • Scenari
      • Immagine di sfondo su Home Page
      • Immagine personalizzata per login
    • B2B
      • Risorse grafiche per Kimo B2B
  • Integrazione
    • Kimo integrator
      • Integrator System Settings
      • Funzioni di trasformazione "speciali"
    • Database schema
      • Account
      • AccountAccountingInfo
      • AccountBank
      • AccountFilter
      • AccountPerPromotionCustomerGroup
      • Activity
      • ActivityAssignee
      • ActivityType
      • AvailabilityRule
      • AvailabilityRuleParamsPerDocument
      • Bank
      • BankAgency
      • Budget
      • BudgetLine
      • BudgetLineActual
      • BudgetPerSalesAgent
      • BusinessRuleFromErp
      • Carrier
      • CatalogPriceList
      • CompanyRole
      • Contact
      • ContactPerOpportunity
      • Country
      • Currency
      • CustomerDiscountGroup
      • CustomerDiscountGroupTranslation
      • CustomerGroup
      • CustomerGroupTranslation
      • CustomerPriceGroup
      • CustomerPriceGroupTranslation
      • DeliveryDateType
      • DeliveryRoute
      • DiagnosticPriceTestCase
      • DiscountsPerHierarchy
      • DiscountsPerItemGroup
      • DiscountsPerItemSeries
      • Document
      • DocumentArchivingReason
      • DocumentLine
      • EntitySyncReferenceForAccount
      • EntitySyncReferenceForActivity
      • EntitySyncReferenceForBudgetLine
      • EntitySyncReferenceForContact
      • EntitySyncReferenceForEntityGeoposition
      • EntitySyncReferenceForMarketingForm
      • EntitySyncReferenceForOpportunity
      • EntitySyncReferenceForReceivableInstallment
      • EntitySyncReferenceForRma
      • ErpDocument
      • ErpDocumentLine
      • ErpDocumentPerSalesAgent
      • FreeLookup
      • FreeLookupTranslation
      • GoodsAspect
      • IndicatorThreshold
      • InvoiceDiscount
      • InvoiceDiscountParams
      • Item
      • ItemAssociated
      • ItemAttachment
      • ItemCharge
      • ItemChargeType
      • ItemClassification
      • ItemCollection
      • ItemCollectionTranslation
      • ItemCost
      • ItemCrossReference
      • ItemDiscountGroup
      • ItemGender
      • ItemGroup
      • ItemGroupTranslation
      • ItemImage
      • ItemLine
      • ItemLineTranslation
      • ItemListPrice
      • ItemLotOfflineAvailability
      • ItemOfflineAvailability
      • ItemSeries
      • ItemSeriesTranslation
      • ItemSpecificationField
      • ItemSpecificationFieldPerGroup
      • ItemSpecificationFieldTranslation
      • ItemSpecificationFieldValue
      • ItemSpecificationGroup
      • ItemSpecificationGroupTranslation
      • ItemSpecificationItemPerGroup
      • ItemSpecificationValue
      • ItemTranslation
      • ItemUom
      • ItemUrl
      • ItemVariable
      • Language
      • LogisticArea
      • LogisticAreaDeliveryDays
      • Manufacturer
      • ManufacturerImage
      • ManufacturerTranslation
      • MaritalStatus
      • MarketingForm
      • MarketingFormFamily
      • MarketingFormField
      • MarketingFormFieldValue
      • MarketingFormLine
      • MarketingFormType
      • MichelangeloSalesCondition
      • MichelangeloSalesMultiplierCondition
      • NavFashionDocumentDiscounts
      • NavSalesLineDiscount
      • NavSalesPrice
      • NonStockItem
      • NonStockItemUom
      • Opportunity
      • OpportunityLeavingReason
      • OpportunityPhase
      • OpportunityReferralSource
      • PaymentMethod
      • PaymentTerm
      • PaymentType
      • PointsPerSale
      • PointsPerSaleBalance
      • PriceList
      • PricePerQuantityRange
      • PriceRounding
      • Promotion
      • PromotionCustomerGroup
      • PromotionFilter
      • PromotionImage
      • PromotionLine
      • Reassortment
      • ReassortmentLine
      • ReassortmentPerSalesAgent
      • ReceivableInstallment
      • RegistrationDocumentType
      • ResponsibleForTransport
      • Rma
      • RmaAttachment
      • SalesAgent
      • SalesAgentPerAccount
      • SalesConditionPriority
      • SalesControl
      • SalesControlLine
      • SalesDiscountCategory
      • SaleTypePerItem
      • Season
      • SeasonGroup
      • SeasonPerSeasonGroup
      • ShipmentMethod
      • ShipmentParamsPerDocument
      • ShippingCharge
      • SirioItemSalesClassification
      • SirioSalesCondition
      • StatisticClass
      • StatisticClassTranslation
      • StatisticReport
      • Title
      • Trademark
      • TrademarkImage
      • TrademarkPerAccount
      • TrademarkPerUser
      • TrademarkTranslation
      • TransportMode
      • UomTranslation
      • Variable
      • VariableValue
      • VatRate
      • VisibilityFilter
      • VisibilityFilterPerAccount
      • VisibilityFilterPerItem
      • VisibilityFilterPerSalesAgent
      • Warehouse
      • WarehousePerSalesAgent
      • Zone
    • Come schedulare Import/Export
    • Task personalizzati import/export
  • Funzionalità e ruoli
    • Catalogo
      • Articolo
      • Articolo a variante
      • Articoli associati
      • Listini per catalogo
      • Catalogo PDF (SFA)
      • Idrolab
    • Documenti di vendita
      • Riga documento
      • Tipi Vendita
      • Controlli commerciali
      • Report
    • Promozioni
    • Articoli manuali
    • Documenti aziendali e personali
    • Statistiche
    • Comunicazioni
      • Public API
    • Partite aperte
    • Account (Clienti/Prospect/Destinazioni Merci)
      • Clienti
      • Prospect
      • Destinazioni Merci
    • B2B
      • Promozioni - layout a card
      • Funzioni attivabili da link
      • Caricamento carrello da file Excel
    • Modalità evasione
    • Disponibilità Online
    • CRM
      • Attività
      • Schede marketing
      • Contatti
    • Gestione avanzata dei preventivi
  • Supporto
Powered by GitBook
On this page
  • Sintassi per i parametri
  • Operatore '!'
  • If / Else / End
  • Verifica parametri con valore Null
  • Cicli foreach
  • Dichiarazione di variabili
  • Commenti
  • Funzioni per la formattazione
  • Funzioni di utilità
  • Chiamate a funzioni

Was this helpful?

  1. Impostazioni

Motore di template (Template Engine)

Kimo utilizza un motore di template (Template Engine) per comporre alcune stringhe personalizzabili. Ad esempio, tale motore viene utilizzato per renderizzare i layout basati sull'HTML (come quelli per la scheda cliente e scheda articolo) o alcune Regole di Business, come "Document\QuantitiesSummaryTemplate".

Sintassi per i parametri

Data una variabile di tipo semplice chiamata "Item", è possibile renderizzarla inserendo nel testo del template uno dei seguenti valori:

  1. $Item

  2. ${Item}

Se la variabile ha valore NULL, utilizzare l'operatore '!' descritto di seguito per evitare che venga renderizzata con il nome stesso della variabile invece che come stringa vuota.

Data una variabile di tipo oggetto, contente delle proprietà, è possibile renderizzarla utilizzando il '.' per indicare le proprietà. Ad esempio per referenziare la proprietà "Description" della variabile "Item" si potranno utilizzare le sintassi

  1. $Item.Description

  2. ${Item.Description}

Se la variabile ha valore NULL, utilizzare l'operatore '!' descritto di seguito per evitare che venga renderizzata con il nome stesso della variabile invece che come stringa vuota.

Operatore '!'

Quando una variabile ha valore NULL, di default non viene mostrata come una stringa vuota, ma viene mostrato il nome stesso della variabile: ad esempio, se la variabile nel template è indicata come "Item.Description", ma ha valore null, la stringa verrà renderizzata proprio come "$Item.Description" invece di stringa vuota.

Per evitare questo comportamento, va utilizzato l'operatore '!' (chiamato 'Quiet Reference Notation' in letteratura). Quindi la variabile andrà indicata nel template in uno dei seguenti modi:

  1. $!Item.Description

  2. $!{Item.Description}

If / Else / End

Esempio:

#if ($foo)
  TESTO QUANDO VERO
#else
  TESTO QUANDO FALSO
#end

Esempio in un'unica linea:

#if ($foo) TESTO QUANDO VERO #else TESTO QUANDO FALSO #end

Verifica parametri con valore Null

Il modo più semplice per verificare se un parametro ha valore null è di utilizzare la funzione "utils.IsNullOrEmpty" descritta nella sezione delle funzionalità.

Esempio di utilizzo:

#if (${utils.IsNullOrEmpty($ShipmentSite)}) 
  Stampa se null o stringa vuota 
#else 
  Stampa se valorizzato
#end

Cicli foreach

Esempio:

#foreach ($product in $allProducts)
    <li>$product</li>
#end

È possibile evitare di andare a capo dopo ogni iterazione usando i caratteri '##':

#foreach ($customer in $customerList)
$customer.Name##
#end

Sono supportate ulteriori istruzioni, per inserire dei valori tra gli elementi:

#foreach($i in $items)
#each (this is optional since its the default section)
       text which appears for each item
#before
       text which appears before each item
#after
       text which appears after each item
#between
       text which appears between each two items
#odd
       text which appears for every other item, including the first
#even
       text which appears for every other item, starting with the second
#nodata
       Content rendered if $items evaluated to null or empty
#beforeall
       text which appears before the loop, only if there are items
       matching condition
#afterall
       text which appears after the loop, only of there are items
       matching condition
#end

Dichiarazione di variabili

Esempio:

#set ($index = 0)
#set ($index = $index + 1)

Commenti

I commenti possono essere definiti usando i caratteri '##':

This text is visible. ## This text is not.

Funzioni per la formattazione

Funzione
Parametri
Scopo

formatter.ToQuantity

decimal value

Formattazione come quantità (fino a 5 decimali)

formatter.ToUnitPrice

decimal value

Formattazione come prezzo unitario (es. con 2 zeri dopo la virgola e fino a 5 decimali)

formatter.ToTotalPrice

decimal value

Formattazione come importo totale (es. con 2 zeri dopo la virgola e fino a 2 decimali)

formatter.NumberToInvariantString

decimal value

Converte un numero in una stringa nel formato "invariant" (usando il '.' per i decimali a prescindere dalla lingua e senza alcun separatore per le migliaia)

formatter.ToMonthName

int month

Dato il numero di un mese, ne restituisce il nome

'${Number:00000}'

Esegue il padding della variabile 'Number', inserendo il corrispondente numero di '0' (5 nell'esempio).

Funzioni di utilità

Funzione
Parametri
Scopo

utils.IsNullOrEmpty

oggetto

Restituisce un boolean che indica se l'oggetto passato come parametro è Null o se è una stringa vuota (o contenente soli spazi)

utils.Take

object lista, int count

Data una lista di valori, prende i primi n espressi dal parametro "count"

$newline o ${newline}

Interruzione di riga

Now

Restuisce la data in cui è stato renderizzato il template, nel formato "d MMM yyy HH.mm" (es. "12 gen 2021 15.46")

Chiamate a funzioni

È possibile invocare delle funzioni di sistema (funzioni esposte dal .NET Framework) tramite sintassi come:

Testing ${val.ToString().Trim()}
Testing $val.ToString().Trim()

Analogamente è possibile invocare delle funzioni esposte dagli oggetti

Testing ${test.CustomMethod(${val})}
Testing $test.CustomMethod(${val})
Testing $test.CustomMethod($val)
PreviousDocument Data ModelNextImpostazione chiave Google (Geocoding)

Last updated 2 years ago

Was this helpful?