Sayfayı Yazdır | Pencereyi Kapat

Döngü içerisinde chart oluşturma

Nereden Yazdırıldığı: Clomosy | Forum
Kategori: Genel Programlama
Forum Adı: Genel İşlemler
Forum Tanımlaması: TRObject dili ile programlama yaparken karşılaşılan genel işlemler
URL: https://forum.clomosy.com.tr/forum_posts.asp?TID=1213
Tarih: 24 Ekim 2025 Saat 18:45
Program Versiyonu: Web Wiz Forums 12.07 - https://www.webwizforums.com


Konu: Döngü içerisinde chart oluşturma
Mesajı Yazan: Gökçe ulusoy
Konu: Döngü içerisinde chart oluşturma
Mesaj Tarihi: 24 Ekim 2025 Saat 11:23
function AddDataToChart(SelectedYear:String):String;    
 {
    try
      Clomosy.DBSQLServerQuery.SQL.Text=
      'SELECT SUM(Quantity) AS SALES,  
      YEAR(OrderDate) AS YEAR,  
      MONTH(OrderDate) AS AY  
      FROM Orders 
      WHERE YEAR(OrderDate) = :SelectedYear
      GROUP BY YEAR(OrderDate), MONTH(OrderDate) 
      ORDER BY MONTH(OrderDate)';

      Clomosy.DBSQLServerQuery.ParamByName('SelectedYear').Value = SelectedYear;
      Clomosy.DBSQLServerQuery.ExecSQL;
      Clomosy.DBSQLServerQuery.Connection.Commit;

      if (not Clomosy.DBSQLServerQuery.Found)
      {
        FOR (i=0 to Length(j))
        {
        //Chart1=TCLChart.Create(self);
        Chart1=Form2.AddNewChart(ChartPanel, Chart1, 'Aylık Sipariş');
        //Chart1.Parent=ChartPanel;
        Chart1.Width = 75;
        Chart1.Height = 275;
        Chart1.Align = alBottom;
        Chart1.Margins.Bottom = 5;
        Chart1.Margins.Left = 10;
        Chart1.Margins.Right = 10;
        Chart1.ChartType = clCBar;
        Chart1.XAxisText = 'AY';
        Chart1.ChartItemText = 'YEAR'; // SQL'deki alias'ı
        Chart1.ChartItemsValue = 'SALES';
        Chart1.ChartTitle = 'Aylık Satış Grafiği';
        Chart1.clLoadDataFromDataSet(Clomosy.DBSQLServerQuery);
        }
      }
      else
        ShowMessage('Bu yıla ait veri bulunamadı.');
    except
      ShowMessage('Exception class: '+LastExceptionClassName+' Exception Message: ' +LastExceptionMessage);
    }
  }  


void LoadtoCombo
 {
   try
     Clomosy.DBSQLServerQuery.Sql.Text=('SELECT DISTINCT(Year(OrderDate)) AS YEAR  FROM Orders');
     
     Clomosy.DBSQLServerQuery.Open;
     j=0;
     while (not Clomosy.DBSQLServerQuery.Eof)
     {
       
       ComboBox.AddItem(Clomosy.DBSQLServerQuery.FieldByName('YEAR').AsString,IntToStr(j));
       Clomosy.DBSQLServerQuery.Next;
       ShowMessage(IntToStr(j));
       j=j+1;
     }
     
   finally
     Clomosy.DBSQLServerQuery.Close;
   }
}  
 

void ComboChange

  if (ComboBox.ItemIndex > -1) 
  {
    SelectedYear = StrToInt(ComboBox.Items[ComboBox.ItemIndex]);
    AddDataToChart(SelectedYear);
  }
}

void ComboChanged
  if (ComboBox.ItemIndex > -1) 
  {
    Chart1.Series.Clear;
    SelectedYear = StrToInt(ComboBox.Items[ComboBox.ItemIndex]);
    AddDataToChart(SelectedYear);
  }
LoadtoCombo;
ComboChange;
ComboBox.OnChange = 'ComboChanged';

Merhabalar Yıllara göre aylık satış miktarının gelmesini istiyorum ama chartı yenileyemediğimden ötürü sadece bir kere oluşuyor her combobox değer değiştiginde o değere göre chart gelmesini nasıl sağlayabilirim.



Sayfayı Yazdır | Pencereyi Kapat

Forum Software by Web Wiz Forums® version 12.07 - https://www.webwizforums.com
Copyright ©2001-2024 Web Wiz Ltd. - https://www.webwiz.net