[ Johny4FUN @ 01.10.2007. 21:07 ] @
Prilicno sam nov u ovoj oblasti pa bih trebao vasu pomoc

Radim program u Delfiju 5, zbog nekih modula, sa dbf bazama, i koristim RBuilder za print. Ali meni ne treba direktno stampanje nego export baze u tekstualni fajl. E sad: treba da mi se exportuju podaci iz 4 kolone i tako da ide od prvog do poslednjeg reda u bazi.


Manje vise ja sam to postigao ali ne mogu nikako da postavim odredjenim boxevima razlicite fontove. Znaci hocu da mi 4 text boxa iz baze budu jedan font a 3 labela drugi font. To moze da se podesi u ppReport-u ali .txt fajl nema tu mogucnost da ima vise razlicitih fontova, pa ni kada ga otvorim u Wordu.

Prvo me interesuje solucija koja bi mi to omogucila, a onda bih vam postavio jos neka pitanja

Pozzz
[ schild @ 02.10.2007. 06:12 ] @
Citat:
Johny4FUN: Manje vise ja sam to postigao ali ne mogu nikako da postavim odredjenim boxevima razlicite fontove. Znaci hocu da mi 4 text boxa iz baze budu jedan font a 3 labela drugi font. To moze da se podesi u ppReport-u ali .txt fajl nema tu mogucnost da ima vise razlicitih fontova, pa ni kada ga otvorim u Wordu.
.Txt fajlovi nemaju opciju formatranja texta u smislu podešavanja fonta, boja i slično. Tebi treba export u .rtf, a imaš komponentu TRichEdit pa probaj preko nje da exportuješ.
[ Johny4FUN @ 02.10.2007. 17:58 ] @
Upravo sam probao dve stvari prvo sam u RBuilderu izabrao da mi ppDBRichText ucitava podatke iz baze i on ih i na print preview-u se vide ali u fajlu ih nema??? Onda pored njega stavim ppDBMemo i u file-u se pojavlju podaci samo iz mema a iz richtext-a ih nema???

Onda sam promenio da mi se fajl exportuje u RTF a ne u TXT i dobio asocijaciju sa wordom ali mi se opet ti podaci ne ispisuju fontom kojim ja hocu nego nekim drugim defaulnim fontom u wordu.

Ne bi bio nikakav problem da ja selektujem sav font i promenim ga u zeljeni, ali ja bih hteo da dobijem sledece:

Da mi se ucitaju podaci iz jednog polja u odredjenom fontu pa onda da ide odredjeni simbol iz webdings fonta, pa onda podaci iz drugog polja pa onda opet neki drugi simbol iz recimo windings fonta i tako jos iz dva polja. To bih zeleo da bude jedan kompaktan pasus i onda da sledeci pasus bude iz sledeceg reda iz baze i tako do poslednjeg.

Ovo bi trebalo da bude prosto ali ja se polomih oko toga

Pomagajte...
[ schild @ 03.10.2007. 06:19 ] @
A što ne praviš report iz koda, šta će ti Report builder?
Uopšte nije komplikovano, evo za primer jedna moja funkcija - kao parametar prosledim komponentu tipa TRichEdit, pa posle imaš opciju snimanje u .rtf.

Code:
function TFStanje.StampajStanje(RE: TRichEdit; SIFKOM: integer): TStrings;
var Q: TSQLQuery;
   i: integer;
   s: string;
   vred_zal, vred : double;
begin
   with RE.DefAttributes do
      begin
      Size:=10;
      Name:='Courier New';
      Style:=[];
      Color:=clBlack;
      end;
   with RE.SelAttributes do
      begin
      Style:=[fsBold];
      Size:=14;
      s:='STANJE ZALIHA U MAGACINU ';
      if sifkom=1 then
         s:=s+'VELEPRODAJE'
      else
         s:=s+'KONSIGNACIJE'; // tu dodati za kojeg komitenta
      RE.Lines.Append(s);
      RE.Lines.Append('');
      Style:=[];
      Size:=11;
      RE.Lines.Append('Dana: '+formatdatetime('dd.mm.yyyy hh.nn',now));
      end;
   RE.Lines.Append('');
   with RE.SelAttributes do
      begin
      Style:=[fsBold];
      RE.Lines.Append(
         dopuni('RB', 4, ' ')
         +dopuni('ŠIF.ROB.', 10, ' ')
         +dopuni('NAZIV ROBE', 32, ' ')
         +centar('JM', 4, ' ')
         +dopuniR('ULAZI', 9, ' ')
         +dopuniR('IZLAZI', 9, ' ')
         +dopuniR('STANJE', 9, ' ')
         +dopuniR('VREDNOST', 11, ' ')
         );
      Style:=[];
      end;
   RE.Lines.Append(linija(88,'-'));
   //
   q:=TSQLQuery.Create(self);
   try
   q.SQLConnection:=DME.SQLConnection1;
   q.SQL.Append('select s.SIFROB, m.NAZROB, s.ULAZI_S, s.IZLAZI_S, s.STANJE_S, m.MINZAL,');
   q.SQL.Append('       m.JM, m.CENMAT_D, s.STANJE_S*m.CENMAT_D as VRED');
   q.SQL.Append('from STANJE s, ROBA m');
   q.SQL.Append('where s.SIFROB=m.SIFROB and s.SIFKOM=:SIFKOM');
   q.SQL.Append('order by NAZROB');
   q.Prepared:=true;
   q.ParamByName('SIFKOM').AsInteger:=SIFKOM;
   Q.Open;
   i:=0; vred_zal:=0;
   while not q.Eof do
      try
      inc(i);
      vred:= q.fieldbyname('VRED').AsFloat;
      if q.fieldbyname('STANJE_S').AsFloat<=q.fieldbyname('MINZAL').AsFloat then
         RE.SelAttributes.Style:=[fsBold];
      RE.Lines.Append(
         dopuni(inttostr(i), 4, ' ')
         +dopuni(q.fieldbyname('SIFROB').AsString, 10, ' ')
         +dopuni(q.fieldbyname('NAZROB').AsString, 32, ' ')
         +centar(q.fieldbyname('JM').AsString, 4, ' ')
         +dopuniR(formatfloat('0.00',q.fieldbyname('ULAZI_S').AsFloat), 9, ' ')
         +dopuniR(formatfloat('0.00',q.fieldbyname('IZLAZI_S').AsFloat), 9, ' ')
         +dopuniR(formatfloat('0.00',q.fieldbyname('STANJE_S').AsFloat), 9, ' ')
         +dopuniR(formatfloat('0.00',VRED), 11, ' ')
         );
      RE.SelAttributes.Style:=[];
      finally
         q.Next;
      end;
   RE.Lines.Append(linija(88,'-'));
   RE.Lines.Append(
      dopuni('SUMA', 77, ' ')
     +dopuniR(formatfloat('0.00', vred_zal), 11, ' ')
      );
   RE.Lines.Append('');
   RE.Lines.Append('Napomena: stanje robe ispisanih zacrnjeno je ispod minimalnih zaliha');
   finally
      q.Free;
   end;
end;
[ cepak @ 04.10.2007. 23:02 ] @
Imas mogucnosti mnoge. Mozes, kao sto se u zadnjem odgovoru vidi da ga kodiras i snimis u direktno u fajl, a mozes i da koristis Word kao Com server, gde ces svoj tekst programski direktno poslati u Word (ako ti je word tekst editor). Neznam detalje, sta u stvari zelis da postignes, posalji mi konkretnije pitanje pa ti mogu detaljnije pomoci, uukoliko te prethodni listing nije zadovoljio.