1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47: 48: 49: 50: 51: 52: 53: 54: 55: 56: 57: 58: 59: 60: 61: 62: 63: 64: 65: 66: 67: 68: 69: 70: 71: 72: 73: 74: 75: 76: 77: 78: 79: 80: 81: 82: 83: 84: 85: 86: 87: 88: 89: 90: 91: 92: 93: 94: 95: 96: 97: 98: 99: 100: 101: 102: 103: 104: 105: 106: 107: 108: 109: 110: 111: 112: 113: 114: 115: 116: 117: 118: 119: 120: 121: 122: 123: 124: 125: 126: 127: 128: 129: 130: 131: 132: 133: 134: 135: 136: 137: 138: 139: 140: 141: 142: 143: 144: 145: 146: 147: 148: 149: 150: 151: 152: 153: 154: 155: 156: 157: 158: 159: 160: 161: 162: 163: 164: 165: 166: 167: 168: 169: 170: 171: 172: 173: 174: 175: 176: 177: 178: 179: 180: 181: 182: 183: 184: 185: 186: 187: 188: 189: 190: 191: 192: 193: 194: 195: 196: 197: 198: 199: 200: 201: 202: 203: 204: 205:
| procedure GridDruck(links,oben,vSpalte,bSpalte,vZeile,bZeile:integer; scal:double; farbig:boolean); var x,y,li,ob,re,un,waag,senk,a:integer; fix,grund,schrift:TColor; r:Trect; eich_bild: TBitmap; function rech(i,j:integer):integer; begin result:=round(((i*j) / 72) * scal); end;
begin
if maengel.data_grid.Cells[3,16]='' then begin maengel.data_grid.RowCount:=16; if vZeile < 0 then vZeile:=0; if vSpalte < 0 then vSpalte:=0; if (bZeile >= maengel.data_grid.rowcount)or(bZeile < 0) then bZeile:=maengel.data_grid.rowcount - 1; if (bSpalte >= maengel.data_grid.colcount)or(bSpalte < 0) then bSpalte:=maengel.data_grid.colcount - 1; if vZeile > bZeile then begin a:=vZeile;vZeile:=bZeile;bZeile:=a; end; if vSpalte > bSpalte then begin a:=vSpalte;vSpalte:=bSpalte;bSpalte:=a; end;
if (scal > 0)and(vZeile < maengel.data_grid.rowcount)and(vSpalte < maengel.data_grid.colcount) then begin if farbig then begin fix:=clwhite; grund:=maengel.data_grid.color; schrift:=maengel.data_grid.font.color; end else begin fix:=clwhite; grund:=clwhite; schrift:=clblack; end; waag:=getdevicecaps(printer.handle,logpixelsx); senk:=getdevicecaps(printer.handle,logpixelsy); links:=rech(links,waag); oben:=rech(oben, senk); li:=getdevicecaps(printer.handle,physicaloffsetx)+1+links; a:=rech(3,waag); with printer do begin BeginDoc; Printer.Canvas.Font.Name:='Arial'; Printer.Canvas.Brush.Color:=clWhite; Printer.Canvas.Font.Size:=14; Printer.Canvas.Font.Style:=[fsBold]; Canvas.TextOut(300,200,'Bautagesbericht Schleifarbeiten vom '+maengel.datum_text.text); Printer.Canvas.Font.Style:=[]; Printer.Canvas.Font.Size:=10; Printer.Canvas.Font.Style:=[fsBold]; Canvas.TextOut(300,600,'Maschine: '+mach_buf2); Canvas.TextOut(300,700,'AG');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1400,700,maengel.ag_text.text);Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(2700,700,'Datum');Printer.Canvas.Font.Style:=[];Canvas.TextOut(3100,700,maengel.datum_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,800,'Strecke');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1400,800,maengel.strecke_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(2700,800,'Bst.Nr.');Printer.Canvas.Font.Style:=[];Canvas.TextOut(3100,800,maengel.baustnr_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,900,'Gleis');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1400,900,maengel.gleis_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,1000,'ausgeführte Leistung');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1400,1000,maengel.leistung_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(2700,1000,'von km');Printer.Canvas.Font.Style:=[];Canvas.TextOut(3100,1000,maengel.startkm_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(3500,1000,'bis km');Printer.Canvas.Font.Style:=[];Canvas.TextOut(3900,1000,maengel.endkm_text.text); if maengel.data_grid.gridlinewidth > 0 then begin canvas.pen.color:=$333333; canvas.pen.width:=2; canvas.pen.style:=pssolid end else canvas.pen.style:=psclear; canvas.font:=maengel.data_grid.font; canvas.font.color:=schrift; canvas.font.size:=8; for x:=vSpalte to bSpalte do begin ob:=getdevicecaps(printer.handle,physicaloffsety)+1+oben; re:=li+rech(maengel.data_grid.ColWidths[x]+1,waag); for y:=vZeile to bZeile do begin un:=ob+rech(maengel.data_grid.RowHeights[y]+1,senk); if (x < maengel.data_grid.fixedcols)or(y < maengel.data_grid.fixedrows) then canvas.brush.color:=fix else canvas.brush.color:=grund; canvas.rectangle(li,ob,re+2,un+2); r:=rect(li+a,ob+1,re-a,un-2); drawtext(canvas.handle,pchar(maengel.data_grid.Cells[x,y]),length(maengel.data_grid.Cells[x,y]), r,DT_SINGLELINE or DT_VCENTER); ob:=un; end; li:=re; end; eich_bild:=TBitmap.Create; eich_bild.LoadFromResourceName(hInstance,'pic1'); if option_form.print_logo_out.Checked then Printer.Canvas.Draw(3550,50,eich_bild); Printer.Canvas.Font.Size:=10; Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,3750,'TA (Einsatzzeit in h):');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1350,3750,maengel.einsatz_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,3900,'TS (Rüstzeit in h):');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1350,3900,maengel.ruest_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,4050,'WT (Funkenzeit in h):');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1350,4050,maengel.funken_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,4200,'TT (Fahrzeit in h):');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1350,4200,maengel.fahrzeit_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,4350,'TW (Wartezeit in h):');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1350,4350,maengel.warte_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,4500,'MD (Maschinendefekt):');Printer.Canvas.Font.Style:=[];Canvas.TextOut(1350,4500,maengel.madef_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(1900,3750,'Schleifmeter:');Printer.Canvas.Font.Style:=[];Canvas.TextOut(2550,3750,maengel.schlmet_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(1900,3900,'Fertigmeter:');Printer.Canvas.Font.Style:=[];Canvas.TextOut(2550,3900,maengel.fertigmet_text.text); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(1900,4050,'Bemerkungen:');Printer.Canvas.Font.Style:=[]; Canvas.TextOut(2550,4050,maengel.bem_text.Lines[0]); Canvas.TextOut(2550,4150,maengel.bem_text.Lines[1]); Canvas.TextOut(2550,4250,maengel.bem_text.Lines[2]); Canvas.TextOut(2550,4350,maengel.bem_text.Lines[3]); Canvas.TextOut(2550,4450,maengel.bem_text.Lines[4]); Canvas.TextOut(2550,4550,maengel.bem_text.Lines[5]); Printer.Canvas.Font.Style:=[fsBold];Canvas.TextOut(300,4750,'vorhandene Schienenfehler:');Printer.Canvas.Font.Style:=[]; Canvas.TextOut(300,4900,'Shellings'); Canvas.TextOut(300,5000,'Wellen'); Canvas.TextOut(300,5100,'senkr. Abnutzung'); Canvas.TextOut(300,5200,'Einsenkung');
Canvas.TextOut(1400,4900,'Head-Checks'); Canvas.TextOut(1400,5000,'waager. Risse'); Canvas.TextOut(1400,5100,'senkr. Risse'); Canvas.TextOut(1400,5200,'Korrosion');
Canvas.TextOut(2400,4900,'Riffel'); Canvas.TextOut(2400,5000,'Abblätterung'); Canvas.TextOut(2400,5100,'Schleuderstellen'); Canvas.TextOut(2400,5200,'seitl. Abnutzung');
Canvas.TextOut(3500,4900,'Verquetschungen'); Canvas.TextOut(3500,5000,'Oberflächenrisse'); Canvas.TextOut(3500,5100,'Sonstiges'); Printer.Canvas.Font.Style:=[fsBold]; Canvas.TextOut(4350,5100,'[ ]'); Printer.Canvas.Font.Style:=[]; Canvas.TextOut(300,5400,'Bedenken f. Durchführung:'); Canvas.TextOut(2400,5400,'Behinderung b. Durchführung:'); Printer.Canvas.Font.Size:=12; Canvas.TextOut(300,5650,'Unterschrift'); Printer.Canvas.Font.Style:=[fsBold]; Canvas.TextOut(300,6050,'________________________________'); Canvas.TextOut(2500,6050,'________________________________'); Printer.Canvas.Font.Size:=8; Canvas.TextOut(300,6190,'Datum');Canvas.TextOut(1300,6190,'AN'); Canvas.TextOut(2500,6190,'Datum');Canvas.TextOut(3500,6190,'AG'); Printer.Canvas.Font.Size:=10;Printer.Canvas.Font.Style:=[];
if maengel.chk_shellings.Checked then Canvas.TextOut(1100,4900,'[X]') else Canvas.TextOut(1100,4900,'[ ]'); if maengel.chk_wellen.Checked then Canvas.TextOut(1100,5000,'[X]') else Canvas.TextOut(1100,5000,'[ ]'); if maengel.chk_abnutz.Checked then Canvas.TextOut(1100,5100,'[X]') else Canvas.TextOut(1100,5100,'[ ]'); if maengel.chk_einsenk.Checked then Canvas.TextOut(1100,5200,'[X]') else Canvas.TextOut(1100,5200,'[ ]');
if maengel.chk_headchk.Checked then Canvas.TextOut(2100,4900,'[X]') else Canvas.TextOut(2100,4900,'[ ]'); if maengel.chk_waagri.Checked then Canvas.TextOut(2100,5000,'[X]') else Canvas.TextOut(2100,5000,'[ ]'); if maengel.chk_senkri.Checked then Canvas.TextOut(2100,5100,'[X]') else Canvas.TextOut(2100,5100,'[ ]'); if maengel.chk_korro.Checked then Canvas.TextOut(2100,5200,'[X]') else Canvas.TextOut(2100,5200,'[ ]');
if maengel.chk_riff.Checked then Canvas.TextOut(3200,4900,'[X]') else Canvas.TextOut(3200,4900,'[ ]'); if maengel.chk_abbl.Checked then Canvas.TextOut(3200,5000,'[X]') else Canvas.TextOut(3200,5000,'[ ]'); if maengel.chk_schleud.Checked then Canvas.TextOut(3200,5100,'[X]') else Canvas.TextOut(3200,5100,'[ ]'); if maengel.chk_seitlab.Checked then Canvas.TextOut(3200,5200,'[X]') else Canvas.TextOut(3200,5200,'[ ]');
if maengel.chk_verq.Checked then Canvas.TextOut(4350,4900,'[X]') else Canvas.TextOut(4350,4900,'[ ]'); if maengel.chk_oberflri.Checked then Canvas.TextOut(4350,5000,'[X]') else Canvas.TextOut(4350,5000,'[ ]');
if maengel.beddurch_yes.Checked then Canvas.TextOut(1400,5400,'ja[X] nein[ ]') else Canvas.TextOut(1400,5400,'ja[ ] nein[X]'); if maengel.durchf_yes.Checked then Canvas.TextOut(3650,5400,'ja[X] nein[ ]') else Canvas.TextOut(3650,5400,'ja[ ] nein[X]');
enddoc; maengel.data_grid.RowCount:=36; end; end; end; |