Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Fast Report Master Data
#1
Arkadaşlar merhaba fastreportun master data bandında alanları görüntüleyen ve verileri query den alan iki adet memo bileşenim var verileri sıkıntısız memo bileşenlerinde görebiliyorum ancak yapmak istediğim farklı bir yöntem var o yüzden yardımlarınızı bekliyorum şöyle ki ;

örneğin Fatura seri ve fatura no alanım var dgridde ne kadar veri varsa masterdata bandında hepsi görüntüleniyor benim yapmak istediğim

SENK fatura seri kodu sabit kalacak arkasına ilgili fatura numaraları aralarında virgülle gelecek.

İstediğim örnek:INVOICE NO:SENK2022,0001,0002,0003,0004,.... gibi

Fastreportta çıkan örnek:SENK2022 0001,SENK 0002, SENK 0003... 

yani fatura seri kısmı 1 kere yazacak.

aslında seri no memo bileşenini master data dışına koyarsam bu istediğim gerçekleşiyor ama bu seferde aynı hizada olmuyor 

DBGRID GÖRÜNTÜSÜ

FATURA SERİ ALANI          FATURA NO ALANI
-------------------------          -----------------------
SENK2022                         0001
SENK2022                         0002
SENK2022                         0003
Cevapla
#2
seri numaralarını döngü ile bir değişkene alıp frxReport'a aktar. Memoya sabit yazını ekleyip tek kalemde yanına değişkeni yazdır

frxReport1.Variables.Variables['FATURANO'] := '''' + degiskenFatura + '''';

Report > Variables > Create Variable = FATURANO
Cevapla
#3
(15-11-2022, Saat: 16:08)MosCom Adlı Kullanıcıdan Alıntı: seri numaralarını döngü ile bir değişkene alıp frxReport'a aktar. Memoya sabit yazını ekleyip tek kalemde yanına değişkeni yazdır

frxReport1.Variables.Variables['FATURANO'] := '''' + degiskenFatura + '''';

Report > Variables > Create Variable = FATURANO

Hocam cevabınız için teşekkür ederim verdiğiniz çözümle de sorun devam etti ama sorunun neden kaynaklandığını buldum ancak bu sorunun çözümünü kullanırsam başka bir sorun çıkıyor şöyleki;

Ben masterdata bandında veriler alt alta yazılmasın diye column oluşturdum ve columngap ilede ara boşlukları ayarladım o yüzden masterdata bandına ne yazarsam yazayım column sayısınca yazılıyor. 

 Alt alta sıralanan verileri master data bandında column oluşturmadan yan yana yazdırabilmem mümkün müdür? Eğer bu mümkün olursa her iki problemde çözülmüş olacaktır.

Örneğin: Normalde veriler 
SENK20220001
SENK20220002
SENK20220003
şeklinde çıkıyor master data bandında column oluşturulmazsa aşağıdaki kodla delphi combobox bileşeninden kullanıcı isteğine göre seri no kısmını seçtirince

SENK20022 sabit şekilde 1 adet çıkıyor işte fatura no kısmı burada alt alta değil yan yana yazmalı. 

Umarım anlaşılır biçimde yazmışımdır. Cevaplarınız için şimdiden teşekkür ederim.

Procedure TForm1.JvBitBtn4Click(Sender: TObject);
var
Memo9: TfrxMemoView;
begin
Memo9 := frxReport2.Report.FindObject('Memo9') as TfrxMemoView;
Memo9.Text:=combobox1.Text;
frxReport2.PrintOptions.ShowDialog :=true;
frxReport2.ShowReport(TRue);
end;
Cevapla
#4
İşi fastreporta gelmeden SQL tarafında Yanyana yazan bir sorgu ile çözebilirsin. Böylece ilave column oluşmamış olur.
Eğer sorgu da zorlanırsan DB alanlarını gönder yardımcı olmaya çalışayım
Cevapla
#5
(16-11-2022, Saat: 21:47)endmuh Adlı Kullanıcıdan Alıntı: İşi fastreporta gelmeden SQL tarafında Yanyana yazan bir sorgu ile çözebilirsin. Böylece ilave column oluşmamış olur.
Eğer sorgu da zorlanırsan DB alanlarını gönder yardımcı olmaya çalışayım

