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

Langage PHP Discussion :

Création Chart de type Basic Column


Sujet :

Langage PHP

  1. #1
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut Création Chart de type Basic Column
    Bonjour;

    J'ai des Chart de type colonne qui affiche les chiffres d'affaire des article pour chaque mois ou annuel.
    J'ai changé l'interface ou plutôt j'ai changé juste un champs à CheckBox à choix multiple(il était un inptuText.
    Maintenant la chart va changer, c'est à dire l'utilisateur peux afficher les chiffres d'affaire de plusieurs articles.
    Je vous donne un exemple:
    un utilisateur a choisi deux articles dans l'interface, alors je dois l'afficher les chiffres d'affaires de l'article 1 et de l'article 2 de Janvier jusqu'au Mai puisque nous somme en 2017 l'un à coté de l'autre(comme est montré dans ci-joint-un exemple de google).Nom : chart.png
Affichages : 52
Taille : 26,8 Ko



    Mon code où j'ai calculé les données par mois:
    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
     private function getDataPerMonth($month){
            if ($month < 10) $month= '0'.$month;
            $query= new \......\TurnoverQuery();
            $query->setService('A');
            $query->setYear($this->_year);
            $query->setMonth($month);
            if ($this->_piece != 'all') $query->setPiece ($this->_piece);
            if ($this->_customer != 'all') $query->setClientCode ($this->_customer);
            if ($this->_nature != 'all') $query->setNature ($this->_nature);        
            if ($this->_lru != 'all') $query->setLRU($lru); // ce champs que je l'ai changé à checkBox à choix multiple
            if ($this->_zone != 'all') $query->setZone ($this->_zone);
            if ($this->_site != 'all') $query->setSite ($this->_site);
            if($this->_contract != 'all') $query->setContract ($this->_contract);
            $finalQuery=$query->prepareQuerySingle($lru);
            $db= new \......\DataBaseManager();
            $result=$db->excCAQuery($finalQuery);        
     
     
        }

    Cette fonction qui calcule les données cumulées :

    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
     public function getJSResult(){
            $data="";
            $cummulatedData="";
            $turn=0;
            $cum=0;
            if ($this->_year != 'Yearly'){
            for ($i=1 ; $i<=$this->_monthNumber ; $i++){
                $turn=$this->getDataPerMonth($i);
                $cum+=$turn;
                $data.=$turn;
                $cummulatedData.=$cum;
                if ($i != $this->_monthNumber){
                    $data.=',';
                    $cummulatedData.=',';
                }
            }
           // $newJS1= explode('/', $this->getJSResult());
           // print_r($cummulatedData); 
                }
            else {
                for ($i=date('Y')-6 ; $i<=date('Y') ; $i++){
                $turn=$this->getDataPerYear($i);
                $cum+=$turn;
                $data.=$turn;
                $cummulatedData.=$cum;
                if ($i != date('Y')){
                    $data.=',';
                    $cummulatedData.=',';
                }
            }
            //print_r($cummulatedData);
            }
     
            return $data.'/'.$cummulatedData;
           // print_r($cummulatedData);
        }

    J'ai changé la première fonction, j'ai ajouté un deuxième paramètre dans la fonction:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     private function getDataPerMonth($month, $lru){
    Et j'ai changé le test if:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     if ($this->_lru != 'all') $query->setLRU($lru);
    Dans la fonction de calcule de cumulated j'ai crée un tableau de 2 dimension pour les indices des LRU et leurs data.
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     public function getJSResult(){
            $data="";
            $cummulatedData="";
            $turn=0;
            $cum=0;
    		// array_push($allplayerdata, $playerdata);
            if ($this->_year != 'Yearly'){
    			for($index=0; $index<count($this->_lru); $index++) {			
    			$lru=$this->_lru[$index];
    				for ($i=1 ; $i<=$this->_monthNumber ; $i++){
    					$turn=$this->getDataPerMonth($i, $lru);
    					$cum+=$turn;
    					$data.=$turn;
    					$cummulatedData.=$cum;
    					if ($i != $this->_monthNumber){
    						$data.=',';
    						$cummulatedData.=',';
    					}
    				}
    			$firstSeries[$index] = $data;
    			$secondSeries[$index] = $cummulatedData;
     
    			}
    			echo implode(",", $firstSeries);
    			//echo implode(",", $secondSeries);
     
    			$ret = array(
    				$firstSeries,
    				$secondSeries
    			);
     
    			//return $ret;
    		}
    Mes series de chart est:

    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
     series: [";
     
            for ($i=1 ; $i<=count($this->_lru); $i++){
     
    			$js.="{
    				name: '";
    				$js.=$this->_lru[$ii];
    			if ($this->_year != 'Yearly'){ $js.="Monthly";}
    			$js.=" turnover',
    				data: [ ".$newJS['0'][$ii]."]
    			}";
    			if ($this->_year != 'Yearly'){ $js.=", {
    				name: 'Cummulated turnover',
    				data: [ ".$newJS['1'][$ii]."]
    			}";}
    		}
            $js.="]
    js est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     $js.='<script type="text/javascript">'."
    Et $newJS est:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $newJS=$this->getJSResult();
    Le problème est que je n'ai pu pas affiché les chart et il m'a affiché une seule bin de janvier pour un seul article.

  2. #2
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Il est où le résultat obtenu?
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  3. #3
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Nazoïde Voir le message
    Il est où le résultat obtenu?
    dans ses deux tableaux:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
              $firstSeries[$index] = $data;
              $secondSeries[$index] = $cummulatedData;

  4. #4
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Ton code il est énorme. Je parle de l'image obtenue. A partir de celle-ci, on pourra savoir quelle(s) partie(s) du code regarder.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  5. #5
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Nazoïde Voir le message
    Ton code il est énorme. Je parle de l'image obtenue. A partir de celle-ci, on pourra savoir quelle(s) partie(s) du code regarder.
    Bonjour,

    Le résultat est dans la function getJSResult().

    En fait je l'ai appelé par $newJS=$this->getJSResult();

  6. #6
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    Le problème est que je n'ai pu pas affiché les chart et il m'a affiché une seule bin de janvier pour un seul article.
    Il est où le chart?
    Il est où le résultat obtenu?
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

  7. #7
    Membre du Club
    Femme Profil pro
    Développeur informatique
    Inscrit en
    Avril 2017
    Messages
    76
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 33
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Avril 2017
    Messages : 76
    Points : 41
    Points
    41
    Par défaut
    Citation Envoyé par Nazoïde Voir le message
    Il est où le chart?
    Dans mon interface, et son code dans les series et qui récupère le résultat de la fonction getJSResult():

    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
     series: [";
     
            for ($i=1 ; $i<=count($this->_lru); $i++){
     
    			$js.="{
    				name: '";
    				$js.=$this->_lru[$ii];
    			if ($this->_year != 'Yearly'){ $js.="Monthly";}
    			$js.=" turnover',
    				data: [ ".$newJS['0'][$ii]."]
    			}";
    			if ($this->_year != 'Yearly'){ $js.=", {
    				name: 'Cummulated turnover',
    				data: [ ".$newJS['1'][$ii]."]
    			}";}
    		}
            $js.="]

  8. #8
    Membre averti
    Homme Profil pro
    Autres
    Inscrit en
    Mai 2017
    Messages
    279
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Autres

    Informations forums :
    Inscription : Mai 2017
    Messages : 279
    Points : 421
    Points
    421
    Par défaut
    l'image générée.
    L’appétit vient en mangeant.
    Pourquoi compliquer quand on peut faire plus simple?
    Une réponse vous a été utile? pensez à
    Vous avez eu la réponse à votre question? marquez votre discussion
    Faites un tour aux FAQs et aux tutoriels et cours.

Discussions similaires

  1. Couleurs d'un chart de type pie
    Par clisson dans le forum XMLRAD
    Réponses: 0
    Dernier message: 13/10/2008, 17h41
  2. Réponses: 3
    Dernier message: 28/02/2008, 12h36
  3. [Tableaux] création d'un type de données
    Par toddy_101 dans le forum Langage
    Réponses: 5
    Dernier message: 23/01/2007, 15h33
  4. Langage de prog. simple type basic pour RS232, vos idées SVP
    Par briconique dans le forum Langages de programmation
    Réponses: 8
    Dernier message: 14/08/2006, 22h45
  5. Aide sur la création d'un type simple (nom composite)
    Par testeur dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 06/11/2004, 20h30

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