|
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.
|