📄 frmmain.pas
字号:
unit FrmMain;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ImgList, Menus, ComCtrls, Buttons, ToolWin, ExtCtrls, dxsbar,
OleCtrls, SHDocVw, Grids, BaseGrid, AdvGrid, StdCtrls, AdvEdit,
cxLookAndFeelPainters, cxButtons, Mask, AdvMEdBtn, PlannerMaskDatePicker,
cxControls, cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxDropDownEdit,
cxCalendar, ActnList, asgprint;
type
TCustomCell = record
aRow: integer;
aCol: Integer;
end;
TMain = class(TForm)
CoolBar1: TCoolBar;
ToolBar1: TToolBar;
SpeedButton2: TSpeedButton;
SpeedButton1: TSpeedButton;
ToolButton2: TToolButton;
SpeedButton3: TSpeedButton;
SpeedButton6: TSpeedButton;
ToolButton6: TToolButton;
SpeedButton10: TSpeedButton;
ToolButton7: TToolButton;
SpeedButton12: TSpeedButton;
ToolButton8: TToolButton;
SpeedButton11: TSpeedButton;
StatusBar1: TStatusBar;
MainMenu1: TMainMenu;
F1: TMenuItem;
N1: TMenuItem;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
T1: TMenuItem;
N11: TMenuItem;
N12: TMenuItem;
N13: TMenuItem;
N14: TMenuItem;
S1: TMenuItem;
N15: TMenuItem;
N16: TMenuItem;
N17: TMenuItem;
N18: TMenuItem;
N19: TMenuItem;
N20: TMenuItem;
N22: TMenuItem;
N21: TMenuItem;
W1: TMenuItem;
N23: TMenuItem;
N24: TMenuItem;
N25: TMenuItem;
N26: TMenuItem;
N27: TMenuItem;
N28: TMenuItem;
N29: TMenuItem;
H1: TMenuItem;
N30: TMenuItem;
N31: TMenuItem;
N33: TMenuItem;
N32: TMenuItem;
MainBrower: TWebBrowser;
SpeedButton15: TSpeedButton;
SpeedButton19: TSpeedButton;
N2: TMenuItem;
N3: TMenuItem;
Label7: TLabel;
SpeedButton20: TSpeedButton;
SpeedButton4: TSpeedButton;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
InVoiceTable: TAdvStringGrid;
Label10: TLabel;
BKTitle: TRichEdit;
EditPan: TPanel;
Bevel4: TBevel;
Bevel5: TBevel;
Bevel7: TBevel;
cxTextEdit6: TcxTextEdit;
Label9: TLabel;
Label8: TLabel;
Label6: TLabel;
Label4: TLabel;
Label3: TLabel;
Label2: TLabel;
Label1: TLabel;
cxDateEdit1: TcxDateEdit;
cxButton5: TcxButton;
AdvEdit7: TAdvEdit;
AdvEdit6: TAdvEdit;
AdvEdit5: TAdvEdit;
AdvEdit4: TAdvEdit;
AdvEdit3: TAdvEdit;
AdvEdit1: TAdvEdit;
Timer1: TTimer;
N34: TMenuItem;
N35: TMenuItem;
N36: TMenuItem;
N37: TMenuItem;
procedure MainBrowerBeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
procedure FormShow(Sender: TObject);
procedure InVoiceTableClickCell(Sender: TObject; ARow, ACol: Integer);
procedure SpeedButton11Click(Sender: TObject);
procedure InVoiceTableCanEditCell(Sender: TObject; ARow, ACol: Integer;
var CanEdit: Boolean);
procedure InVoiceTableDrawCell(Sender: TObject; ACol, ARow: Integer;
Rect: TRect; State: TGridDrawState);
procedure InVoiceTableGetEditMask(Sender: TObject; ACol, ARow: Integer;
var Value: string);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure InVoiceTableEditingDone(Sender: TObject);
procedure InVoiceTableKeyPress(Sender: TObject; var Key: Char);
procedure InVoiceTableGetEditorType(Sender: TObject; ACol,
ARow: Integer; var AEditor: TEditorType);
procedure SpeedButton15Click(Sender: TObject);
procedure AdvEdit3Exit(Sender: TObject);
procedure InVoiceTableSelectCell(Sender: TObject; ACol, ARow: Integer;
var CanSelect: Boolean);
procedure SpeedButton4Click(Sender: TObject);
procedure AdvEdit1KeyPress(Sender: TObject; var Key: Char);
procedure SpeedButton20Click(Sender: TObject);
procedure AdvEdit6KeyPress(Sender: TObject; var Key: Char);
procedure AdvEdit3KeyPress(Sender: TObject; var Key: Char);
procedure AdvEdit4KeyPress(Sender: TObject; var Key: Char);
procedure AdvEdit5KeyPress(Sender: TObject; var Key: Char);
procedure cxDateEdit1KeyPress(Sender: TObject; var Key: Char);
procedure N10Click(Sender: TObject);
procedure SpeedButton6Click(Sender: TObject);
procedure SpeedButton12Click(Sender: TObject);
procedure cxButton5Click(Sender: TObject);
procedure SpeedButton19Click(Sender: TObject);
procedure SpeedButton10Click(Sender: TObject);
procedure Timer1Timer(Sender: TObject);
procedure N11Click(Sender: TObject);
procedure N12Click(Sender: TObject);
procedure N13Click(Sender: TObject);
procedure N14Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure N32Click(Sender: TObject);
procedure N1Click(Sender: TObject);
procedure N15Click(Sender: TObject);
procedure InVoiceTableClick(Sender: TObject);
private
procedure DrawFP01;
procedure SaveFP01;
procedure PrintFP01;
procedure DrawFP02;
procedure SaveFP02;
procedure PrintFP02;
procedure DrawFP03;
procedure SaveFP03;
procedure PrintFP03;
procedure DrawFP04;
procedure SaveFP04;
procedure PrintFP04;
procedure DrawFP05;
procedure SaveFP05;
procedure PrintFP05;
procedure UpdateFP(aTable: string);
procedure ClearEdit;
procedure AutoComputer(DxCell, HjCell, BeginCell: TCustomCell; aIndex: Integer);
procedure ShowInitialization;
function GetMax(aSql: string): Integer;
function CheckOut: Boolean;
function SelectFP01(aText: string): Boolean;
function SelectFP02(aText: string): Boolean;
function SelectFP03(aText: string): Boolean;
function SelectFP04(aText: String): Boolean;
function SelectFP05(aText: String): Boolean;
public
end;
var
Main: TMain;
PubRect: TRect;
PubCanvas: TCanvas;
implementation
uses
FrmLogin, FrmCustom, FrmData, FrmPitPw, FrmAbout, FrmManage,
FrmLibrary, FrmBackup;
{$R *.dfm}
var
aPrintForm: TPitPw;
function Disassemble(Parameter: string): string;
var
aTmp, aStr: string;
aIndex: Integer;
begin
aTmp := Parameter;
aIndex := Pos('@', aTmp);
if aIndex > 0 then
begin
aStr := Copy(aTmp, aIndex + 1, Length(aTmp) - aindex);
Result := aStr;
end
else
Result := '';
end;
procedure TMain.DrawFP01;
var
j, i: integer;
aTmp: string;
begin
if CurrentFP = 'FP01' then
begin
label4.Caption := '其它内容:';
Label2.Caption := '开票日期:';
Label3.Caption := '发票号码:';
Label9.Caption := '承 租 方:';
Label6.Caption := '客户名称:';
Label8.Caption := '客户编码:';
AdvEdit7.Enabled := False;
Label9.Left := 10;
Label10.Caption := ' ' +
'按照《中华人民共和国企业所得税暂行条例》的规定,这种车贴属于工资的组成部分,只能' +
'在企业所得税前限额扣除,超过部分要做纳税调整。而且按照《中华人民共和国个人所得税法》' +
'的规定,这种车贴也是要征收个人所得税的。如果允许编造这样一个虚假的合同到税务机关代开' +
'发票,企业不仅可以在缴纳所得税前全额扣除,作为员工个人还可以少缴或不缴个人所得税。';
Label10.Visible := True;
with InVoiceTable do
begin
RowCount := 11;
RowHeights[0] := 17;
RowHeights[1] := 17;
GridLineColor := 8684164;
WordWrap := False;
MergeCells(0, 0, 2, 3);
MergeCells(2, 0, 4, 1);
MergeCells(2, 1, 2, 1);
MergeCells(2, 2, 2, 1);
ColWidths[3] := 20;
MergeCells(4, 1, 1, 1);
ColWidths[4] := 64;
MergeCells(5, 1, 1, 2);
MergeCells(6, 0, 1, 3);
MergeCells(7, 0, 1, 3);
ColWidths[7] := 45;
MergeCells(8, 0, 1, 3);
ColWidths[8] := 45;
MergeCells(9, 0, 4, 1);
MergeCells(9, 1, 4, 2);
Cells[0, 0] := '租 赁 项 目';
Cells[2, 0] := '租 赁 日 期';
Cells[2, 1] := '起';
Cells[2, 2] := '年 月 日';
Cells[4, 1] := '止';
Cells[4, 2] := '年 月 日';
Cells[5, 1] := '天 数';
Cells[6, 0] := '单 位';
Cells[7, 0] := '数 量';
Cells[8, 0] := #13'收费'#13'标准';
Cells[9, 0] := '金 额';
RowHeights[3] := 26;
MergeCells(0, 3, 2, 1);
MergeCells(2, 3, 2, 1);
MergeCells(4, 3, 1, 1);
MergeCells(5, 3, 1, 1);
MergeCells(6, 3, 1, 1);
MergeCells(7, 3, 1, 1);
MergeCells(8, 3, 1, 1);
MergeCells(9, 3, 4, 1);
RowHeights[4] := 26;
MergeCells(0, 4, 2, 1);
MergeCells(2, 4, 2, 1);
MergeCells(4, 4, 1, 1);
MergeCells(5, 4, 1, 1);
MergeCells(6, 4, 1, 1);
MergeCells(7, 4, 1, 1);
MergeCells(8, 4, 1, 1);
MergeCells(9, 4, 4, 1);
RowHeights[5] := 26;
MergeCells(0, 5, 2, 1);
MergeCells(2, 5, 2, 1);
MergeCells(4, 5, 1, 1);
MergeCells(5, 5, 1, 1);
MergeCells(6, 5, 1, 1);
MergeCells(7, 5, 1, 1);
MergeCells(8, 5, 1, 1);
MergeCells(9, 5, 4, 1);
RowHeights[6] := 26;
MergeCells(0, 6, 2, 1);
MergeCells(2, 6, 7, 1);
MergeCells(9, 6, 4, 1);
Cells[0, 6] := '金额合计(大写)';
MergeCells(0, 7, 2, 2);
MergeCells(2, 7, 11, 2);
Cells[0, 7] := '备 注';
Alignments[0, 7] := taCenter;
MergeCells(0, 9, 4, 1);
MergeCells(4, 9, 2, 1);
MergeCells(6, 9, 2, 1);
MergeCells(8, 9, 2, 1);
MergeCells(10, 9, 3, 1);
Cells[0, 9] := '出租方(盖章有效)';
Cells[4, 9] := '开票人:';
Cells[8, 9] := '收款人:';
Alignments[0, 9] := taCenter;
Alignments[4, 9] := taRightJustify;
Alignments[8, 9] := taRightJustify;
MergeCells(0, 10, 13, 1);
RowColor[0] := 16761798;
RowColor[1] := 16761798;
RowColor[2] := 16761798;
RowColor[3] := 15204327;
RowColor[4] := 15204327;
RowColor[5] := 15204327;
RowColor[6] := 15204327;
RowColor[7] := 15204327;
RowColor[9] := 16761798;
Colors[0, 6] := 16761798;
Colors[0, 7] := 16761798;
Colors[6, 2] := 15204327;
Colors[9, 6] := 16761798;
Colors[2, 6] := 13041663;
Colors[10, 9] := 15204327;
Colors[6, 9] := 15204327;
Colors[9, 1] := 13041663;
for i := 0 to 12 do
for j := 0 to 6 do
begin
Alignments[i, j] := taCenter;
end;
Label10.Top := 252;
BKTitle.Alignment := taCenter;
RichToCell(0, 10, BKTitle);
VAlignment := vtaCenter;
end;
end;
end;
procedure TMain.MainBrowerBeforeNavigate2(Sender: TObject;
const pDisp: IDispatch; var URL, Flags, TargetFrameName, PostData,
Headers: OleVariant; var Cancel: WordBool);
var
aSelectMenu: string;
begin
aSelectMenu := Disassemble(URL);
if UpperCase(aSelectMenu) = UpperCase('TaxClose') then
begin
if Application.MessageBox('你是否真的要退出', '贝壳提示', MB_YESNO +
MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST) = IDYES then
begin
Application.Terminate;
end;
end;
if UpperCase(aSelectMenu) = UpperCase('TaxZlyfp') then
begin
CurrentFP := 'FP01';
SpeedButton4.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('TaxJzyfp') then
begin
CurrentFP := 'FP02';
SpeedButton4.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('TaxGdzc') then
begin
CurrentFP := 'FP03';
SpeedButton4.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('Taxfwhy') then
begin
CurrentFP := 'FP04';
SpeedButton4.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('TaxWxzc') then
begin
CurrentFP := 'FP05';
SpeedButton4.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('UserManager') then
begin
SpeedButton10.Click;
end;
if UpperCase(aSelectMenu) = UpperCase('GenManager') then
begin
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -