unit Unit1; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, plPrev, ExtCtrls, Buttons; type TForm1 = class(TForm) BitBtn1: TBitBtn; BitBtn2: TBitBtn; BitBtn3: TBitBtn; plPrev1: TplPrev; plPrev2: TplPrev; plPrev3: TplPrev; procedure BitBtn1Click(Sender: TObject); procedure BitBtn2Click(Sender: TObject); procedure BitBtn3Click(Sender: TObject); procedure plPrev1NoPrintDraw(Sender: TObject; Page: Integer); procedure plPrev2NoPrintDraw(Sender: TObject; Page: Integer); procedure plPrev3NoPrintDraw(Sender: TObject; Page: Integer); private { Private 宣言 } procedure DrawGensenBaseSheet(PV: TplPrev; Xl,Yt: Integer;Kind: Integer ); procedure PutDataToGensenSheet(PV: TplPrev; Xl,Yt: Integer ); public { Public 宣言 } Kind : Integer; //用紙の種類番号 procedure Test1; procedure Test2; procedure Test3; end; var Form1: TForm1; implementation {$R *.DFM} //============================================================================= // 給与支払報告書(個人明細書) 連続用紙(ドットインパクトプリンタ)用 // 連続用紙は横171.45mm縦101.6mmの穴あき(ファンフォールト)用紙 // (6 3/4inch) (4inch) // // 設計時のプリンタはEPSON VP-1800 // 該当用紙がないので15×4 inchの連続用紙に設定して表示をプロパティViewWidth, // ViewHeightで指定 //============================================================================= procedure TForm1.BitBtn1Click(Sender: TObject); begin Kind := 1; plPrev1.PageCount := 1; //連続用紙の表示サイズを指定 plPrev1.ViewHeight := 1016; plPrev1.ViewWidth := 1715; plPrev1.ViewClip := False; //描画用の手続きを指定 plPrev1.ProcName := Test1; plPrev1.FormHeight := 600; plPrev1.FormWidth := 800; plPrev1.FormPosition := poDesktopCenter; plPrev1.ShowModal; end; //============================================================================= // 給与支払報告書(個人明細書) ヒサゴOP938R,OP938,GB938用 // 938はプリンタに用紙をセットするのが縦のものに向いている // // 設計時のプリンタは A4 印刷の向きは横 //============================================================================= procedure TForm1.BitBtn2Click(Sender: TObject); begin Kind := 2; plPrev2.PageCount := 1; plPrev2.ViewClip := True; //描画用の手続きを指定 plPrev2.ProcName := Test2; plPrev2.FormHeight := 600; plPrev2.FormWidth := 800; plPrev2.FormPosition := poDesktopCenter; plPrev2.ShowModal; end; //============================================================================= // 給与支払報告書(個人明細書) ヒサゴOP1195R,OP1195,GB1195用 // 1195はプリンタに用紙をセットするのが横のものに向いている // // 設計時のプリンタは A4 印刷の向きは横 //============================================================================= procedure TForm1.BitBtn3Click(Sender: TObject); begin Kind := 3; plPrev3.PageCount := 1; plPrev3.ViewClip :=True; //描画用の手続きを指定 plPrev3.ProcName := Test3; plPrev3.FormHeight := 600; plPrev3.FormWidth := 800; plPrev3.FormPosition := poDesktopCenter; plPrev3.ShowModal; end; //============================================================================= // 給与支払報告書(個人明細書) 連続用紙用テスト //============================================================================= procedure TForm1.Test1; begin //実際のデータの描画 PutDataToGensenSheet(plPrev1, 225, 20); end; //============================================================================= // 給与支払報告書(個人明細書) ヒサゴ938(A4用紙)用テスト //============================================================================= procedure TForm1.Test2; begin //実際のデータの描画 PutDataToGensenSheet(plPrev2, 1530, 90); PutDataToGensenSheet(plPrev2, 1530, 1110); PutDataToGensenSheet(plPrev2, 80, 90); PutDataToGensenSheet(plPrev2, 80, 1110); end; //============================================================================= // 給与支払報告書(個人明細書) ヒサゴ1195(A4用紙)用テスト //============================================================================= procedure TForm1.Test3; begin //実際のデータの描画 PutDataToGensenSheet(plPrev3, 1530, 20); PutDataToGensenSheet(plPrev3, 1530, 1040); PutDataToGensenSheet(plPrev3, 80, 20); PutDataToGensenSheet(plPrev3, 80, 1040); end; //============================================================================= // 印刷しないコードを描画するためのイベント内で台紙コードを描画 // 台紙の描画はクリップしないで実際のデータの描画をクリップすることで,設定 // したプリンタで印刷可能(印刷が欠けない)かどうかを判定することができる. //============================================================================= procedure TForm1.plPrev1NoPrintDraw(Sender: TObject; Page: Integer); begin DrawGensenBaseSheet(plPrev1, 225, 20, 1); end; //============================================================================= // 印刷しないコードを描画するためのイベント内で台紙コードを描画 // 台紙の描画はクリップしないで実際のデータの描画をクリップすることで,設定 // したプリンタで印刷可能(印刷が欠けない)かどうかを判定することができる. //============================================================================= procedure TForm1.plPrev2NoPrintDraw(Sender: TObject; Page: Integer); begin DrawGensenBaseSheet(plPrev2, 1530, 90, 1); DrawGensenBaseSheet(plPrev2, 1530, 1110, 2); DrawGensenBaseSheet(plPrev2, 80, 90, 3); DrawGensenBaseSheet(plPrev2, 80, 1110, 4); end; //============================================================================= // 印刷しないコードを描画するためのイベント内で台紙コードを描画 // 台紙の描画はクリップしないで実際のデータの描画をクリップすることで,設定 // したプリンタで印刷可能(印刷が欠けない)かどうかを判定することができる. //============================================================================= procedure TForm1.plPrev3NoPrintDraw(Sender: TObject; Page: Integer); begin DrawGensenBaseSheet(plPrev3, 1530, 20, 1); DrawGensenBaseSheet(plPrev3, 1530, 1040, 2); DrawGensenBaseSheet(plPrev3, 80, 20, 3); DrawGensenBaseSheet(plPrev3, 80, 1040, 4); end; //============================================================================= // 印刷コードの例 //============================================================================= procedure TForm1.PutDataToGensenSheet(PV: TplPrev; Xl, Yt: Integer); var TempStr : String; begin PV.PenColor(clBlack); PV.FontName('MS 明朝'); PV.FontColor(clBlack); //氏名とフリガナ PV.FontSize (10); PV.TextRectLC(Xl+845, Xl+1363, Yt+150, Yt+230, '鵬翔 太郎'); PV.FontSize (8); PV.TextRectLC(Xl+845, Xl+1363, Yt+103, Yt+145, 'ホウショウ タロウ'); //住所を出力 PV.FontSize(10); PV.TextRectLC(Xl+135, Xl+725, Yt+115, Yt+163, '埼玉県さいたま市南群馬1-2-3'); PV.TextRectLC(Xl+135, Xl+725, Yt+163, Yt+225, '高級マンション505'); PV.TextRectCC(Xl+3, Xl+245, Yt+280, Yt+360, '給与・賞与'); //払金額を書式を整えて出力 TempStr := FormatFloat('##,##0', 3500000); PV.TextRectRC(Xl+245, Xl+499, Yt+280, Yt+360, TempStr); //税額を書式を整えて出力 TempStr := FormatFloat('#,##0', 175000); PV.TextRectRC(Xl+1083, Xl+1337, Yt+280, Yt+360, TempStr); //適用欄 PV.TextRectCC(Xl+5, Xl+931, Yt+540, Yt+660, '普通徴収 第三営業部 庶務課'); //乙欄の丸印 PV.PenWidth(5); PV.Canvas.Ellipse(Xl+105, Yt+752, Xl+105+30, Yt+752+30); //平成 PV.Circle(Xl+1100, Yt+765, 25); //生年月日 PV.TextRectCC(Xl+1130, Xl+1205, Yt+745, Yt+785, '15'); PV.TextRectCC(Xl+1205, Xl+1285, Yt+745, Yt+785, '11'); PV.TextRectCC(Xl+1285, Xl+1355, Yt+745, Yt+785, '15'); PV.TextOutLC(Xl+283, Yt+830, '東京都板豊区西池袋1-1-1'); PV.TextOutLC(Xl+283, Yt+910, '板豊株式会社 板豊 次郎'); //電話番号 PV.TextOutLC(Xl+905, Yt+930, '03-111-1234'); end; //============================================================================= // 「給与支払報告書(個人別明細書)-給与所得の源泉徴収票 台紙 // 用紙は1999.1.14現在のもの // // 複写連続用紙(ファンフォールト用紙) // 横171.45mm(6 3/4inch)縦101.6mm(4inch)の複写用紙 // HISAGO OP938R 所得税源泉徴収票(A4版 297×210mm) // 切取り後のサイズは145×102mm // // // PV : 印刷プレビューコンポーネント // タックシール印刷コンポで使用する時はTplPrev(plTackPrev1)のよ // うにキャストして指定する // Xl : 用紙左端から最初の縦線までの距離(X座標値) // Yt : 用紙上端から一番上の横罫線まで高さ(Y座標値) // (個人別明細書用紙の上端横罫線) // ViewColor : 罫線と文字の色 // Kind : 1 給与支払報告書(個人別明細書) 青 // 2 給与支払報告書(個人別明細書) 緑 // 3 給与所得の源泉徴収票 黒 // 4 給与所得の源泉徴収票 黒 // 3,4は現在のところ同じ台紙 //============================================================================= procedure TForm1.DrawGensenBaseSheet(PV: TplPrev; Xl,Yt: Integer;Kind: Integer ); var Xr : Integer; Yb : Integer; i : Integer; Y1 : Integer; Y2 : Integer; Y3 : Integer; BoldLine : Integer; ViewColor : TColor; begin Xr := Xl+1365; Yb := Yt+955; if (Kind = 1) or (Kind = 2) then begin BoldLine := 5; end else begin BoldLine := 1; end; case Kind of 1: ViewColor := $00BAAD72;//$00EAD2A2; 2: ViewColor := $00A8E6B6; 3: ViewColor := clSilver; 4: ViewColor := clSilver; else ViewColor := clBlack; end; PV.PenColor(ViewColor); PV.FontColor(ViewColor); PV.FontName('MS 明朝'); PV.FontSize(7.0); PV.LineStyle(psSolid); if (Kind = 1) or (Kind = 2) then begin PV.LineWidth(3); PV.RectLine(Xl, Xr, Yt, Yb); //外枠 //右側の太線 if Kind = 1 then begin PV.LineWidth(10); PV.RectLine( Xr, Xr, Yt-20, Yt+996); end; PV.LineWidth(1); //17個の四角 for i := 1 to 16 do begin PV.Line (Xl+i*38, Xl+i*38, Yt+20, Yt+62); end; //一番上の行の種別左縦} PV.Line (Xl+645, Xl+645, Yt, Yt+62); //整理番号左 PV.Line (Xl+810, Xl+810, Yt, Yt+62); //*の左 PV.Line (Xl+1103, Xl+1103, Yt, Yt+62); PV.FontSize(5.4); PV.TextRectLC (Xl+648, Xl+810, Yt, Yt+20, '* 種 別'); PV.TextRectLC (Xl+813, Xl+1113, Yt, Yt+20, '* 整 理 番 号'); PV.TextRectLC (Xl+1116, Xr, Yt, Yt+20, '*'); //20は上から2行目の上 PV.Line (Xl,Xr,Yt+20,Yt+20); end else begin PV.LineWidth(3); PV.RectLine(Xl,Xr,Yt+62,Yb); PV.LineWidth(1); end; PV.RectLine( Xl, Xr, Yt+62, Yt+230); //62は上から2行目の下 PV.Line ( Xl+75, Xl+75, Yt+62, Yt+230); //230は住所の下 if (Kind = 1) or (Kind = 2) then begin PV.Line ( Xl+75, Xl+735, Yt+105, Yt+105); //105は区分下 PV.Line ( Xl+180, Xl+180, Yt+62, Yt+105); //180は区分右 PV.Line ( Xl+125, Xl+125, Yt+105, Yt+230); //125は住所右 end else begin PV.Line ( Xl+125, Xl+125, Yt+62, Yt+230); //125は住所右 end; PV.Line ( Xl+735, Xl+735,Yt+62, Yt+230); //735は氏名左 PV.Line ( Xl+785, Xl+785,Yt+62, Yt+230); //785は氏名右 PV.PenStyle(psDot); PV.Line (Xl+785, Xr, Yt+105, Yt+105); //105はフリガナ上 PV.PenStyle(psSolid); PV.Line (Xl+785, Xr, Yt+148, Yt+148); //148は役職名上 PV.FontSize(6.0); if (Kind = 1) or (Kind = 2) then begin PV.TextRectJust(Xl+75, Xl+180, Yt+62, Yt+105, ' *区分 '); end; PV.TextRectJust(Xl+2, Xl+70, Yt+80, Yt+110, '支払'); PV.TextRectJust(Xl+2, Xl+70, Yt+130, Yt+160, 'を受け'); PV.TextRectJust(Xl+2, Xl+70, Yt+190, Yt+220, 'る者'); PV.FontName ('MS 明朝'); PV.TextRectJustTate( Xl+735, Xl+785, Yt+80, Yt+230,' 氏 名 '); if (Kind = 1) or (Kind = 2) then begin PV.TextRectJustTate( Xl+75, Xl+125, Yt+105, Yt+230,' 住 所 '); end else begin PV.TextRectJustTate( Xl+75, Xl+125, Yt+62+10, Yt+230-10, '住所又は居所'); end; PV.FontName ('MS 明朝'); PV.FontSize (4.8); PV.TextOutLT (Xl+785, Yt+62,' (受給者番号)'); PV.TextOutLT (Xl+785,Yt+105,' (フリガナ)'); PV.TextOutLT (Xl+785,Yt+148,' (役職名)'); PV.FontSize (6.0); PV.RectLine ( Xr, Xl, Yt+275, Yt+358); //295は種別項目名下 PV.RectLine ( Xr, Xl+245, Yt+230, Yt+358); //245は種別右 PV.Line ( Xl+515, Xl+515, Yt+230, Yt+358); //515は支払金額右 PV.Line ( Xl+795, Xl+795, Yt+230, Yt+358); //795控除後の金額の右 PV.Line ( Xl+1075, Xl+1075, Yt+230, Yt+358); //1075は源泉徴収税額の左 PV.LineWidth (BoldLine); PV.RectLine ( Xl+245, Xl+795, Yt+275, Yt+358); PV.Line ( Xl+515, Xl+515, Yt+275, Yt+358); PV.TextRectJust( Xl+45, Xl+195, Yt+230, Yt+275, '種別'); PV.TextRectJust( Xl+285, Xl+475, Yt+230, Yt+275, '支払金額'); PV.TextRectJust( Xl+520, Xl+790, Yt+230, Yt+275, '給与所得控除後の金額'); PV.TextRectJust( Xl+805, Xl+1065, Yt+230, Yt+275, '所得控除の額の合計額'); PV.TextRectJust( Xl+1105, Xl+1335, Yt+230, Yt+275, '源泉徴収額'); PV.LineWidth(1); //配偶者特別控除など分開始 PV.RectLine ( Xr, Xl, Yt+450, Yt+535); //535摘要欄上450上横線 PV.Line ( Xl+130, Xl+130, Yt+358, Yt+535); //縦線.左から PV.Line ( Xl+280, Xl+280, Yt+358, Yt+535); PV.Line ( Xl+610, Xl+610, Yt+358, Yt+535); PV.Line ( Xl+735, Xl+735, Yt+358, Yt+535); PV.Line ( Xl+915, Xl+915, Yt+358, Yt+535); PV.Line ( Xl+1070, Xl+1070, Yt+358, Yt+535); PV.Line ( Xl+1195, Xl+1195, Yt+358, Yt+535); PV.RectLine ( Xl+280, Xl+735, Yt+425, Yt+535); //扶養親族の数の細長い四角 PV.RectLine ( Xl+100, Xl+130, Yt+405, Yt+535); //老人の枠 PV.Line ( Xl+380, Xl+380, Yt+425, Yt+535); //縦線開始 PV.Line ( Xl+510, Xl+510, Yt+425, Yt+535); PV.Line ( Xl+685, Xl+685, Yt+425, Yt+535); PV.Line ( Xl+25, Xl+25, Yt+450, Yt+535); PV.Line ( Xl+50, Xl+50, Yt+450, Yt+535); PV.Line ( Xl+75, Xl+75, Yt+450, Yt+535); PV.PenStyle (psDot); PV.Line ( Xl+405, Xl+405, Yt+450, Yt+535); PV.Line ( Xl+645, Xl+645, Yt+450, Yt+535); PV.PenStyle (psSolid); PV.PenWidth (BoldLine); //太線 PV.RectLine ( Xl, Xl+50, Yt+450, Yt+535); //一番左 PV.RectLine ( Xl+100, Xl+330, Yt+450, Yt+535); //老人左から特定右 PV.Line ( Xl+130, Xl+130, Yt+450, Yt+535); //縦 PV.Line ( Xl+280, Xl+280, Yt+450, Yt+535); //縦 PV.RectLine ( Xl+380, Xl+470, Yt+450, Yt+535); //次の老人左から PV.RectLine ( Xl+510, Xl+560, Yt+450, Yt+535); //その他 PV.RectLine ( Xl+610, Xl+1195, Yt+450, Yt+535); //一番右の太枠 PV.Line ( Xl+735, Xl+735, Yt+450, Yt+535); //縦線 PV.Line ( Xl+915, Xl+915, Yt+450, Yt+535); //縦 PV.Line ( Xl+1070, Xl+1070, Yt+450, Yt+535); //縦 PV.LineWidth(1); PV.Line (Xl,Xl+100,Yt+485,Yt+485); Y1:=Yt+358; Y2:=Yt+405; Y3:=Yt+450; PV.TextRectJust (Xl+5, Xl+130, Y1, Y2, '控除対象配偶'); PV.TextRectJust (Xl+5, Xl+100, Y2, Y3, '者の有無等'); PV.TextRectJustTate(Xl+100, Xl+130, Y2+2, Y3-2, '老人'); PV.TextRectJust (Xl+130+10, Xl+280-10, Y1, Y2, '配偶者特別'); PV.TextRectJust (Xl+130+10, Xl+280-10, Y2, Y3, '控除の額)'); PV.TextRectJust (Xl+280+50, Xl+610-50, Y1, Y2-10, '扶養家族の数'); PV.TextRectJust (Xl+280+50, Xl+610-50, Y2-20, Y3-10, '(配偶者を除く)'); PV.TextRectJust (Xl+610+3, Xl+735-3, Y1, Y2-10, '障害者の数'); PV.TextRectJust (Xl+610+3, Xl+735-3, Y2-20, Y3-10, '(本人を除く)'); PV.TextRectJust (Xl+735+10, Xl+915-10, Y1, Y2, '社会保険料'); PV.TextRectJust (Xl+735+10, Xl+915-10, Y2, Y3, '等の金額'); PV.TextRectJust (Xl+915+10, Xl+1070-10, Y1, Y2, '生命保険料'); PV.TextRectJust (Xl+915+10, Xl+1070-10, Y2, Y3, 'の控除額'); PV.TextRectJust (Xl+1070+10, Xl+1195-10, Y1, Y2, '損害保険料'); PV.TextRectJust (Xl+1070+10, Xl+1195-10, Y2, Y3, 'の控除額'); PV.TextRectJust (Xl+1195+10, Xr-10, Y1, Y2, '住宅借入金等'); PV.TextRectJust (Xl+1195+10, Xr-10, Y2, Y3, '特別控除の額'); PV.FontSize(5.4); PV.TextRectJustTate ( Xl, Xl+25, Yt+450+2, Yt+485-2, ' 有'); PV.TextRectJustTate ( Xl+25, Xl+50, Yt+450+2, Yt+485-2, ' 無'); PV.TextRectJustTate ( Xl+50, Xl+75, Yt+450+2, Yt+485-2, '従有'); PV.TextRectJustTate ( Xl+75, Xl+100 ,Yt+450+2, Yt+485-2, '従無'); Y1:=Yt+450-20; Y2:=Yt+450; PV.TextRectJust ( Xl+280+20, Xl+380-20, Y1, Y2, '特定'); PV.TextRectJust ( Xl+380+25, Xl+510-25, Y1, Y2, '老人'); PV.TextRectJust ( Xl+510+18, Xl+610-18, Y1, Y2, 'その他'); PV.TextRectJust ( Xl+610+10, Xl+685-10, Y1, Y2, '特別'); PV.TextRectJust ( Xl+685+3, Xl+735-3, Y1, Y2, 'その他'); PV.FontSize (6.0); PV.LineWidth(1); //摘要の行の分開始 PV.Line(Xl+925,Xl+925, Yt+535, Yt+660); //摘要の右側の縦線 PV.Line(Xl+925,Xr, Yt+575, Yt+575); //個人年金保険料の金額の上の横線 PV.Line(Xl+925,Xr, Yt+620, Yt+620); //...の下の横線 PV.LineWidth(BoldLine); PV.RectLine(Xl+1125, Xr, Yt+535, Yt+660); //摘要の行の最右側3行分の太線 PV.TextOutLT(Xl+5,Yt+540,'(摘要)'); //乙欄などのある行の分開始 PV.RectLine( Xl, Xl+90, Yt+660, Yt+790); //今度は太枠から開始 PV.RectLine( Xl+148, Xl+497, Yt+660, Yt+790); PV.RectLine( Xl+650, Xl+925, Yt+660, Yt+790); PV.LineWidth(1); PV.Line( Xl+40, Xl+40, Yt+660, Yt+790); //縦線 PV.Line( Xl+250, Xl+250, Yt+660, Yt+790); PV.Line( Xl+148, Xl+250, Yt+683, Yt+683); //小さな横線 PV.Line( Xl+200, Xl+200, Yt+683, Yt+790); //その中間の縦線 PV.Line( Xl+300, Xl+300, Yt+660, Yt+790); PV.Line( Xl+300, Xl+400, Yt+683, Yt+683); //小さな横線 PV.Line( Xl+350, Xl+350, Yt+683, Yt+790); PV.Line( Xl+400, Xl+400, Yt+660, Yt+790); PV.Line( Xl+450, Xl+450, Yt+660, Yt+790); PV.Line( Xl+550, Xl+550, Yt+660, Yt+790); //死亡退職の右 PV.Line( Xl+600, Xl+600, Yt+660, Yt+790); //災害者の右 PV.Line( Xl+650, Xr, Yt+705, Yt+705); //中途~受給者生年月日の右の横線 PV.Line( Xl+700, Xl+700, Yt+705, Yt+790); //就職の右 PV.Line( Xl+750, Xl+750, Yt+705, Yt+790); //退職の右 PV.Line( Xl+813, Xl+813, Yt+705, Yt+790); //年の右 PV.Line( Xl+865, Xl+865, Yt+705, Yt+790); //月の右.日の右は1140 PV.Line( Xl+975, Xl+975, Yt+705, Yt+790); //明の右 PV.Line( Xl+1025, Xl+1025, Yt+705, Yt+790); //大の右 PV.Line( Xl+1075, Xl+1075, Yt+705, Yt+790); //昭の右 PV.Line( Xl+1125, Xl+1125, Yt+705, Yt+790); //平の右 PV.Line( Xl+1205, Xl+1205, Yt+705, Yt+790); //年の右 PV.Line( Xl+1280, Xl+1280, Yt+705, Yt+790); //月の右 PV.FontSize(5.4); PV.TextRectJUst (Xl+148+2, Xl+250-2, Yt+660, Yt+682,'本人が障害者'); PV.TextRectJUst (Xl+300+14, Xl+400-14, Yt+660, Yt+682,'募夫'); //これらの記入欄の右端はXr PV.FontSize(6.0); PV.TextRectJUst (Xl+915+20, Xl+1125-10, Yt+530, Yt+575, '配偶者の合計所得'); PV.TextRectJUst (Xl+915+20, Xl+1125-10, Yt+575, Yt+620, '個人年金保険料の金額'); PV.TextRectJUst (Xl+915+20, Xl+1125-10, Yt+620, Yt+660, '長期損害保険料の金額'); //これらの記入欄の上は740下は780 PV.TextRectJustTate( Xl, Xl+40, Yt+660+3, Yt+740-2, '夫あり'); PV.TextRectJustTate( Xl+40, Xl+90, Yt+660+3, Yt+740-2, '未成年者'); PV.TextRectJustTate( Xl+90, Xl+148, Yt+660+3, Yt+740-2, '乙 欄'); PV.TextRectJustTate( Xl+148, Xl+200, Yt+682+3, Yt+740-2, '特別'); PV.TextRectJustTate( Xl+200, Xl+250, Yt+682+3, Yt+740-2, 'その他'); PV.TextRectJustTate( Xl+250, Xl+300, Yt+660+3, Yt+740-2, '老年者'); PV.TextRectJustTate( Xl+300, Xl+350, Yt+682+3, Yt+740-2, '一般'); PV.TextRectJustTate( Xl+350, Xl+400, Yt+682+3, Yt+740-2, '特別'); PV.TextRectJustTate( Xl+400, Xl+450, Yt+660+3, Yt+740-2, '募夫'); PV.TextRectJustTate( Xl+450, Xl+500, Yt+660+3, Yt+740-2, '勤労学生'); PV.TextRectJustTate( Xl+500, Xl+550, Yt+660+3, Yt+740-2, '死亡退職'); PV.TextRectJustTate( Xl+550, Xl+600, Yt+660+3, Yt+740-2, '災害者'); PV.TextRectJustTate( Xl+600, Xl+650, Yt+660+3, Yt+740-2, '外国人'); //これらの記入欄の上は740下は780 PV.TextRectJust ( Xl+650+50, Xl+915-50, Yt+660, Yt+705, '中途就・退職'); PV.TextRectJust ( Xl+650+2, Xl+700-2, Yt+705, Yt+740, '就職'); PV.TextRectJust ( Xl+700+2, Xl+750-2, Yt+705, Yt+740, '退職'); PV.TextRectCC ( Xl+750, Xl+813, Yt+705, Yt+740, '年'); PV.TextRectCC ( Xl+813, Xl+865, Yt+705, Yt+740, '月'); PV.TextRectCC ( Xl+865, Xl+915, Yt+705, Yt+740, '日'); //これらの記入欄の上は740下は780 PV.TextRectJust (Xl+1025, Xl+1255, Yt+660, Yt+705, '受給者生年月日'); PV.TextRectCC (Xl+925, Xl+975, Yt+705, Yt+740, '明'); PV.TextRectCC (Xl+975, Xl+1025, Yt+705, Yt+740, '大'); PV.TextRectCC (Xl+1025, Xl+1075, Yt+705, Yt+740, '昭'); PV.TextRectCC (Xl+1075, Xl+1125, Yt+705, Yt+740, '平'); PV.TextRectCC (Xl+1125, Xl+1205, Yt+705, Yt+740, '年'); PV.TextRectCC (Xl+1205, Xl+1280, Yt+705, Yt+740, '月'); PV.TextRectCC (Xl+1280, Xr, Yt+705, Yt+740, '日'); PV.RectLine ( Xr, Xl, Yt+745, Yt+790); //790は支払者の住所の上 PV.RectLine ( Xr, Xl, Yt+660, Yt+790); //790は乙欄のある下 PV.Line ( Xl+55, Xl+55, Yt+790, Yb); //55は支払者右 PV.Line ( Xl+55, Xr, Yt+870, Yt+870); //870は支払者氏名の上 PV.Line ( Xl+230, Xl+230, Yt+790, Yb); //氏名の右 PV.FontName ('MS 明朝'); PV.TextRectJustTate( Xl, Xl+50, Yt+780, Yt+950, ' 支払者 '); PV.FontName ('MS 明朝'); //支払者住所の記入欄は横方向235-1355,縦方向760-840 PV.TextRectJust (Xl+75, Xl+215, Yt+790, Yt+830, '住所(居所)'); PV.TextRectJust (Xl+75, Xl+215, Yt+830, Yt+870, '又は所在地'); //支払者氏名等の記入欄は横方向235-1344,縦方向840-930 PV.TextRectJust (Xl+75, Xl+215, Yt+870, Yt+912, '氏名又は'); PV.TextRectJust (Xl+75, Xl+215, Yt+913, Yt+955, '名称'); PV.TextOutLB (Xl+795, Yt+950, '(電話)'); PV.FontName ('MS ゴシック'); PV.FontSize (15); if (Kind = 1) or (Kind = 2) then begin PV.TextRectJustTate(Xl-65, Xl-5,Yt+240, Yt+730, '給与支払報告書(個人別明細書)'); end else begin PV.TextRectCB(Xl, Xr, Yt, Yt+62-5, '給与所得の源泉徴収票'); end; end; end. |