Passa al contenuto principale

DEFDIAGRAMENTITY

DesktopResponsive

Consente di definire un grafico (relazionale o non relazionale) basato sulla visualizzazione di entità.

La fonte dati del controllo è una collezione di tipo BC_VID_DGR_ENT, che a sua volta contiene una seconda collezione di tipo BC_VID_DGR_ENT_ELEM per ogni entità.

La modifica sulla collezione BC_VID_DGR_ENT (aggiunta o rimozione degli elementi) si riflette automaticamente sul componente grafico.

suggerimento

Nel caso in cui si debbano eseguire modifiche massive è possibile sospende l'aggiornamento del controllo video tramite la specifica '@SUSPENDEDVIDREFRESH.

Parametri

ParametroDefinizioneI/OInformazioniVersione traduttoreSMP
NOMEInteroINObbligatorioDesktopResponsive
RETINObbligatorioDesktopWebMobile
POSINDesktop
DIMINDesktopWebMobile
IDStringaINDesktopResponsive
COLLEZIONEDATICollezione di classiObbligatorioDesktopResponsive
MODIFICABILEBooleanoINDesktop
AZIONEAzioneINDesktop
AZIONECLICKAzioneINDesktop
AZIONEESPANDIAzioneINDesktop
DETTAGLIOCONNESSIONEAzioneINDesktop
MULTISELEZIONEEnumerazioneINDesktop
ORIENTAMENTOEnumerazioneINDesktop
VISUALIZZAZIONEEnumerazioneINDesktop
TIPOLOGIAEnumerazioneINDesktopWebMobile
GRIDINDesktop
STACKINDesktop
EXPANDERINDesktop
DOCKINDesktop
PERSONALIZZABILEInteroINBinarioDesktop
LINKTOINDesktop

NOME

InteroINInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopResponsive

Consente di definire il nome del controllo.

RET

INInputObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopWebMobile

Consente di definire le coordinate della cella del reticolo da associare al controllo, allo scopo di gestire gli spostamenti sulla videata.

POS

INInputValore non necessarioValore non necessarioDesktop

Consente di definire la posizione del controllo rispetto al contenitore.

DIM

INInputValore non necessarioValore non necessarioDesktopWebMobile

Dimensione del controllo.

Consente di indicare l'altezza e la larghezza. Per entrambi è possibile specificare l'unità di misura.

DIM[Altezza [UnitàMisura], Larghezza [UnitàMisura]]

note

L'unità di misura può essere: 'C' per il posizionamento a caratteri e 'P' per il posizionamento in pixel. L'indicazione è opzionale, se omesso si assume 'C' come default.

ID

StringaINInputValore non necessarioValore non necessarioDesktopResponsive

Consente di definire l'identificativo univoco del controllo.

note

Viene utilizzato dall'ambiente per gestire le personalizzazioni effettuate durante l'esecuzione del programma.

COLLEZIONEDATI

Collezione di classiObbligatorioObbligatorioValore non necessarioValore non necessarioDesktopResponsive

Consente di definire le entità da visualizzare.

MODIFICABILE

BooleanoINInputValore non necessarioValore non necessarioDesktop

Consente di definire se il diagramma è modificabile.

AZIONE

AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la callback richiamata quando un'entità viene selezionata.

AZIONECLICK

AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la callback richiamata dal click singolo su un'entità.

AZIONEESPANDI

AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la callback richiamata quando un'entità viene espansa.

DETTAGLIOCONNESSIONE

AzioneINInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire la callback richiamata quando viene eseguita una richiesta di dettagli sulla connessione.

MULTISELEZIONE

EnumerazioneINInputValore non necessarioValore non necessarioDesktop

Consente di abilitare o disabilitare la multiselezione sul diagramma (solo per gli elementi delle entità).

Parametro enumerato, può assumere i seguenti valori:

ValoreDescrizione
DIAGRAMMA_NESSUNA
DIAGRAMMA_TOTALE
DIAGRAMMA_ENTITA

ORIENTAMENTO

EnumerazioneINInputValore non necessarioValore non necessarioDesktop

