现在的位置: 首页 > 综合 > 正文

财务软件、ERP中会计凭证录入模块DIY全攻略(三)

2013年05月06日 ⁄ 综合 ⁄ 共 2909字 ⁄ 字号 评论关闭

unit DM;

interface

uses
  SysUtils, Classes, DB, ADODB;

type
  TDataM = class(TDataModule)
    ADOConnection1: TADOConnection;
    ADOTCode: TADOTable;
    ADOTPZ: TADOTable;
    ADOTType: TADOTable;
    procedure DataModuleCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  DataM: TDataM;

implementation

uses PZ, PZFind;

{$R *.dfm}

procedure TDataM.DataModuleCreate(Sender: TObject);
var
  s:string;
begin //Datam 迟于frmPZ被创建,因些下面代码不能写在frmPZ
      ADOTType.First;   //取凭证类型
      with frmPZ do begin
      while not DataM.ADOTType.Eof do begin
        s:=DataM.ADOTType.fieldbyName('PZType').AsString;
        cbPZType.Items.Add(s);
        frmPZFind.cbPZType.Items.Add(s);
        DataM.ADOTType.Next ;
      end;             //取每类凭证对应的下一凭证号
      if cbPZType.Items.Count >0 then  begin
        cbPZType.Text := cbPZType.Items[0];//Items[0]是默认的凭证字
        edtPZNO.Text:=inttostr(GetNextPZNO(cbPZType.Text));//inttostr(FPZNO[0]);  //FPZNO[0]默认的凭证号
      end;
      end;
end;

end.
/////////////////////////////////////////////////////////////////////////////////////////////////
unit PZFind;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons;

type
  TfrmPZFind = class(TForm)
    lblYear: TLabel;
    lblPeriod: TLabel;
    lblPZType: TLabel;
    lblPZNO: TLabel;
    edtYear: TEdit;
    cbMonth: TComboBox;
    cbPZType: TComboBox;
    edtPZNO: TEdit;
    btnOK: TBitBtn;
    btnCancel: TBitBtn;
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmPZFind: TfrmPZFind;

implementation
uses DateUtils, PZ, DM;
{$R *.dfm}

procedure TfrmPZFind.FormCreate(Sender: TObject);
begin
  left:=frmpz.Left +(frmpz.Width -width) div 2;
  top:=frmpz.Top +(frmpz.Height -height) div 2;
  edtYear.Text :=inttostr(frmpz.FYEAR);// inttostr(Yearof(now));
  cbMonth.Text :=inttostr(frmPZ.FMONTH);//inttostr(Monthof(now));
end;

end.
//////////////////////////////////////////////////////////////////////////////////////////////
unit CODE;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ComCtrls;

type
  TfrmCODE = class(TForm)
    tvCODE: TTreeView;
    btnOK: TBitBtn;
    btnCancel: TBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure tvCODEDblClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmCODE: TfrmCODE;

implementation

uses DM, PZ;

{$R *.dfm}

procedure TfrmCODE.FormCreate(Sender: TObject);
var
        tn:TTreeNODE;
begin
        left:=frmPZ.left;
        top:=frmPZ.top;
        DataM.ADOTCode.First;
        tn:=tvCODE.Items[0];
        with  DataM.ADOTCode do begin
        while not DataM.ADOTCode.Eof do begin //产生会计科目代码表
                tvCODE.Items.AddChild(tn,FieldByName('CODE').AsString+' '+FieldByName('NAME').AsString);
                Next;
        end;
        tvCODE.FullExpand ;
        end;
end;

procedure TfrmCODE.tvCODEDblClick(Sender: TObject);
begin
        if tvCODE.Selected <>nil then
                btnOK.Click
        else
                btnCancel.Click;
end;

end.

抱歉!评论已关闭.