Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple...

67
1/67 Personalizza come vuoi con grande SEMPLICITA’ Validità: Dicembre 2013 Questa pubblicazione è puramente informativa. 24 ORE SOFTWARE non offre alcuna garanzia, esplicita od implicita, sul contenuto. I marchi e le denominazioni sono di proprietà delle rispettive società.

Transcript of Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple...

Page 1: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

1/67

Personalizza come vuoi con grande SEMPLICITA’

Validità: Dicembre 2013

Questa pubblicazione è puramente informativa. 24 ORE SOFTWARE non offre alcuna garanzia, esplicita od implicita, sul contenuto.

I marchi e le denominazioni sono di proprietà delle rispettive società.

Page 2: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

2/67

SOMMARIO 1. INTRODUZIONE 4

1.1 PRESENTAZIONE 4 1.2 POSSIBILITÀ DI PERSONALIZZAZIONE 5 1.3 IL SIMPLE# 7 1.4 SIMPLE# VS SDK 7 1.5 PREMESSA E REQUISITI DI CHI LEGGE 8 1.5.1 COMPETENZE RICHIESTE 9 1.6 SUGGERIMENTI FINALI PRIMA DEL VIA 9 1.6.1 ASPETTO LOGICO DELL’APPLICAZIONE 9 1.6.2 ASPETTO ESTETICO O GRAFICO: SIMPLE# È ANCHE GRAFICA ED ESTETICA 9 1.6.3 ASPETTO INTERATTIVO CON L’UTENTE: JAVASCRIPT 9 1.7 ESTENSIONE DEL MODELLO DATI 10 1.7.1 NOMENCLATURA DELLE TABELLE E VISTE AGGIUNTIVE 10

2. SIMPLE#: MANUALE DI BASE 12

2.1 PREMESSA 12 2.2 CONSIDERAZIONI GENERALI 14 2.2.1 INSERIRE UN OGGETTO SIMPLE# È MOLTO SEMPLICE 15 2.2.2 GARBAGE COLLECTOR 17 2.2.3 AUTOLOGIN 17 2.3 DOVE È POSSIBILE INSERIRE SIMPLE# 18 2.4 GRIGLIA 18 2.5 GRIGLIA ESTESA 21 2.6 BOTTONE 24 2.7 LABEL 25 2.8 INPUT 26 2.9 COMBO 28 2.10 TAG HTML: IFRAME E ALTRI 29 2.10.1 L’OGGETTO IFRAMESERVER 30 2.11 JAVASCRIPT 31 2.12 RECORDSET 32 2.13 CHECKBOX 34 2.14 CHART 35 2.15 COMMIT 37 2.15.1 COMMIT: GESTIONE ERRORI 37 2.16 MEMO 38 2.17 PANNELLO SIMPLE# 2.0 39 2.17.1 VEDIAMO UN ESEMPIO REALE: TESTATA E DETTAGLIO 42

3. RS#: IL REPOSITORY DEL SIMPLE# 46

3.1 SALVARE ED UTILIZZARE I WIDGETS DEL REPOSITORY 46 3.2 LICENZA SIMPLE# E TRASPORTABILITÀ DEL CODICE SIMPLE# 48

4. SINTESICRM E MAPPAAZIONI 49

5. ESEMPI FINALI DI SIMPLE# 51

5.1 ESEMPI DI GRIGLIE SU HOME PAGE (PORTALI) 51

Page 3: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

3/67

5.2 ESEMPI DI CONFIGURATORE COMMERCIALE 53 5.3 ESEMPIO DI GESTIONE DI UNA CARATTERISTICA 55 5.4 SIMPLE# DI ESEMPIO PER STORICO CONTATTI SEMPLICE DA METTERE NEL WORKFLOW 57 5.5 SIMPLE# DI ESEMPIO PER RICERCA & ESITAZIONE APPUNTAMENTI. REFRESH PANNELLO TRAMITE BOTTONE 58

6. SOSTITUZIONE NOMI DI CAMPO [[NOME]] 60

6.1 PREMESSA 60 6.2 DOVE E COME UTILIZZARLI 62 6.3 ALTRA POSSIBILITÀ ||NOMECOLONNA|| 64

7. APPENDICE A: LINKED SERVER 65

7.1 CREAZIONE DI UN LINKED SERVER 65 7.1.1 ESEGUIRE LA SEGUENTE QUERY T-SQL 67 7.2 UN ESEMPIO 67

Page 4: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

4/67

1. Introduzione

1.1 Presentazione

Una piattaforma CRM è il cuore dell’approccio Marketing e Commerciale (pre e post vendita) di un’azienda, ovvero di quegli aspetti in cui è fondamentale e talvolta evidente l’esistenza di particolarità distintive. Per questo l’utilizzo di una piattaforma CRM, molto più di altri applicativi (es. Mail, Erp, grafica,..) richiede sempre molte configurazioni personalizzate. E’ per questo che il CRM offre moltissime possibilità di configurazione, integrazione e personalizzazione all’amministratore di sistema ed al programmatore. Ciascuna di queste possibilità presenta aspetti favorevoli ed altri di complessità. Per questo sarebbe l’ideale poter definire al meglio l’esigenza che si vuole soddisfare e quindi, una volta appreso al meglio il sistema, decidere con quale strumento personalizzare il comportamente del sistema. Facciamo dei semplici esempi al fine di comprendere meglio questi aspetti. Ipotizziamo una semplice esigenza: visualizzare immediatamente, nell’home page del CRM, l’elenco delle opportunità commerciali in chiusura, ovviamente in base al profilo di accesso specifico. In pratica quando entra il capo area vedrà l’elenco delle opportunità in chiusura sue e dei suoi diretti collaboratori. Se invece entra il singolo venditore vedrà solo le proprie. Premesso che questa è una configurazione probabilmente già disponibile “out-of-the-box” nel sistema, vediamo sinteticamente come si farebbe partendo da una configurazione vuota:

1) Attivare i parametri necessari alla limitazione di visibilità “standard” (sono quelli nella cui descrizione è contenuta la parola “limita”)

2) Impostare nell’home page un Simple# che visualizzi una griglia con le opportunità in fase di chiusura (in

questo caso sarà necessario definire in modo preciso cosa si intende con la dicitura “in fase di chiusura”) e che siano mie o dei miei sottoposti

3) (opzionale) prendere il report delle opportunità e modificarlo per agganciarlo direttamente a questa griglia in

home page

Page 5: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

5/67

1.2 Possibilità di personalizzazione

Centinaia di implementazioni del CRM, ciascuna diversa dall'altra e vicina all’esigenza e al business dell’utilizzatore. Tutte le aziende sono particolari, specialmente nell’ambito Sales e Marketing: ecco perché il CRM consente di modificare ed estendere facilmente l’applicazione in base alle specifiche esigenze aziendali. Per la maggior parte delle personalizzazioni, è possibile usare gli strumenti di base. Per le personalizzazioni più complesse è possibile utilizzare l’SDK e tutti i linguaggi disponibili nella piattaforma Visual Studio di Microsoft. Gli sviluppatori possono utilizzare direttamente C# e l’SDK, il linguaggio di programmazione nativo del CRM, in modo che tutte le personalizzazioni sviluppate con questo linguaggio vengano eseguite in nativo sulla piattaforma, per prestazioni superiori e nessun tipo di manutenzione sul lato client. Tra le principali richieste degli utenti delle applicazioni aziendali, vi è quella di una maggior libertà di personalizzazione. Il problema che si presenta alle organizzazioni IT è legato al fatto che questa libertà ha un prezzo, tradotto ad esempio nei costi di progetto superiori e nella maggior assunzione di rischi. Davanti a personalizzazioni costose, impegnative in termini di risorse e difficili da aggiornare, le organizzazioni IT spesso raggiungono sofferti compromessi o, peggio, convincono gli utenti aziendali ad accettare applicazioni "senza troppe pretese". A prescindere dal livello di personalizzazione scelto o necessario, potrai beneficiare di tutti i vantaggi della piattaforma, inclusi aggiornamenti rapidi, semplici e sicuri, mantenendo intatte le tue personalizzazioni e preservando gli investimenti fatti nel tempo. Vediamo tutte le possibilità di configurazione e personalizzazione quali sono:

Descrizione Possibilità Livello Difficoltà Requisiti Stumenti

Profili: funzionalità

Consente di definire i profili di accesso al sistema secondo le esigenze e la privacy

Creare gruppi di utenti, creare utenti, assegnare funzionalità e relativi permessi (es. Sola lettura, possibilità di esportare, ecc.)

Utente *

Gestione Utenti Gestione Gruppi

Profili: anagrafiche

(opzionale) Consente di definire le regole di visibilità delle anagrafiche

Nelle realtà aziendali più semplici è possibile adottare la regola “tutti vedono tutto”. Nelle organizzazioni commerciali più articolate è invece possibile impostare filtri normali di visibilità (Es. Venditori vedono solo il proprio portafoglio, visibilità di gerarchia,...) fino ad adottare regole di visibilità avanzate.

Utente *

Parametri Filtri Avanzati

Stati

Nel sistema esistono molte tabelle di “Stato” che devono essere impostate.

Si consiglia di vedere la Guida Rapida all’uso per definire al meglio e secondo le proprie esigenze le varie tabelle di Stato, in particolare gli stati dei Contatti e del Backoffice.

Utente *

..diverse.. Tabelle Di Stato

Parametri Parametri della procedura

Il sistema consente di modificare molti comportamenti semplicemente agendo sui parametri della procedura

Utente * Gestione Parametri

Workflow E’ il workflow di gestione delle attività

Consente di definire i singoli possibili passi per gestire al meglio una attività. Vengono forniti già precompilati. Se è attivo il modulo di Marketing è possibile avere un workflow differente per ogni campagna. I Workflow possono essere salvati come modelli.

Utente *

Gestione Campagne/Workflow

Page 6: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

6/67

Stampe Configurazione dei report.

E’ possibile modificare e creare ulteriori report, che possono poi essere collegati alle varie funzionalità in base al gruppo di utenti. Si veda il manuale di personaliz. Stampe.

Reporting Manager

*, Crystal Report

Config. Stampe

Job Scheduler Configurazione di task schedulati.

E’ possibile creare dei comandi schedulati che aggiornano gli archivi applicando regole di business, oppure inviano MAIL ed SMS in modo automatico.

DBA DB, SQL

Comandi Schedulati dall’ambiente Client /Server

Flussi XML GetCRMInfo.aspx Si veda il manuale Recupero dati dal CRM in formato XML

DBA DB, SQL, XML

Comandi Schedulati

Simple# Macrolinguaggio interno.

Modifica interfaccia del sistema in alcuni punti specifici.

Utente Avanzato + DBA

DB, SQL, HTML, JS

Editors Simple#

SDK Software Devolopment Kit

Consente di modificare il comportamente dell’applicazione ed aggiungere ulteriori funzionalità realizzato dei plug-in e step-custom

Sviluppatore VS .Net, C# Visual Studio, C# + SDK

* = è richiesta soltanto la conoscenza logica dell’applicativo e l’identificazione precisa dell’esigenza utente da assolvere. Con l’ausilio dell’help e i permessi corretti anche l’utente può personalizzare e configurare il sistema.

Di seguito viene ripreso lo schema generale per le integrazioni.

Page 7: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

7/67

1.3 Il Simple#

(si pronuncia "simpol sharp") è un macro linguaggio di personalizzazione orientato ai controlli ed alla estrema facilitià di utilizzo, sviluppato all'interno del progetto di realizzazione del framework di sviluppo del CRM. La programmazione visuale e la sua semplicità si basano sulla possibilità di sfruttare la “flessibilità” e “potenza” dei linguaggi:

• T-SQL: per l’estrazione di dati da una fonte SQL Server • HTML: per la renderizzazione sul browser • JAVASCRIPT: per l’eventuale interazione custom lato client con l’utente

Il macrolinguaggio interno Simple# consente di renderizzare all’utente finale delle pagine web dinamiche ed in tempo reale di informazioni presenti sia all’interno del CRM che in altri sistemi gestionali (es. Legacy/Erp o altri DB).

Il Simple# è anche l’ultimo livello di personalizzazione che può essere eseguito LIVE direttamente sul sistema, visualizzando anche in anteprima i risultati che si vuole ottenere e salvando direttamente nel database il codice prodotto. In pratica nessuna competenza reale di programmazione è richiesta e nessuna compilazione in ambiente Visual Studio .NET è richiesta. Questo semplifica ed accellera notevolmente la realizzazione ed il rilascio di codice Simple#. Per sua natura il codice Simple# prodotto per una installazione puà essere facilmente copia ed incollato su altre installazioni, senza alcun bisogno di compilazione. E’

tutto codice che verrà interpretato al momento del rendering della pagina Web. Il Simple# viene sviluppato ed esteso tenendo in considerazione costantemente la retro compatibilità dei codici Simple# già realizzati e messi in produzione presso gli utilizzatori. NOTA BENE: il modulo Simple# è un modulo aggiuntivo della licenza del CRM.

1.4 Simple# vs SDK

Il livello ulteriore di personalizzazione è costituito dall’ SDK. E’ il livello più avanzato e potente di personalizzazione che consente di introdurre nuove logiche di business, modificare le interfacce ed i comportamenti dell’applicazione. Tuttavia è necessario avere l’intero ambiente di personalizzazione su Visual Studio .Net e compilare il codice scritto al fine di produrre una libreria DLL che dovrà poi essere caricare sul sistema in produzione. E’ quindi necessario essere dei programmatori C#. Ma cosa è l’SDK ? E’ un insieme di classi, oggetti, controlli:

– lato Client e – lato Web Server

che consentono agli sviluppatori di concentrarsi maggiormente sugli aspetti applicativi/gestionali, essere più produttivi ed ottenere risultati conformi alle linee guida generali.

Page 8: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

8/67

Come si compone l’SDK (in numeri): – 200 classi/oggetti lato Server – Oltre 200 oggetti/metodi lato Client (web crossbrowser) – 45 moduli applicativi – 39 anni/uomo di sviluppo

Grazie all’SDK è possibile avere la flessibilità ed il pieno controllo. Le varie possibilità offerte sono le seguenti: • decidere quali componenti dell'applicazione sono adatti alla personalizzazione, quali aspetti di tali

componenti presentare e come consentire l'accesso a essi. • personalizzazioni affidabili e indipendenti dalla versione • i moduli aggiuntivi possono essere isolati dall'applicazione host per garantire maggiore affidabilità. Più

versioni dei componenti aggiuntivi interagiscono con più versioni dell'applicazione host, estendendo conseguentemente la durata delle personalizzazioni.

• strumenti standard per una vasta gamma di sviluppatori (l’ambiente di sviluppo delle personalizzazioni è semplicemente Visual Studio .Net)

• i progetti creati con il framework possono essere aperti in Visual Studio per consentire agli sviluppatori di migliorare le personalizzazioni create dagli utenti finali. Gli strumenti standard facilitano la collaborazione tra team interni, rivenditori, integratori di sistemi e utenti finali.

Vantaggi

• Possibilità di sfruttare tutti i servizi di base (es. traduzione, security & profile, seriability, tracing, cross-platform, style, css, asynchronous request, connection…)

• Possibilità di sfruttare il MacroLinguaggio Simple# • Possibilità di realizzare applicazioni Cross Browser “senza pensarci” • Possibilità di creare pagine Griglia + dettaglio senza scrivere codice (vedi esempio) • Possibilità di interagire con il sistema a livello di eventi “Ado” ed eventi “Page”

Grazie a questi aspetti i tempi (e quindi i costi) di sviluppo e personalizzazione delle applicazioni ERP/CRM/CMS vengono ridotti del 75%!

1.5 Premessa e requisiti di chi legge

La personalizzazione del sistema attraverso Simple# è semplice, tuttavia esistono dei requisiti software e di conoscenza di base che sono necessari per proseguire. Requisiti software

• Accesso al CRM con un utente che sia “Amministratore” e possa accedere alle funzioni che consentono le personalizzazioni:.

o Utilità | Opzioni Utente o Analisi e Reporting | Configurazione Sintesi CRM o Analisi e Reporting | Configurazione Analisi o Contact Management | Campagne Marketing | Workflow o Sintesi CRM

Page 9: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

9/67

1.5.1 Competenze richieste Se si desiderare effettuare semplici modifiche estetiche a codice Simple# già esistente (es. mettere in Grassetto o

cambiare colore a delle frasi presenti in home page): • Semplici nozioni base di Html • Il presente documento

Se si desidera modificare in modo avanzato il codice Simple# esistente oppure crearne di nuovo:

• Conoscenza avanzata di HTML • Nozioni base di SQL • Disponibilità della documentazione della struttura dati del CRM - disponibile nel

menu Programmi di Windows sul Server WEB oppure nella cartella PDF sotto all'installazione del CRM nel formato Help (file: CRM_DB_DOC.chm)

• Il presente documento • (opzionale) Conoscenza di Javascript, se si vuole creare funzioni custom di interazione con l’utente

1.6 Suggerimenti finali prima del VIA

Sebbene tutti i livelli di personalizzazioni (tranne la scrittura di codice con l’SDK) possono essere facilmente applicati, modificati e rimossi, anche in modalità “test”, il nostro consiglio è il seguente: prima di procedere con le personalizzazioni è opportuno aver già ben chiara l’esigenza. Una breve fase di analisi, meglio se in forma scritta, è fondamentale per ridurre ulteriormente i tempi ed evitare di applicare modifiche che poi andranno rifatte più volte. Nel merito del Simple# ad esempio è possibile dividere in tre la personalizzazione:

1.6.1 Aspetto logico dell’applicazione E’ sicuramente l’elemento principale. E’ bene stabilire prima quali dati si vuole gestire o far vedere agli utenti, quali saranno i dati aggiuntivi da gestire e come questi si vuole vengano salvati nella base dati. Dei modellini fatti con Excel o Word possono aiutare molto per raccordare tutti gli utenti del sistema prima di realizzare la modifica.