Hocam cevabın ve yardımın için teşekkür ederim. DB alanlarımın olduğu görsel aşağıdadır.

   
Cevapla
#6
(16-11-2022, Saat: 22:34)bünyamin68 Adlı Kullanıcıdan Alıntı:
(16-11-2022, Saat: 21:47)endmuh Adlı Kullanıcıdan Alıntı: İşi fastreporta gelmeden SQL tarafında Yanyana yazan bir sorgu ile çözebilirsin. Böylece ilave column oluşmamış olur.
Eğer sorgu da zorlanırsan DB alanlarını gönder yardımcı olmaya çalışayım

Hocam cevabın ve yardımın için teşekkür ederim. DB alanlarımın olduğu görsel aşağıdadır.

Selamlar Bir örnek Yapmaya çalıştım. Takıldığınız nokta olursa yine yardımcı olurum.

declare @Fatura_Ana table (Faturaseri varchar(20))
declare @Fatura_DTY table (Faturaseri varchar(20),FaturaNO int,Alici_Firma varchar(10),Gonderici_Firma varchar(10),Fatura_Tutar decimal(18,2))

insert into @Fatura_Ana(Faturaseri) values ('SENK202200000')
insert into @Fatura_Ana(Faturaseri) values ('SENK202200001')
insert into @Fatura_dty(Faturaseri,FaturaNO,Alici_Firma,Gonderici_Firma,Fatura_Tutar) 
(
SELECT 'SENK202200000',123456,'A FİRMASI','B FİRMASI',100
union all 
SELECT 'SENK202200000',123457,'C FİRMASI','B FİRMASI',105
union all
SELECT 'SENK202200000',123458,'D FİRMASI','B FİRMASI',110
union all
SELECT 'SENK202200000',123459,'E FİRMASI','B FİRMASI',120

)

insert into @Fatura_dty(Faturaseri,FaturaNO,Alici_Firma,Gonderici_Firma,Fatura_Tutar) 
(
SELECT 'SENK202200001',123460,'A FİRMASI','B FİRMASI',100
union all 
SELECT 'SENK202200001',123461,'A FİRMASI','K FİRMASI',105
union all
SELECT 'SENK202200001',123462,'A FİRMASI','L FİRMASI',110

)


select 
FA.Faturaseri
,(select convert(varchar,FD.FaturaNO)+',' from @Fatura_DTY FD WHERE FD.Faturaseri=FA.Faturaseri order by FaturaNO for xml path('') ) Fatura_NO
from @Fatura_Ana FA


Ek Dosyalar Resimler
   
Cevapla
#7
(16-11-2022, Saat: 22:34)bünyamin68 Adlı Kullanıcıdan Alıntı:
(16-11-2022, Saat: 21:47)endmuh Adlı Kullanıcıdan Alıntı: İşi fastreporta gelmeden SQL tarafında Yanyana yazan bir sorgu ile çözebilirsin. Böylece ilave column oluşmamış olur.
Eğer sorgu da zorlanırsan DB alanlarını gönder yardımcı olmaya çalışayım

Hocam cevabın ve yardımın için teşekkür ederim. DB alanlarımın olduğu görsel aşağıdadır.

Merhabalar,

GROUP_CONCAT()

Fonksiyonu ile işleminizi gerçekleştirebilirsiniz.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#8
(18-11-2022, Saat: 13:44)hi_selamlar Adlı Kullanıcıdan Alıntı:
(16-11-2022, Saat: 22:34)bünyamin68 Adlı Kullanıcıdan Alıntı: Hocam cevabın ve yardımın için teşekkür ederim. DB alanlarımın olduğu görsel aşağıdadır.

Merhabalar,

GROUP_CONCAT()

Fonksiyonu ile işleminizi gerçekleştirebilirsiniz.

Kolay gelsin.

MS SQL 2017 öncesi  bir db var ise bu fonksiyon çalışmayabilir...
Cevapla
#9
(15-11-2022, Saat: 15:24)bünyamin68 Adlı Kullanıcıdan Alıntı: Arkadaşlar merhaba fastreportun master data bandında alanları görüntüleyen ve verileri query den alan iki adet memo bileşenim var verileri sıkıntısız memo bileşenlerinde görebiliyorum ancak yapmak istediğim farklı bir yöntem var o yüzden yardımlarınızı bekliyorum şöyle ki ;

örneğin Fatura seri ve fatura no alanım var dgridde ne kadar veri varsa masterdata bandında hepsi görüntüleniyor benim yapmak istediğim

SENK fatura seri kodu sabit kalacak arkasına ilgili fatura numaraları aralarında virgülle gelecek.

İstediğim örnek:INVOICE NO:SENK2022,0001,0002,0003,0004,.... gibi

Fastreportta çıkan örnek:SENK2022 0001,SENK 0002, SENK 0003... 

yani fatura seri kısmı 1 kere yazacak.

aslında seri no memo bileşenini master data dışına koyarsam bu istediğim gerçekleşiyor ama bu seferde aynı hizada olmuyor 

DBGRID GÖRÜNTÜSÜ

FATURA SERİ ALANI          FATURA NO ALANI
-------------------------          -----------------------
SENK2022                         0001
SENK2022                         0002
SENK2022                         0003

FastrReport içerisinde bir script ile veritabanı satırlarını döngüye alarak bu işlemi gerçekleştirebilirsiniz.

var
  Faturalar: string;


procedure MasterData1OnBeforePrint(Sender: TfrxComponent);
var 
  DS: TfrxDataSet;
begin
  Faturalar := 'INVOICE NO: SENK2022';
  // veya Faturalar := 'INVOICE NO: ' + DS.Value('FATURA_SERİ_ALANI');
  DS := Report.GetDataset('frxDataSetFatura');

  DS.First;
  while not DS.Eof do      
  begin          
     Faturalar := Faturalar  + ', ' + DS.Value('FATURA_NO_ALANI');
     DS.Next;
  end;        
end.

Bu durumda frxMemo içerisine [Faturalar] şeklinde bir ifade yazmalısınız.
WWW
Cevapla
#10
(18-11-2022, Saat: 18:55)endmuh Adlı Kullanıcıdan Alıntı:
(18-11-2022, Saat: 13:44)hi_selamlar Adlı Kullanıcıdan Alıntı: Merhabalar,

GROUP_CONCAT()

Fonksiyonu ile işleminizi gerçekleştirebilirsiniz.

Kolay gelsin.

MS SQL 2017 öncesi  bir db var ise bu fonksiyon çalışmayabilir...

https://database.guide/the-sql-server-eq...up_concat/

Farklı bir yöntem ile yapılabiliyor sanırım.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Fast Report Araya Bağımsız Sayfa Ekleme bydelphi 1 464 02-01-2024, Saat: 23:21
Son Yorum: hi_selamlar
  DbGrid'de Seçili Satırların Fast Reportta Raporlanması [ÇÖZÜLDÜ] bünyamin68 4 637 17-12-2023, Saat: 15:08
Son Yorum: bünyamin68
Star Fast Report Çift sayfa tasarımı delphicim 7 660 29-11-2023, Saat: 23:54
Son Yorum: delphicim
  Fast Report ardak 2 471 27-10-2023, Saat: 20:42
Son Yorum: ardak
  Fast report Master-Detail delphicim 1 270 17-10-2023, Saat: 19:25
Son Yorum: delphicim



Konuyu Okuyanlar: 1 Ziyaretçi