zcrkpas.pas
来自「本软件是一套功能完整成熟的固定资产管理系统,具有固定资产管理系统的相应全部功能」· PAS 代码 · 共 830 行 · 第 1/2 页
PAS
830 行
prepared;
open;
while not eof do
begin
l_zcxh.items.add(lscx.fields[0].value);
next;
end;
end;
l_zcyt.itemindex:=0;
l_zcyt.Items.clear;
with lscx do
begin
close;
sql.clear;
sql.add('select a.固定资产用途 from 固定资产用途表 a,固定资产类别表 b');
sql.add('where a.资产类别编码=b.资产类别编码 and b.固定资产类别=:gdzclb');
parameters.ParamByName('gdzclb').value:=l_zclb.Text;
prepared;
open;
while not eof do
begin
l_zcyt.items.add(lscx.fields[0].value);
next;
end;
end;
l_zcyt.ItemIndex:=0;
end;
procedure Tw_gdzcrk.l_zcmcChange(Sender: TObject);
begin
l_zcxh.Items.clear;
with lscx do
begin
close;
sql.clear;
sql.add('select a.固定资产型号 from 固定资产型号表 a,固定资产名称表 b');
sql.add('where a.资产名称编码=b.资产名称编码 and b.固定资产名称=:gdzcmc');
parameters.ParamByName('gdzcmc').value:=l_zcmc.Text;
prepared;
open;
while not eof do
begin
l_zcxh.items.add(lscx.fields[0].value);
next;
end;
end;
l_zcxh.Text:='';
end;
procedure Tw_gdzcrk.l_zclbExit(Sender: TObject);
var
zclbstr:string;
maxbm:integer;
begin
if l_zclb.Text='' then
begin
messagedlg('固定资产类别不能为空,请重新选择!',mterror,[mbok],0);
l_zclb.setfocus;
exit;
end;
zclbstr:=l_zclb.text;
with lscx do
begin
close;
sql.clear;
sql.add('select 资产类别编码 from 固定资产类别表 where 固定资产类别=:zclb');
parameters.ParamByName('zclb').Value:=zclbstr;
prepared;
open;
if isempty then
if messagedlg('该固定资产类别不在数据字典中,是否将其加入数据字典?',mtconfirmation,[mbyes,mbno],0)=mryes then
//加入数据字典,并重新显示
begin
close; //查询最大资产类别编码
sql.clear;
sql.add('select max(资产类别编码) from 固定资产类别表');
prepared;
open;
maxbm:=fields[0].value+1;
close; //增加固定资产类别表
sql.clear;
sql.Add('insert into 固定资产类别表 values(:lbbm,:zclbmc,0.05,0.05)');
parameters.ParamByName('lbbm').value:=maxbm;
parameters.ParamByName('zclbmc').value:=zclbstr;
prepared;
execsql;
//增加内容往显示栏
l_zclb.Items.Add(zclbstr)
end else
begin
messagedlg('请重新选择固定资产类别!',mterror,[mbok],0);
l_zclb.setfocus;
end;
end;
l_zclb.color:=clwindow;
end;
procedure Tw_gdzcrk.l_xlhEnter(Sender: TObject);
begin
if sender is tedit then
(sender as tedit).color:=clyellow;
end;
procedure Tw_gdzcrk.l_zcmcExit(Sender: TObject);
var i,zclbbm,maxbm:integer;
ifxt:boolean;
begin
if l_zcmc.Text='' then
begin
messagedlg('固定资产名称不能为空',mterror,[mbok],0);
l_zcmc.SetFocus;
exit;
end;
l_zcmc.Color:=clwindow;
ifxt:=false;
for i:=0 to l_zcmc.Items.Count-1 do
if l_zcmc.Text=l_zcmc.Items[i] then
begin
ifxt:=true; //说明该固定资产名称存在
break;
end;
if not ifxt then
begin
//固定资产名称不存在,是否增加
if messagedlg('该固定资产名称不存在数据字典中,是否将其增加到数据字典中?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin //增加固定资产名称表
//查询资产类别编码
with lscx do
begin
close;
sql.clear;
sql.add('select 资产类别编码 from 固定资产类别表 where 固定资产类别=:gdzclb');
parameters.ParamByName('gdzclb').value:=l_zclb.Text;
prepared;
open;
zclbbm:=fields[0].Value;
close; //查询最大编码
sql.clear;
sql.add('select max(资产名称编码) from 固定资产名称表');
prepared;
open;
maxbm:=fields[0].value+1;
close; //增加记录
sql.Clear;
sql.Add('insert into 固定资产名称表 values(:zcmcbm,:zcmc,:zclbbm,:sm)');
parameters.ParamByName('zcmcbm').Value:=maxbm;
parameters.ParamByName('zcmc').Value:=l_zcmc.Text;
parameters.ParamByName('zclbbm').Value:=zclbbm;
parameters.ParamByName('sm').Value:='无';
prepared;
execsql;
end;
l_zcmc.Items.Add(l_zcmc.text)
end else
begin
messagedlg('请重新选择!',mterror,[mbok],0);
l_zcmc.SetFocus;
end;
end;
end;
procedure Tw_gdzcrk.l_zcytExit(Sender: TObject);
var i,zclbbm,maxbm:integer;
ifxt:boolean;
begin
if l_zcyt.Text='' then
begin
messagedlg('固定资产用途不能为空!',mterror,[mbok],0);
l_zcyt.SetFocus;
exit;
end;
ifxt:=false;
l_zcyt.Color:=clwindow;
for i:=0 to l_zcyt.Items.Count-1 do
if l_zcyt.Text=l_zcyt.Items[i] then
begin
ifxt:=true; //说明该固定资产用途存在
break;
end;
if not ifxt then
begin
//固定资产用途不存在,是否增加
if messagedlg('该固定资产用途不存在数据字典中,是否将其增加到数据字典中?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin //增加固定资产用途表
//查询资产类别编码
with lscx do
begin
close;
sql.clear;
sql.add('select 资产类别编码 from 固定资产类别表 where 固定资产类别=:gdzclb');
parameters.ParamByName('gdzclb').value:=l_zclb.Text;
prepared;
open;
zclbbm:=fields[0].Value;
close; //查询最大编码
sql.clear;
sql.add('select max(资产用途编码) from 固定资产用途表');
prepared;
open;
maxbm:=fields[0].value+1;
close; //增加记录
sql.Clear;
sql.Add('insert into 固定资产用途表 values(:zcytbm,:zclbbm,:zcyt)');
parameters.ParamByName('zcytbm').Value:=maxbm;
parameters.ParamByName('zclbbm').Value:=zclbbm;
parameters.ParamByName('zcyt').Value:=l_zcyt.Text;
prepared;
execsql;
end;
l_zcyt.Items.Add(l_zcyt.text)
end else
begin
messagedlg('请重新选择!',mterror,[mbok],0);
l_zcyt.SetFocus;
end;
end;
end;
procedure Tw_gdzcrk.l_zcxhExit(Sender: TObject);
var i,zcmcbm,maxbm:integer;
ifxt:boolean;
begin
if l_zcxh.text='' then
begin
l_zcxh.Color:=clwindow;
exit;
end else
l_zcxh.Color:=clwindow;
ifxt:=false;
for i:=0 to l_zcxh.Items.Count-1 do
if l_zcxh.Text=l_zcxh.Items[i] then
begin
ifxt:=true; //说明该固定资产型号存在
break;
end;
if not ifxt then
begin
//固定资产型号不存在,是否增加
if messagedlg('该固定资产型号不存在数据字典中,是否将其增加到数据字典中?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin //增加固定资产型号表
//查询资产名称编码
with lscx do
begin
close; //采用双重条件是为了防止出现名称相同的情况
sql.clear;
sql.add('select 资产名称编码 from 固定资产名称表 a,固定资产类别表 b');
sql.add('where a.资产类别编码=b.资产类别编码 and b.固定资产类别=:gdzclb and a.固定资产名称=:gdzcmc');
parameters.ParamByName('gdzclb').value:=l_zclb.Text;
parameters.ParamByName('gdzcmc').value:=l_zcmc.Text;
prepared;
open;
zcmcbm:=fields[0].Value;
close; //查询最大编码
sql.clear;
sql.add('select max(资产型号编码) from 固定资产型号表');
prepared;
open;
maxbm:=fields[0].value+1;
close; //增加记录
sql.Clear;
sql.Add('insert into 固定资产型号表 values(:zcxhbm,:zcmcbm,:zcxh)');
parameters.ParamByName('zcxhbm').Value:=maxbm;
parameters.ParamByName('zcmcbm').Value:=zcmcbm;
parameters.ParamByName('zcxh').Value:=l_zcxh.Text;
prepared;
execsql;
end;
l_zcxh.Items.Add(l_zcxh.text)
end else
begin
messagedlg('请重新选择!',mterror,[mbok],0);
l_zcxh.SetFocus;
end;
end;
end;
procedure Tw_gdzcrk.l_gmjgExit(Sender: TObject);
var
i:real;
begin
try
i:=strtocurr(l_gmjg.Text);
l_gmjg.Color:=clwindow;
except
MessageDlg('只能输入数值型数据,请重新输入!', mterror, [mbOk], 0);
l_gmjg.SetFocus;
end;
end;
procedure Tw_gdzcrk.l_gysExit(Sender: TObject);
var i,maxbm:integer;
ifxt:boolean;
begin
if l_gys.Text='' then
exit;
l_gys.Color:=clwindow;
ifxt:=false;
for i:=0 to l_gys.Items.Count-1 do
if l_gys.text=l_gys.Items[i] then
begin
ifxt:=true;
break;
end;
if not ifxt then
if messagedlg('该供应商信息不在数据字典中,是否将其加入?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin //加入数据字典
//查询最大编码
with lscx do
begin
close;
sql.clear;
sql.add('select max(供应商编码) from 供应商编码表');
prepared;
open;
if isempty then
maxbm:=1 else
maxbm:=fields[0].value+1;
close;
sql.clear;
sql.add('insert into 供应商编码表 (供应商编码,供应商名称) values (:gysbm,:gysmc)');
parameters.ParamByName('gysbm').value:=maxbm;
parameters.ParamByName('gysmc').Value:=l_gys.Text;
prepared;
execsql;
l_gys.Items.Add(l_gys.text);
end;
end else //不加入
begin
messagedlg('请重新选择供应商!',mterror,[mbok],0);
l_gys.SetFocus;
end;
end;
procedure Tw_gdzcrk.l_zcmcKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=vk_return then
l_zcmc.setfocus;
end;
procedure Tw_gdzcrk.l_zclbKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
key:=#0;
perform(cm_dialogkey,vk_tab,0);
end;
end;
procedure Tw_gdzcrk.Button3Click(Sender: TObject);
begin
if not datacheck() then
begin
messagedlg('输入数据有误,请检查!',mterror,[mbok],0);
exit;
end;
if messagedlg('确认保存数据吗?',mtconfirmation,[mbyes,mbno],0)=mryes then
begin
datasave;
button3.Enabled:=false;
button1.Enabled:=true;
panel3.Enabled:=false;
button1.SetFocus;
end;
end;
procedure Tw_gdzcrk.Button1Click(Sender: TObject);
begin
button1.Enabled:=false;
button3.Enabled:=true;
panel3.Enabled:=true;
datainit;
l_zclb.setfocus;
end;
procedure Tw_gdzcrk.Button4Click(Sender: TObject);
begin
datainit;
end;
procedure Tw_gdzcrk.l_sylxKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
l_yf.SetFocus else
begin
key:=#0;
beep;
end;
end;
procedure Tw_gdzcrk.l_bzKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
button3.SetFocus;
end;
procedure Tw_gdzcrk.l_syzKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
l_cfwz.setfocus else
begin
key:=#0;
beep;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?