602SQL-┌plnß dokumentace Index   Tisk  

Neinteraktivnφ volba parametr∙ tisku

Zßkladnφ parametry tisku - rozsahy strßnek a zßznam∙, v²stupnφ za°φzenφ - lze zadat funkcφ Set_printer. PoΦet kopiφ a snßÜenφ kopiφ se nastavuje funkcφ Print_copies. Velikost okraj∙ definuje funkce Print_margins. Po°adovΘ Φφslo prvnφho tiÜt∞nΘho Ütφtku na strßnce se nastavuje funkcφ Set_first_label.

Zvolit tiskßrnu, nastavit druh, zdroj a orientaci papφru a dalÜφ parametry lze pomocφ funkce Printer_select. U n∞kter²ch tiskßren vÜak existujφ navφc specifickΘ parametry, kterΘ lze nastavovat pouze interaktivn∞.

Velikost spodnφho okraje papφru

Zadßnφ spodnφho okraje papφru je nutnΘ, pokud ve vytiÜt∞nΘ sestav∞ chybφ spodnφ konec ka₧dΘ strßnky. K tomuto efektu dochßzφ u n∞kter²ch ovladaΦ∙ tiskßren v d∙sledku ÜpatnΘ spoluprßce mezi tiskßrnou a Windows. Pokud nap°φklad pro laserovou tiskßrnu nastavφte na ovlßdacφm panelu Windows rozm∞r papφru A4, m∙₧e se stßt, ₧e si Windows myslφ, ₧e mohou vyu₧φt cel² rozm∞r A4, tedy 210 krßt 297 milimetr∙. Ve skuteΦnosti vÜak tiskßrna neumφ tisknout a₧ k okraj∙m strßnky. Zadßte-li ve 602SQL spodnφ okraj strßnky, zajistφte tφm, ₧e se 602SQL nebude pokouÜet vyu₧φt plnΘ rozm∞ry strßnky, kterΘ ji sd∞lil operaΦnφ systΘm, a bude tisknout pouze tam, kam to p°ipouÜtφ tiskßrna.

ètφtky

ZvlßÜt∞ p°i tisku Ütφtk∙ na nekoneΦn² pßs je nutnΘ p°esn∞ nastavit okraje - v∞tÜinou je nutnΘ zadat dolnφ okraj roven nule.

U Ütφtk∙ v∞nujte zv²Üenou pozornost takΘ sprßvnΘ velikosti papφru. Chybnß volba m∙₧e zp∙sobit nap°φklad to, ₧e na ka₧dΘ strßnce bude schßzet poslednφ °ßdka Ütφtk∙. Pro tisk jmenovek. na nekoneΦn² pßs je rozumnΘ pou₧φvat formßt papφru "Sklßdan² papφr (Fanfold) 8.5 x 12 palc∙".

P°φklad:

V nßsledujφcφm p°φkladu bude tisknuto na zadanΘ tiskßrn∞ na formßt A4 na v²Üku (z°ejm∞ na standardnφ arch se Ütφtky). U₧ivatel mß mo₧nost zvolit pouze poΦet kopiφ, sm∞°ovßnφ v²stupu (preview nebo tiskßrna) û to vÜe je zapsßno v pomocnΘ tabulce Parametry a v dialogu Formßt strßnky pro Ütφtky m∙₧e zvolit pozici prvnφho tisknutΘho Ütφtku na strßnce:

if Get_fcursor(id_prehled,ctiskst,NIL) then begin
  Print_margins(0,0,0,0);         //u Ütφtk∙ v₧dy nulujte
  preview := Parametry[0].preview;
  Set_printer(0,99999,1,999,preview,'',0); //zvolit preview
  kolikrat := Parametry[0].kolikrat;
  Print_copies(kolikrat,true);             //zvolit poΦet kopiφ 
  Printer_select('HP LaserJet IIP','',1,9,1,-4,1,2,1);
  if Find_object("Stitek3x7",CATEG_VIEW,objnum) then Signalize
  else begin
    View_pattern(objnum);  
    if Page_setup(0) then       // nastavit pozici Ütφtku
       Print_view("*Stitek3x7",ctisk,-1,-1);      
  end;
end;

V²b∞r zßznam∙ pro tisk

Obsahem sestavy je zpravidla bu∩ jeden zßznam nebo mno₧ina zßznam∙ vybranß jako odpov∞∩ na dotaz. Pokud se v²b∞r zßznam∙, kterΘ chcete vytisknout, nedß vyjßd°it dotazem, m∙₧ete v programu postupovat takto:

  1. Otev°ete prßzdn² kurzor tj. kurzor neobsahujφcφ ₧ßdnΘ zßznamy. Pou₧ijte k tomu nesplnitelnou v²b∞rovou podmφnku, nap°. SELECT * FROM tab WHERE FALSE

  2. Pomocφ funkce Add_record p°idejte do tohoto kurzoru ty zßznamy, kterΘ chcete vytisknout.

  3. P°esm∞rujte tiÜt∞nou sestavu na tento kurzor.

  4. Po vytiÜt∞nφ sestavy kurzor uzav°ete.

P°φklad slo₧it∞jÜφho tisku Ütφtk∙:

tiskne se "kolikrat" kopiφ s vynechßnφm "kolikpred" pozic vp°edu

strpom := 'SELECT * FROM '+tabul+' WHERE false';
if Open_sql_cursor(curtisk, strpom) then Signalize;

if Get_fcursor(idx,cf,nil) then begin
  for i := 1 to kolikpred do          // prßzdnß mφsta p°ed tiskem prvnφho
    Insert(curtisk);
  Rec_cnt(cf,pocet);
  for i := 0 to pocet-1 do begin
    Translate(cf, i, 0, icislo);      // p°epoΦet na Φφslo v tabulce 
    if icislo <> -1 then
      for j := 1 to kolikrat do            
        Add_record(curtisk,icislo,1); // p°idßnφ zßznamu do kurzoru curtisk 
  end;
  Print_view(labelname,curtisk,-1,-1);
end;