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

📄 data.~pas

📁 一个工具管理系统。。用DELPHI+ACCESS写的
💻 ~PAS
字号:
unit data;

interface

uses
  SysUtils, Classes, DB, ADODB;

type
  TFM_Data = class(TDataModule)
    ADOconn: TADOConnection;
    ADO_Note: TADOQuery;
    DS_Note: TDataSource;
    ADO_Type: TADOQuery;
    ADO_PubTable: TADOQuery;
    ADO_FittingList: TADOQuery;
    DS_FittingList: TDataSource;
    procedure ADO_NoteAfterInsert(DataSet: TDataSet);
    procedure ADO_NoteAfterPost(DataSet: TDataSet);
    procedure ADO_NoteBeforeInsert(DataSet: TDataSet);
    procedure DataModuleCreate(Sender: TObject);
    procedure ADO_NoteBeforePost(DataSet: TDataSet);
    procedure ADO_FittingListAfterInsert(DataSet: TDataSet);
  private
    { Private declarations }
  public
    function AutoID(s:string;jishu,count:integer):string;
    { Public declarations }
  end;

var
  FM_Data: TFM_Data;
  xindan:Boolean;
  Field:array[1..10] of string;
  ShowDBClick:Boolean;     //产品列表  双击 标志
  wRecord:integer;
  DataField:array[1..3] of string;
  AllPage:integer;
implementation

uses main;

{$R *.dfm}

{ TDataModule1 }

function TFM_Data.AutoID(s: string; jishu, count: integer): string;
var
  i:integer;
  ss:string;
begin
  ss:='';
  for i:=1 to count-length(inttostr(jishu)) do ss:=ss+'0';
  ss:=s+ss+inttostr(jishu);
  Result:=ss;
end;

procedure TFM_Data.ADO_NoteAfterInsert(DataSet: TDataSet);
var
  s:integer;
begin
 
   //读取编号数据库
  if xindan = True then       //如果是新单 编号增加
  with ADO_Type do
    begin
      begin
        SQL.Clear;
        SQL.Add('select * from [type] where [类别]=''autoid''');
        Open;
        if IsEmpty then
        begin
          Insert;
          FieldByName('名称').Text:='0';
          FieldByName('类别').Text:='autoid';
          Post;
        end;
        s:=strtoint(Fieldbyname('名称').Text)+1;
      end;
      ADO_Note.FieldByName('单号').Text:=AutoID('DH',s,7);
      ADO_Note.FieldByName('日期').Text:=DateToStr(date);
    end else     // 如果不是新单 保存主表数据
    with ADO_Note do
    begin
      
      FieldByName('单号').Text:=Field[1];
      FieldByName('日期').Text:=Field[2];
      FieldByName('领用单位').Text:=Field[3];
      FieldByName('施工内容').Text:=Field[4];
      FieldByName('井号').Text:=Field[5];
      FieldByName('拉运车号').Text:=Field[6];
      FieldByName('司机').Text:=Field[7];
      FieldByName('收款单位').Text:=Field[8];
      FieldByName('制单').Text:=Field[9];
      FieldByName('保管员').Text:=Field[10];

    end;
    
end;

procedure TFM_Data.ADO_NoteAfterPost(DataSet: TDataSet);
begin
  if xindan=true then
  with ADO_Type do
  begin
    SQL.Clear;
    SQL.Add('select * from [type] where [类别]=''autoid''');
    Open;
    if not IsEmpty then
    begin
      Edit;
      FieldByName('名称').Text:=inttostr(strtoint(fieldbyname('名称').Text)+1);
      Post;
    end;
    
    xindan:=False;

  end;
end;

procedure TFM_Data.ADO_NoteBeforeInsert(DataSet: TDataSet);
begin
  if xindan=False then   //记录主表数据
  with ADO_Note do
  begin
    Field[1]:=trim(fieldbyname('单号').Text);
    Field[2]:=trim(fieldbyname('日期').Text);
    Field[3]:=trim(fieldbyname('领用单位').Text);
    Field[4]:=trim(fieldbyname('施工内容').Text);
    Field[5]:=trim(fieldbyname('井号').Text);
    Field[6]:=trim(fieldbyname('拉运车号').Text);
    Field[7]:=trim(fieldbyname('司机').Text);
    Field[8]:=trim(fieldbyname('收款单位').Text);
    Field[9]:=trim(fieldbyname('制单').Text);
    Field[10]:=trim(fieldbyname('保管员').Text);
  end;
end;

procedure TFM_Data.DataModuleCreate(Sender: TObject);
begin
  ShowDBClick:=False;
  {with FM_Data.ADOconn do
  begin
    Close;
    ConnectionString:='Provider=Microsoft.Jet.OLEDB.4.0;Data Source='+ExtractFilePath(Application.ExeName)+'\data\mybase.wtb;Persist Security Info=False';
    Connected:=true;
  end; }
end;

procedure TFM_Data.ADO_NoteBeforePost(DataSet: TDataSet);
begin
  with ADO_Note do
  begin
    if FieldByName('日期').Text='' then
    begin
      Raise ERangeError.Create('“日期”不能为空!');
      abort;
    end;

    if FieldByName('领用单位').Text='' then
    begin
      Raise ERangeError.Create('“领用单位”不能为空!');
      abort;
    end;

    if FieldByName('名称').Text='' then
    begin
      Raise ERangeError.Create('“名称”不能为空!');
      abort;
    end;

    if FieldByName('数量').Text='' then
    begin
      Raise ERangeError.Create('“数量”不能为空!');
      abort;
    end;

    if FieldByName('收款单位').Text='' then
    begin
      Raise ERangeError.Create('“收款单位”不能为空!');
      abort;
    end;
    if FieldByName('制单').Text='' then FieldByName('制单').Text:='  ';
    if FieldByName('保管员').Text='' then FieldByName('保管员').Text:='  ';
    with ADO_Note do
    FieldByName('金额').Text:=floattostr(strtofloat(fieldbyname('数量').Text)*strtofloat(fieldbyname('单价').Text));
  end;
end;

procedure TFM_Data.ADO_FittingListAfterInsert(DataSet: TDataSet);
var
  s:integer;
begin
    with ADO_Type do
    begin
      begin
        SQL.Clear;
        SQL.Add('select * from [type] where [类别]=''Fitting_autoid''');
        Open;
        if IsEmpty then
        begin
          Insert;
          FieldByName('名称').Text:='1';
          FieldByName('类别').Text:='Fitting_autoid';
          Post;
        end else
        begin
          Edit;
          FieldByName('名称').Text:=inttostr(strtoint(FieldByName('名称').Text)+1);
          Post;
        end;
        s:=strtoint(Fieldbyname('名称').Text);
      end;
      ADO_FittingList.FieldByName('编号').Text:=AutoID('FT',s,5);
    end;//with end

end;

end.

⌨️ 快捷键说明

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