1.6.2 Aspetto estetico o grafico: Simple# è anche grafica ed estetica Sappiamo che la parte estetica è importante. Essendo Simple# un macrolinguaggio il cui scopo finale è quello di renderizzare codice HTML e sapendo bene la potenza di questo codice che ha rivoluzionato Internet è importante sfruttarlo in modo da realizzare interfacce accattivanti, sobrie, colorate e con un look&feel compatibile con gli standard aziendali. Il limite di questa parte è solo la fantasia. E’ possibile sfruttare contenuti esterni, presi dal Web, con le tecniche di Mash-up e gli oggetti Iframe.

1.6.3 Aspetto interattivo con l’utente: Javascript Questo punto è abbastanza complesso ma fortunatamente “opzionale”. Occorre comprendere se l’interazione standard prevista dall’applicativo è sufficiente, e per fare questo un po’ di esperienza nell’utilizzo del sistema è fondamentale. Solo successivamente si potrà definire se è utile aggiungere codice Javascript all’interno di frame Simple# per implementare calcoli, controlli o comportamenti a livello client WEB personalizzati. Altro aspetto importante a questo livello: avere esperienza con Javascript e i diversi browser che l’utilizzatore potrà adottare: Firefox, Chrome, Safari o Internet Explorer …

Page 10: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

10/67

1.7 Estensione del modello dati

Nell’utilizzo di Simple# o nell’ambito delle personalizzazioni in genere è normale dove ampliare il modello di dati. Questo ampliamento può avvenire essenzialmente con le seguenti modalità:

- utilizzando le caratteristiche1 già previste dal sistema - creando nuovi oggetti (tabelle o viste) direttamente sul database del CRM (per questo può essere utile

vedere la documentazione database), adottando una propria nomenclatura (vedi paragrafo successivo). - accedendo mediante Simple# a database esterni, visibili sulla stessa “istanza” di SQL Server dove risiede il

database del CRM, oppure mediante l’utilizzo dei Link Server (3 - Appendice A: Linked Server) In tutti i casi dovrà essere scelta la corretta chiave di collegamento (per fare i successivi JOIN lato SQL) tra le informazioni di base e quelle aggiuntive. Nel caso delle caratteristiche è automatica e ci pensa il sistema, nel caso di nuovi oggetti (ovvero tabelle aggiuntive) si potrà adottare il campo “Clienti.Codice” che solitamente rappresenta il codice anagrafico di collegamento (il CRM utilizza già un suo codice interno di tipo Identity, automatico e progressivo “Clienti.IDCliente”) oppure un altro campo chiave se l’informazione aggiuntiva fosse riferita ad un contatto/attività (Elenchi.IDElenco) oppure ad una offerta (Offerta.IDOfferta). Esempio

Supponiamo di voler gestire 50 informazioni aggiuntive sull’offerta. Per gestire queste si potrebbero creare 50 nuove caratteristiche oppure una nuova tabella, collegata UNO-A-UNO con il campo IDORDINE della tabella ORDINI (vedi documentazione database) e quindi procedere con la gestione di questi campi mediante Simple#.

1.7.1 Nomenclatura delle tabelle e viste aggiuntive Se durante le fasi di personalizzazioni occorre aggiungere tabelle o viste di frontiera verso database ERP (o di altro genere) esterni, è importante adottare una propria convenzione nel nominare questi nuovi oggetti personalizzati all’interno del database.

1 Gestione dei campi aggiuntivi collegati alle anagrafiche, all'archivio Offerte (Segnalazioni, Offerte, Preventivi, Appuntamenti, ..) e al Dettaglio Offerte (righe di offerta/preventivo). Le “caratteristiche” del cliente costruiscono di fatto una parte fondamentale dell’intera piattaforma di CRM. La gestione dei Campi Personalizzati infatti è ILLIMITATA e consente di rendere specifica l’anagrafica in funzione della Vostra attività. Queste caratteristiche (dette anche consistenza) dei clienti sono aggiornabili in automatico in funzione dei contratti e contatti progressivamente inseriti, oppure importate dall’esterno mediante semplici file XLS. Le caratteristiche possono essere:

- importate e/o aggiornate in modo “massivo” direttamente da un file sorgente esterno - stampabili o consultabili solo a video - inviate sul dispositivo “mobile” della forza vendita - legate ad una sola tipologia di portafoglio o divisione di business aziendale - inserite, modificate ed eliminate in modalità puntuale o massiva attraverso apposite manutenzioni - definite come modificabili o impostate in sola lettura - è possibile legare dei comandi di scripting al fine di impostare delle regole di compilazione e convalida del dato - visibili a tutti o soltanto a certi gruppi di Utenti - VIRTUALI !. Le caratteristiche virtuali sono di fatto dei campi calcolati e visibili sull'anagrafica. Possono essere utilizzati anche

per effettuare ricerche. Il calcolo si basa su una Query eseguita direttamente da SQL Server. Per questo è possibile creare campi calcolati di qualsiasi tipo, anche molto complessi e che coinvolgono informazioni interne ma anche esterne al CRM.

o ESEMPI: E' possibile ad esempio creare una caratteristica virtuale "Cassa Negativa" che indica con un "SI" (oppure il valore in Euro) se il cliente nel gestionale ha il mastrino di Cassa Negativa, oppure creare una caratteristica virtuale "Numero Offerte" o ancora "Totale Offerte".

Le caratteristiche possono essere viste, modificate ed aggiunte dagli utenti anche durante il contatto con il cliente. Il sistema utilizza in modo specifico queste informazioni per effettuare ricerche ed esportazioni (tutte le caratteristiche o solo alcune) ovvero per creare campagne di marketing mirato.

Page 11: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

11/67

Suggeriamo di nominare tutte le nuove tabelle e viste personalizzate con un PREFISSO così composto:

• _xpropriodiminutivoaziendale_NomeOggetto

Es. _xSOLE24_Forecast Nei vari aggiornamenti di versione il sistema applicherà automaticamente tutte le novità “solamente” ai propri oggetti, lasciando pertanto invariati tutti gli oggetti personalizzati.

Page 12: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

12/67

2. Simple#: manuale di base

2.1 Premessa

Il simple# si compone essenzialmente di un editor html WYSIWYG2 in cui è possibile inserire scrivere come se si operasse in un qualsiasi editor di un sistema CMS (Content Management System)3 con in più la possibilità di inserire gli oggetti “Simple#”. E’ quindi evidente che già la parte HTML

NOTA BENE

- Per accedere all’editor Simple# è necessario essere “Amministratori del Sistema”. - Per salvare le modifiche Simple# è necessario avere la licenza “SDK Simple#”.

La lista degli oggetti Simple# inseribili è in continua evoluzione e può essere espansa anche mediante l’utilizzo dell’SDK e del file QblicCfg.xml4. Questa procedura ovviamente è riservata solamente ai più esperti che già sappiano utilizzare l’SDK. Al fine di affinare eventualmente il codice Simple# si consiglia di copiare il codice HTML integrale (mediante il tastino HTML) e perfezionarlo con gli strumenti già noti (es. Adobe® Dreamweaver®, FrontPage, Visual Studio, ecc..). Al termine sarà possibile reincollare il codice Html direttamente all’interno dell’editor Simple#.

2 WYSIWYG è l'acronimo che sta per l'inglese What You See Is What You Get ("quello che vedi è quello che ottieni" o "ottieni quanto vedi"). 3 Un content management system, in acronimo CMS, letteralmente "sistema di gestione dei contenuti", è uno strumento software installato su un server web studiato per facilitare la gestione dei contenuti di siti web, svincolando l'amministratore da conoscenze tecniche di programmazione. 4 QblicCfg.xml è un file XML rilasciato dal produttore che contiene tutte le proprietà degli oggetti Simple#

Page 13: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

13/67

Editor in stile HTML

Gli oggetti SIMPLE# sono rappresentati in XML, tuttavia all’interno dell’HTML compaiono “esclusivamente in formato BASE64”, inseriti nel TAG CLASS dell’immagine che rappresenta il marcatore dell’oggetto. Curiosità: gli oggetti simple# sono facilmente spostabili utilizzando il Drag&Drop (utilizzando il browser Firefox) e sono anche “copiabili” (CTRL+C = Copia) per poterli duplicare o incollari su altro editor Simple# (CTRL+V = Incolla). In questo caso occorre prestare attenzione che l’identificatore univoco dell’oggetto dovrà essere cambiato altrimenti il Simple# non funzionerà. Nei prossimi capitoli l’elenco degli oggetti inseribili.

Page 14: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

14/67

2.2 Considerazioni Generali

Al fine di sfruttare al meglio il Simple# è utile sapere alcuni aspetti generali e standard dell’applicazione. IDPrmKeyTable

Tutte le maschere (form) che gestiscono delle entità in particolare (es. AgentiForm.aspx, ClientiForm.aspx, OrdiniForm.aspx) possono essere aperte direttamente sul record desiderato passando in modalità “GET” (direttamente sull’URL) il parametro “IDPrmKeyTable”. Il parametro Idprmkeytable è case insensitive.

Esempio:

Per aprire l’anagrafica con codice chiave interno 146, richiamare l’URL …/clientiform.aspx?idprmkeytable=146 Per aprire l’analisi/reporting con codice identificativo univoco = 6, richiamare l’URL …/risultatoricerca.Aspx?idprmkeytable=6

Altri parametri

Tutte le form potrebbero avere anche altri parametri di apertura, per i quali suggeriamo di visualizzare direttamente l’URL durante le prove di ciò che si desidera realizzare, al fine di riproporre questi parametri all’interno del codice Simple#.

Esempio:

Per aprire la form principale di gestione della attività MultimediaForm su un determinato IDElenco: …/multimediaform.aspx?idelenco=176 (attenzione in questo caso IDElenco deve esistere) Per aprire la form principale di gestione della attività MultimediaForm in modalità Inserimento nuova attività (l’equivalente di premere il tasto Nuova Attività): …/multimediaform.aspx?Modality=New (attenzione, valido solo se CC6011=SI) Per aprire la scheda anagrafica in modalità Inserimento: …/clientiform.aspx?Modality=New

Per visualizzare la situazione dell’anagrafica 147 in tutte le campagne: …/elenchigrid.aspx?idcliente=147 Per visualizzare l’elenco delle opportunità dell’anagrafica 237: …/opportunitagrid.aspx?idcliente=237 Per visualizzare l’elenco delle offerte dell’anagrafica 237: …/ordinigrid.aspx?idcliente=237

NOTA BENE: L’apertura degli oggetti è comunque condizionata dai permessi di visibilità anagrafiche e funzionalità (Gestione Utenti) che l’utente corrente possiede.

Page 15: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

15/67

2.2.1 Inserire un oggetto Simple# è molto semplice Per inserire e gestire un oggetto Simple# è molto semplice.

1) Posizionarli all’interno dell’editor nel punto in cui si desidera inserire l’oggetto

2) Selezionare l’oggetto dal menu a tendina Simple# e cliccare

L’oggetto viene inserito con una immagine che svolge la funzione di semplice “marcatore”, ad esempio:

Il reale posizionamento ed estetica dell’oggetto sarà possibile vederlo soltanto quando verrà renderizzato in anteprima:

3) Per modificare le proprietà dell’oggetto fare doppio click con il mouse sullo stesso. Se l’oggetto è già presente basta effettuare, in modalità progettazione, doppio click sullo stesso per accedere alle proprietà e modificarlo. Ricordarsi, come in tutti gli ambienti di sviluppo, di indicare un ID univoco per identificare l’elemento

E’ importante sottolineare che lo strumento di Anteprima è disponibile solamente alcune volte nell’editor del Simple#, dove sia sensato (es. in home page del CRM è disponibile, nel singolo step del workflow di una campagna non è disponibile). E’ disponibile tuttavia, solo per l’utente “Admin” e direttamente in esecuzione del workflow la possibilità di fare delle modifiche al solo scopo di test (da qui infatti è inibito il salvataggio delle modifiche), salvo eventualmente copiare poi il codice Html generato.

Page 16: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

16/67

