⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 frmmain.~pas

📁 发票管理系统其中包括: 1.租凭业发票 2.建筑业发票 3.固定资产发票 4.服务行业发票 5.无形资产发票
💻 ~PAS
📖 第 1 页 / 共 5 页
字号:
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; //取得数据库中最大的ID号
    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;  //查询发票    
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Main: TMain;
  PubRect: TRect; //AdvGrid Rect
  PubCanvas: TCanvas; //AdvGrid Canvas
implementation

uses
  FrmLogin, FrmCustom, FrmData, FrmPitPw, FrmAbout, FrmManage,
  FrmLibrary, FrmBackup;

{$R *.dfm}

var
  aPrintForm: TPitPw; //Print From
//取出菜页菜单单击标志

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;
      ColWidths[4] := 50;      
      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[9,2]:=4227327;
      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;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -