IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques & Frameworks Discussion :

Comportement du Dataview [ECharts]


Sujet :

Bibliothèques & Frameworks

  1. #1
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut Comportement du Dataview
    Bonjour à tous,

    j'ai un truc bizarre avec le dataview : il affiche bien mes données et les boutons "Retour" et "Rafraîchir".
    Quand je clique sur "Retour", il revient bien au graphe, mais quand je clique sur "Rafraîchir", il revient aussi au graphe mais en me supprimant l'affichage d'une série.
    Il faut alors restaurer le graphe.

    Voici le code du graphe.
    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    136
    137
    138
    139
    140
    141
    142
    143
    144
    145
    146
    147
    148
    149
    150
    151
    152
    153
    154
    155
    156
    157
    158
    159
    160
    161
    162
    163
    164
    165
    166
    167
    168
    169
    170
    171
    172
    173
    174
    175
    176
    177
    178
    179
     
    var HG_Chart_C2 = echarts.init(document.getElementById("lfpo_hg"));  //
     
    val = ($("#lfpo_hg").width() / 60);
    padding_array = [0, 0, 0, val];
     
    var HG_ChartOpt = {
    	backgroundColor: P_CoulFond,
    	color: P_TAB_Colors,
     
    	P_Debut, // Début du paramètrage des graphique (police, animation, etc...)
    	grid: P_Grid,		// Distance between grid component and the right side of the container
    //			toolbox: P_Toolbox,
    	legend: P_Legend,
     
    	title: {
    		padding: [15, 0, 0, 0],					// Title space around content // [haut, droit, bas, gauche]
    		left: 'center',							// Distance between grid component and the left side of the container
    		text: 'Heures Glissantes LFPO - ' + P_dayInit,
    		textStyle :	{
    			color: '#000',
    			fontStyle: 'italic',
    			fontWeight: 'bold',
    			fontFamily: 'sans-serif',
    			fontSize: 20,
    		},
    	},
    	xAxis: {									// The X axis in Cartesian (rect.) coordinate
    		axisLine: P_XAxisLine,
    		axisTick: P_XAxisTick,
    		splitLine: P_XSplitLine,		// True => quadrillage sur le graphe
    		splitArea: P_XSplitArea, 	// Permet de mettre un fond de couleurs différentes
    		type: 'category',
    		name: 'Tranches Horaires (TU)',
    		nameLocation: 'center',
    		nameTextStyle: {
    			padding: WPaddingTexte_xAxis,
    			fontWeight: 'bold',
    			color: P_TextColor,
    			fontSize : P_AxeTextSize
    		},
    		max: 'dataMax',
    		position: 'bottom',
    		boundaryGap: true,
    		axisLabel: {
    			interval: 59, 						// Définit le nombre d'intervals sur xAxis => 59 car 60 val. par heure
    			rotate:0,
    			margin: 10,
    			showMinLabel: true,
    			align : 'left',
    			padding: padding_array, 			// [haut, droit, bas, gauche]
    			color: 'rgb(050,050,050)'
    		},
    		data: TranchesHoraires_X
    	},
    	yAxis: {
    		axisLine: P_YAxisLine,
    		axisTick: P_YAxisTick,
    		type: 'value',
    		name: 'Mouvements',
    		nameLocation: 'center',
    		nameRotate: 90,
    		nameTextStyle: {
    			padding: WPaddingTexte_yAxis,
    			fontWeight: 'bold',
    			color: P_TextColor,
    			fontSize : P_AxeTextSize
    		},
    		axisLabel: { 							// Settings related to axis label
    			color: 'rgb(070,070,070)'
    		}
    	},
    	toolbox: {									// Cartouche en haut à droite
    		show: true,
    		padding: [5, 25, 0, 0],	// [haut, droit, bas, gauche]
    		itemSize: 17,
    		itemGap: 10,
    		showTitle: true,		
    		feature: {
    			restore: {
    				show: true,
    				title: 'Rechargement'
    			},
    			magicType: {
    				type: ['line', 'bar'],
    				title: {
    					line: 'Ligne',
    					bar: 'Histo.'
    				}
    			},
    			saveAsImage: {
    				title:'Sauvegarde'
    			},
    			dataView: {
    				show: true, // Affiche ou non l'icône pour afficher les données utilisées.
    				readOnly: false,
    				title: 'Données',
    				lang: ['Données', 'Retour', 'Rafraîchir'], // Bug sur le bouton rafraichir qui supprime la dernière série !
    				optionToContent: function(opt) {
    					var axisData = opt.xAxis[0].data;
    					var series = opt.series;
    					var table = '<table style="width:70%;text-align:center;background-color:#fcf3cf "><tbody><tr>'
    								 + '<td>N° Jour:</td>'
    								 + '<td>' + "Nb. Mvts. " + series[2].name + '</td>'
    								 + '<td>' + "Nb. Mvts. " + series[1].name + '</td>'
    								 + '<td>' + "Nb. Mvts. " + series[0].name + '</td>'
    								 + '</tr>';
    					for (var i = 0, l = axisData.length; i < l; i++) {
    						table += '<tr>'
    								 + '<td>' + "" + '</td>'
    								 + '<td>' + series[2].data[i] + '</td>'
    								 + '<td>' + series[1].data[i] + '</td>'
    								 + '<td>' + series[0].data[i] + '</td>'
    								 + '</tr>';
    					}
    					table += '</tbody></table>';
    					return table;
    				}
    			}
    		}
    	},
    	tooltip: {
    		show: true,
    		trigger: 'axis', 						// Triggered by axes.
    		axisPointer: {
    			type: 'line',
    			label : {
    				formatter: function (params) {
    				return Interv[parseInt(params.value) * 60]; // * 60 => on se déplace de 60 dans le tableau de 1440 items
    				}
    			},
    			lineStyle: {
    				width: 1 						// Epaisseur de la ligne verticale
    			}
    		}
    	},
    	series : [
    		{
    			type: 'line',
    			name: 'Nb Total :' + "\n" + WTot_Gen,					// Series name used for displaying in tooltip and filtering with legend
    			symbolSize: 7,
    			showSymbol: false,					// Whether to show symbol. It would be shown during tooltip hover
    			lineStyle: {
    				width: 1,
    				type: 'solid' //'dotted' / 'dashed'
    			},
    			smooth: false,						// Permet de lisser ou non les courbes
    			data: SommeTH_Y
    		},
    		{
    			type: 'line',
    			name: 'Nb Arrivée :' + "\n" + WTot_Arr,					// Series name used for displaying in tooltip and filtering with legend
    			symbolSize: 7,
    			showSymbol: false,					// Whether to show symbol. It would be shown during tooltip hover
    			lineStyle: {
    				width: 1,
    				type: 'solid' //'dotted' / 'dashed'
    			},
    			smooth: false,						// Permet de lisser ou non les courbes
    			data: TotalARR_Y
    		},
    		{
    			type: 'line',
    			name: 'Nb Départ :' + "\n" + WTot_Dep,					// Series name used for displaying in tooltip and filtering with legend
    			symbolSize: 7,
    			showSymbol: false,					// Whether to show symbol. It would be shown during tooltip hover
    			lineStyle: {
    				width: 1,
    				type: 'solid' //'dotted' / 'dashed'
    			},
    			smooth: false,						// Permet de lisser ou non les courbes
    			data: TotalDEP_Y
    		}
    	]
    };
     
    HG_Chart_C2.setOption(HG_ChartOpt);
     
    var HG_Chart_C2 = echarts.init(document.getElementById("lfpo_hg"));  //

    J'espère que je suis suffisamment clair dans mes explications du souci

  2. #2
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Bonjour,
    Lorsque tu places l'option de dataView.readOnly à false, le bouton rafraichir va apparaître compte tenu que cela sous entend que tu autorises la modification des données dynamiquement.

    Lorsque tu fais un affichage personnalisé de tes données tu shuntes la méthode habituelle de faire de Echarts qui affiche les données suivant un certain formatage dans une <textarea> et qui utilise ce formatage pour la récupération des données.

    Si tu souhaites modifier, réellement, tes données via ta nouvelle interface, celle que tu définies dans l'option dataView.optionToContent, il te faut également définir la méthode de récupération dans l'option dataView.contentToOption.

    Nota : prend l'habitude de regarder dans la console, il doit bien y avoir un message.

  3. #3
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Bonjour et merci.

    En fait, non, je ne souhaite pas modifier les données utilisées mais seulement donner à l'utilisateur la possibilité des les visualiser avec une présentation plus sympa qu'un simple <textarea>.

    Donc, je ne comprends pas du tout à quoi peut servir le contentToOption et encore moins ce que je dois mettre dedans ???
    (Ca, c'est pour ma compréhension personnelle )

    Mais donc, effectivement en mettant readOnly: true, je n'ai plus le bouton "Rafraîchir" et donc plus de souci J'étais complètement passé à côté de cette option !

    Par contre, ça m'amène à une autre question : est-ce qu'il est possible, à partir de ce point, de mettre en place une procédure permettant d'exporter les données affichées en CSV par l'ajout d'un bouton "Exporter", par exemple ?
    Ou est-ce quj'il va falloir que je refasse le tout à part ?

  4. #4
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Donc, je ne comprends pas du tout à quoi peut servir le contentToOption et encore moins ce que je dois mettre dedans ???
    (Ca, c'est pour ma compréhension personnelle )
    optionToContent permet de transférer les valeurs de tes séries vers du HTML à ta convenance.
    contentToOption comme le laisse sous entendre son nom sert à faire l'inverse, transférer les valeurs contenues/modifiées dans le HTML que tu as crée vers les données de tes séries.


    Mais donc, effectivement en mettant readOnly: true, je n'ai plus le bouton "Rafraîchir" et donc plus de souci J'étais complètement passé à côté de cette option !
    La documentation est pourtant bien faite, mais peut être faut-il prendre soin de la lire


    Par contre, ça m'amène à une autre question : est-ce qu'il est possible, à partir de ce point, de mettre en place une procédure permettant d'exporter les données affichées en CSV par l'ajout d'un bouton "Exporter", par exemple ?
    Ou est-ce quj'il va falloir que je refasse le tout à part ?
    Tu peux créer tes propres contrôles, c’est aussi dans la documentation : toolbox.feature.

  5. #5
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    ...
    La documentation est pourtant bien faite, mais peut être faut-il prendre soin de la lire
    Bon, ça va, hein

    Citation Envoyé par NoSmoking Voir le message
    Tu peux créer tes propres contrôles, c’est aussi dans la documentation : toolbox.feature.
    Tu es sur ? J'ai plutôt l'impression que c'est fixe, on a juste : saveAsImage: {...},restore: {...},dataView: {...},dataZoom: {...},magicType: {...},brush: {...}, ?

    En fait, st-ce qu'il est possible de mettre les boutons ajouter DANS le dataView, au même niveau que "Retour", par exemple ?

    (Tu m'es vraiment d'une aide précieuse, merci très très très beaucoup )

  6. #6
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Tu es sur ? J'ai plutôt l'impression que c'est fixe, on a juste : saveAsImage: {...},restore: {...},dataView: {...},dataZoom: {...},magicType: {...},brush: {...}, ?
    Je te mets ici la source de la page de la documentation en question
    Besides the tools we provide, user-defined toolbox is also supported.

    Notes: User-defined tool name could only start with my, like myTool1 and myTool2 in the below example:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    {
        toolbox: {
            feature: {
                myTool1: {
                    show: true,
                    title: 'custom extension method 1',
                    icon: 'path://M432.45,595.... ... 6,591.891zM421.146,591.891',
                    onclick: function (){
                        alert('myToolHandler1')
                    }
                },
                myTool2: {
                    show: true,
                    title: 'custom extension method',
                    icon: 'image://http://echarts.baidu.com/images/favicon.png',
                    onclick: function (){
                        alert('myToolHandler2')
                    }
                }
            }
        }
    }
    l'exemple est éloquent !!!


    En fait, st-ce qu'il est possible de mettre les boutons ajouter DANS le dataView, au même niveau que "Retour", par exemple ?
    Ajouter une bouton à coté de celui présent relève de la grosse gymnastique mais tu peux tout à fait faire autrement.

    Il suffit de détourner le bouton rafraîchir.
    • Etape #1 : Mettre l'option dataView.readOnly à false cela fera apparaître le bouton ;
    • Etape #2 : Modifier le nom du bouton en « CSV » par exemple ;
    • Etape #3 : Implémenter la fonction par défaut, dataView.contentToOption qui se produit quand le bouton est activé.

  7. #7
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Ok, j'ai tout compris.

    Maintenant yapuka...

    Avec ton expérience, tu conseillerais plutôt la première ou la deuxième méthode ?

    Heu, un autre petite chose : comment est-ce que je peux capturer l'évènement du click sur le bouton "Retour" ? (Il faut que je réaffiche une div effacée, quand l'utilisateur clique sur ce bouton) ?

  8. #8
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Avec ton expérience, tu conseillerais plutôt la première ou la deuxième méthode ?
    Je dirais celle que tu sens le mieux

    Heu, un autre petite chose : comment est-ce que je peux capturer l'évènement du click sur le bouton "Retour" ? (Il faut que je réaffiche une div effacée, quand l'utilisateur clique sur ce bouton) ?
    Compte tenu de ce nouvel élément je dirais qu'il va falloir que tu mettes les mains dans le cambouis pour attacher des événements aux boutons car visiblement cet élément ne déclenche pas d'action à la fermeture.

  9. #9
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Ouep, j'ai essayé, mais je ne trouve pas comment faire et maintenant, j'ai les doigts plein de cambouis

    Est-ce qu'il y aurait un moyen, alors, de détecter la fermeture de la fenêtre du dataView ?
    Ou encore, le retour sur le graphique ?

    En fait, c'est à cause de la DIV "Autres informations" que j'ouvre dans celle du graphique (cf l'autre sujet)
    Tu m'a conseillé de la traiter par CSS pour la placer où je voulais, ce que j'ai fait, mais le souci, c'est qu'elle reste afficher au dessus de la fenêtre du dataView.
    Je l'ai donc caché à l'ouverture du dataView, mais je n'arrive pas à la réafficher ensuite, donc lorsqu'on clique sur le bouton "Retour" ou à la fermeture de la fenêtre dataView.

    Code javascript : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
    La création dynamique :
    function initHTML(rowID){
    	var html = "";
    	for (var i = 0; i < rowID.length; i++) {
    		html += '<div class="row graph" id='+rowID[i]+'>';
    		html += '</div>';
    	}
    	$('#main').append(html);
    }
     
    function addHTML(rowID, graphArrayID, graphArraySize){
    	var html = "";
    	for (var i = 0; i < graphArrayID.length; i++) {
    		html += '<div class="col-md-'+graphArraySize[i]+'">';
    		html += '<div class="col-md-12 graph-content" id="'+graphArrayID[i]+'"></div>';
    		html += '<div class="CadreInfo" id=Info_'+graphArrayID[i]+'>ici tu mets ce que tu veux';
    		html += '</div>';
    		html += '<div class="col-md-12 graph-loading"><span><i class="fa fa-line-chart fa-lg"></i> Chargement...</span></div>';
    		html += '</div>';
    	}
    	$('#'+rowID).append(html);
    }
     
    Pour écrire dans la DIV : 
    var WTexteInfo = "Pour le " + P_dayInit + " => Total Mvts = " + WTot_Gen + " - Total Arr = " + WTot_Arr + " - Total Dep = " + WTot_Dep;
    $("#Info_lfpg_hg").html('<strong>' + WTexteInfo + '</strong>');
     
    Le dataView : 
    dataView: {
    	show: true, // Affiche ou non l'icône pour afficher les données utilisées.
    	readOnly: false,
    	backgroundColor: '#88ABD9',
    	title: 'Données',
    	lang: ['Données utilisées pour le graphique...', 'Retour', 'Export CSV'], 
    	optionToContent: function(opt) {
    		if (P_Plateforme == "LFPO")
    			{
    				$('#Info_lfpo_hg').css('display','none'); // Effacement de la DIV Info_lfpo_hg
    			}
    		if (P_Plateforme == "LFPG")
    			{
    				$('#Info_lfpg_hg').css('display','none'); // Effacement de la DIV Info_lfpo_hg
    			}
    		if (P_Plateforme == "LFPB")
    			{
    				$('#Info_lfpb_hg').css('display','none'); // Effacement de la DIV Info_lfpo_hg
    			}
    		var axisData = opt.xAxis[0].data;
    		var series = opt.series;
    		var WTable01 = '<div id="ID_Table_Data">';
    		WTable01 = WTable01 + '<table class="table-fill">';
    		WTable01 = WTable01 + '<thead><tr>';
    		WTable01 = WTable01 + '<th class="text-center">Tranches Horaires</th>'
    		WTable01 = WTable01 + '<th class="text-center">' + series[1].name + '</th>';
    		WTable01 = WTable01 + '<th class="text-center">' + series[2].name + '</th>';
    		WTable01 = WTable01 + '<th class="text-center">' + series[0].name + '</th>';
    		WTable01 = WTable01 + '</tr></thead>';
    		WTable01 = WTable01 + '<tbody class="table-hover">';
    		for (var i = 0, l = axisData.length; i < l; i++) {
    			WTable01 += '<tr>'
    					 + '<td class="text-center">' + Interv[parseInt(i)] + '</td>'
    					 + '<td class="text-center">' + series[1].data[i] + '</td>'
    					 + '<td class="text-center">' + series[2].data[i] + '</td>'
    					 + '<td class="text-center">' + series[0].data[i] + '</td>'
    					 + '</tr>';
    		}
    		WTable01 += '</div></tbody></table>';
    		return WTable01;
    	},
    	contentToOption: function(opt){ // Va permetrtre de gérer l'exportation en CSV
    		alert("Export CSV");
    	}
    }
    ...
    ...
    ...

    Code css : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
     
    .CadreInfo {
     	display:grid;
    	text-align:center;
    	text-decoration-color: #fff;
    	align-content: center;
    	margin: auto; /*0px 245px 0px 165px; /* haut droite bas gauche*/
    	width:87%;
    	height:35px;
    	position:relative;
    	bottom:47px;
    	left:63px;
    	padding:5px;
    	background-color:#88ABD9;
    	border-radius:7px;
    	border-collapse: collapse;
    	border-bottom:2px solid #95a5a6;
    	border-right: 1px solid #95a5a6;
    	border-top:2px solid #95a5a6;
    	border-left: 2px solid #95a5a6;
    /*	box-shadow: 0 2px 0px 0 rgba(0, 0, 0, 0.1), 0px 0px 0px 2px rgba(0, 0, 0, 0.19);	*/
    }

  10. #10
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Tu peux toujours placer un écouteur, click, sur ton graphe quand tu ouvres ta dataView et faire une vérification de l'élément déclencheur, si il contient le mot « retour » tu fais réapparaître tes infos.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var divGraph = document.getElementById("graphe");
    divGraph.onclick = function(e) {
      console.log("Event click : ", e.target.textContent);
    };
    Essaies de plus structurer ton travail car j'ai quand même l'impression que tu avances dans tous les sens.

  11. #11
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Citation Envoyé par NoSmoking Voir le message
    Tu peux toujours placer un écouteur, click, sur ton graphe quand tu ouvres ta dataView et faire une vérification de l'élément déclencheur, si il contient le mot « retour » tu fais réapparaître tes infos.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    var divGraph = document.getElementById("graphe");
    divGraph.onclick = function(e) {
      console.log("Event click : ", e.target.textContent);
    };
    J'ai pas tout compris, ça dépasse mes compétences, mais je vais essayer de mettre ça en place dés que possible.

    Citation Envoyé par NoSmoking Voir le message
    Essaies de plus structurer ton travail car j'ai quand même l'impression que tu avances dans tous les sens.
    Tu n'as absolument pas tord , mais d'un autre côté, quand je bloque sur quelque chose, j'essaye d'avancer ailleurs en attendant une aide bienveillante pour "essayer" de perdre moins de temps...
    (Est-ce que tu vois les rames et pagaies que j'utilise ? )

  12. #12
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Je ne vois pas du tout où est-ce que je dois ajouter ton code dans le dataView ?

    Le code du dataView est celui-ci :
    Code javascrit : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    dataView: {
    	show: true, // Affiche ou non l'icône pour afficher les données utilisées.
    	readOnly: false,
    	backgroundColor: '#88ABD9',
    	title: 'Données',
    	lang: ['Données utilisées pour le graphique...', 'Retour', 'Export CSV'], 
    	optionToContent: function(opt) {
    		if (P_Plateforme == "LFPO")
    			{
    				$('#Info_lfpo_hg').css('display','none'); // Effacement de la DIV Info_lfpo_hg
    			}
    		if (P_Plateforme == "LFPG")
    			{
    				$('#Info_lfpg_hg').css('display','none'); // Effacement de la DIV Info_lfpo_hg
    			}
    		 if (P_Plateforme == "LFPB")
    			{
    				$('#Info_lfpb_hg').css('display','none'); // Effacement de la DIV Info_lfpo_hg
    			}
    		var axisData = opt.xAxis[0].data;
    		var series = opt.series;
    		var WTable01 = '<div id="ID_Table_Data">';
    		WTable01 = WTable01 + '<table class="table-fill">';
    		WTable01 = WTable01 + '<thead><tr>';
    		WTable01 = WTable01 + '<th class="text-center">Tranches Horaires</th>'
    		WTable01 = WTable01 + '<th class="text-center">Intervales</th>'
    		WTable01 = WTable01 + '<th class="text-center">' + series[1].name + '</th>';
    		WTable01 = WTable01 + '<th class="text-center">' + series[2].name + '</th>';
    		WTable01 = WTable01 + '<th class="text-center">' + series[0].name + '</th>';
    		WTable01 = WTable01 + '</tr></thead>';
    		WTable01 = WTable01 + '<tbody class="table-hover">';
    		for (var i = 0, l = axisData.length; i < l; i++) {
    			WTable01 += '<tr>'
    					 + '<td class="text-center">' + TranchesHoraires_X[i] + '</td>'
    					 + '<td class="text-center">' + Interv[parseInt(i)] + '</td>'
    					 + '<td class="text-center">' + series[1].data[i] + '</td>'
    					 + '<td class="text-center">' + series[2].data[i] + '</td>'
    					 + '<td class="text-center">' + series[0].data[i] + '</td>'
    					 + '</tr>';
    		}
    		WTable01 += '</div></tbody></table>';
    		return WTable01;
    	},
    	contentToOption: function(opt){ // Va permetrtre de gérer l'exportation en CSV
    		WNbLig_Table = document.getElementById('ID_Table_Data').length;
    		alert("Nombre de ligne : " + WNbLig_Table);
    	}
    }

  13. #13
    Modérateur

    Avatar de NoSmoking
    Homme Profil pro
    Inscrit en
    Janvier 2011
    Messages
    17 144
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 17 144
    Points : 44 954
    Points
    44 954
    Par défaut
    Je ne vois pas du tout où est-ce que je dois ajouter ton code dans le dataView ?
    Si tu optes pour cette solution ce n'est pas dans les fonctions de ta dataView qu'il faut l’intégrer mais dans ton document.

  14. #14
    Membre actif Avatar de Zebulon777
    Homme Profil pro
    Informaticien
    Inscrit en
    Février 2005
    Messages
    1 320
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 58
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Informaticien

    Informations forums :
    Inscription : Février 2005
    Messages : 1 320
    Points : 286
    Points
    286
    Par défaut
    Bon, ben en fin de compte, nous avons changer notre fusil d'épaule, ce souci n'est plus d'actualité car nous affichons d'autres graphes sur la même page qui empêchent cet affichage particulier.

    On a fait autrement en affichant tout bêtement les même information sous le libellé de l'axe des abscisses avec des "\n".

    Merci encore.

    Suite au prochain numéro

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. open avec comport
    Par Goldocrack dans le forum C++Builder
    Réponses: 6
    Dernier message: 15/04/2009, 09h12
  2. [HttpClient] comportement bizarre, saute des catch()...
    Par iubito dans le forum Développement Web en Java
    Réponses: 4
    Dernier message: 04/02/2004, 16h25
  3. [Sybase] Comportement bizarre d'une table
    Par sdozias dans le forum Sybase
    Réponses: 4
    Dernier message: 03/02/2004, 11h39
  4. [Free Pascal] Comportement de Exec
    Par néo333 dans le forum Free Pascal
    Réponses: 3
    Dernier message: 01/11/2003, 18h46
  5. Réponses: 2
    Dernier message: 22/09/2003, 12h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo