urecloss.~pas
来自「DELPHI编程入门篇.从基础入手,浅显易懂,一定物有所值.」· ~PAS 代码 · 共 500 行 · 第 1/2 页
~PAS
500 行
procedure Tfrmrecloss.SpeedButton2Click(Sender: TObject);
var
ayear,amonth,adate:word;
smonth,sdate,maxid:string;
i:integer;
begin
for i:=1 to stringgrid1.RowCount-1 do
stringgrid1.Rows[i].Clear;
stringgrid1.RowCount:=2;
for i:=1 to stringgrid2.RowCount-1 do
stringgrid2.Rows[i].Clear;
stringgrid2.RowCount:=2;
edit1.Enabled:=false;
datepicker1.Enabled:=false; datepicker2.Enabled:=false;
edit3.Enabled:=true; edit3.Text:='';
edit2.Text:='';
datepicker3.Enabled:=true; datepicker3.Date:=date;
combobox1.Enabled:=true; combobox1.ItemIndex:=-1;
SpeedButton1.Enabled:=false;
speedbutton2.Enabled:=false;
speedbutton3.Enabled:=true;
speedbutton4.Enabled:=true;
speedbutton5.Enabled:=false;
speedbutton6.Enabled:=false;
decodedate(date,ayear,amonth,adate);
smonth:=inttostr(amonth);sdate:=inttostr(adate);
if length(smonth) < 2 then smonth:= '0'+smonth;
if length(sdate) < 2 then sdate:='0'+sdate;
maxid:=inttostr(ayear)+smonth+sdate;
adoquery1.SQL.Text:='select max(losskid) as maxid from recloss where losskid like '''+maxid+'%''';
adoquery1.Open;
if adoquery1.FieldValues['maxid'] = null then
edit2.Text:=maxid+'0001'
else
edit2.Text:=inttostr(strtoint64(adoquery1.FieldValues['maxid'])+1);
adoquery1.Close;
end;
procedure Tfrmrecloss.SpeedButton3Click(Sender: TObject);
var
i:integer;
sfilid:string;
begin
if combobox1.Text = '' then
begin
showmessage('请选择分店!');
exit;
end;
if edit3.Text = '' then
begin
showmessage('请输入经手人');
exit;
end;
for i:=1 to stringgrid2.RowCount-1 do
begin
if stringgrid2.Cells[3,i] = '' then
begin
showmessage('请输入损失数量!');
exit;
end;
end;
adoquery1.SQL.Text:='select filid from filiale where filname = '''+combobox1.Text+'''';
adoquery1.Open;
sfilid:= adoquery1.Fields[0].AsString;
adoquery1.Close;
try
adoquery1.Connection.BeginTrans;
adoquery1.SQL.Text:='insert into recloss values("'+edit2.Text+'","'+datetostr(date)
+'","'+sfilid+'","'+edit3.Text+'")';
adoquery2.Connection.BeginTrans;
for i:=1 to stringgrid2.RowCount-1 do
begin
adoquery2.SQL.Text:='insert into recloss1 values("'+edit2.Text+'","'
+stringgrid2.Cells[1,i]+'","'+stringgrid2.Cells[3,i]+'","'+stringgrid2.Cells[4,i]+'")';
adoquery2.execsql;
end;
adoquery1.ExecSQL;
adoquery2.Connection.CommitTrans;
adoquery2.Close;
adoquery1.Connection.CommitTrans;
adoquery1.Close;
speedbutton1.Enabled:=true;
speedbutton2.Enabled:=true;
speedbutton3.Enabled:=false;
speedbutton4.Enabled:=false;
speedbutton5.Enabled:=true;
speedbutton6.Enabled:=true;
edit1.Enabled:=true;
edit2.Text:='';
datepicker1.Enabled:=true;
datepicker2.Enabled:=true;
combobox1.Enabled:=false; combobox1.ItemIndex:=-1;
datepicker3.Enabled:=false;
edit3.Enabled:=false; edit3.Text:='';
showmessage('保存成功');
for i:=1 to stringgrid2.RowCount-1 do
stringgrid2.Rows[i].Clear;
stringgrid2.RowCount:=2;
except
adoquery2.Connection.RollbackTrans;
adoquery2.Close;
adoquery1.Connection.RollbackTrans;
adoquery1.Close;
end;
end;
procedure Tfrmrecloss.SpeedButton6Click(Sender: TObject);
begin
modalresult:=mrcancel;
end;
procedure Tfrmrecloss.SpeedButton4Click(Sender: TObject);
var
i:integer;
begin
speedbutton1.Enabled:=true;
speedbutton2.Enabled:=true;
speedbutton3.Enabled:=false;
speedbutton4.Enabled:=false;
speedbutton5.Enabled:=true;
speedbutton6.Enabled:=true;
edit1.Enabled:=true;
edit2.Text:='';
datepicker1.Enabled:=true;
datepicker2.Enabled:=true;
combobox1.Enabled:=false; combobox1.ItemIndex:=-1;
datepicker3.Enabled:=false;
edit3.Enabled:=false; edit3.Text:='';
for i:=1 to stringgrid1.RowCount-1 do
stringgrid1.Rows[i].Clear;
stringgrid1.RowCount:=2;
for i:=1 to stringgrid2.RowCount-1 do
stringgrid2.Rows[i].Clear;
stringgrid2.RowCount:=2;
end;
procedure Tfrmrecloss.FormCloseQuery(Sender: TObject;
var CanClose: Boolean);
begin
if speedbutton3.Enabled then
begin
application.MessageBox('请保存数据以后再退出','操作提示',mb_ok);
canclose:=false;
end;
end;
procedure Tfrmrecloss.StringGrid2SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
var
arect:trect;
begin
stringgrid2.Options:=stringgrid2.Options-[goediting];
if (((acol = 1) or (acol = 2)) and (speedbutton3.Enabled)) then
begin
arect:=stringgrid2.CellRect(acol,arow);
arect.Left:=stringgrid2.Left+arect.Left;
arect.Top:=arect.Top+stringgrid2.Top;
dxbuttonedit1.Left:=arect.Left;
dxbuttonedit1.Top:=arect.Top;
dxbuttonedit1.Height:=stringgrid2.RowHeights[arow]+2;
dxbuttonedit1.Width:=stringgrid2.ColWidths[acol]+2;
dxbuttonedit1.Visible:=true;
dxbuttonedit1.SetFocus;
end;
if (((acol = 3) or (acol =4)) and (speedbutton3.Enabled)) then
stringgrid2.Options:=stringgrid2.Options+[goediting]
end;
procedure Tfrmrecloss.dxButtonEdit1Exit(Sender: TObject);
begin
dxbuttonedit1.Text:='';
dxbuttonedit1.Visible:=false;
end;
procedure Tfrmrecloss.dxButtonEdit1ButtonClick(Sender: TObject;
AbsoluteIndex: Integer);
begin
application.CreateForm(tfrmfilprod,frmfilprod);
frmfilprod.whosel:='recloss';
frmfilprod.ShowModal;
frmfilprod.Release;
end;
procedure Tfrmrecloss.N1Click(Sender: TObject);
var
arow:integer;
begin
if speedbutton3.Enabled then
begin
arow:=stringgrid2.RowCount-1;
if stringgrid2.Cells[1,arow] <> '' then
stringgrid2.RowCount:=stringgrid2.RowCount+1;
end
else
showmessage('请先点击添加按钮');
end;
procedure Tfrmrecloss.N2Click(Sender: TObject);
var
i:integer;
begin
if speedbutton3.Enabled then
begin
if stringgrid2.RowCount > 2 then
begin
for i:=stringgrid2.Row to stringgrid2.RowCount-2 do
stringgrid2.Rows[i]:=stringgrid2.Rows[i+1];
stringgrid2.rows[stringgrid2.RowCount-1].Clear;
stringgrid2.RowCount:=stringgrid2.RowCount-1;
end
else
stringgrid2.Rows[1].Clear;
end
else
showmessage('请先点击添加按钮');
end;
procedure Tfrmrecloss.SpeedButton5Click(Sender: TObject);
var
MyPage: TRavePage;
MyText: TRaveText;
begin
if stringgrid2.Cells[1,1] <> '' then
begin
rvproject1.Open;
with rvproject1.ProjMan do
begin
mypage:=findravecomponent('report1.page1',nil) as travepage ;
MyText:=findravecomponent('Text5',MyPage) as TRaveText;
mytext.Text:=edit2.Text;
mytext:=findravecomponent('Text6',MyPage) as TRaveText;
mytext.Text:=combobox1.Text;
mytext:=findravecomponent('Text7',MyPage) as TRaveText;
mytext.Text:=datetostr(datepicker3.date);
mytext:=findravecomponent('Text13',MyPage) as TRaveText;
mytext.Text:=edit3.Text;
end;
adoquery1.SQL.Text:='select recloss1.prid,pluinfo.prname,recloss1.lossnum,'
+'recloss1.cause from recloss1 inner join pluinfo on recloss1.prid ='
+' pluinfo.prid where lossid = '''+edit2.Text+'''';
adoquery1.Open;
rvproject1.Execute;
rvproject1.Close;
adoquery1.Close;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?