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

📄 frmmain.~pas

📁 地税局发票程序源代码,自己开发的一个程序,最近整理资料的时候看到,放在那也是放着,拿出来供大家
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
end;

function TMain.SaveFP01:Boolean;
var
  FMax: Integer;
  i, s: integer;
  aDate:TDateTime;
begin
  Result:=False;
  if InVoiceTable.Cells[0, 3] = '' then
  begin
    Exit;  
  end;
  with MyData do
  begin
    try
      aDate:=Now;
      TaxGl.SQL.Clear;
      TaxGl.SQL.Add('Select * From TaxZly');
      TaxGl.Open;
      ADOPub.SQL.Clear;
      ADOPub.SQL.Add('Select * From ZlyMxb');
      ADOPub.Open;
      TaxGl.Insert;
      TaxGl.FieldByName('发票号码').AsString := Edit1.Text;
      TaxGl.FieldByName('单位名称').AsString := Edit2.Text;
      TaxGl.FieldByName('开票日期').AsString := DateTimeToStr(
        DateTimePicker1.Date);
      TaxGl.FieldByName('标识号码').AsString := DateTimeToStr(aDate);
      for i := 3 to 5 do
      begin
        ADOPub.Insert;
        ADOPub.FieldByName('标识号码').AsString := DateTimeToStr(aDate);
        ADOPub.FieldByName('发票号码').AsString := Edit1.Text;
        ADOPub.FieldByName('开票日期').AsString :=DateTimeToStr(DateTimePicker1.Date);
        if InVoiceTable.Cells[0, i] <> '' then
          ADOPub.FieldByName('租赁项目').AsString := InVoiceTable.Cells[0, i];
        if InVoiceTable.Cells[2, i] <> '' then
          ADOPub.FieldByName('开始日期').AsString := InVoiceTable.Cells[2, I];
        if InVoiceTable.Cells[4, i] <> '' then
          ADOPub.FieldByName('结束日期').AsString := InVoiceTable.Cells[4, I];
        if InVoiceTable.Cells[5, i] <> '' then
          ADOPub.FieldByName('天数').AsInteger := StrToInt(InVoiceTable.Cells[5, i]);
        if InVoiceTable.Cells[6, i] <> '' then
          ADOPub.FieldByName('单位').AsString := InVoiceTable.Cells[6, i];
        if InVoiceTable.Cells[7, i] <> '' then
          ADOPub.FieldByName('数量').AsInteger := StrToInt(InVoiceTable.Cells[7, i]);
        if InVoiceTable.Cells[8, i] <> '' then
          ADOPub.FieldByName('收费标准').AsInteger := StrToInt(InVoiceTable.Cells[8,
            i]);
        if InVoiceTable.Cells[9, i] <> '' then
          ADOPub.FieldByName('金额').AsCurrency := StrToCurr(InVoiceTable.Cells[9,
            i]);
        ADOPub.Post;  //内三行保存            
      end;
      if InVoiceTable.Cells[2, 6] <> '' then
        TaxGl.FieldByName('金额大写').AsString := InVoiceTable.Cells[2, 6];
      if InVoiceTable.Cells[9, 6] <> '' then
        TaxGl.FieldByName('金额合计').AsCurrency := StrToCurr(InVoiceTable.Cells[9,
          6]);
      if InVoiceTable.Cells[6, 9] <> '' then
        TaxGl.FieldByName('开票人').AsString := InVoiceTable.Cells[6, 9];
      if InVoiceTable.Cells[10, 9] <> '' then
        TaxGl.FieldByName('收款人').AsString := InVoiceTable.Cells[10, 9];
      if InVoiceTable.Cells[2, 7] <> '' then
        TaxGl.FieldByName('备注').AsString := InVoiceTable.Cells[2, 7];
      TaxGl.Post;   //外壳保存
      SpeedButton15.Enabled := False;
      SpeedButton20.Enabled := True;
      Result:=True;
    except
      Result:=False;
    end;
  end;
end;


function TMain.UpdateFP:Boolean;
var
  aTmp: string;
  i:Integer;
  aStr:array[1..9] of string;
begin
  Result:=False;
  aStr[1]:=Edit1.Text;
  aStr[2]:=Edit2.Text;
  aStr[3]:=DateTimeToStr(DateTimePicker1.DateTime);
  aStr[4]:=InVoiceTable.Cells[2,6];
  aStr[5]:=InVoiceTable.Cells[9,6];
  aStr[6]:=InVoiceTable.Cells[6,9];
  aStr[7]:=InVoiceTable.Cells[10,6];
  aStr[8]:=InVoiceTable.Cells[2,7];
  aStr[9]:=DataSource1.DataSet.FieldByName('标识号码').AsString;
  try
    DataSource1.DataSet.Edit;
    DataSource1.DataSet.FieldByName('单位名称').AsString:=aStr[2];
    DataSource1.DataSet.FieldByName('开票日期').AsString:=aStr[3];
    DataSource1.DataSet.FieldByName('金额大写').AsString:=aStr[4];
    DataSource1.DataSet.FieldByName('金额合计').AsString:=aStr[5];
    DataSource1.DataSet.FieldByName('开票人').AsString:=aStr[6];
    DataSource1.DataSet.FieldByName('收款人').AsString:=aStr[7];
    DataSource1.DataSet.FieldByName('备注').AsString:=aStr[8];
    DataSource1.DataSet.Post;
  except
    DataSource1.DataSet.Cancel;
  end;
  with MyData do
  begin
    aTmp:='Select * From ZlyMxb Where 发票号码='+QuotedStr(aStr[1])+
      ' and 标识号码='+QuotedStr(aStr[9]);
    ADOPub.SQL.Clear;
    ADOPub.SQL.Add(aTmp);
    ADOPub.Open;
    i:=3;
    while not ADOPub.Eof do
    begin
      try
        ADOPub.Edit;
        ADOPub.FieldByName('开票日期').AsString:=aStr[3];
        ADOPub.FieldByName('租赁项目').AsString:=InVoiceTable.Cells[0,i];
        ADOPub.FieldByName('开始日期').AsString:=InVoiceTable.Cells[2,i];
        ADOPub.FieldByName('结束日期').AsString:=InVoiceTable.Cells[4,i];
        ADOPub.FieldByName('天数').AsString:=InVoiceTable.Cells[5,i];
        ADOPub.FieldByName('单位').AsString:=InVoiceTable.Cells[6,i];
        ADOPub.FieldByName('数量').AsString:=InVoiceTable.Cells[7,i];
        ADOPub.FieldByName('收费标准').AsString:=InVoiceTable.Cells[8,i];
        ADOPub.FieldByName('金额').AsString:=InVoiceTable.Cells[9,i];
        Inc(i);
        ADOPub.Post;
        except
          DataSource1.DataSet.Cancel;
        end;
        ADOPub.Next;        
    end;
  end;
  Result:=True;
end;

