![]() |
| Clomosy Resmi Forum Sitesidir. Amacımız kullanıcılarımıza, iş ortaklarımıza, danışmanlara, yazılımcılara programlarımız hakkında destek ve bilgi vermektir. |
Döngü içerisinde chart oluşturma |
Yanıt Yaz
|
| Yazar | |
Gökçe ulusoy
Yeni Üye
Kayıt Tarihi: 17 Eylül 2025 Konum: KONYA Durum: Aktif Değil Puanlar: 12 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Gökçe ulusoy
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Konu: Döngü içerisinde chart oluşturmaGönderim Zamanı: 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.
|
|
![]() |
|
Emr.Erkmn
Moderatör
Kayıt Tarihi: 28 Şubat 2025 Durum: Aktif Değil Puanlar: 361 |
Mesaj Seçenekleri
Yanıt Yaz
Alıntı Emr.Erkmn
Bu mesaj kurallara aykırıysa buradan yöneticileri bilgilendirebilirsiniz.
Teşekkürler(0)
Alıntı Cevapla
Gönderim Zamanı: 9 Saat 9 Dakika Önce Saat 09:10 |
|
Merhaba Gökçe,
Aşağıda ki kodu inceleyebilir misin? //Seçilen yılın aylık aktif müşteri sayısının grafiği void OlusturAylikChart var secilenYil : String; Qry : TclSQLQuery; LblAylik : TClProLabel; { try { secilenYil = cbZamanMusteri.Items[cbZamanMusteri.ItemIndex]; Qry = Clomosy.DBSQLServerQueryWith( 'SELECT FORMAT(OrderDate, ''MM'') AS Zaman, ' + 'COUNT(DISTINCT CustomerId) AS AktifMusteri ' + 'FROM Orders ' + 'WHERE YEAR(OrderDate) = ' + secilenYil + ' ' + 'GROUP BY FORMAT(OrderDate, ''MM'') ' + 'ORDER BY Zaman' ); Qry.Open; if not Qry.IsEmpty { zamanMusteriAyChart = MyForm.AddNewChart(PnlZamanMusteriChart, 'zamanMusteriAyChart', ''); zamanMusteriAyChart.Margins.Left = 5; zamanMusteriAyChart.Margins.Right = 5; zamanMusteriAyChart.Margins.Bottom = 5; zamanMusteriAyChart.Align = alClient; zamanMusteriAyChart.Charttype = clCLine; zamanMusteriAyChart.XAxisText = 'Zaman'; zamanMusteriAyChart.ChartItemText = 'Müşteri'; zamanMusteriAyChart.ChartItemsValue = 'AktifMusteri'; zamanMusteriAyChart.clLoadDataFromDataSet(Qry); LblAylik = MyForm.AddNewProLabel(zamanMusteriAyChart, 'LblAylik', secilenYil + ' Yılı Aylık Aktif Müşteri Sayısı'); LblAylik.Align = alTop; LblAylik.Height = 30; LblAylik.Width = 350; LblAylik.clProSettings.FontHorzAlign = palcenter; LblAylik.Margins.Bottom = 4; LblAylik.clProSettings.FontSize = 18; LblAylik.clProSettings.TextSettings.Font.Style = [fsBold]; LblAylik.clProSettings.FontColor = clAlphaColor.clHexToColor('#ffffff'); LblAylik.clProSettings.BackgroundColor = clAlphaColor.clHexToColor(renk_P1G1); LblAylik.clProSettings.BorderColor = clAlphaColor.clHexToColor(renk_P1G1); LblAylik.clProSettings.BorderWidth = 2; LblAylik.SetclProSettings(LblAylik.clProSettings); clRTMethod(LblAylik,'BringTofront'); } } except ShowMessage('Aylık Chart hatası: ' + LastExceptionMessage); } Qry.Free; }
|
|
![]() |
|
Yanıt Yaz
|
|
| Tweet |
| Forum Atla | Forum İzinleri ![]() Kapalı Foruma Yeni Konu Gönderme Kapalı Forumdaki Konulara Cevap Yazma Kapalı Forumda Cevapları Silme Kapalı Forumdaki Cevapları Düzenleme Kapalı Forumda Anket Açma Kapalı Forumda Anketlerde Oy Kullanma |