...
Bloc de code |
---|
{ "Type": "infinityGraphSource", "Mapping": { "AbscissLabelField": "abscissLabel", "AbscissValueField": "abscissValue" }, "Module": "gttmdashboard001.dhop", "Function": "art_graph_TopFournisseurs" } |
WIDGET graphique
Nommage : codeModule + '_' + famille + typeWidget + codeWidget + “.widget.json”
par exemple gt_art_graph_TopFournisseurs.widget.json
indique le type de rendu/layout, et les informations d’affichage comme le titre, les libellés, la taille des colonhnes. Sert au binding entre le retour de la fonction diva et le rendu visuel
La balise ‘Label’ contient le nom qui sera affiché à l’utilisateur
Autres balises : ouvrir un widget qui a le même rendu visuel et en copier la structure
Exemple de contenu gt_art_graph_TopFournisseurs.widget.json
Bloc de code | ||
---|---|---|
| ||
{ "Children": { "graphTest": { "Type": "graph", "Title": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "DataSource": "gt_art_graph_AffairesBesoin_Arbo", "Series": [ { "Label": "EvtCrm", "ValueField": "PieValue", "GraphType": "donut" } ] } }, "Label": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "Icon": "chart-line", "Description": "Nombre affaires / opportunités en cours utilisant mon article réparti par type d'arborescence d'affaire", "ColSpan": 6, "RowSpan": 2 } |
WIDGET au format DataReader
Bloc de code |
---|
{
"Children": {
"widgetDatareader": {
"Type": "datareader",
"DataSource": "rc_d2_list_GestionBanq",
"Children": {
"journal": {
"Type": "textbox",
"Label": "Journal de banque"
},
"transmission": {
"Type": "textbox",
"Label": "Transmission bancaire"
},
"dailly": {
"Type": "textbox",
"Label": "Plafond cession Dailly"
},
"frais": {
"Type": "textbox",
"Label": "Frais d'impayé"
},
"limite": {
"Type": "textbox",
"Label": "Limite de décaissement"
}
}
}
},
"Label": "Gestion bancaire",
"Icon": "list",
"Description": "Gestion bancaire",
"ColSpan": 5,
"RowSpan": 1
} |
Harmony : code correspondant
Bloc de code |
---|
Function Char d2_List_GestionBanq(DataSourceName, ZoomId, ZoomPage, ZoomEntityId)
1 DataSourceName S
1 ZoomId L
1 ZoomPage S
1 ZoomEntityId L
Record ddsys.dhsd ListWidget Widget
RecordSQL rcrsebctab.dhoq COMPTEBQE RS_CompteBqe
1 Cond S
1 idReader L
BeginF
Load_C3_ID(ZoomEntityId, allcolumns = true)
C3 = Get_C3_Record()
widget = InitListWidget()
ReaderOpen_CompteBqe(Rs_CompteBqe, IdReader)
CC_ClearAllCondition(Rs_CompteBqe)
Cond = ' '
Rs_CompteBqe.Where.Equal_Cpt(C3.CPT) | Rs_CompteBqe.Where.Equal_Cpt.AddAndCondition(Cond)
Rs_CompteBqe.Where.AddCondition('Iban', Cond)
ReaderSelect_CompteBqe(Rs_CompteBqe, IdReader)
ReaderNext_CompteBqe(Rs_CompteBqe, IdReader)
ListWidgetNewRow(widget)
ListWidgetAddToCurrentRow(widget, "journal", NoSpaces(Rs_CompteBqe.JNL))
ListWidgetAddToCurrentRow(widget, "transmission", NoSpaces(Rs_CompteBqe.EmeNo))
ListWidgetAddToCurrentRow(widget, "dailly", Rs_CompteBqe.DaillyMt)
ListWidgetAddToCurrentRow(widget, "frais", Rs_CompteBqe.MtImp)
ListWidgetAddToCurrentRow(widget, "Limite", Rs_CompteBqe.DecaissMt)
ReaderClose_CompteBqe(Rs_CompteBqe, IdReader)
FReturn CreateListWidget(widget)
EndF |
si, dans certain cas, le Widget peut ne rien afficher (exemple : un Widget lié aux comptes de banques)
Bloc de code |
---|
if NoSpaces(Rs_CompteBqe.JNL) <> ''
if Rs_CompteBqe.Dev <> ' '
Dev = Rs_CompteBqe.Dev
else
Dev = 'EUR'
endif
ListWidgetNewRow(widget)
ListWidgetAddToCurrentRow(widget, "journal", NoSpaces(Rs_CompteBqe.JNL))
ListWidgetAddToCurrentRow(widget, "transmission", ConvertAmountToString(Rs_CompteBqe.DaillyMt) & ' ' & Dev)
ListWidgetAddToCurrentRow(widget, "dailly", ConvertAmountToString(Rs_CompteBqe.DaillyMt) & ' ' & Dev)
ListWidgetAddToCurrentRow(widget, "frais", ConvertAmountToString(Rs_CompteBqe.MtImp) & ' ' & Dev)
ListWidgetAddToCurrentRow(widget, "Limite", ConvertAmountToString(Rs_CompteBqe.DecaissMt) & ' ' & Dev)
endif |
Fichier JSON catalogue
Un catalogue de widgets est un fichier JSON qui liste les widgets disponibles dans ce catalogue.
...