// BLATT1DR.prg - druckt die Bestattungs-"Maske" PROCEDURE Blatt1DR( cDatei, cTitle, oDlg, nXsize, nYsize ) LOCAL cText, cFeld, nZeialt, nZei, nSpa, cBlatt1 //LOCAL cHPklein, cHPkleinfett, cHPnorm SELECT 12 USE Drubef cHPklein := Trim( 12->hpres1 ) cHPkleinfett := Trim( 12->hpres2 ) cHPnorm := Trim( 12->hpnorm ) nPoffY := Val( Substr( 12->hpres5, 1, 3 ) ) nPoffX := Val( Substr( 12->hpres5, 4, 3 ) ) nPpZ := Val( Substr( 12->hpres5, 7, 3 ) ) nPpS := Val( Substr( 12->hpres5, 10, 3 ) ) USE SET DEVICE TO PRINTER SET PRINTER ON //SET PRINTER TO blatt1dr.dbf //@ 0,0 SAY Chr(27)+"(s0p6.00h6.0v0s0b2T" + Chr(13)+Chr(10) IF cHPklein <> " " @ 0,0 SAY Chr(27)+cHPklein ENDIF SetPrc( 0, 0 ) nZei=1 USE blatt1 DO WHILE .NOT. Eof() cText := Trim( 12->text ) cFeld := Trim( 12->feld ) // nZeialt := nZei nZei := (12->zeile) // IF nZeialt <> nZei // @ nZeialt,PCol() SAY Chr(13)+Chr(10) // ENDIF // nSpa := IIf( PCol()<=(12->spalte), 12->spalte, PCol() ) nSpa := 12->spalte SELECT 1 IF len(cFeld)>0 DO CASE CASE Valtype( 1->(&cFeld) ) == "C" ZS( nZei, nSpa ) QQOut( cText ) FDr( Trim( 1->(&cFeld) ) ) CASE Valtype( 1->(&cFeld) ) == "N" ZS( nZei, nSpa ) QQOut( cText ) FDr( Trim( Str( 1->(&cFeld) ) ) ) CASE Valtype( 1->(&cFeld) ) == "D" ZS( nZei, nSpa ) QQOut( cText ) FDr( Trim( DtoC( 1->(&cFeld) ) ) ) ENDCASE ELSE ZS( nZei, nSpa ) QQOut( cText ) ENDIF SELECT 12 SKIP ENDDO USE //@ ++nZei,1 SAY Chr(27)+"(s0p10.00h12.0v0s0b3T" IF cHPklein <> " " QQOut( Chr(27)+cHPnorm ) ENDIF //SET PRINTER TO //cBlatt1 := ModalDialog( cDatei, cTitle, oDlg, nXsize, nYsize ) //Setprc(0,0) //@ 0,0 SAY cBlatt1 EJECT SET DEVICE TO SCREEN SELECT 1 RETURN FUNCTION ZS( nZei, nSpa ) LOCAL nRow := PRow() , nCol := PCol() QQOut( Chr(27)+"*p"+LTrim(Str(nPoffY+nZei*nPpZ,4,0))+"Y" ; + Chr(27)+"*p"+LTrim(Str(nPoffX+nSpa*nPpS,4,0))+"X" ) RETURN SetPrc( nRow, nCol ) FUNCTION Fdr( cFeld ) LOCAL nRow := PRow() , nCol := PCol() QQOut( Chr(27)+cHPnorm ) SetPrc( nRow, nCol ) QQOut( Trim( cFeld ) ) nRow := PRow() ; nCol := PCol() QQOut( Chr(27)+cHPklein ) RETURN SetPrc( nRow, nCol )