Consente di definire l'orientamento del diagramma.

Parametro enumerato, può assumere i seguenti valori:

ValoreDescrizione
DIAGRAMMA_VERTICALEOgni elemento figlio viene inserito su una nuova riga all'interno del diagramma, le entità figlie dello stesso elemento sono posizionati sulla medesima ma riga su colonne differenti
DIAGRAMMA_ORIZZONTALEOgni elemento figlio viene inserito su una nuova colonna all'interno del diagramma, le entità figlie dello stesso elemento sono posizionati sulla medesima ma colonna su righe differenti.

VISUALIZZAZIONE

EnumerazioneINInputValore non necessarioValore non necessarioDesktop

Consente di definire la dimensione iniziale e il layout delle entità.

Parametro enumerato, può assumere i seguenti valori:

ValoreDescrizione
DIAGRAMMA_PICCOLO150*50 pixel
DIAGRAMMA_MEDIO150*120 pixel
DIAGRAMMA_GRANDE150*180 pixel

TIPOLOGIA

EnumerazioneINInputValore non necessarioValore non necessarioDesktopWebMobile

Consente di definire la tipologia del diagramma da visualizzare.

Parametro enumerato, può assumere i seguenti valori:

ValoreDescrizione
DATABASEDefinisce un diagramma di tipo database
ENTITADefinisce un diagramma di tipo entita

GRID

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire l'attached property riferita ad un pannello grid.

STACK

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire l'attached property riferita ad un pannello stack.

EXPANDER

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire l'attached property riferita ad un pannello expander.

DOCK

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di indicare se il controllo deve occupare tutto lo spazio del DockPanel in verticale e/o in orizzontale.

PERSONALIZZABILE

InteroINInputBinarioBinarioValore non necessarioValore non necessarioDesktop

Consente di definire se il controllo grafico è personalizzabile dall'utente in fase di runtime.

Parametro con valori ammessi, si possono utilizzare i seguenti valori:

ValoreDescrizione
0No
1Si

LINKTO

INInputValore non necessarioValore non necessarioDesktop
SottoParametri

Consente di definire un legame tra due controlli esistenti all'interno della stessa videata.

Metodi

MetodoDescrizioneSMP
AdattaEntitaAdatta la dimensione dell'entità al numero di campi presentiDesktop
AggiornaEntitaAggiorna l'elemento grafico con l'idenitificativo passatoDesktop
Aggiungi_ifAggiunge un blocco ifDesktop
Aggiungi_switchAggiunge un blocco switch al diagrammaDesktop
Aggiungi_WhileAggiunge un blocco while al diagrammaDesktop
AllineaAllinea i nodi selezionatiDesktop
AnteprimaPaginaMostra un'anteprima di stampa della pagina. Le dimensioni sono definite dagli argomenti del metodoDesktop
Copia_Su_ClipboardCopia il diagramma in memoriaDesktop
DistribuisciImposta la stessa dimensione a tutti gli elementi attualmente selezionatiDesktop
Get_Campi_SelezionatiRestituisce la classe riferita al campo selezionatoDesktop
Get_ElementoRestituisce la classe riferita all'elemento selezionatoDesktop
Get_Entita_ConnessioneRestituisce le entita che fanno parte della connessione selezionata (di cui si sta richiedendo il dettaglio)Desktop
Get_Num_Entita_ConnessioneRestituisce il numero dei link attualmente selezionatiDesktop
Get_Numero_Campi_SelezionatiRestituisce il numero di entità selezionateDesktop
Get_Numero_Campi_Selezionati_TotaliRestituisce il numero di entità selezionateDesktop
Get_Numero_ElementiRestituisce il numero di entità selezionateDesktop
Get_SelezionatiRestituisce la lista degli identificativi di tutti gli elementi selezionatiDesktop
NascondiAnteprimaPaginaNasonde l'anteprima di stampa della pagina.Desktop
PosizionaSuPosizionati su un dato elemento all'interno del diagrammaDesktop
PosizionaSuCampoPosizionati sul campo di un dato elemento all'interno del diagrammaDesktop
RedoApplica un'operazione precedentemente annullataDesktop
Remove_Entita_ConnessioneRimuove il link attualmente selezionatoDesktop
Riposizionamento_AutomaticoRiposiziona senza personalizzazioni tutti gli elementi del diagrammaDesktop
Salva_ImmagineSalvataggio del diagramma come immagineDesktop
SET_AVANTIPorta l'elemento selezionato in avanti di una posizioneDesktop
Set_EditabileDefinisce se il diagramma è modificabile o menoDesktop
Set_Entita_ConnessioneModifica la connessione specificaDesktop
SET_INDIETROPorta l'elemento selezionato indietro di una posizioneDesktop
Set_link_automaticiIndica se i link devono essere rivaluttati in modo automatico o menoDesktop
Set_Paste_ModeDefinisce se il diagramma è in fase di incollaggio degli elementiDesktop
SET_PRIMO_PIANOPorta l'elemento selezionato in primo pianoDesktop
SET_SULLO_SFONDOPorta l'elemento selezionato sullo sfondoDesktop
Set_ZoomImposta un fattore di zoomDesktop
StampaStampa diagrammaDesktop
StessaDimensioneImposta la stessa dimensione a tutti gli elementi attualmente selezionatiDesktop
StileSfondoImposta lo stile dello sfondoDesktop
TipoSfondoImposta il tipo di sfondo da applicare al diagrammaDesktop
UndoAnnulla l'operazione eseguitaDesktop