Ecco un esempio dell’home page in fase di PROGETTAZIONE (Editor Simple#)

Ecco lo stesso Simple# in fase di ESECUZIONE

Cliccando sulla rotellina in alto a destra (Aggiorna) si può chiedere di “rifare” il rendering del Simple#. In questo caso vengono rieseguite le eventuali query presenti al fine di ottenere i dati aggiornati.

Page 17: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

17/67

2.2.2 Garbage Collector5

All’interno della piattaforma esiste un sistema di “pulizia della memoria” (Garbage Collection5) di sessione che ciclicamente azzera l’occupazione di memoria di tutti i singoli oggetti che restano inutilizzati per un periodo di circa 20 minuti. Pertanto, sebbene l’utente resti collegato loggato al CRM web automaticamente (grazie ad un meccanismo di Persitent Session), alcuni oggetti presenti in home page potrebbero risultare inutilizzabili dopo un certo periodo di tempo. In questo caso è sufficiente premere il tastino “Aggiorna” in alto a destra:

Questo tasto “aggiorna” è disponibile sempre per tutti gli utenti. Il tasto SALVA e MODIFICA invece è disponibile solamente per gli utenti Amministratori.

2.2.3 Autologin E' possibile accedere al CRM anche mediante un unico Link secondo il seguente formalismo: URLCRM/autologin.aspx?conn=nomeconnection&uid=IDUtente&pwd=password&url=pagina.ASPX&IDSharpPage=IDPagina&GuidSharpPage=GUIDPagina • conn = è la connection del CRM • uid = il nome utente con cui si vuole accedere al CRM • pwd = è la password (case sensitive) per l'accesso • url = pagina ASPX del CRM che si desidera venga aperta subito dopo il login avvenuto correttamente (es.

Main.aspx oppure ClientiForm.aspx?IDPrmKeyTable=35) • IDSharpPage (Opzionale) = ID della pagina simple# che si desidera venga aperta subito dopo il login avvenuto

correttamente • GuidSharpPage (Opzionale) = GUID della pagina simple# che si desidera venga aperta subito dopo il login

avvenuto correttamente. ESEMPIO

• http://crm.miazienda.it/rilascio/autologin.aspx?conn=miodb&uid=rossi&pwd=pwdR0ss!&url=main.aspx Oppure

• http://crm.miazienda.it/rilascio/autologin.aspx?conn=miodb&uid=rossi&pwd=pwdR0ss!&IDSharpPage=5 Oppure

• http://crm.miazienda.it/rilascio/autologin.aspx?conn=miodb&uid=rossi&pwd=pwdR0ss!&GuidSharpPage=ABDC6A4E-774C-4F55-A604-6F4D97BCDF9D

5 Per garbage collection (letteralmente raccolta dei rifiuti, a volte abbreviato con GC) si intende una modalità automatica di gestione della memoria, mediante la quale un sistema operativo, o un compilatore e un modulo di run-time, liberano le porzioni di memoria che non dovranno più essere successivamente utilizzate dalle applicazioni. In altre parole, il garbage collector annoterà le aree di memoria che non sono più referenziate, cioè allocate da un processo attivo, e le libererà automaticamente.

Page 18: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

18/67

Ricordiamo che è anche possibile abilitare l'accesso integrato con Active Directory tramite il parametro ELU010 = SI (Security: utilizza autenticazione integrata con Windows Domain/Active Directory).

2.3 Dove è possibile inserire Simple#

Il codice Simple# può essere gestito e inserito in molti punti dell’applicazione ma ancora vi sono diverse form di gestione che consentono la personalizzazione solamente mediante l’utilizzo, più complesso, dell’SDK. E’ in corso di sviluppo la possibilità di applicare pannelli Simple# che estendano le interfaccie su tutte le entità del sistema. Al momento (maggio 2010) è possibile utilizzare il codice Simple# nei seguenti punti:

Cosa è possibile fare Dove viene memorizzato Come si modifica

Homa Page (portali)

Tutta l’home page del CRM è codice Simple#. Opzioni dell’utente

Se Amministratore: direttamente dall'home page. Per tutti: dall'ultimo pannello delle Opzioni Utente (se si dispone dell'accesso)

Sintesi CRM Tutti i pannelli della Sintesi CRM possono essere codice Simple#

Analisi e Reporting | Configurazione Sintesi CRM

Avendo accesso alla funzione "Analisi e Reporting | Configurazione Sintesi CRM"

Multimedia / Workflow

Tutti gli step dei Workflow di tipo “INFO” sono codice Simple#

Gestione Campagne Marketing | Workflow

Se Amministratore: direttamente durante l'esecuzione del Workflow in Multimedia, ma solamente in Preview senza possibilità di salvare. Per tutti: dalla gestione delle Campagna Marketing | Workflow, editing del singolo step (se si dispone dell'accesso alla funzione Gestione Campagna Marketing)

Configurazione Analisi e Reporting

Le analisi e le statistiche che si possono estrarre da Ricerca Avanzata Anagrafiche, Ricerca Avanzata Backoffice e Analisi Contact Management sono costituiti da codice Simple#

Analisi e Reporting | Configurazione Analisi Contact Management

Avendo accesso alla funzione "Analisi e Reporting | Configurazione Analisi Contact Management"

Configuratore Commerciale

Costruire dei configuratori commerciali funzionali allo specifico codice prodotto/servizio

Anagrafiche | Prodotti e Servizi, pannello Simple#

Avendo accesso alla funzione Anagrafiche | Prodotti e Servizi

2.4 Griglia

Questo oggetto è deprecato a favore del nuovo oggetto Griglia Estesa (Capitolo seguente). E’ uno degli oggetti più importanti e articolati di tutto il Simple#.

Page 19: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

19/67

Visualizza una griglia di informazioni contestualizzata, come risultato di una query sul database del CRM o comunque rilevabili dalla stessa connessione a Sql Server. E’ possibile utilizzare la sintassi [[nomecampo]] per eseguire la query che costituisce la fonte delle informazioni della griglia. E’ possibile impostare anche tre azioni sulla griglia e per queste si puo' utilizzare ||nomecolonna|| per contestualizzare l’azione da compiere. Se nelle azioni si vuole indicare degli URL per aprire delle form dell’applicativo è possiible utilizzare il parametro IDPrmKeyTable per aprire entita' con la loro chiave principale". Al cambio di selezione è possibile eseguire il refresh dei pannelli simple#.

Per convertire l’oggetto Griglia in modalità Griglia Estesa basta utilizzare il pulsante Converti in Griglia Estesa presente in alto a destra nella maschera di configurazione.

Page 20: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

20/67

Tutte le proprietà dell’oggetto Griglia

- <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Grid1" tooltip="Indicare un ID univoco per identificare l'elemento" />

- <Item key="sql" propertyinfo="Sql" caption="SQL Query <br/>(usare [[nomecampo]])" default="select 'Query di esempio'" height="70" tooltip="Indicare il comando SQL che consente di estrarre le informazioni contestuali. Utilizzare [[nomecampo]] per contestualizzare il comando (es. [[IDCliente]])" />

- <Item key="columnswidth" size="30" propertyinfo="ColumnsWidths" caption="Larghezza Colonne" tooltip="(opzionale) Indicare la larghezza delle colonne secondo lo standard Html (es. 0;150;300;;;150)" />

- <Item key="columnstosum" size="20" propertyinfo="ColumnsToSum" caption="Colonne da sommare" default="" tooltip="(opzionale) Indicare il nome delle colonne (alias della select) che si desidera vengano sommate – NOTA BENE: funziona solo se Modalita’ di lavoro e’ = DataTable - Es. Contatti;Contratti;Fatturato:{0\:0.00}" />

- <Item key="norecordmessage" size="20" propertyinfo="NoRecordMessage" caption="Messaggio no record" default="Nessun record presente" tooltip="Indicare il messaggio che verra' visualizzato nel caso in cui nessuna informazioni sia da visualizzare" />

- <Item key="numrows" size="3" propertyinfo="VisibleRows" caption="Numero di righe" default="10" tooltip="Indicare il numero di righe per ogni pagina della tabella" />

- <Item key="width" size="6" propertyinfo="Width" caption="Larghezza" default="100%" tooltip="(opzionale) Indicare la larghezza dell'oggetto in percentuale (es. 100%) o in punti di risoluzione (es. 240px)" />

- <Item key="hide" propertyinfo="Hide" caption="Nascondi Elemento" default="false" tooltip="Nasconde l'oggetto" type="boolean" />

- <Item key="encodehtml" propertyinfo="EncodeHtml" caption="Visualizza tag HTML" default="false" type="boolean" tooltip="Selezionato: visualizza il codice HTML senza interpretarlo - DEselezionato: interpreta il codice HTML" />

- <Item key="multiselect" propertyinfo="SelectionMode" caption="Tipo selezione" default="NoSelection" type="combo" valuelist="NoSelection;Single;Multiple" tooltip="Selezionare la modalita' di selezione delle righe in griglia" />

- <Item key="modality" propertyinfo="Modality" caption="Modalita di lavoro della griglia" default="Sql" type="combo" valuelist="Sql;DataTable" tooltip="Indicare la modalita' di lavoro tra Sql (esegue sempre la query) e DataTable (esegue query la prima volta e poi mantiene in sessione il risultato)" />

- <Item key="allowprint" propertyinfo="AllowPrint" caption="" default="True" type="boolean" tooltip="Se selezionato viene visualizzata un icona che consente di stampare in formato HTML i dati contenuti nella griglia" />

- <Item key="allowexport" propertyinfo="AllowExport" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un icona che consente di esportare i dati contenuti nella griglia in vari formati (es. XSL,XML,...)" />

- <Item key="codicestampa" size="20" propertyinfo="CodiceStampa" default="" tooltip="(opzionale) Consente di collegare dei report di stampa a questa griglia. Indicare il 'Codice Modulo' dei report attivi e visibili che si desidera collegare a questa griglia." />

- <Item key="popupcolumnindex" size="6" propertyinfo="PopupColumnIndex" default="-1" tooltip="(opzionale) Indice della colonna che contiene il valore/testo da visualizzare nel Tooltip di riga (1 colonna = 0, 2 colonna =1, etc..) -- Lasciare -1 per nascondere il Tooltip." />

- <Item key="popupwidth" size="6" propertyinfo="PopupWidth" default="" tooltip="(opzionale) Dimensioni in punti della larghezza del Tooltip di riga" />

- <Item key="popupheader" size="10" propertyinfo="PopupHeader" default="" tooltip="(opzionale) Indicare un testo o codice HTML che si desidera venga sempre anteposto in fase di visualizzazione del Tooltip." />

- <Item key="rowbackcolorlistboundcolumn" size="6" propertyinfo="RowBackColorListBoundColumn" default="-1" tooltip="(opzionale) Indice della colonna che contiene il valore per il colore di SFONDO -- Lasciare -1 per utilizzare il colore standard." />

- <Item key="rowbackcolorlist" size="15" propertyinfo="RowBackColorList" default="" tooltip="(opzionale) Decodifica del colore di sfondo da indicare nel seguente formato Valore1:coloreHTML1;Valore2:coloreHTML2;... (Es. 'P:Green;T:Green;N:Red;U:Red;W:Black'). I colori sono: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow oppure in formato HEX." />

- <Item key="rowcolorlistboundcolumn" size="6" propertyinfo="RowColorListBoundColumn" default="-1" tooltip="(opzionale) Indice della colonna che contiene il valore per il colore del TESTO -- Lasciare -1 per utilizzare il colore standard." />

- <Item key="rowcolorlist" size="15" propertyinfo="RowColorList" default="" tooltip="(opzionale) Decodifica del colore del testo da indicare nel seguente formato Valore1:coloreHTML1;Valore2:coloreHTML2;... (Es. 'P:Green;T:Green;N:Red;U:Red;W:Black'). I colori sono: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow oppure in formato HEX." />

- <Item key="allowsearching" propertyinfo="AllowSearching" default="False" type="boolean" tooltip="Se selezionato viene visualizzata una casella di testo tramite il contenuto della quale è possibile effetture una ricerca nella griglia sottostante" />

- <Item key="action1" caption="Azione 1" tooltip="(opzionale) Indicare un'azione Http o uno script Javascript ( anteporre allo script la parola chiave JS: ) da eseguire, usare [[nomecampo]] per contestualizzare il comando oppure ||nomecolonna|| per contestualizzare il comando con il valore della colonna e riga desiderata" />

- <Item key="action1text" caption="Descrizione 1" tooltip="(opzionale) Indicare una descrizione del pulsante oppure lasciare vuoto equivale al doppio click sulla riga della tabella informazioni" />

- <Item key="action1confirmmessage" caption="Messaggio Conferma 1" tooltip="(opzionale) Richiede un messaggio di conferma prima di eseguire l'azione" />

- <Item key="action2" caption="Azione 2" tooltip="(opzionale) Indicare un'azione Http o uno script Javascript ( anteporre allo script la parola chiave JS: ) da eseguire, usare [[nomecampo]] per contestualizzare il comando oppure ||nomecolonna|| per contestualizzare il comando con il valore della colonna e riga desiderata " />

- <Item key="action2text" caption="Descrizione 2" tooltip="Indicare una descrizione del pulsante collegato alla seconda azione" />

- <Item key="action2confirmmessage" caption="Messaggio Conferma 2" tooltip="(opzionale) Richiede un messaggio di conferma prima di eseguire l'azione" />

Page 21: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

21/67

- <Item key="action3" caption="Azione 3" tooltip="(opzionale) Indicare un'azione Http o uno script Javascript ( anteporre allo script la parola chiave JS: ) da eseguire, usare [[nomecampo]] per contestualizzare il comando oppure ||nomecolonna|| per contestualizzare il comando con il valore della colonna e riga desiderata " />

- <Item key="action3text" caption="Descrizione 3" tooltip="Indicare una descrizione del pulsante collegato alla terza azione" />

- <Item key="action3confirmmessage" caption="Messaggio Conferma 3" tooltip="(opzionale) Richiede un messaggio di conferma prima di eseguire l'azione" />

2.5 Griglia Estesa

E’ uno degli oggetti più importanti e articolati di tutto il Simple#.

Visualizza una griglia di informazioni contestualizzata, come risultato di una query sul database del CRM o comunque rilevabili dalla stessa connessione a Sql Server. E’ possibile utilizzare la sintassi [[nomecampo]] per eseguire la query che costituisce la fonte delle informazioni della griglia. E’ possibile impostare l’azione da eseguire sul doppio click su una riga della tabella e fino a due pulsanti di riga. L’azione può essere http ( quindi va inserita semplicemente la pagina da richiamare ) o javascript ( anteponendo allo script la parola chiave JS: ). E’ anche possibile impostare uno script javascript da eseguire sul cambio di selezione all’interno della griglia, questo verrà eseguito ogni volta che verrà effettuato un click su una riga della griglia. Nelle azioni è possibile utilizzare ||nomecolonna|| per contestualizzare l’azione da compiere. Nelle azioni http se si vuole indicare degli URL per aprire delle form dell’applicativo è possibile utilizzare il parametro IDPrmKeyTable per aprire entita' con la loro chiave principale. Al cambio di selezione è possibile eseguire il refresh dei pannelli simple#.

Page 22: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

22/67

Tutte le proprietà dell’oggetto Griglia Estesa

• <Item key="id" size="15" propertyinfo="ID" caption="Id" default="ExtGrid1" tooltip="Indicare un ID univoco per identificare l'elemento" /> • <Item key="modality" propertyinfo="Modality" caption="Modalità Paginazione" default="Sql" type="combo" valuelist="Sql;DataTable" tooltip="Indicare la

modalità di paginazione tra Sql (più performante) e DataTable" /> • <Item key="sql" propertyinfo="Sql" caption="SQL Query <br/>(usare [[nomecampo]])" default="select 'Query di esempio'" height="70" tooltip="Indicare il

comando SQL che consente di estrarre le informazioni contestuali. Utilizzare [[nomecampo]] per contestualizzare il comando (es. [[IDCliente]])" /> • <Item key="columnswidth" propertyinfo="ColumnsWidths" size="30" caption="Larghezza Colonne" tooltip="(opzionale) Indicare la larghezza delle

colonne secondo lo standard Html (es. 0;150;300;;;150 oppure 0;30%;30%;20%)" /> • <Item key="columnstosum" propertyinfo="ColumnsToSum" caption="Colonne da sommare" default="" tooltip="(opzionale) Indicare l'indice delle colonne

che si desidera vengano sommate - Es. 4;7" /> • <Item key="norecordmessage" propertyinfo="GridNoRecordMessage" caption="Messaggio no record" default="Nessun record presente" tooltip="Indicare

il messaggio che verra' visualizzato nel caso in cui nessuna informazioni sia da visualizzare" /> • <Item key="numrows" propertyinfo="VisibleRows" size="3" caption="Numero di righe" default="10" tooltip="Indicare il numero di righe per ogni pagina

della tabella" /> • <Item key="width" size="6" propertyinfo="Width" caption="Larghezza" default="98%" tooltip="(opzionale) Indicare la larghezza dell'oggetto in

percentuale (es. 100%) o in punti di risoluzione (es. 240px)" /> • <Item key="tablename" propertyinfo="TableName" default="" tooltip="Indicare il nome della tabella per l'eliminazione del/i record." /> • <Item key="primarykeys" propertyinfo="PrimaryKeys" default="" tooltip="Indicare il nome della colonna Chiave." /> • <Item key="multiselect" propertyinfo="GridSelectionMode" caption="Tipo selezione" default="NoSelection" type="combo"

valuelist="NoSelection;Single;Multiple" tooltip="Selezionare la modalita' di selezione delle righe in griglia" /> • <Item key="gridselectionctrlmode" propertyinfo="GridSelectionCTRLMode" caption="" default="True" type="boolean" tooltip="Selezione multipla con il

tasto CTRL, se questa voce non viene spuntata appariranno delle check box nel caso di griglia in modalità Selezione Multipla o dei round box in modalità Selezione Singola" />

• <Item key="allowprint" propertyinfo="AllowPrint" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un icona che consente di stampare in formato HTML i dati contenuti nella griglia" />

• <Item key="allowexport" propertyinfo="AllowExport" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un icona che consente di esportare i dati contenuti nella griglia in vari formati (es. XSL,XML,...)" />

• <Item key="codicestampa" size="20" propertyinfo="CodiceModulo" default="" tooltip="(opzionale) Consente di collegare dei report di stampa a questa griglia. Indicare il 'Codice Modulo' dei report attivi e visibili che si desidera collegare a questa griglia." />

• <Item key="popupcolumnindex" size="6" propertyinfo="GridPopUpIndex" default="-1" tooltip="(opzionale) Indice della colonna che contiene il valore/testo da visualizzare nel Tooltip di riga (1 colonna = 0, 2 colonna =1, etc..) -- Lasciare -1 per nascondere il Tooltip." />

• <Item key="popuptimeout" size="8" propertyinfo="GridPopUpTimeOut" default="2000" tooltip="(opzionale) Indicare dopo quanti millisecondi deve apparire il tooltip." />

• <Item key="popupheader" size="10" propertyinfo="GridPopUpHeader" default="" tooltip="(opzionale) Indicare un testo o codice HTML che si desidera venga sempre anteposto in fase di visualizzazione del Tooltip." />

• <Item key="allownew" propertyinfo="AllowNew" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un icona che consente di aggiungere un nuovo record, occorre però impostare correttamente il campo Url per Nuovo" />

• <Item key="allowopen" propertyinfo="AllowOpen" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un icona che consente di aprire il/i record selezionato/i, occorre però impostare correttamente il campo Url per Apertura" />

Page 23: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

23/67

• <Item key="urlfornew" propertyinfo="UrlForNew" default="Pagina.aspx?Modality=New" tooltip="(opzionale) Indicare l'url da aprire per inserire un nuovo record in tabella." />

• <Item key="urlforopen" propertyinfo="UrlForOpen" default="Pagina.aspx?Modality=Filter&FilterSql=[PrimaryKey] in (||values||)" tooltip="(opzionale) Indicare l'url per aprire il dettaglio dei record selezionati. Sostituire a Pagina.aspx la form da aprire e modificare [PrimaryKey] con il nome della colonna chiave della tabella in questione. Se è stato impostato il campo Colonna Chiave è possibile anche lasciare [PrimaryKey] perchè la sostituzione avverrà in modo automatico." />

• <Item key="allowdelete" propertyinfo="AllowDelete" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un'icona che consente di eliminare il/i record selezionato/i. Occorre però impostare correttamente i campi Nome Tabella e Colonna Chiave." />

• <Item key="gridtitle" propertyinfo="GridTitle" default="" tooltip="Indicare il titolo della griglia, questo testo verrà visualizzato sopra la griglia." /> • <Item key="ordercolumnindex" propertyinfo="OrderColumnIndex" default="" tooltip="(opzionale) Indicare l'indice della colonna per la quale si vuole

impostare l'ordinamento dei dati." /> • <Item key="ordertype" propertyinfo="OrderType" caption="Tipo Ordinamento" default="ASC" type="combo" valuelist="ASC;DESC" tooltip="Selezionare il

tipo di ordinamento ( ASC - Ascendente, DESC - Discendente )" /> • <Item key="allowtodo" propertyinfo="AllowToDo" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un'icona che

consente di aprire la gestione Todo. Occorre però impostare correttamente i campi Nome Tabella e Colonna Chiave." /> • <Item key="allowmegabiblos" propertyinfo="AllowMegabiblos" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata

un'icona che consente di aprire la gestione degli allegati del record selezionato. Occorre però impostare correttamente i campi Nome Tabella e Colonna Chiave." />

• <Item key="allowrelazioni" propertyinfo="AllowRelazioni" caption="" default="False" type="boolean" tooltip="Se selezionato viene visualizzata un'icona che consente di aprire la gestione delle relazioni del record selezionato. Occorre però impostare correttamente i campi Nome Tabella e Colonna Chiave." />

• <Item key="allowsearching" propertyinfo="GridAllowFilter" default="False" type="boolean" tooltip="Se selezionato viene visualizzata una casella di testo tramite il contenuto della quale è possibile effetture una ricerca nella griglia sottostante" />

• <Item key="rowbackcolorlistboundcolumn" size="6" propertyinfo="GridRowBackColorListBoundColumn" default="-1" tooltip="(opzionale) Indice della colonna che contiene il valore per il colore di SFONDO -- Lasciare -1 per utilizzare il colore standard." />

• <Item key="rowbackcolorlist" size="15" propertyinfo="GridRowBackColorList" default="" tooltip="(opzionale) Decodifica del colore di sfondo da indicare nel seguente formato Valore1:coloreHTML1;Valore2:coloreHTML2;... (Es. 'P:Green;T:Green;N:Red;U:Red;W:Black'). I colori sono: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow oppure in formato HEX." />

• <Item key="rowcolorlistboundcolumn" size="6" propertyinfo="GridRowColorListBoundColumn" default="-1" tooltip="(opzionale) Indice della colonna che contiene il valore per il colore del TESTO -- Lasciare -1 per utilizzare il colore standard." />

• <Item key="rowcolorlist" size="15" propertyinfo="GridRowColorList" default="" tooltip="(opzionale) Decodifica del colore del testo da indicare nel seguente formato Valore1:coloreHTML1;Valore2:coloreHTML2;... (Es. 'P:Green;T:Green;N:Red;U:Red;W:Black'). I colori sono: aqua, black, blue, fuchsia, gray, green, lime, maroon, navy, olive, purple, red, silver, teal, white, yellow oppure in formato HEX." />

• <Item key="fastclickcolumnindex" propertyinfo="FastClickColumnIndex" default="" tooltip="(opzionale) Indicare gli indici delle colonne (separate da ;) per le quali si vuole abilitare la modalità FastClick, cliccando sul valore di una di queste colonne verrà eseguita l'azione definita sul doppio click del record." />

• <Item key="filtercolumnindex" propertyinfo="FilterColumnIndex" default="" tooltip="(opzionale) Indicare gli indici delle colonne (separate da ;) per le quali si vuole abilitare il filtro di colonna." />

• <Item key="simplesharppanallisttorefresh" size="80" propertyinfo="SimpleSharpPanalListToRefresh" caption="Simple#ToRefresh" tooltip="(opzionale) Indicare (divisi da ';') gli ID dei pannelli Simple# da aggiornare" />

• <Item key="operatingdesktopmanagement" size="90" propertyinfo="OperatingDesktopManagement" default="false" type="boolean" caption="OperatingDesktopManagementToAction" tooltip="(opzionale) Indica se la griglia fa parte di un deskop operativo" />

• <Item key="rowdblclickaction" caption="Azione su Doppio Click" tooltip="(opzionale) Indicare un'azione Http o uno script Javascript ( anteporre allo script la parola chiave JS: ) da eseguire quando si effettua il doppio click su una riga, usare [[nomecampo]] per contestualizzare il comando oppure ||nomecolonna|| per contestualizzare il comando con il valore della colonna e riga desiderata" />

• <Item key="rowdblclickconfirmmessage" caption="Messaggio Conferma su Doppio Click" tooltip="(opzionale) Richiede un messaggio di conferma prima di eseguire l'azione" />

• <Item key="onindexchangeaction" caption="Azione su Selezione Riga" tooltip="(opzionale) Indicare uno script Javascript da eseguire sulla selezione di una riga, usare [[nomecampo]] per contestualizzare il comando oppure ||nomecolonna|| per contestualizzare il comando con il valore della colonna e riga desiderata" />

• <Item key="action1" caption="Pulsante 1" tooltip="(opzionale) Indicare un'azione Http o uno script Javascript ( anteporre allo script la parola chiave JS: ) da eseguire, usare [[nomecampo]] per contestualizzare il comando oppure ||nomecolonna|| per contestualizzare il comando con il valore della colonna e riga desiderata" />

• <Item key="action1text" caption="Descrizione Pulsante 1" tooltip="Indicare una descrizione del pulsante collegato alla seconda azione" /> • <Item key="action1confirmmessage" caption="Messaggio Conferma Pulsante 1" tooltip="(opzionale) Richiede un messaggio di conferma prima di

eseguire l'azione" /> • <Item key="action1tooltip" caption="Tooltip Pulsante 1" tooltip="(opzionale) Tooltip da visualizzare quando ci si posiziona sul Pulsante 1" /> • <Item key="action1width" caption="Dimesione Pulsante 1" tooltip="(opzionale) Dimensione in pixel del Pulsante 1" /> • <Item key="action2" caption="Pulsante 2" tooltip="(opzionale) Indicare un'azione Http o uno script Javascript ( anteporre allo script la parola chiave JS: )

da eseguire, usare [[nomecampo]] per contestualizzare il comando oppure ||nomecolonna|| per contestualizzare il comando con il valore della colonna e riga desiderata" />

• <Item key="action2text" caption="Descrizione Pulsante 2" tooltip="Indicare una descrizione del pulsante collegato alla seconda azione" /> • <Item key="action2confirmmessage" caption="Messaggio Conferma Pulsante 1" tooltip="(opzionale) Richiede un messaggio di conferma prima di

eseguire l'azione" /> • <Item key="action2tooltip" caption="Tooltip Pulsante 2" tooltip="(opzionale) Tooltip da visualizzare quando ci si posiziona sul Pulsante 2" /> • <Item key="action2width" caption="Dimesione Pulsante 2" tooltip="(opzionale) Dimensione in pixel del Pulsante 2" />

Page 24: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

24/67

2.6 Bottone

E’ un semplice oggetto che consente di inserire dei bottoni cliccabili, il cui URL è dinamico, e di poter eseguire il refresh di uno o più pannelli Simple#, ai quali è possibile passare una lista di oggetti da cui recuperare i campi modulo utilizzabili per query e\o codice Html Per ulteriori informzioni consultare l’esempio 5.5 (Simple# per ricerca & esitazione appuntamenti.)

Visualizza un pulsante collegato ad una azione Http contestuale (è possibile utilizzare [[nomecampo]]) - Nel caso delle azioni utilizzare il parametro IDPrmKeyTable per aprire entita' con la loro chiave principale.

Le proprietà visive:

Tutte le proprietà dell’oggetto

• <Item key="id" size="15" propertyinfo="ID" default="Button1" caption="Id" tooltip="Indicare un ID univoco per identificare l'elemento"/>

• <Item key="text" propertyinfo="Text" caption="Descrizione Pulsante" default="Pulsante" tooltip="Indicare la descrizione desiderata, che verra' visualizzata dall'utente"/>

• <Item key="width" size ="5" propertyinfo="ButtonWidth" caption="Larghezza" default="100px" tooltip="(opzionale) Indicare la larghezza dell'oggetto in percentuale (es. 100%) o in punti di risoluzione (es. 240px)"/>

• <Item key="hide" propertyinfo="Hide" caption="Nascondi Elemento" default="false" tooltip="Nasconde l'oggetto" type="boolean"/>

• <Item key="action" caption="Azione" default="http://www.dominio-da-aprire.com" tooltip="Indicare un'azione Http o uno script Javascript ( anteporre allo script la parola chiave JS: ) da eseguire, usare [[nomecampo]] per contestualizzare il comando - utilizzare il parametro IDPrmKeyTable per aprire entita' con la loro chiave principale"/>

• <Item key="simplesharppanallisttorefresh" size="80" propertyinfo="SimpleSharpPanalListToRefresh" caption="Simple#ToRefresh" tooltip="(opzionale) Indicare (divisi da ';') gli ID dei pannelli Simple# da aggiornare"/>

• <Item key="simplesharppanalobjectlistotopass" size="80" propertyinfo="SimpleSharpPanalObjectListToPass" caption="Simple#ObjectToPass" tooltip="(opzionale) Indicare (divisi da ';') gli ID degli oggetti (Oggetti griglia, input e combo) da passare ai pannelli Simple#"/>

• <Item key="confirmmessage" default="" tooltip="(opzionale) Indicare il testo dell'eventuale richiesta di conferma"></Item>

• <Item key="jscustomvalidatefunction" default="" tooltip="Nome della funzione javascript da eseguire prima del salvataggio dei recordset.In questa funzione è possibile specificare dei controlli customizzati sui campi presenti nel pannello Simple#, questa funzione deve ritornare un valore booleano, true per proseguire con il salvataggio, false altrimenti.Per poter definire questa funzione occorre aggiungere al pannello Simple# un oggetto IFrame di tipo 'script' (Tipologia oggetto = 'script') e nel Body scrivere la propria funzione client nel seguente modo : nome_funzione = function() { ... corpo della funzione ... if (errore) return false; else return true; }"/>

Page 25: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

25/67

2.7 Label

Visualizza un'etichetta contenente l'informazione desiderata ed estratta da un qualsiasi punto del CRM o di altre fonti dati.

Le proprietà visive

Tutte le proprietà dell’oggetto

• <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Label1" tooltip="Indicare un ID univoco per identificare l'elemento" /> • <Item key="sql" height="70" propertyinfo="Sql" caption="SQL Query (usare [[nomecampo]])" default="select 'Query demo'" tooltip="Indicare il comando SQL

che consente di estrarre l'informazione da visualizzare. Utilizzare [[nomecampo]] per contestualizzare il comando (es. [[IDCliente]])" /> • <Item key="css" propertyinfo="CssClass" caption="Foglio di stile" default="CSS_Label_Normal" tooltip="Indicare il nome dello stile Html. Es.

CSS_Label_EnfatizedText_XXL" />

Esempio

Etichetta che rappresenta il TELEFONO principale dell’anagrafica durante il Workflow.

NB: questa etichetta, con la sostituzione del nome di campo [[Tel1]] , può essere utilizzata nel Workflow in quanto è un contesto in cui tutti i dati dell’anagrafica sono disponibili nel formato [[nomecampo]], mentre in Home Page non avrebbe alcun senso.

Page 26: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

26/67

2.8 Input

Consente di visualizzare e memorizzare delle informazioni collegate ad un campo di un recordset.

Le proprietà visive

Tutte le proprietà dell’oggetto

• <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Input1" tooltip="Indicare un ID univoco per identificare l'elemento"/>

• <Item key="value" propertyinfo="Text" caption="Valore" default="" tooltip="Indicare il valore predefinito che dovra' avere il campo 'bindfield' nel caso in cui il 'bindrecordset' sia vuoto"/>

• <Item key="readonly" propertyinfo="ReadOnly" caption="Rende il campo non editabile" default="false" type="boolean"/>

• <Item key="multiline" caption="Rende il campo editabile con multi riga" default="false" type="boolean"/> • <Item key="required" propertyinfo="Required" caption="Rende il campo obbligatorio in fase di save\commit"

default="false" type="boolean"/> • <Item key="width" size="5" propertyinfo="Width" caption="Larghezza" default="150px" tooltip="(opzionale) Indicare

la larghezza dell'oggetto in percentuale (es. 100%) o in punti di risoluzione (es. 240px)"/> • <Item key="height" size="5" propertyinfo="Height" caption="Altezza" default="15px" tooltip="(opzionale) Indicare

l'altezza dell'oggetto in punti di risoluzione (es. 240px)"/> • <Item key="bindfield" size="15" propertyinfo="AjaxBindField" caption="BindField" default="" tooltip="Nome di campo

da utilizzare come origine del controllo (in base al recordset di appartenenza)"/> • <Item key="bindrecordset" size="15" propertyinfo="AjaxBindRecordSetName" caption="BindRecordSet" default=""

tooltip="Indicare ID univoco del recordset di appartenenza"/> • <Item key="format" size="1" propertyinfo="Format" caption="Formato" default="" tooltip="(Opzionale solo per campi

datetime) Indicare il formato tra i disponibili."/> • <Item key="friendlyname" size="25" propertyinfo="FriendlyName" caption="Nome Descrittivo" default=""