procedure TMain.SpeedButton15Click(Sender: TObject);
begin
  if Trim(Edit1.Text)='' then
  begin
    MessageBox(Handle, '请正确填写发票号码!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
    Edit1.SetFocus;
    Exit;
  end;
  if Trim(Edit2.Text)='' then
  begin
    MessageBox(Handle, '请正确填写单位名称!', '操作提示', MB_OK + MB_ICONWARNING +
      MB_DEFBUTTON3 + MB_TOPMOST);
      Edit2.SetFocus;
    Exit;
  end;
  if WorksFlags = 3 then
  begin
    MyData.ADOCon.BeginTrans;
    if UpdateFP then //开始更新
    begin
      MyData.ADOCon.CommitTrans;
      WorksFlags:=2;
      Edit1.ReadOnly:=True;
      Edit2.ReadOnly:=True;
      SpeedButton15.Enabled:=False;
      SpeedButton20.Enabled:=True;          
      ModeFlags:=False;
      Application.MessageBox('修改成功!', '贝壳提示', MB_OK +
        MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
    end
    else
    begin
      MyData.ADOCon.RollbackTrans;
      WorksFlags:=3;
      ModeFlags:=True;
      Edit1.ReadOnly:=True;
      Application.MessageBox('修改失败!', '贝壳提示', MB_OK +
        MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
    end;
  end
  else
  begin
    MyData.ADOCon.BeginTrans;
    if SaveFP01 then  //开始保存
    begin
      MyData.ADOCon.CommitTrans;
      WorksFlags:=2;
      InVoiceTable.Clear;
      Edit2.Clear;
      edit1.Clear;
      DrawFP01;
      ModeFlags:=False;
      SpeedButton15.Enabled:=False;
      SpeedButton20.Enabled:=True;      
      Edit1.ReadOnly:=False;
      Edit2.ReadOnly:=False;
      Application.MessageBox('保存成功!', '贝壳提示', MB_OK +
        MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
    end
    else
    begin
      MyData.ADOCon.RollbackTrans;
      WorksFlags:=3;
      ModeFlags:=True;
      Application.MessageBox('保存失败!', '贝壳提示', MB_OK +
        MB_ICONWARNING + MB_DEFBUTTON3 + MB_TOPMOST);
    end;
  end;
end;

procedure TMain.SpeedButton20Click(Sender: TObject);
begin
  WorksFlags:=3;
  ModeFlags:=True;
  Edit2.ReadOnly:=False;
  SpeedButton20.Enabled:=False;
  SpeedButton15.Enabled:=True;  
end;

procedure TMain.Edit1KeyPress(Sender: TObject; var Key: Char);
begin
  if not(key in['0'..'9',#13,#10,#8,#9,#26]) then Key:=#0;
end;

procedure TMain.SpeedButton1Click(Sender: TObject);
begin
  Edit3.Clear;
  with MyData do
  begin
    TaxGl.SQL.Clear;
    TaxGl.SQL.Add('Select * From TaxZly');
    TaxGl.Open;
  end;
  GroupBox1.Visible:=True;
end;

procedure TMain.DBGridEh1DblClick(Sender: TObject);
var
  I:Integer;
  aTmp:string;
  aStr:array[1..9] of string;
  aSubStr:array[1..8] of string;
begin
  if DataSource1.DataSet.RecordCount<=0 then
  begin
    MessageBox(Handle, '没有可显示的数据!', '操作提示', MB_OK + MB_ICONWARNING + 
      MB_DEFBUTTON3 + MB_TOPMOST);
    Exit;
  end;
  GroupBox1.Visible:=False;
  InVoiceTable.Clear;
  DrawFP01;
  aStr[1]:=DataSource1.DataSet.FieldByName('发票号码').AsString;
  aStr[2]:=DataSource1.DataSet.FieldByName('单位名称').AsString;
  aStr[3]:=DataSource1.DataSet.fieldByName('开票日期').AsString;
  aStr[4]:=DataSource1.DataSet.fieldByName('标识号码').AsString;
  aStr[5]:=DataSource1.DataSet.fieldByName('金额大写').AsString;
  aStr[6]:=DataSource1.DataSet.fieldByName('金额合计').AsString;
  aStr[7]:=DataSource1.DataSet.fieldByName('开票人').AsString;
  aStr[8]:=DataSource1.DataSet.fieldByName('收款人').AsString;
  aStr[9]:=DataSource1.DataSet.fieldByName('备注').AsString;
  Edit1.Text:=aStr[1];
  Edit2.Text:=aStr[2];
  DateTimePicker1.DateTime:=StrToDateTime(aStr[3]);
  InVoiceTable.Cells[2,6]:=aStr[5];
  InVoiceTable.Cells[9,6]:=aStr[6];
  InVoiceTable.Cells[6,9]:=aStr[7];
  InVoiceTable.Cells[10,9]:=aStr[8];
  InVoiceTable.Cells[2,7]:=aStr[9];
  with MyData do
  begin
    ADOPub.SQL.Clear;
    aTmp:='Select * From ZlyMxb Where 发票号码='+QuotedStr(aStr[1])+
      ' and 开票日期='+QuotedStr(aStr[3]);
    ADOPub.SQL.Add(aTmp);
    ADOPub.Open;
    i:=3;
    while not ADOPub.Eof do
    begin
      aSubStr[1]:=ADOPub.FieldByName('租赁项目').AsString;
      aSubStr[2]:=ADOPub.FieldByName('开始日期').AsString;
      aSubStr[3]:=ADOPub.FieldByName('结束日期').AsString;
      aSubStr[4]:=ADOPub.FieldByName('天数').AsString;
      aSubStr[5]:=ADOPub.FieldByName('单位').AsString;
      aSubStr[6]:=ADOPub.FieldByName('数量').AsString;
      aSubStr[7]:=ADOPub.FieldByName('收费标准').AsString;
      aSubStr[8]:=ADOPub.FieldByName('金额').AsString;
      InVoiceTable.Cells[0,i]:=aSubStr[1];
      InVoiceTable.Cells[2,i]:=aSubStr[2];
      InVoiceTable.Cells[4,i]:=aSubStr[3];
      InVoiceTable.Cells[5,i]:=aSubStr[4];
      InVoiceTable.Cells[6,i]:=aSubStr[5];
      InVoiceTable.Cells[7,i]:=aSubStr[6];
      InVoiceTable.Cells[8,i]:=aSubStr[7];
      InVoiceTable.Cells[9,i]:=aSubStr[8];
      Inc(i);
      ADOPub.Next;
    end;
  end;
  SpeedButton20.Enabled:=True;
  SpeedButton15.Enabled:=False;
  edit1.ReadOnly:=True;
  edit2.ReadOnly:=True;
  ModeFlags:=False;
end;

procedure TMain.QueryTabel(aSql: string);
begin
  with MyData do
  begin
    TaxGl.SQL.Clear;
    TaxGl.SQL.Add(aSql);
    TaxGl.Open;
  end;
end;

procedure TMain.Button1Click(Sender: TObject);
begin
//  QueryTabel('Select * From TaxZly');
  GroupBox1.Visible:=False;
end;

procedure TMain.BitBtn1Click(Sender: TObject);
begin
  QueryTabel('Select * From TaxZly Where 发票号码 Like '''+'%'+Edit3.Text+'%''');
end;

procedure TMain.SpeedButton6Click(Sender: TObject);
var
  aStr:array[1..8] of TDataSet;
begin
  TaxPrint:=TTaxPrint.Create(Self);
  aStr[1]:=DataSource1.DataSet.fieldByName('发票号码').DataSet;
  aStr[2]:=DataSource1.DataSet.fieldByName('单位名称').DataSet;
  aStr[3]:=DataSource1.DataSet.fieldByName('开票日期').DataSet;
  aStr[4]:=DataSource1.DataSet.fieldByName('金额大写').DataSet;
  aStr[5]:=DataSource1.DataSet.fieldByName('金额合计').DataSet;
  aStr[6]:=DataSource1.DataSet.fieldByName('开票人').DataSet;
  aStr[7]:=DataSource1.DataSet.fieldByName('收款人').DataSet;
  aStr[8]:=DataSource1.DataSet.fieldByName('备注').DataSet;
  with TaxPrint do
  begin
    QRDBText1.DataSet:=aStr[1];
    QRDBText2.DataSet:=aStr[2];
    QRDBText3.DataSet:=aStr[3];
    QRDBText4.DataSet:=aStr[4];
    QRDBText8.DataSet:=aStr[5];
    QRDBText5.DataSet:=aStr[6];
    QRDBText6.DataSet:=aStr[7];
    QRDBText7.DataSet:=aStr[8];
    QRLabel22.Caption:=InVoiceTable.Cells[0,3];
    QRLabel23.Caption:=InVoiceTable.Cells[2,3];
    QRLabel24.Caption:=InVoiceTable.Cells[4,3];
    QRLabel25.Caption:=InVoiceTable.Cells[5,3];
    QRLabel26.Caption:=InVoiceTable.Cells[6,3];
    QRLabel27.Caption:=InVoiceTable.Cells[7,3];
    QRLabel28.Caption:=InVoiceTable.Cells[8,3];
    QRLabel29.Caption:=InVoiceTable.Cells[9,3];
    QRLabel31.Caption:=InVoiceTable.Cells[0,4];
    QRLabel32.Caption:=InVoiceTable.Cells[2,4];
    QRLabel33.Caption:=InVoiceTable.Cells[4,4];
    QRLabel34.Caption:=InVoiceTable.Cells[5,4];
    QRLabel35.Caption:=InVoiceTable.Cells[6,4];
    QRLabel36.Caption:=InVoiceTable.Cells[7,4];
    QRLabel30.Caption:=InVoiceTable.Cells[8,4];
    QRLabel37.Caption:=InVoiceTable.Cells[9,4];
    QRLabel39.Caption:=InVoiceTable.Cells[0,5];
    QRLabel40.Caption:=InVoiceTable.Cells[2,5];
    QRLabel41.Caption:=InVoiceTable.Cells[4,5];
    QRLabel42.Caption:=InVoiceTable.Cells[5,5];
    QRLabel43.Caption:=InVoiceTable.Cells[6,5];
    QRLabel44.Caption:=InVoiceTable.Cells[7,5];
    QRLabel45.Caption:=InVoiceTable.Cells[8,5];
    QRLabel38.Caption:=InVoiceTable.Cells[9,5];
    QuickRep1.Preview;
  end;
end;

procedure TMain.SpeedButton10Click(Sender: TObject);
begin
  Admin:=TAdmin.Create(Self);
  Admin.ShowModal;
end;

procedure TMain.SpeedButton11Click(Sender: TObject);
begin
  Application.Terminate;
end;

procedure TMain.N11Click(Sender: TObject);
begin
  SpeedButton4Click(Sender);
end;

procedure TMain.N32Click(Sender: TObject);
begin
  MessageBox(Handle, '票据打印系统!', '操作提示', MB_OK + MB_ICONWARNING +
    MB_DEFBUTTON3 + MB_TOPMOST);
end;

procedure TMain.N1Click(Sender: TObject);
begin
  SpeedButton10Click(sender);
end;

procedure TMain.N10Click(Sender: TObject);
begin
  Application.Terminate;
end;

end.

⌨️ 快捷键说明

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