Esempi

Esempio definizione basedati

 '@DEFVID DIM[35,140] NOME[Videata] ID["IDVIDEATA"] TIT["Titolo Videata"]

'@DEFGRIDPANEL NOME[GridPanel] ID["GridPanel"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]

'@DEFDIAGRAMENTITY NOME[DIAG] ID["IDDIAG"] RET[1,1] POS[1,1] DIM[10,150] _
ORIENTAMENTO[#DIAGRAMMA_VERTICALE] _
COLLEZIONEDATI[CollezioneDiagrammi] MODIFICABILE[0] _
VISUALIZZAZIONE[#DIAGRAMMA_PICCOLO] GRID[COL[2] RIGA[2]]

'@ENDGRIDPANEL NOME[GridPanel]

'@RUNVID

...
'@SRP Load()

InitDiagramma()

Return

...
'@SRP InitDiagramma()

Diagramma.Id="ABC0001"
Diagramma.Nome="Testata"
Diagramma.IdPadre=""

CollezioneElementi => Diagramma.Elem
CollezioneElementi.Clear()
Elemento.Clear():Elemento.Id="IDElemento":Elemento.Nome="Testata documento"
CollezioneElementi.AggiungiElemento(Elemento [INOUT])
CollezioneDiagrammi.AggiungiEntita(Diagramma [INOUT], BCTD_TAB_REL_CARDINALITA.UnoUno, "", #False, "", "Label_Start", "Label_End")
CollezioneElementi.Release()

Diagramma.Id="ABC9876"
Diagramma.Nome="Righe"
Diagramma.IdPadre="ABC0001"

CollezioneElementi => Diagramma.Elem
CollezioneElementi.Clear()
Elemento.Clear():Elemento.Id="IDElemento":Elemento.Nome="Righe corpo"
CollezioneElementi.AggiungiElemento(Elemento [INOUT])
CollezioneDiagrammi.AggiungiEntita(Diagramma [INOUT], BCTD_TAB_REL_CARDINALITA.UnoUno, "", #False, "", "Label_Start", "Label_End")
CollezioneElementi.Release()

Diagramma.Id="ABC9875"
Diagramma.Nome="Clienti"
Diagramma.IdPadre="ABC0001"

CollezioneElementi => Diagramma.Elem
CollezioneElementi.Clear()
Elemento.Clear():Elemento.Id="IDElemento":Elemento.Nome="Lista clienti"
CollezioneElementi.AggiungiElemento(Elemento [INOUT])
CollezioneDiagrammi.AggiungiEntita(Diagramma [INOUT], BCTD_TAB_REL_CARDINALITA.UnoUno, "", #False, "", "Label_Start", "Label_End")
CollezioneElementi.Release()

Return

Esempio definizione relazionale generico

'@DEFVID DIM[35,140] NOME[VideataDgmGenerico] ID["IDVIDEATA"] TIT["Titolo Videata"]

'@DEFGRIDPANEL NOME[GridPanelDgmGenerico] ID["GridPanel"] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[34] LAYOUT[#FISSO]] _
RIGA[ALTEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]] _
COLONNA[LUNGHEZZA[139] LAYOUT[#DINAMICO]] _
COLONNA[LUNGHEZZA[0.5] LAYOUT[#FISSO]]

'@DEFDIAGRAMENTITY NOME[DIAGGenerico] ID["IDDIAG"] RET[1,1] POS[1,1] DIM[1,1] _
ORIENTAMENTO[#DIAGRAMMA_ORIZZONTALE] _
COLLEZIONEDATI[CollezioneDiagrammi] MODIFICABILE[1] _
AZIONE[GoSub DiagramCallBack] VISUALIZZAZIONE[#DIAGRAMMA_PICCOLO] _
GRID[COL[2] RIGA[2] COLDIN[1] RIGADIN[1]] TIPOLOGIA[#ENTITA]

'@ENDGRIDPANEL NOME[GridPanelDgmGenerico]

'@RUNVID

...
'@SRP Load1()

InitDiagrammaRelGenerico()

Return

...
'@SRP InitDiagrammaRelGenerico()

' Definizione stili
'@DEFSTYLE STILE["base"] COLORESFONDO[BIANCO] COLOREBORDO[NERO] DIMBORDO[1] COLORETESTO[NERO]

'@DEFSTYLE STILE["redline"] COLORESFONDO[ROSSO]
'@DEFSTYLE STILE["violetline"] COLORESFONDO[VIOLA]
'@DEFSTYLE STILE["yellowline"] COLORESFONDO[GIALLO]

' Definizione variabili per creazione diagrammi e elementi
DIM dgrId[STRING]
DIM dgrName[STRING]
DIM dgrParent[STRING]
DIM dgrColor[STRING]

DIM elemId[STRING]
DIM elemName[STRING]

' Creazione diagrammi
Diagramma.Clear()
CollezioneElementi => Diagramma.Elem
CollezioneElementi.Clear()
dgrId="IDDiagram1":dgrName="Ordine Cliente":dgrParent="":dgrColor="base"
elemId="1":elemName="2016.1.125 del 15/09/2016":AddElement(elemId, elemName)
elemId="2":elemName="Sistemi SpA" :AddElement(elemId, elemName)
AddDiagram(dgrId, dgrName, dgrParent, dgrColor)
CollezioneElementi.Release()

Diagramma.Clear()
CollezioneElementi => Diagramma.Elem
CollezioneElementi.Clear()
dgrId="IDDiagram2":dgrName="Ordine di Produzione":dgrParent="IDParent":dgrColor="base"
elemId="1":elemName="2016.1.1425 del 16/09/2016":AddElement(elemId, elemName)
elemId="2":elemName="Sistemi SpA" :AddElement(elemId, elemName)
AddDiagram(dgrId, dgrName, dgrParent, dgrColor)
CollezioneElementi.Release()

Return

...
'@SRP AddDiagram(DgrId[STRING] [IN], DgrName[STRING] [IN], DgrParent[STRING] [IN], DgrColor[STRING] [IN])

' Popolamento diagrammi
Diagramma.Id = DgrId
Diagramma.Nome = DgrName
Diagramma.IdPadre = DgrParent
Diagramma.Colori = DgrColor

CollezioneDiagrammi.AggiungiEntita(Diagramma [INOUT], BCTD_TAB_REL_CARDINALITA.UnoUno, DgrColor, #False, "", "Label_Start", "Label_End")

Return

...
'@SRP AddElement(ElemId[STRING] [IN], ElemName[STRING] [IN])

' Popolamento elementi
Elemento.Clear()

Elemento.Id = ElemId
Elemento.Nome = ElemName

CollezioneElementi.AggiungiElemento(Elemento [INOUT])

Return