tooltip="(opzionale) Indicare un nome che identifica il campo"/> • <Item key="validationexpression" size="30" propertyinfo="ValidationExpression" caption="Espressione di validazione"

default="" tooltip="(opzionale) Indicare una regular expression per la validazione del campo"/> • <Item key="hide" propertyinfo="Hide" caption="Nascondi Elemento" default="false" tooltip="Nasconde l'oggetto"

type="boolean"/> • <Item key="showcalendar" propertyinfo="ShowCalendar" caption="Mostra calendario" default="false" tooltip="Mostra il

calendario legata alla textbox. (Opzionale nel caso serva la data non collegata alla recordset" type="boolean"/> •

Esempio

In questo esempio è stato inserito un oggetto Recordset per estrarre in Binding alcuni campi anagrafici e gestiri con l’oggetto Input.

E’ stato messo anche l’oggetto Commit per consentire l’immediato salvataggio delle modifiche apportate.

Page 27: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

27/67

Oggetto INPUT in fase di progettazione …

Facendo doppio click si accede alle impostazione delle sue proprietà…

Ecco il risultato in esecuzione:

L’utente può vedere e modificare i campi Ragione Sociale, Telefono ed Email principale.

Una volta modificati preme sul tasto “Salva”.

Page 28: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

28/67

2.9 Combo

Consente di memorizzare delle informazioni generiche selezionandole da un menu a tendina Al cambio di valore è possibile eseguire il refresh dei pannelli simple#.

Le proprietà visive

Tutte le proprietà dell’oggetto

• <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Combo1" tooltip="Indicare un ID univoco per identificare l'elemento"/>

• <Item key="sql" propertyinfo="Sql" height="70" caption="SQL Query (usare [[nomecampo]])" default="select 'Query demo'" tooltip="Indicare il comando SQL che consente di alimentare i valori del menu a tendina. Utilizzare [[nomecampo]] per contestualizzare il comando (es. [[IDCliente]])"/>

• <Item key="valuelist" propertyinfo="ValueList" caption="Lista Valori" default="1;2;3;4" tooltip="Indicare la lista valori separata da ; - indicare il comando SQL oppure la lista valori"/>

• <Item key="boundcolumn" size="2" propertyinfo="BoundColumn" default="0" caption="Boundcolumn (n.colonna)" tooltip="Indicare l'indice (numero) della colonna che contiene il dato da memorizzare nel database (es: 0) a partire da zero"/>

• <Item key="returncolumn" size="2" propertyinfo="ReturnColumn" default="0" caption="Returncolumn (n.colonna)" tooltip="Indicare l'indice (numero) della colonna che contiene il dato da visualizzare a video (es: 1) a partire da zero"/>

• <Item key="showheaders" propertyinfo="ShowHeaders" caption="Visualizza intestazioni" default="true" type="boolean"/>

• <Item key="columnsnumber" size="2" propertyinfo="ColumnsNumber" default="1" caption="Numero di colonne" />

• <Item key="limittolist" propertyinfo="LimitToList" caption="Limita selezione" tooltip="Limita la selezione agli elementi presenti nella lista" default="true" type="boolean"/>

• <Item key="allowpaging" propertyinfo="AllowPaging" caption="Permette la paginazione del source sql (attenzione che in questo caso alcuni comandi SQL potrebbero essere inibiti)" default="false" type="boolean" tooltip="Se selezionato i dati del menu a tendina saranno visualizzati in pagine di 20 record per volta"/>

• <Item key="value" caption="Valore" default="" tooltip="Indicare il valore predefinito che dovra' avere il campo 'bindfield' nel caso in cui il 'bindrecordset' sia vuoto (es: valore fisso oppure [[idcliente]])"/>

• <Item key="columnswidth" propertyinfo="ColumnsWidths" tooltip="(opzionale) Indicare la larghezza delle colonne secondo lo standard Html (es. 0;150;300;;;150 oppure 0;30%;30%;20%)"/>

• <Item key="hide" propertyinfo="Hide" caption="Nascondi Elemento" default="false" tooltip="Nasconde l'oggetto" type="boolean"/>

• <Item key="bindfield" size="15" propertyinfo="AjaxBindField" caption="BindField" default="" tooltip="Nome di campo da utilizzare come origine del controllo (in base al recordset di appartenenza)"/>

• <Item key="bindrecordset" size="15" propertyinfo="AjaxBindRecordSetName" caption="BindRecordSet" default="" tooltip="Indicare ID univoco del recordset di appartenenza"/>

• <Item key="required" propertyinfo="Required" caption="Rende il campo obbligatorio in fase di save\commit" default="false" type="boolean"/>

• <Item key="friendlyname" size="15" propertyinfo="FriendlyName" caption="Nome Descrittivo" default="" tooltip="(opzionale) Indicare un nome che identifica il campo"/>

• <Item key="simplesharppanallisttorefresh" size="80" propertyinfo="SimpleSharpPanalListToRefresh" caption="Simple#ToRefresh" tooltip="(opzionale) Indicare (divisi da ';') gli ID dei pannelli Simple# da aggiornare

Page 29: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

29/67

2.10 Tag Html: iFrame e altri

Visualizza un oggetto Web contestuale (div-iframe-iframeserver-script-img-...)". In sostanza è la rappresentazione di un tag html generico, che quindi potrebbe essere: div, iframe, script, img, iframeserver, ecc. La sorgente URL ha senso solamente per quei TAG che accettano l’attributo “src”: iframe, img, iframeserver. Per essere utilizzato correttamente questo oggetto richiede conoscenza basilari di HTML.

Le proprietà visive

Risultato

Tutte le proprietà dell’oggetto

• <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Iframe1" tooltip="Indicare un ID univoco per identificare l'elemento" /> • <Item key="tagname" size="8" propertyinfo="ObjectType" caption="Tipologia oggetto" default="iframe" tooltip="Indicare la tipologia di oggetto Html (es.

iframe, iframeserver, div, script, ...)" /> • <Item key="width" size="5" propertyinfo="Width" caption="Larghezza" default="100%" tooltip="(opzionale) Indicare la larghezza dell'oggetto in percentuale (es.

100%) o in punti di risoluzione (es. 240px)" /> • <Item key="height" size="5" propertyinfo="Height" caption="Altezza" default="200px" tooltip="(opzionale) Indicare l'altezza dell'oggetto in percentuale (es.

100%) o in punti di risoluzione (es. 240px) - Attenzione: l'oggetto iframe e iframeserver potrebbero richiedere l'altezza necessariamente in punti" /> • <Item key="src" propertyinfo="Src" caption="Sorgente Url" default="http://www.iltuodomino-solopertagchesupportanosrc.it/" tooltip="Indicare una fonte URL

da caricare, usare [[nomecampo]] per passare eventuali di contestualizzazione. Valido solo per Tag Html che supportano correttamente l'attributo scr" /> • <Item key="css" propertyinfo="CssClass" caption="Foglio di stile" default="" tooltip="Indicare il nome della classe che rappresenta lo stile Html da adottare per

questo oggetto Html. Es. CSS_Label_EnfatizedText_XXL" /> • <Item key="body" propertyinfo="HTMLBody" caption="Body" default="" height="170" tooltip="Eventuale body dell'oggetto. Ad esempio incollare qui il codice

da incorporare generato dai vari siti Internet (es. Youtube) e mettere come Tipologia di oggetto 'div'" />

Page 30: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

30/67

Esempio

In questo esempio si utilizza un DIV per renderizzare un codice HTML incorporato, ad esempio il codice di incorporazione proposto da Youtube.

2.10.1 L’oggetto iframeserver

Si tratta di un oggetto html particolare, gestito dalla piattaforma. Questo oggetto consente di rende rizzare una sorgente Url sul client, ma in realtà viene chiamata dal server Application, scaricato il codice Html ed inviato sul client attraverso la connessione del CRM.

Questo consente di accedere a sorgenti http che sono accessibili solamente dal server application e non direttamente dal client web corrente.

Page 31: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

31/67

2.11 Javascript

Questo semplice oggetto permette di inserire nel pagina simple# del codice javascript da poter eseguire sull’evento di load oppure su eventi di validazione. Per essere utilizzato correttamente questo oggetto richiede conoscenza basilari di Javascript.

Proprietà visive:

Tutte le proprietà dell’oggetto

- <Item key="body" propertyinfo="ScriptBody" caption="Script" default="" height="440" tooltip="Inserire il codice Javascript da incorporare nella pagina"/>

Page 32: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

32/67

