📄 data.~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 + -