2.12 Recordset

Permette la gestione ed il salvataggio dei dati nel database. E’ un oggetto particolarmente complesso che richiede competenze profonde di SQL e competenze basilari di programmazione.

Le proprietà visive

In questo caso siamo in presenza di un oggetto che solitamente è “invisibile” all’utente a meno che venga selezionata l’opzione “Visualizza bottone salva”

Il valore ID dell’oggetto è fondamentale perché verrà poi utilizzato negli altri controlli che si desidera “collegare” al recordset. In tutti gli altri controlli infatti sono presenti queste proprietà:

- BindField: Nome di campo da utilizzare come origine del controllo (in base al recordset di appartenenza) - BindRecordSet: Indicare ID univoco del recordset di appartenenza

In un unico codice Simple# possono essere presenti più oggetti Recordset. L’importante che abbiano tutti un ID univoco.

Tutte le proprietà dell’oggetto

- <Item key="id" size="15" propertyinfo="ID" caption="Id" default="RecordSet1" tooltip="Indicare un ID univoco per identificare l'elemento RECORDSET" /> - <Item key="sql" caption="Sql" default="Select idcliente, ragsoc From clienti WHERE idcliente = [[IDCliente]]" height="70" tooltip="Indicare il comando SQL che

stabilisce la sorgente dati che verra' utilizzata per collegare i controlli di visualizzazione e modifica. Utilizzare [[nomecampo]] per contestualizzare il comando (es. [[IDCliente]])" />

- <Item key="confirmmessage" default="Confermi il salvataggio ?" tooltip="(opzionale) Indicare il testo dell'eventuale richiesta di conferma" />

Page 33: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

33/67

- <Item key="showbutton" default="False" type="boolean" tooltip="Se selezionato verra' visualizzato un pulsante 'Salva' per confermare l'aggiornamento immediato dei dati inseriti relativi a questo recorset. In alternativa e' possibile utilizzare l'oggetto [Commit] per effettuare il salvataggio di tutti i recordset eventualmente presenti." />

- <Item key="textbutton" default="Salva" tooltip="Indicare l'etichetta che dovra' avere il pulsante di salvataggio se si sceglie di visualizzarlo." />

Page 34: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

34/67

2.13 Checkbox

Consente di memorizzare delle informazioni booleane

Le proprietà visive

Tutte le proprietà dell’oggetto

- <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Check1" tooltip="Indicare un ID univoco per identificare l'elemento" /> - <Item key="text" propertyinfo="Text" caption="Descrizione Check" default="CheckBox" tooltip="Indicare la descrizione desiderata, che verra' visualizzata

dall'utente" /> - <Item key="bindfield" size="15" propertyinfo="AjaxBindField" caption="BindField" default="" tooltip="Nome di campo da utilizzare come origine del controllo

(in base al recordset di appartenenza)" /> - <Item key="bindrecordset" size="15" propertyinfo="AjaxBindRecordSetName" caption="BindRecordSet" default="" tooltip="Indicare ID univoco del recordset di

appartenenza" /> - <Item key="value" propertyinfo="Checked" caption="Valore predefinito" tooltip="Indicare il valore predefinito che dovra’ avere il campo ‘bindfield’ nel caso in

cui il ‘bindrecordset’ sia vuoto" type="boolean" /> - <Item key="hide" propertyinfo="Hide" caption="Nascondi Elemento" default="false" tooltip="Nasconde l'oggetto" type="boolean" /> - <Item key="friendlyname" size="15" propertyinfo="FriendlyName" caption="Nome Descrittivo" default="" tooltip="(opzionale) Indicare un nome che identifica il

campo" />

Page 35: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

35/67

2.14 Chart

Consente di visualizzare le informazioni in formato Grafico

Le proprietà visive

Tutte le proprietà dell’oggetto

- <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Chart1" tooltip="Indicare un ID univoco per identificare l'elemento" /> - <Item key="width" size="5" propertyinfo="Width" caption="Larghezza" default="600" tooltip="(opzionale) Indicare la larghezza dell'oggetto in punti di

risoluzione (es. 240)" /> - <Item key="height" size="5" propertyinfo="Height" caption="Altezza" default="400" tooltip="(opzionale) Indicare l'altezza dell'oggetto in punti di risoluzione (es.

240)" /> - <Item key="type" propertyinfo="ChartType" caption="Tipo di grafico" default="line" type="combo" valuelist="line;spline;area;areaspline;column;bar;pie"

tooltip="Selezionare il tipo di grafico" /> - <Item key="title" propertyinfo="ChartTitle" caption="Titolo" default="Titolo del grafico" tooltip="(opzionale) Indicare il titolo del grafico" /> - <Item key="yaxistitle" propertyinfo="yAxisTitle" caption="Titolo Asse Valori" default="Titolo Asse Valori" tooltip="(opzionale) Indicare il titolo da riportare

sull'asse" /> - <Item key="xaxislabel" propertyinfo="xAxisLabel" caption="Label Tooltip Valore X" default="X" tooltip="(opzionale) Indicare il testo che apparirà nel tooltip

come descrizione del valore X" /> - <Item key="yaxislabel" propertyinfo="yAxisLabel" caption="Label Tooltip Valore Y" default="Y" tooltip="(opzionale) Indicare il testo che apparirà nel tooltip

come descrizione del valore Y" /> - <Item key="sql" propertyinfo="Sql" caption="SQL Query <br/>(usare [[nomecampo]])" default="SELECT 'Series' AS Series,1 AS Value,'Nome Valore' AS X"

height="70" tooltip="Indicare il comando SQL che consente di estrarre le informazioni per il grafico. Utilizzare [[nomecampo]] per contestualizzare il comando (es. [[IDCliente]]). Colonne Obbligatorie: Serie Dati (Series) testo, Valore (Value) numerico. Colonna Opzionale : Nome del Valore (X) testo/numerico." />

- <Item key="categoriestype" propertyinfo="CategoriesType" caption="Tipo di valori asse X" default="sql" type="combo" valuelist="sql;months;years" tooltip="Selezionare il tipo di valori presenti sull'asse X ( sql : definito da query, months : stampa in automatico la lista dei 12 mesi sull'asse X, years : stampa sull'asse X un range di anni in base alla query impostata" />

- <Item key="legendhide" propertyinfo="LegendHide" caption="Nascondi Legenda" default="false" tooltip="Nascondi la legenda" type="boolean" /> - <Item key="legendposition" propertyinfo="LegendPosition" caption="Posizione della legenda" default="bottom" type="combo" valuelist="bottom;right"

tooltip="Posizionamento della legenda" /> - <Item key="stacking" propertyinfo="Stacking" caption="Modalità Pila" default="none" type="combo" valuelist="none;normal;percent" tooltip="Modalità Pila" /> - </Items>

Page 36: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

36/67

Caratteristiche dei grafici

Semplicissimo da utilizzare: è sufficiente indicare una query SQL che sarà la sorgente dati da visualizzare sul grafico e scegliere il modello (vedi più avanti) per ottenere immediatamente grafici in tempo reale. La query dovrà avere le seguenti colonne:

Esempio : SELECT 'Series' AS Series,1 AS Value,'Nome Valore' AS X

Usare [[nomecampo]] per accedere alle informazioni messe a disposizione dal CRM

• Prima colonna: Serie Dati (obbligatoria) • Seconda colonna: Valore (obbligatoria) • Terza colonna: Nome del Valore (opzionale)

Esempio SELECT Top 10 'Agenti' as Series, Count(*) as Value, Agenti.Cognome as X FROM Ordini INNER JOIN Stati ON Ordini.Stato = Stati.IDStato INNER JOIN Agenti ON Ordini.IDAgente = Agenti.IDAgente GROUP BY Agenti.Cognome, Agenti.IDAgente ORDER BY 2 DESC

Visualizza qualsiasi tipo di grafico. Grazie alla possibilità di fornire la sorgente dati mediante una semplice query SQL è possibile visualizzare in forma di grafico qualsiasi dato statistico !

Supporto di più tipologie di grafici. Si possono visualizzare diversi grafici per effettuare comparazioni tra più insiemi di dati.

Zooming. Ogni grafico può essere ingrandito selezionando l'area di interesse direttamente con il mouse.

Supporto per lo "scorrimento". Se si sono molti dati è possibile utilizzare uno barra di scorrimento per navigare il grafico.

Grafici in linea con la tecnlogia Ajax del CRM.

Page 37: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

37/67

2.15 Commit

Visualizza un pulsante che esegue il salvataggio di tutti gli oggetti recordset specificati nel campo Elenco Recordset (es. Recordset1,Recordset2,Recordset3)

Le proprietà visive

Tutte le proprietà dell’oggetto

- <Item key="id" size="15" propertyinfo="ID" default="Commit1" caption="Id" tooltip="Indicare un ID univoco per identificare l'elemento" /> - <Item key="text" propertyinfo="Text" caption="Descrizione Pulsante" default="Salva" tooltip="Indicare la descrizione desiderata, che verra' visualizzata

dall'utente" /> - <Item key="width" size="5" propertyinfo="ButtonWidth" caption="Larghezza" default="" tooltip="(opzionale) Indicare la larghezza dell'oggetto in percentuale

(es. 100%) o in punti di risoluzione (es. 240px)" /> - <Item key="hide" propertyinfo="Hide" caption="Nascondi Elemento" default="false" tooltip="Nasconde l'oggetto" type="boolean" /> - <Item key="confirmmessage" propertyinfo="ConfirmMessage" caption="Azione" default="Sicuri?" tooltip="(opzionale) Indicare un eventuale messaggio di

conferma per l'azione" /> - <Item key="recordsets" propertyinfo="RecordSets" caption="Azione" default="" tooltip="Indicare i nomi dei recordset da salvare separatiti da ','" />

2.15.1 Commit: gestione errori Potendo lavorare in modalità nativa e così diretta sui dati è possibile che durante le prove possano esserci delle anomalie di configurazione. Tutto il linguaggio Simple# riporta all’attenzione dell’utilizzatore eventuali anomalie:

Tuttavia se da questi messaggi vi fossero difficoltà ricordiamo di attivare i LOG TECNICI presenti nel menu di Amministrazione:

Page 38: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

38/67

2.16 Memo

Consente di memorizzare delle informazioni generiche (campi note ad esempio) in formato HTML.

Le proprietà visive

Tutte le proprietà dell’oggetto

- <Item key="id" size="15" propertyinfo="ID" caption="Id" default="Memo1" tooltip="Indicare un ID univoco per identificare l'elemento" /> - <Item key="value" propertyinfo="Text" caption="Valore" default="" tooltip="Indicare il valore predefinito che dovra' avere il campo 'bindfield' nel caso in cui il

'bindrecordset' sia vuoto" /> - <Item key="width" size="5" propertyinfo="Width" caption="Larghezza" default="150px" tooltip="(opzionale) Indicare la larghezza del campo Memo in

percentuale (es. 100%) o in punti di risoluzione (es. 240px)" /> - <Item key="height" size="5" propertyinfo="Height" caption="Altezza" default="150px" tooltip="(opzionale) Indicare l'altezza del campo Memo in punti di

risoluzione (es. 240px, minimo consigliato 150px)" /> - <Item key="bindfield" size="15" propertyinfo="AjaxBindField" caption="BindField" default="" tooltip="Nome di campo da utilizzare come origine del controllo

(in base al recordset di appartenenza)" /> - <Item key="bindrecordset" size="15" propertyinfo="AjaxBindRecordSetName" caption="BindRecordSet" default="" tooltip="Indicare ID univoco del recordset di

appartenenza" /> - <Item key="required" propertyinfo="Required" caption="Rende il campo obbligatorio in fase di save\commit" default="false" type="boolean" /> - <Item key="friendlyname" size="15" propertyinfo="FriendlyName" caption="Nome Descrittivo" default="" tooltip="(opzionale) Indicare un nome che identifica il

campo" />

Page 39: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

39/67

2.17 Pannello Simple# 2.0

Con la nuova versione di SIMPLE# 2.0 è possibile creare interfacce di interazione più potenti ed articolate. Questo nuovo oggetto Simple# permette di aggiornare specifiche aree dello schermo in modo che siano dipendenti da altri oggetti griglia presenti sulla medesima pagina web. L'utilizzo tipico consente di creare maschere del tipo: "TESTATA - DETTAGLIO". In nuovo oggetto all'interno dell'editor si presenta così:

Le proprietà visive

Tutte le proprietà dell’oggetto

<Item key="id" size="50" propertyinfo="ID" caption="Id" default="SimpleSharpPanel1" tooltip="Indicare un ID univoco per identificare l'elemento" />

</Items>

Page 40: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

40/67

Vediamo un esempio concreto di utilizzo:

Il pannello Simple# può essere collegato alle griglie Simple# tramite la proprietà impostabile sulla griglia: "Pannelli Simple# da aggiornare:"

Sul click di una singola riga della griglia che costituisce "la testata" di una maschera testata - dettaglio verrà aggiornato il pannello Simple# indicato, passandogli tutti i valori delle colonne in base alla riga selezionata.

Page 41: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

41/67

E' importante sottolineare che la griglia di testata dovrà avere la proprietà "Tipo Selezione = SINGLE" al fine di consentire all'utente la selezione di una riga specifica. Il formalismo per poter accedere a questi parametri nel pannello è il seguente:

[[IDGriglia.NomeColonna||ValoreDefault]]

• Il primo valore (prima del punto) indica l'ID della griglia padre • Il secondo (dopo il punto prima del pipe) indica il nome della colonna da cui verrà preso il valore in base alla

riga selezionata. • Il terzo valore (dopo il pipe) indica il valore di default nel caso in cui non vi siano righe selezionate nella griglia

padre ; è possibile specificare un valore puntuale o una query sql Esempio realizzazione griglia testata - dettaglio • Griglia testata con le seguenti proprietà:

o ID="GridTestata" o Sql="SELECT ID, Descrizione FROM MiaTabellaTestata" o PennelliSimple#DaAggiornare="SimplePanelDettaglio"

• Panello Simple# con ID="SimplePanelDettaglio" • Griglia di Dettaglio dentro il Panello Simple# con le seguenti proprietà :

o ID="SimplePanelDettaglio" o Sql="SELECT ID, Desrizione FROM MiaTabellaDettaglio Where IDTestata = [[GridTestata.ID||0]]"

oppure • Griglia di Dettaglio dentro il Panello Simple# con le seguenti proprietà :

o ID="SimplePanelDettaglio" o Sql=""SELECT ID, Desrizione FROM MiaTabellaDettaglio Where IDTestata IN([[GridTestata.ID||SELECT

ID FROM MiaTabellaTestata]])"" Attenzione - In fase di esitazione attività in Multimedia i recordset simple# contenuti nei pannelli# sono esclusi dal processo di aggiornamento database. Per costruire l'intero Simple# del tipo "TESTATA - DETTAGLIO" è necessario eseguire queste operazioni: 1. inserire una griglia con tutte le sue proprietà correttamente impostate. Questa costituirà la griglia della testata.

Diamogli il nome (ad esempio) di "GridTestata" 2. impostare la proprietà "Tipo Selezione = SINGLE" 3. impostare la proprietà "Pannelli Simple# da aggiornare = GridDettaglio" 4. inserire un PannelloSimple#, facendo doppio click sul bordo del riquadro "rosso" impostare il nome dell'oggetto a

"GridDettaglio" 5. a questo punto il pannello Simple# è pronto per contenere tutto il Simple# che si desidera. All'interno del

pannello sarà possibile utilizzare la seguente variabile per aggiornare in modo dinamico il contenuto

[[IDGriglia.NomeColonna||ValoreDefault]]

Page 42: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

42/67

2.17.1 VEDIAMO UN ESEMPIO REALE: Testata e Dettaglio Ecco il risultato finale che si vuole ottenere in HOME PAGE. Un elenco delle offerte visibili dall'utente, cliccando sulle quali viene visualizzato l'elenco delle righe dell'offerta selezionata.

E' impostante notare che l'elenco visibile "dall'utente" delle offerte è possibile farlo grazie a questo parametro [[FiltroVisibilitaClienti]], utilizzando nella query SQL che alimenta la griglia di testata. La griglia di testata la chiameremo "GridTestata" e le proprietà sono così impostate:

Page 43: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

43/67

SQL Query SELECT Ordini.IDOrdine, TIPI_ORDINI.Descrizione as Tipo, Ordini.NumeroOrdine as Numero, Ordini.Revisione as Rev, dbo.dateformat(Ordini.DataOrdine,'dd-mm-yy ddd') as Data, Ordini.Cliente as Anagrafica, Ordini.Tel1, Ordini.Tot, Ordini.OggettoTrattativa as Oggetto, (SELECT (CodiceAgente + ' - ' + Cognome) AS Agente FROM Agenti WHERE IDAgente = Ordini.IDAgente) As Agente, Stati.DescrizioneStato AS Stato, Ordini.PercentualeChiusura as [% Chius], Ordini.Note FROM Ordini INNER JOIN Stati ON Ordini.Stato = Stati.IDStato INNER JOIN TIPI_ORDINI ON TIPI_ORDINI.IdTipoOrdine=Ordini.IDTipo WHERE ([[FiltroVisibilitaClienti]]) ORDER BY IDOrdine DESC

Inseriamo il pannello Simple# e assegniamo il seguente ID al pannello:

Il Simple# comparirà così:

Page 44: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

44/67

La griglia all'interno del pannello è così configurata

Come è possibile notare la query è parametrica:

SELECT TOP 100 PERCENT Dettagli_ordini.IDDettagliOrdini, Dettagli_ordini.IDOrdine, Dettagli_ordini.NumRiga, Dettagli_ordini.NumeroOrdineRiga as NumOrdRiga, ListiFR.Codice, Dettagli_ordini.Descrizione as [Descrizione Prodotto], Dettagli_ordini.Quantità, Dettagli_ordini.UM, Dettagli_ordini.PrezzoUnit, Dettagli_ordini.Prezzo, Dettagli_ordini_Stati.DescrizioneStato as [Stato Riga] FROM Dettagli_ordini INNER JOIN Dettagli_ordini_Stati ON Dettagli_ordini.IDStatoDett = Dettagli_ordini_Stati.IDStatoDett INNER JOIN ListiFR ON Dettagli_ordini.Codice = ListiFR.Codice WHERE (Dettagli_ordini.IDOrdine = [[GridTestata.IDOrdine||0]]) ORDER BY Dettagli_ordini.NumeroOrdineRiga, ListiFR.Descrizione

E verrà visualizza in questo modo:

Ecco l'esempio del comportamento finale. Facendo click su una riga delle offerte (testata) si aggiorna l'elenco delle righe sottostante.

Page 45: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

45/67

CODICE SIMPLE# 2.0 collegato all'esempio E' possibile copiare questo codice ed incollarlo nell'html dell'editor Simple# dell'home page del CRM.

<table style="width: 1043px; height: 142px;" border="0"> <tbody><tr> <td style="background-color: #0066ff;"><span style="color: #ffffff;"><span style="font-size: medium;"><strong>TESTATA (ELENCO OFFERTE VISIBILI ALL'UTENTE)<br /><span style="font-size: xx-small;">Doppio click apre</span></strong></span></span></td> <td style="background-color: #99ccff;"><span style="font-size: x-small;"><strong><span style="font-size: xx-small;"><span style="color: #ffffff;"><a href="OrdiniForm.aspx?TipoOrdine=o&amp;Modality=New" target="_blank">Nuova Offerta...</a></span><br /></span></strong></span></td> </tr> <tr><td colspan="2"> <p><img class="QBLICObjqYVdRPSNSM0pwWkZSbGMzUmhkR0U9fGMzRnMjVTBWTVJVTlVJQ0JQY21ScGJta3VTVVJQY21ScGJtVXNJRlJKVUVsZlQxSkVTVTVKTGtSbGMyTnlhWHBwYjI1bElHRnpJRlJwY0c4c0lFOXlaR2x1YVM1T2RXMWxjbTlQY21ScGJtVWdZWE1nVG5WdFpYSnZMQ0JQY21ScGJta3VVbVYyYVhOcGIyNWxJR0Z6SUZKbGRpd2daR0p2TG1SaGRHVm1iM0p0WVhRb1QzSmthVzVwTGtSaGRHRlBjbVJwYm1Vc0oyUmtMVzF0TFhsNUlHUmtaQ2NwSUdGeklFUmhkR0VzSUU5eVpHbHVhUzVEYkdsbGJuUmxJR0Z6SUVGdVlXZHlZV1pwWTJFc0lFOXlaR2x1YVM1VVpXd3hMQ0JQY21ScGJta3VWRzkwTENCUGNtUnBibWt1VDJkblpYUjBiMVJ5WVhSMFlYUnBkbUVnWVhNZ1QyZG5aWFIwYnl3Z0tGTkZURVZEVkNBb1EyOWthV05sUVdkbGJuUmxJQ3NnSnlBdElDY2dLeUJEYjJkdWIyMWxLU0JCVXlCQloyVnVkR1VnUmxKUFRTQkJaMlZ1ZEdrZ1YwaEZVa1VnU1VSQloyVnVkR1VnUFNCUGNtUnBibWt1U1VSQloyVnVkR1VwSUVGeklFRm5aVzUwWlN3Z1UzUmhkR2t1UkdWelkzSnBlbWx2Ym1WVGRHRjBieUJCVXlCVGRHRjBieXdnVDNKa2FXNXBMbEJsY21ObGJuUjFZV3hsUTJocGRYTjFjbUVnWVhNZ1d5VWdRMmhwZFhOZExDQlBjbVJwYm1rdVRtOTBaU0JHVWs5TklFOXlaR2x1YVNCSlRrNUZVaUJLVDBsT0lGTjBZWFJwSUU5T0lFOXlaR2x1YVM1VGRHRjBieUE5SUZOMFlYUnBMa2xFVTNSaGRHOGdTVTVPUlZJZ1NrOUpUaUJVU1ZCSlgwOVNSRWxPU1NCUFRpQlVTVkJKWDA5U1JFbE9TUzVKWkZScGNHOVBjbVJwYm1VOVQzSmthVzVwTGtsRVZHbHdieUJYU0VWU1JTQW9XMXRHYVd4MGNtOVdhWE5wWW1sc2FYUmhRMnhwWlc1MGFWMWRLU0JQVWtSRlVpQkNXU0JKUkU5eVpHbHVaU0JFUlZORENnbz18WTI5c2RXMXVjM2RwWkhSbyNNRHM3T3pzN01qQXdPenM3T3pzN096QT18Ym05eVpXTnZjbVJ0WlhOellXZGwjVG1WemMzVnVZU0J2Wm1abGNuUmhJSEJ5WlhObGJuUmx8Ym5WdGNtOTNjdz09I01UQT18ZDJsa2RHZz0jTVRBd0pRPT18YUdsa1pRPT0jWm1Gc2MyVT18Wlc1amIyUmxhSFJ0YkE9PSNabUZzYzJVPXxiWFZzZEdselpXeGxZM1E9I1UybHVaMnhsfGJXOWtZV3hwZEhrPSNSR0YwWVZSaFlteGx8WVd4c2IzZHdjbWx1ZEE9PSNWSEoxWlE9PXxZV3hzYjNkbGVIQnZjblE9I1JtRnNjMlU9fFkyOWthV05sYzNSaGJYQmgjVDNKa2FXNXBSbTl5YlE9PXxjRzl3ZFhCamIyeDFiVzVwYm1SbGVBPT0jTVRJPXxjbTkzWW1GamEyTnZiRzl5YkdsemRHSnZkVzVrWTI5c2RXMXUjTFRFPXxjbTkzWTI5c2IzSnNhWE4wWW05MWJtUmpiMngxYlc0PSNMVEU9fFlXeHNiM2R6WldGeVkyaHBibWM9I2RISjFaUT09fGMybHRjR3hsYzJoaGNuQndZVzVoYkd4cGMzUjBiM0psWm5KbGMyZz0jVTJsdGNHeGxVMmhoY25CUVlXNWxiRVJsZEhSaFoyeHBidz09fFlXTjBhVzl1TVE9PSNiM0prYVc1cFptOXliUzVoYzNCNFAwbEVVSEp0UzJWNVZHRmliR1U5Zkh4SlJHOXlaR2x1Wlh4OHxZV04wYVc5dU1YUmxlSFE9I1FYQnlhUT09fFlXTjBhVzl1TVdOdmJtWnBjbTF0WlhOellXZGwj" src="Themes/Default/Images/q.png" alt="Griglia" /></p> </td> </tr></tbody></table> <table id="SimpleSharpPanelDettaglio" class="SimpleSharpPanel"> <tbody><tr> <p><span style="font-size: medium;"><strong>DETTAGLIO (RIGHE OFFERTA SELEZIONATA&nbsp; </strong></span><span style="font-size: medium;"><strong><span style="color: #008000;">[[GridTestata.Numero||0]]</span></strong><strong>)</strong></span></p> <p><img class="QBLICObjqYVdRPSNSM0pwWkVSbGRIUmhaMnhwYnc9PXxjM0ZzI1UwVk1SVU5VSUZSUFVDQXhNREFnVUVWU1EwVk9WQ0JFWlhSMFlXZHNhVjl2Y21ScGJta3VTVVJFWlhSMFlXZHNhVTl5WkdsdWFTd2dSR1YwZEdGbmJHbGZiM0prYVc1cExrbEVUM0prYVc1bExDQkVaWFIwWVdkc2FWOXZjbVJwYm1rdVRuVnRVbWxuWVN3Z1JHVjBkR0ZuYkdsZmIzSmthVzVwTGs1MWJXVnliMDl5WkdsdVpWSnBaMkVnWVhNZ1RuVnRUM0prVW1sbllTd2dUR2x6ZEdsR1VpNURiMlJwWTJVc0lFUmxkSFJoWjJ4cFgyOXlaR2x1YVM1RVpYTmpjbWw2YVc5dVpTQmhjeUJiUkdWelkzSnBlbWx2Ym1VZ1VISnZaRzkwZEc5ZExDQkVaWFIwWVdkc2FWOXZjbVJwYm1rdVVYVmhiblJwZE9Bc0lFUmxkSFJoWjJ4cFgyOXlaR2x1YVM1VlRTd2dSR1YwZEdGbmJHbGZiM0prYVc1cExsQnlaWHA2YjFWdWFYUXNJRVJsZEhSaFoyeHBYMjl5WkdsdWFTNVFjbVY2ZW04c0lFUmxkSFJoWjJ4cFgyOXlaR2x1YVY5VGRHRjBhUzVFWlhOamNtbDZhVzl1WlZOMFlYUnZJR0Z6SUZ0VGRHRjBieUJTYVdkaFhTQkdVazlOSUVSbGRIUmhaMnhwWDI5eVpHbHVhU0JKVGs1RlVpQktUMGxPSUVSbGRIUmhaMnhwWDI5eVpHbHVhVjlUZEdGMGFTQlBUaUJFWlhSMFlXZHNhVjl2Y21ScGJta3VTVVJUZEdGMGIwUmxkSFFnUFNCRVpYUjBZV2RzYVY5dmNtUnBibWxmVTNSaGRHa3VTVVJUZEdGMGIwUmxkSFFnU1U1T1JWSWdTazlKVGlCTWFYTjBhVVpTSUU5T0lFUmxkSFJoWjJ4cFgyOXlaR2x1YVM1RGIyUnBZMlVnUFNCTWFYTjBhVVpTTGtOdlpHbGpaU0JYU0VWU1JTQW9SR1YwZEdGbmJHbGZiM0prYVc1cExrbEVUM0prYVc1bElEMGdXMXRIY21sa1ZHVnpkR0YwWVM1SlJFOXlaR2x1Wlh4OE1GMWRLU0JQVWtSRlVpQkNXU0JFWlhSMFlXZHNhVjl2Y21ScGJta3VUblZ0WlhKdlQzSmthVzVsVW1sbllTd2dUR2x6ZEdsR1VpNUVaWE5qY21sNmFXOXVaUT09fFkyOXNkVzF1YzNkcFpIUm8jTURzd096c3d8Ym05eVpXTnZjbVJ0WlhOellXZGwjVG1WemMzVnVZU0J5YVdkaHxiblZ0Y205M2N3PT0jTVRBPXxkMmxrZEdnPSNNVEF3SlE9PXxhR2xrWlE9PSNabUZzYzJVPXxaVzVqYjJSbGFIUnRiQT09I1ptRnNjMlU9fGJYVnNkR2x6Wld4bFkzUT0jVTJsdVoyeGx8Ylc5a1lXeHBkSGs9I1JHRjBZVlJoWW14bHxZV3hzYjNkd2NtbHVkQT09I1ptRnNjMlU9fFlXeHNiM2RsZUhCdmNuUT0jUm1Gc2MyVT18Y0c5d2RYQmpiMngxYlc1cGJtUmxlQT09I0xURT18Y205M1ltRmphMk52Ykc5eWJHbHpkR0p2ZFc1a1kyOXNkVzF1I0xURT18Y205M1kyOXNiM0pzYVhOMFltOTFibVJqYjJ4MWJXND0jTFRFPXxZV3hzYjNkelpXRnlZMmhwYm1jPSNSbUZzYzJVPXxZV04wYVc5dU1RPT0jVDNKa2FXNXBYMFJsZEhSaFoyeHBiMFp2Y20wdVlYTndlRDlKUkU5U1JFbE9SVDE4ZkVsRWIzSmthVzVsZkh3PXxZV04wYVc5dU1YUmxlSFE9I1FYQnlhU0JTYVdkb1pRPT18WVdOMGFXOXVNV052Ym1acGNtMXRaWE56WVdkbCM=" src="Themes/Default/Images/q.png" alt="Griglia" /></p> <td>&nbsp;</td> </tr></tbody></table>

Page 46: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

46/67

3. RS#: il repository del Simple# Le interfacce applicative realizzate con Simple# possono essere realizzate utilizzando gli elementi base (Html, Javascript e oggetti Simple# elementari, ad esempio Griglie, Iframe, Bottoni, Label, Input, ...) oppure richiamando oggetti “finiti” già pronti dal repository Simple# (RS#), che chiameremo anche Widgets. Un repository (che può essere italianizzato con il termine deposito) è un ambiente di base della piattaforma in cui vengono gestiti oggetti “simple#” di facile e semplice utilizzo, ma soprattutto completi di proprietà e caratteristiche tali che li rendano “pronti all’uso” !. Tutti gli utenti possono scambiarsi così oggetti Simple# completi e finiti, detti Widgets, in modo semplice e rapido. Per richiamare un Widgets dal repository Simple# è semplicissimo.

Quando siamo nell’editor Simple#, in modalità progettazione, aprire l’elenco dei template/widgets disponibili e cliccare sull’oggetto desiderato per inserirlo. L’inserimento avviene confermando l’operazione su questo messaggio:

Come sempre è possibile visualizzare il risultato in anteprima per poi decidere se salvarlo oppure annullare.

3.1 Salvare ed utilizzare i Widgets del Repository

Se invece si desidera creare un nuovo Widgets è sufficiente creare il proprio codice Simple#, anche modificando un modello già esistente. Terminate le modifiche in fase di progettazione è sufficiente premere il tastino SALVA (vedi immagine):

Page 47: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

47/67

Se il modello selezionato è uno di quelli forniti dal produttore (ovvero è bloccato per la modifica) comparirà la maschera di gestine del salvataggio per il nuovo Widgets:

Indicare la descrizione che si desidera, l’utente o il gruppo che potrà farne uso e la tipologia. Quindi premere “Nuovo”. Il nuovo widgets è stato così creato e sarà immediatamente disponibile per essere riutilizzato successivamente in ogni editor Simple#.

Se il modello che andiamo a Salvare è un modello personalizzato creato dall’utente la maschera di modifica si presenta come segue, ovvero è possibile anche modificare il Widgets, senza necessariamente crearne uno nuovo. In questo caso premere “Modifica”:

Page 48: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

48/67

3.2 Licenza Simple# e trasportabilità del codice Simple#

E' possibile realizzare le personalizzazioni Simple# solamente utilizzando una installazione in cui è attivo il modulo 15 - Macrolinguaggio Simple#. Una volta terminate le personalizzazioni e configurazioni utilizzando questo linguaggio è possibile trasportare il codice realizzato in modo molto semplice. Accedere all'editor Simple# e premere il tasto "HTML". Compare l'editor del sorgente Html del pannello Simple#. Selezionare tutto il contenuto (tasto destro Seleziona tutto), quindi copiare il testo e salvarselo su un qualsiasi file di testo.

A questo punto è sufficiente andare sull'installazione priva del modulo 15 - Macrolinguaggio Simple# e procedere allo stesso modo, incollando il codice prodotto. Sarà così molto semplice recuperare e riutilizzare il codice Simple# prodotto. NB: si consiglia di sviluppare le personalizzazioni utilizzando una copia del database di destinazione. E' possibile, ad esempio, salvarsi anche molte versioni dell'home page del CRM, come diversi template.

Page 49: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

49/67

4. SintesiCrm e MappaAzioni

All'interno delle pagine Web del CRM esistono due pagine in particolare che possono fornire molte informazioni relativamente allo stato o alle attività svolte sull'anagrafica.

Queste pagine vengono normalmente già utilizzate dall'applicativo ma possono essere molto utili durante la scrittura di codice Simple#.

Con l'utilizzo di semplici Action (doppio click su griglie o click su oggetti Button) è possibile infatti aprire queste pagine passando alcuni semplici parametri.

La pagina SintesiCRM.aspx accetta i seguenti parametri (modalità GET):

Parametro Descrizione Default IDPrmKeyTable IDCliente (si può usare in modo indifferente anche IDCliente) IDCliente IDCliente (si può usare in modo indifferente anche IDPrmKeyTable) IDOrdine IDOrdine. Da questo valore viene ricavato l'IDCliente IDElenco IDElenco. Da questo valore vengono recuperati l'IDCliente e l'IDOrdine se

presente

sezioni Booleano; se TRUE visualizza le sezioni nella pagina. In base al tipo di ID passato alla pagina vengono visualizzate diverse righe di sezione. Nel caso di IDCliente viene visualizzato in alto il nome dell'anagrafica (vedi immagine come esempio)

False

header Booleano; se TRUE visualizza la toolbar con le icone di nuovo, impostazioni e fullscreen. Se l'header non è visualizzato, queste tre icone vengono spostate a destra dei tab delle sintesi CRM

False

openFullScreen Booleano; se TRUE apre la pagina in fullscreen. La visualizzazione in fullscreen ha l'effetto di nascondere il pulsante "fullscreen" presente sull'header

False

openSintesi Booleano; se TRUE visualizza le sezioni già espanse True titolo Titolo visualizzato sulla toolbar della sintesi CRM Sintesi CRM allowExpand Booleano; se TRUE visualizza il pulsante per espandere /chiudere le diverse

sezioni True

Page 50: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

50/67

La pagina MappaAzioni.aspx accetta i seguenti parametri in ingresso (modalità GET):

Parametro Descrizione Default IDPrmKeyTable IDCliente IDCliente IDCliente IDOrdine IDOrdine. Da questo valore viene ricavato l'IDCliente IDAgenteT Se IDTlmk non viene passato il default è l'IDAgenteT dell'utente corrente, se

non c’è L’idAgenteT nullo

Page 51: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

51/67

5. Esempi finali di Simple# Dai seguenti esempi si potrà intuire come sia estremamente semplice generarsi una proprio set di oggetti Simple# evoluti, in grado poi di essere copiati ed incollati sulle varie home page dell’utilizzatore finale.

5.1 Esempi di griglie su Home Page (Portali)

Griglia che elenca tutte le opportunità assegnate con il relativo stato corrente (es. in attesa agente). Nell’esempio, realizzato con il tema grafico “Green”, sono lasciate visibili le colonne IDCliente e IDElenco, ma potrebbero essere nascoste semplicemente riducendo a zero la larghezza della prima e terza colonna.

Semplice griglia che illustra gli ultimi lead assegnati. Posizionata sull’home page di un venditore prevede automaticamente di visualizzare soltanto le anagrafiche a lui assegnate.

Page 52: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

52/67

Page 53: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

53/67

5.2 Esempi di Configuratore Commerciale

Il configuratore commerciale consente di impostare, per ogni prodotto/servizio, tutte le richieste commerciali che configurano al meglio la vendita. I campi, l'interfaccia e la modalità di raccolta di questi dettagli all'interno del configuratore è completamente libera grazie alla flessibilità del CRM. Il configuratore commerciale infatti è realizzato con il macrolinguaggio interno Simple#, il cui codice viene memorizzato direttamente sull’anagrafica del prodotto/servizio nel pannello Simple#. E' possibile memorizzare le informazioni inserite nello script in una tabella personalizzata, per far si che questo accada occorre configurare un Recordset ed i relativi campi per il salvataggio dei dati. Per legare i dati inseriti dall'utente al prodotto occorre avere la colonna IDDettagliOfferte nella tabella di destinazione ed un campo di testo ( anche nascosto ) collegato a questo campo con valore di default=[[IDDettagliOfferte]] Di seguito vediamo diversi esempi di configuratore commerciale. Nel primo esempio vengono sfruttate sia le caratteristiche di dettaglio delle offerte (funzionalità standard del sistema), che saranno le stesse su tutte le offerte, sia la parte di Simple# per realizzare il configuratore commerciale per un prodotto commerciale particolare: Idropulitrice K2.75 MD Plus T50, che richiede un campo aggiuntivo specifico, il colore.

Nell’esempio si è scelto di memorizzare l’informazione aggiuntiva del colore (nell’esempio “Giallo”) in un campo apposito di una tabella _xprova_coloriidropulitori, collegato con il dettaglio del preventivo. Altri due esempi di configuratore commerciale (es. bocchettone offerta Wind e Sky).

Page 54: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

54/67

Page 55: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

55/67

5.3 Esempio di gestione di una Caratteristica

Vediamo come è possobile gestire una caratteristica all’interno del Workflow di una campagna marketing. Supponiamo di voler gestire il campo aggiuntivo “GiaUsatoInterinale”, il cui ID visibile dalla gestione “Tabelle | Caratteristiche” sia 76.

Nel codice Simple# del Workflow – Step INFO, verrà creato il seguente codice Simple#.

All’interno, oltre ai testi HTML troviamo 4 oggetti Simple#:

1) Recordset che estrae il BIND corretto, sulla tabella Caratteristiche_Clienti

2) Oggetto Input per il codice Caratteristica, valorizzato a 76 fisso

3) Oggetto Input per il campo CodCliente, valorizzato al valore [[IDCliente]]

Page 56: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

56/67

4) Oggetto Input per il campo NOTA, il vero valore che verrà gestito dall’utente (se avessimo voluto un menu a tendina questo oggetto poteva essere un COMBO)

Se si vuole è possibile copiare il seguente codice direttamente nel formato HTML del Simple# per ottenere tutti gli oggetti sopra raffigurati.

<p><strong><span style="font-size: medium;">ESEMPIO DI CARATTERISTICA<br /></span></strong></p> <p><img class="QBLICObjrYVdRPSNVbk5EWVhJM05nPT18YzNGcyNVMFZNUlVOVUlDQWdJQ0JKUkVGaVltbHVZVzFsYm5SdkxDQkRiMlJEYkdsbGJuUmxMQ0JEYjJSRFlYSmhkSFJsY21semRHbGpZU3dnVG05MFlRcEdVazlOSUNBZ0lDQWdJQ0FnUTJGeVlYUjBaWEpwYzNScFkyaGxYME5zYVdWdWRHa0tWMGhGVWtVZ0lDQWdJQ2hEYjJSRGJHbGxiblJsSUQwZ1cxdEpSRU5zYVdWdWRHVmRYU2tnUVU1RUlDaERiMlJEWVhKaGRIUmxjbWx6ZEdsallTQTlOellwQ2c9PXxZMjl1Wm1seWJXMWxjM05oWjJVPSN8YzJodmQySjFkSFJ2Ymc9PSNSbUZzYzJVPXxkR1Y0ZEdKMWRIUnZiZz09Iw==" src="Themes/Default/Images/r.png" alt="RecordSet" /><img class="QBLICObjiYVdRPSNZME52WkVOaGNtRjBkR1Z5YVhOMGFXTmh8ZG1Gc2RXVT0jTnpZPXxjbVZoWkc5dWJIaz0jWm1Gc2MyVT18YlhWc2RHbHNhVzVsI1ptRnNjMlU9fGNtVnhkV2x5WldRPSNabUZzYzJVPXxkMmxrZEdnPSNNVFV3Y0hnPXxhR1ZwWjJoMCNNVFZ3ZUE9PXxZbWx1WkdacFpXeGsjUTI5a1EyRnlZWFIwWlhKcGMzUnBZMkU9fFltbHVaSEpsWTI5eVpITmxkQT09I1VuTkRZWEkzTmc9PXxabkpwWlc1a2JIbHVZVzFsI3xkbUZzYVdSaGRHbHZibVY0Y0hKbGMzTnBiMjQ9I3xhR2xrWlE9PSNabUZzYzJVPQ==" src="Themes/Default/Images/i.png" alt="Input" /><img class="QBLICObjiYVdRPSNZME52WkVOc2FXVnVkR1U9fGRtRnNkV1U9I1cxdEpSRU5zYVdWdWRHVmRYUT09fGNtVmhaRzl1YkhrPSNabUZzYzJVPXxiWFZzZEdsc2FXNWwjWm1Gc2MyVT18Y21WeGRXbHlaV1E9I1ptRnNjMlU9fGQybGtkR2c9I01UVXdjSGc9fGFHVnBaMmgwI01UVndlQT09fFltbHVaR1pwWld4ayNRMjlrUTJ4cFpXNTBaUT09fFltbHVaSEpsWTI5eVpITmxkQT09I1VuTkRZWEkzTmc9PXxabkpwWlc1a2JIbHVZVzFsI3xkbUZzYVdSaGRHbHZibVY0Y0hKbGMzTnBiMjQ9I3xhR2xrWlE9PSNabUZzYzJVPQ==" src="Themes/Default/Images/i.png" alt="Input" /></p> <p><span style="font-size: large;">Campo Aggiuntivo gestito con Simple# <img class="QBLICObjiYVdRPSNRMkZ0Y0c5QloyZHBkVzUwYVhadnxkbUZzZFdVPSN8Y21WaFpHOXViSGs9I1ptRnNjMlU9fGJYVnNkR2xzYVc1bCNabUZzYzJVPXxjbVZ4ZFdseVpXUT0jWm1Gc2MyVT18ZDJsa2RHZz0jTVRVd2NIZz18YUdWcFoyaDAjTVRWd2VBPT18WW1sdVpHWnBaV3hrI1RtOTBZUT09fFltbHVaSEpsWTI5eVpITmxkQT09I1VuTkRZWEkzTmc9PXxabkpwWlc1a2JIbHVZVzFsI3xkbUZzYVdSaGRHbHZibVY0Y0hKbGMzTnBiMjQ9I3xhR2xrWlE9PSNabUZzYzJVPQ==" src="Themes/Default/Images/i.png" alt="Input" /></span></p> <p>&nbsp;</p>

Durante l’utilizzo all’utente il risultato sarà questo

I campi 76 e 67026 (IDCliente) possono essere nascosti facilmente con l’opzione “Nascondi” dell’oggetto Simple#, sono stati lasciati per comprendere meglio l’esempio.

Page 57: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

57/67

5.4 Simple# di esempio per Storico Contatti Semplice da mettere nel Workflow

Ecco un esempio di codice Simple# molto semplice e leggero per visualizzare in fase di contatto in MULTIMEDIA, su uno step di tipo INFO, lo storico contatti in formato solo testo, in ordine cronologico inverso. Nell'immagine il risultato finale:

Nei template si trova anche il SIMPLE# già fatto

Il CODICE HTML del SIMPLE# da replicare

<p><p><span style="font-size: small;"><span style="background-color: #99ccff;"><strong>Storico Contatti</strong></span></span></p><p><img class="QBLICObjlYVdRPSNVM1J2Y21samIwTnZiblJoZEhScHxjM0ZzI1JFVkRURUZTUlNCQVRYbFRWRUZVU1NCMllYSmphR0Z5S0cxaGVDa0tVMFZNUlVOVUlGUlBVQ0ExTUNCQVRYbFRWRUZVU1NBOUlFTlBRVXhGVTBORktFQk5lVk5VUVZSSklDc2dKenhpY2o0bkxDQW5KeWtnS3lCamIyNTJaWEowS0haaGNtTm9ZWElzWkdGMFlXOXlZV2x1Y3lrZ0t5QW5JRHhpUGlBbklDc2dRMjl1ZG1WeWRDaDJZWEpqYUdGeUxHbHpiblZzYkNoRGIyNTJaWEp6WVhwcGIyNWxMQ2NuS1NrZ0t5QW5QQzlpUGljZ1JsSlBUU0IwWld4bFptOXVZWFJsSUhkb1pYSmxJR2xrWld4bGJtTnZJR2x1SUNoelpXeGxZM1FnYVdSbGJHVnVZMjhnWm5KdmJTQmxiR1Z1WTJocElIZG9aWEpsSUdsa1kyeHBaVzUwWlQxYlcybGtZMnhwWlc1MFpWMWRLU0J2Y21SbGNpQmllU0JrWVhSaGIzSmhhVzV6SUdSbGMyTUtVMFZNUlVOVUlFQk5lVk5VUVZSSkNnPT18WTNOeiNRMU5UWDB4aFltVnNYMDV2Y20xaGJBPT0=" src="Themes/Default/Images/l.png" alt="Label" /></p></p>

Page 58: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

58/67

5.5 Simple# di esempio per ricerca & esitazione appuntamenti. Refresh pannello tramite bottone

Ecco un esempio di codice Simple# in cui è possibile effettuare delle ricerche sulla tabella appuntamenti per data & agente, ed esitazione di un appuntamento. La pagina è composta da due pannelli Simple# annidati. Il primo interagisce con gli input Html, impostati in modo da ricercare per data, e con la Combo degli agenti tramite le nuove feature del bottone. Al suo interno troviamo una griglia la quale, selezionando appuntamento, esegue il refresh di un secondo pannello dove vi è impostata la combo dello stato bindizzata ad un recordset. Sotto viene mostrato il risultato:

Il CODICE HTML del SIMPLE# da replicare <table style="width: 100%;" border="0"> <caption>Ricerca appuntamenti per data ed Agente</caption> <tbody> <tr> <td>Dalla data : <img class="QBLICObjiYVdRPSNSR0YwWVVSaGJBPT18ZG1Gc2RXVT0jTURFdk1ERXZNakF4TVE9PXxjbVZoWkc5dWJIaz0jWm1Gc2MyVT18YlhWc2RHbHNhVzVsI1ptRnNjMlU9fGNtVnhkV2x5WldRPSNabUZzYzJVPXxkMmxrZEdnPSNNVFV3Y0hnPXxhR1ZwWjJoMCNNVFZ3ZUE9PXxabTl5YldGMCNaQT09fGFHbGtaUT09I1ptRnNjMlU9fGMyaHZkMk5oYkdWdVpHRnkjZEhKMVpRPT0=" src="Themes/Default/Images/i.png" alt="Input" /></td> <td>alla data : <img class="QBLICObjiYVdRPSNSR0YwWVVGc3xkbUZzZFdVPSNNekV2TVRJdk1qQXlNQT09fGNtVmhaRzl1YkhrPSNabUZzYzJVPXxiWFZzZEdsc2FXNWwjWm1Gc2MyVT18Y21WeGRXbHlaV1E9I1ptRnNjMlU9fGQybGtkR2c9I01UVXdjSGc9fGFHVnBaMmgwI01UVndlQT09fFptOXliV0YwI1pBPT18YUdsa1pRPT0jWm1Gc2MyVT18YzJodmQyTmhiR1Z1WkdGeSNkSEoxWlE9PQ==" src="Themes/Default/Images/i.png" alt="Input" /></td> <td>Agente : <img class="QBLICObjcYVdRPSNRMjFpUVdkbGJuUmx8YzNGcyNVMlZzWldOMElFbEVRV2RsYm5SbExDQkRiMmR1YjIxbExDQk9iMjFsSUVaeWIyMGdRV2RsYm5ScElIZG9aWEpsSUZScGNHOGdQU0FuUVdkbGJuUmxKdz09fFltOTFibVJqYjJ4MWJXND0jTUE9PXxjbVYwZFhKdVkyOXNkVzF1I01RPT18YzJodmQyaGxZV1JsY25NPSNkSEoxWlE9PXxZMjlzZFcxdWMyNTFiV0psY2c9PSNNdz09fGJHbHRhWFIwYjJ4cGMzUT0jZEhKMVpRPT18WVd4c2IzZHdZV2RwYm1jPSNabUZzYzJVPXxhR2xrWlE9PSNabUZzYzJVPXxjbVZ4ZFdseVpXUT0jWm1Gc2MyVT0=" src="Themes/Default/Images/c.png" alt="Combo" /></td>

Page 59: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

59/67

<td><img class="QBLICObjbYVdRPSNRbTkwZEc5dVpRPT18ZEdWNGRBPT0jUlhObFozVnBJSEpwWTJWeVkyRT18ZDJsa2RHZz0jTVRBd2NIZz18YUdsa1pRPT0jWm1Gc2MyVT18YzJsdGNHeGxjMmhoY25Cd1lXNWhiR3hwYzNSMGIzSmxabkpsYzJnPSNVR0Z1Ym1Wc2JHOUJjSEJVYnc9PXxjMmx0Y0d4bGMyaGhjbkJ3WVc1aGJHOWlhbVZqZEd4cGMzUnZkRzl3WVhOeiNRMjFpUVdkbGJuUmxPMFJoZEdGQmJEdEVZWFJoUkdGcw==" src="Themes/Default/Images/b.png" alt="Bottone" /></td> <td>&nbsp;</td> </tr> <tr> <td colspan="5"> <table id="PannelloAppTo" class="SimpleSharpPanel"> <tbody> <tr> <td> <table style="width: 100%; height: 90%;" border="0"> <tbody> <tr> <td>&nbsp; <p style="text-align: center;"><img class="QBLICObjqYVdRPSNiVWR5YVdSQmNIQlVidz09fGMzRnMjVTBWTVJVTlVJQ0FnSUNCUGNtUnBibWt1U1VSUGNtUnBibVVzSUU5eVpHbHVhUzVKUkVOc2FXVnVkR1VzSUU5eVpHbHVhUzVPZFcxbGNtOVBjbVJwYm1Vc0lFOXlaR2x1YVM1RVlYUmhRWEJ3ZEc4c0lFRm5aVzUwYVM1RGIyZHViMjFsTENCVGRHRjBhUzVFWlhOamNtbDZhVzl1WlZOMFlYUnZEUXBHVWs5TklDQWdJQ0FnSUNBZ1QzSmthVzVwSUVsT1RrVlNJRXBQU1U0TkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JUZEdGMGFTQlBUaUJQY21ScGJta3VVM1JoZEc4Z1BTQlRkR0YwYVM1SlJGTjBZWFJ2SUVsT1RrVlNJRXBQU1U0TkNpQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0JCWjJWdWRHa2dUMDRnVDNKa2FXNXBMa2xFUVdkbGJuUmxJRDBnUVdkbGJuUnBMa2xFUVdkbGJuUmxJRWxPVGtWU0lFcFBTVTROQ2lBZ0lDQWdJQ0FnSUNBZ0lDQWdJQ0FnSUNBZ0lDQlVhWEJwWDA5eVpHbHVhU0JQVGlCUGNtUnBibWt1U1VSVWFYQnZJRDBnVkdsd2FWOVBjbVJwYm1rdVNXUlVhWEJ2VDNKa2FXNWxEUXBYU0VWU1JTQWdJQ0FnS0ZScGNHbGZUM0prYVc1cExsUnBjRzhnUFNBbllTY3BJQTBLUVU1RUlDaFBjbVJwYm1rdVJHRjBZVUZ3Y0hSdklENDlJRU5QVGxaRlVsUW9SRUZVUlZSSlRVVXNJQ2RiVzBSaGRHRkVZV3g4ZkRBeEx6QXhMekl3TVRGZFhTY3NJREV3TXlrcERRcEJUa1FnS0U5eVpHbHVhUzVFWVhSaFFYQndkRzhnUEQwZ1EwOU9Wa1ZTVkNoRVFWUkZWRWxOUlN3Z0oxdGJSR0YwWVVGc2ZId3pNUzh4TWk4eU1ESXdYVjBuTENBeE1ETXBLUTBLUVU1RUlDQW9UM0prYVc1cExrbEVRV2RsYm5SbElFbE9JQ2hiVzBOdFlrRm5aVzUwWlM1SlJFRm5aVzUwWlh4OFUyVnNaV04wSUVsRVFXZGxiblJsSUdaeWIyMGdZV2RsYm5ScElGZG9aWEpsSUZScGNHOGdQU0FuUVdkbGJuUmxKMTFkS1NrTkNrOXlaR1Z5SUdKNUlFUmhkR0ZCY0hCVWJ5d2dUM0poUVhCd1ZHOE5DZzBLfGJtOXlaV052Y21SdFpYTnpZV2RsI1RtVnpjM1Z1SUhKbFkyOXlaQ0J3Y21WelpXNTBaUT09fGJuVnRjbTkzY3c9PSNNVEE9fGQybGtkR2c9I05qQXdjSGc9fGFHbGtaUT09I1ptRnNjMlU9fFpXNWpiMlJsYUhSdGJBPT0jWm1Gc2MyVT18YlhWc2RHbHpaV3hsWTNRPSNVMmx1WjJ4bHxiVzlrWVd4cGRIaz0jUkdGMFlWUmhZbXhsfFlXeHNiM2R3Y21sdWRBPT0jUm1Gc2MyVT18WVd4c2IzZGxlSEJ2Y25RPSNSbUZzYzJVPXxjRzl3ZFhCamIyeDFiVzVwYm1SbGVBPT0jTFRFPXxjbTkzWW1GamEyTnZiRzl5YkdsemRHSnZkVzVrWTI5c2RXMXUjTFRFPXxjbTkzWTI5c2IzSnNhWE4wWW05MWJtUmpiMngxYlc0PSNMVEU9fFlXeHNiM2R6WldGeVkyaHBibWM9I1JtRnNjMlU9fGMybHRjR3hsYzJoaGNuQndZVzVoYkd4cGMzUjBiM0psWm5KbGMyZz0jYlZCaGJtNWxiR3h2UlhOcGRHOUJjSEJVYnc9PXxiM0JsY21GMGFXNW5aR1Z6YTNSdmNHMWhibUZuWlcxbGJuUT0jWm1Gc2MyVT18WVdOMGFXOXVjdz09Iw==" src="Themes/Default/Images/q.png" alt="Griglia" /></p> <p style="text-align: center;">&nbsp;</p> </td> <td colspan="3"> <table id="mPannelloEsitoAppTo" class="SimpleSharpPanel"> <tbody> <tr> <td> <p>Appuntamento numero: <strong>[[mGridAppTo.NumeroOrdine||Selezionare un appuntamento ... ]]</strong></p> <p>Cambio stato : <img class="QBLICObjcYVdRPSNRMjFpVTNSaGRHOD18YzNGcyNEUXBUUlV4RlExUWdJQ0FnSUVsRVUzUmhkRzhzSUVSbGMyTnlhWHBwYjI1bFUzUmhkRzhOQ2taU1QwMGdJQ0FnSUNBZ0lDQlRkR0YwYVEwS1YyaGxjbVVnVkdsd2J5QTlJQ2RoSncwS3xZbTkxYm1SamIyeDFiVzQ9I01BPT18Y21WMGRYSnVZMjlzZFcxdSNNUT09fGMyaHZkMmhsWVdSbGNuTT0jZEhKMVpRPT18YkdsdGFYUjBiMnhwYzNRPSNkSEoxWlE9PXxZV3hzYjNkd1lXZHBibWM9I1ptRnNjMlU9fGFHbGtaUT09I1ptRnNjMlU9fFltbHVaR1pwWld4ayNVM1JoZEc4PXxZbWx1WkhKbFkyOXlaSE5sZEE9PSNVbVZqYjNKa1UyVjBRWEJ3Vkc4PXxjbVZ4ZFdseVpXUT0jWm1Gc2MyVT0=" src="Themes/Default/Images/c.png" alt="Combo" /> <img class="QBLICObjrYVdRPSNVbVZqYjNKa1UyVjBRWEJ3Vkc4PXxjM0ZzI1UyVnNaV04wSUVsRVQzSmthVzVsTENCVGRHRjBieUJHY205dElHOXlaR2x1YVNCWGFHVnlaU0JKUkU5eVpHbHVaU0E5SUZ0YmJVZHlhV1JCY0hCVWJ5NUpSRTl5WkdsdVpYeDhNRjFkfFkyOXVabWx5YlcxbGMzTmhaMlU9I1EyOXVabVZ5YldrZ2FXd2djMkZzZG1GMFlXZG5hVzhnUHc9PXxjMmh2ZDJKMWRIUnZiZz09I2RISjFaUT09fGRHVjRkR0oxZEhSdmJnPT0jUlhOcGRHRWdZWEJ3ZFc1MFlXMWxiblJ2" src="Themes/Default/Images/r.png" alt="RecordSet" /></p> <p><strong>&nbsp;</strong></p> </td> </tr> </tbody> </table> </td> </tr> <tr> <td colspan="4">&nbsp;&nbsp;&nbsp;&nbsp;</td> </tr> </tbody> </table> </td> </tr> </tbody> </table> </td> </tr> </tbody> </table>

Page 60: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

60/67

6. Sostituzione nomi di campo [[nome]]

6.1 Premessa

La sostituzione dei nomi di campo è il metodo più semplice per visualizzare informazioni dell’utente o dell’anagrafica del nominativo o per impostare QUERY contestuali, ad esempio:

• Per visualizzare tutte le anagrafiche che l'utente corrente può vedere secondo i filtri di visibilità esistenti inserire una griglia con la seguente query: SELECT RAGSOC FROM CLIENTI WHERE [[FiltroVisibilitaClienti]]

• Per visualizzare tutte le anagrafiche assegnate all'utente corrente in qualità di agente/venditore inserire una griglia con la seguente query: SELECT RAGSOC FROM CLIENTI WHERE IDAgente = [[IDAgente]]

E’ sufficiente utilizzare la seguente sintassi:

[[nomecampo]]

Inserimento Caratteristiche

Tra i nomi di campo è possibile inserire anche le caratteristiche, con la seguente sintassi:

Inserire [[DESCRIZIONECARATTERISTICA||T]] Per sostituirlo con il valore TESTO della caratteristica Inserire [[DESCRIZIONECARATTERISTICA||N]] Per sostituirlo con il valore NUMERICO della caratteristica Inserire [[DESCRIZIONECARATTERISTICA||D]] Per sostituirlo con il valore DATA della caratteristica

Per ottenere la sostituzione del valore corrente in fase di rendering della pagina Web. Esempio Di seguito un esempio impostato sul Messaggio Introduttivo della Campagna Marketing. Prima vediamo il Simple# molto semplice (è semplicemente HTML).

Il risultato che si otterrà sarà il seguente:

Page 61: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

61/67

Nell'editor del Simple# è presente anche un'icona specifica che semplifica l'inserimento di tutti i nomi di campo consentiti in base al contesto.

Premendo l'icona esce la lista dei campi modulo inseribili. In questa lista è linkato anche il presente manuale (cliccare sull'icona di Acrobat Reader) in formato PDF.

Campi sempre disponibili per la sostituzione:

Nome di campo Esempio di valore

[[SpId]] 55 [[SpIdTimeLogin]] 19/04/2010 15.17.52 [[IsAdmin]] True [[IsPower]] True [[DataScad]] 01/01/1900 0.00.00 [[IDutente]] ADMIN [[NomeUtente]] Amministratore [[IDAgente]] 1 o nulla [[IDAgenteT]] 2 o nulla [[IDAgenteA]] 3 o nulla [[TLoginWebTimeOut]] 60 [[Theme]] Default [[ChangePwdFirstLogin]] False [[Password]] 12345Aa! [[LangID]] 0

Sono inoltre sempre disponibili anche i campi relativi alle Opzioni dell'utente.

Page 62: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

62/67

Anche il seguente particolare campo modulo è sempre disponibile: [[FiltroVisibilitaClienti]] Rappresenta la "WHERE" che intepreta totalmente e secondo i parametri della procedura impostati per l'utente, il filtro di visibilità delle anagrafiche. Es.1 --> select * from clienti where [[FiltroVisibilitaClienti]] Verrà sostituito con le clausole di visilità del cliente, ma nella query deve essere NECESSARIAMENTE presente la tabella Clienti Es.2 --> select * from contatti where idcliente IN ([[FiltroVisibilitaClienti]]) Verrà sostituito con gli identificativi dei clienti che soddisfano le clausole di visilità, e nella query la presenza della tabella Clienti è ininfluente.

Campi gestiti SOLO se nel contesto di utilizzo è presente il riferimento al campo [IDCLIENTE] (es. Sintesi CRM e Multimedia, ma NON in Home Page).

Nome di campo Descrizione [[Indirizzo||nome campo]] Indirizzi aggiuntivi [[nomecaratteristica||T]] Caratteristiche campo note [[nomecaratteristica||N]] Caratteristiche campo valore

All'interno di "Analisi e Report | Configurazionie Analisi e Reporting"

Nome di campo Descrizione [[FiltroClienti]] Clausola WHERE di filtro delle anagrafiche [[DescrizioneFiltroClienti]] Descrizione verbale della condizione filtro anagrafiche [[FiltroOrdini]] Clausola WHERE di filtro sulla tabella Ordini (questa tabella ricordiamo rappresenta gli

Appuntamenti (diversi dai TODO), le Offerte e le Opportunità) [[DescrizioneFiltroOrdini]] Descrizione verbale della condizione filtro ordini [[FiltroElenchi]] Clausola WHERE di filtro su tabella Elenchi (questa tabella rappresenta l'inserimento

delle anagrafiche in una determinata campagna) [[FiltroTelefonate]] Clausola WHERE di filtro delle attività svolte sul nominativo in una determinata

campagna [[DescrizioneFiltroElenchiTelefonate]] Descrizione verbale della condizione filtro sulle due tabelle precedenti

6.2 Dove e come utilizzarli

I valori che è possibile sostituire in modo “semplificato” attraverso la sintassi [[nomecampo]] dipendono dal contesto applicativo. In particolare:

Quali campi sono disponibili Alcuni esempi

Homa Page (portali) Vedi tabella sotto [[IDUtente]], [[IDAgente]]

Sintesi CRM Tutti i campi dell’anagrafica (senza indirizzi e referenti) + tabella sotto [[IDCliente]], [[Codice]]

Multimedia / Tutti i campi dell’anagrafica [[IDCliente]], [[Codice]], [[Ragsoc]],

Page 63: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

63/67

Workflow IDelenco, Elenchi.NoteEsterne, NoteEsterneOperatore, Elenchi.NoteInterne AS NoteInterneOperatore, Elenchi.DataUltimoContatto Elenchi.DataChiusura, Elenchi.DataRecall, Motivi.TipoMotivo, Motivi.Descrizione (descrizione della campagna corrente), Motivi.IDMotivo, Motivi.IDClienteNessuno, Motivi.NumeriTelefonici, Motivi.NumeriTelefoniciInoltro, OperatoreTLMK, CognomeOperatoreTLMK, NomeOperatoreTLMK, Elenchi_Stati.DescrizioneStato AS StatoMotivo, Portafogli.Portafoglio AS Portafoglio1 Portafogli1.Portafoglio AS Portafoglio2, Agente1, Agente2 Elenchi.Val1, Elenchi.Val2, Elenchi.Val3, Elenchi.Val4 Elenchi.EFlag1, Elenchi.EFlag2, Elenchi.EFlag3, Elenchi.EFlag4 Elenchi.Priorita + tabella sotto

[[IDMotivo]],

Configurazione Analisi e Reporting

[[FiltroElenchi]], [[FiltroTelefonate]], [[FiltroClienti]], [[FiltroOrdini]] ed i relativi campi che rappresentano il filtro in forma descrittiva: [[DescrizioneFiltroClienti]] [[DescrizioneFiltroOrdini]] [[DescrizioneFiltroElenchiTelefonate]] A seconda dei criteri di filtro impostati alcuni di questi potrebbero non essere disponibili. Per utilizzarli occorre scrivere una query SQL inserendoli nella clausola WHERE, questi verranno sostituiti con i filtri effettivamente impostati. Ad es. SELECT IDElenco FROM Elenchi WHERE [[FiltroElenchi]] AND [[FiltroTelefonate]] Per richiamare valori di una colonna, rispetto alla riga selezionata, all'interno delle griglia utilizzare : ||nomecolonna||. Per richiamare la pagina di Drill Down impostare nella griglia chiamante la seguente action: 'RisultatoRicerca.aspx?Modality=Dettaglio' + tabella sotto

[[DescrizioneFiltroClienti]] [[DescrizioneFiltroOrdini]] [[DescrizioneFiltroElenchiTelefonate]] [[NomeUtente]], [[IDAgente]]

Page 64: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

64/67

6.3 Altra possibilità ||nomecolonna||

All’interno del Simple# è possibile sostituire anche i valori renderizzati dalle griglie mediante l’utilizzo della sintassi ||nome colonna||. Esempio

Page 65: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

65/67

7. Appendice A: Linked Server A volte è necessario lanciare delle query le cui join sono su tabelle che stanno su databases diversi o ancora su piattaforme diverse; con SQL Server è possibile fare questo grazie al comando openquery che di fatto restituisce una tabella proveniente da una query eseguita su un altro server, la query può essere anche molto complessa, l'importqante è che sia corretta per i DBMS sui quali si lancia, quindi se la query deve interrogare un DB2 bisogna utilizzare le il dialetto del DB2 (rispettivamente Oracle se ci colleghiamo ad un DBMS Oracle).

La chiave di tutto è sfruttare i linked server di SQL Server. E' possibile quindi fare delle join tra tabelle SQL Server ed altre tabelle appartenente a databases completamente diversi come DB2 o Oracle o addirittura fogli Excel. I passi standard principali da seguire sono:

7.1 Creazione di un Linked Server

Visto che quasi tutti hanno una dimestichezza con l'ODBC è conveniente creare prima una connessione ODBC con la fonte dati da interrogare per poi creare il linked Server in modo molto semplice a partire da una fonte dati ODBC. I linked server possono essere creati a partire dall'Enterprise Manager o dal Query Analizer tramite la stored procedure sp_addlinkedserver la cui sintassi Transact-SQL è la seguente:

sp_addlinkedserver [ @server = ] 'server' [ , [ @srvproduct = ] 'product_name' ] [ , [ @provider = ] 'provider_name' ] [ , [ @datasrc = ] 'data_source' ] [ , [@location =] 'location' ] [ , [ @provstr = ] 'provider_string' ] [ , [ @catalog = ] 'catalog' ]

Argomenti

[ @server =] 'server' è il nome del linked Server che si vuole creare e che verrà utilizzato successivamente per la openquery o del server in caso di un altro SQL Server.

[ @srvproduct = ] 'product_name', Nome del prodotto dell'origine dati OLE DB che si vuole aggiungere come linked server.

Se è uguale a SQL Server, non è necessario specificare gli argomenti provider_name, data_source, location, provider_string e catalog.

[ @provider = ] 'provider_name' Nome del provider, vedere la tabella inserita dopo.

[ @datasrc = ] 'data_source' Nome dell'origine dati.

[ @provstr = ] 'provider_string' Stringa di connessione, specifica per il provider ODBC.

[ @catalog = ] 'catalog' Nome del catalogo del database (solo per DB2).

Questa è la tabella riepilogativa che può essere molto utile per creare linked Server.

Page 66: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

66/67

Origine dati OLE DB remota

Provider OLE DB

product_name provider_name data_source location 'provider_string' catalog

SQL Server Provider OLE DB Microsoft per SQL Server

SQL Server (predefinito)

- - - - -

SQL Server Provider OLE DB Microsoft per SQL Server

SQL Server SQLOLEDB Nome di rete di SQL Server (per l'istanza predefinita)

- - Nome di database (facoltativo)

SQL Server Provider OLE DB Microsoft per SQL Server

- SQLOLEDB Servername\instancename (per un'istanza specifica)

- - Nome di database (facoltativo)

Oracle Provider Microsoft OLE DB per Oracle

Qualsiasi prodotto

MSDAORA Alias SQL*Net per database Oracle

- - -

Access/Jet Provider Microsoft OLE DB per Jet

Qualsiasi prodotto

Microsoft.Jet.OLEDB.4.0 Percorso completo del file di database Jet

- - -

Origine dati ODBC

Provider Microsoft OLE DB per ODBC

Qualsiasi prodotto

MSDASQL DSN di sistema di origine dati ODBC

- - -

Origine dati ODBC

Provider Microsoft OLE DB per ODBC

Qualsiasi prodotto

MSDASQL - - stringa di connessione ODBC

-

File system Provider Microsoft OLE DB per Servizio indicizzazione

Qualsiasi prodotto

MSIDXS Nome del catalogo del Servizio di indicizzazione

- - -

Foglio di calcolo di Microsoft Excel

Provider Microsoft OLE DB per Jet

Qualsiasi prodotto

Microsoft.Jet.OLEDB.4.0 Percorso completo del file Excel

- Excel 5.0 -

Database IBM DB2

Provider OLE DB per DB2

Qualsiasi prodotto

DB2OLEDB - - Vedere la documementazione del provider OLE DB per DB2

Nome del catalogo del database DB2

Maggiori approfondimenti sulla creazione dei linked server possono essere trovati sull'help on line di SQL Server - http://msdn2.microsoft.com/it-it/library/ms190479.aspx .

Le autorizzazioni di esecuzione vengono date agli amminsitratori del DBMS, questo di default chiaramente possono essere attribuite anche ad altri membri.

Page 67: Personalizza come vuoi con grande SEMPLICITA’intranet.siseco.it/crmhelp/doc/crm24/CRM24 - Simple Sharp 2.0.pdf · Personalizza come vuoi con grande ... Impostare nell’home page

67/67

7.1.1 Eseguire la seguente query T-SQL

select tabellaSQLServer.campo1, X.campo2, X.campo3 from tabellaSQLServer join openquery(nomeLinkedServer, 'select * from AltraTabella where Condizione=1') X on tabellaSQLServer.campoSQLServer = X.campoAltraTabella

Dove tabellaSQLServer è il nome della tabella residente nel database SQL Server, nomelinkedserver è il nome del linke dserver cha abbiamo creato precedentemente, AltraTabella è il nome della tabella presente nel database NON SQL Server, campoSQLServer e campoAltraTabella sono i rispettivi campi su cui fare la join.

Da tenere presente che dovendo fare un esempio si è scelti la query più semplice, ma nulla vieta di lanciare sul server remoto query complesse con selezioni particolari di campi e join con diverse tabelle del database SQL Server.

Importante, però, è tenere presente che SQL Server scarica TUTTI i record individuati nella query remota in una tabella temporanea, quindi evitare di fare query molto generiche.

7.2 Un esempio

Per creare il linked Server sulla base di una connessione ODBC:

sp_addlinkedserver @server ='mionuovolinkedserver', @srvproduct = 'nomeacaso', @provider = 'MSDASQL', @provstr = 'DSN=miafonteodbc;UID=sa;PWD=miapassword' e richiamo il linkedserver appena creato select * from openquery(mionuovolinkedserver,'select * from tabella1')

NB: I linked server possono essere agevolmente creati anche mediante il Management Studio di Sql Server.