📄 u_clffd.pas
字号:
i_value:=strtofloat(t_value);
i_value:=i_value+1;
s_value:=formatfloat('0000000',i_value);
if not autocacalnumber(s_value,ado) then
begin
edtcode.Text :=s_value;
exit;
end
else
next;
end;
edtcode.Text :='0000001';
end;
end;
//查找数据库中的编码
function autocacalnumber(const bh:string;ado:TADOQuery):boolean;
var
s_value:string;
begin
strsql:='SELECT SFNO FROM vW_Fcdj WHERE SFNO='+QuotedStr(BH);
with ado do
begin
close;
sql.Clear ;
sql.Add(strsql);
Prepared;
open;
if RecordCount >0 then
result:=true
else
result:=false;
end;
end;
procedure TfrmClffd.cacalnumber(ado:TADOQuery);
var
i_value:double;
t_value:string;
begin
strsql:='SELECT SFNO FROM vW_Fcdj';
with ado do
begin
Close;
SQL.Clear;
SQL.Add(strsql);
Prepared;
open;
s_value :=Fields[0].AsString;
if s_value='' then
s_value :='0000001'
else
begin
t_value:=trim(COPY(s_value,1,7));
i_value:=strtofloat(t_value);
i_value:=i_value+1;
s_value:=formatfloat('0000000',i_value);
end ;
end;
edtcode.Text :=s_value;
end;
procedure TfrmClffd.FormCreate(Sender: TObject);
begin
dtDate.Date:=date;
//为临时表中增加编码
screen.Cursor := crHourGlass;
cleardata('sftmp',frmmain.adoqytmp) ;
if CurrentParam.N_E =0 then
begin
autorecordtmp('sftmp',1,iSeri,frmmain.adoqytmp) ; //计算临时表中的记录号
//locanumber(frmmain.adoqytmp); //计算单据编号
cacalnumber(frmmain.adoqytmp);
CurrentParam.tmpCode:=trim(edtcode.Text);
end
else
begin
edtSfdj(CurrentParam.tmpCode,frmmain.adoqytmp); //修改此单据号
//VisbleTure;
dm.ADO_GGXHB.Filter :='sfno='+''''+CurrentParam.tmpCode+'''';
dm.ADO_GGXHB.Filtered :=true;
btnSave.Enabled :=true;
{if dm.ADO_GGXHB.State =dsbrowse then
begin
dm.ADO_GGXHB.Edit ;
dm.ADO_GGXHB.Post ;
end; }
end;
dm.ADO_TBTMP.IndexFieldNames :='seri';
dm.ADO_TBTMP.Active :=true;
DBSumList1.Activate(TRUE);
EDTFHR.Text :=CurrentParam.UserName;
VisbleTure;
//EDTJSR.Text :=CurrentParam.UserName;
if CurrentParam.blnADD then
begin
DBGridEh1.ReadOnly :=true;
DBGridEh2.ReadOnly :=true;
end;
screen.Cursor := crDefault;
//
end;
procedure TfrmClffd.DBSumList1SumListChanged(Sender: TObject);
begin
lblTotal.Text := FloatToStr(DBSumList1.SumCollection.Items[0].SumValue );
lblHtotal.Text := FloatToStr(DBSumList1.SumCollection.Items[0].SumValue * CurrentParam.bl);
end;
procedure TfrmClffd.FormShow(Sender: TObject);
var
s_value:string;
begin
//取出材料编码表值
dm.ADO_SPBMK.Active :=true;
cmbcl.Clear ;
dm.ADO_SPBMK.First ;
while not dm.ADO_SPBMK.Eof do
begin
s_value:=trim(dm.ADO_SPBMK.Fieldbyname('spbh').AsString)+'-';
s_value:=s_value+trim(dm.ADO_SPBMK.Fieldbyname('spmc').AsString);
cmbcl.Items.Add(s_value);
dm.ADO_SPBMK.Next;
end;
dm.ADO_SPBMK.Close;
dm.ADO_BMBMK.Active :=true;
cmbbm.Clear ;
dm.ADO_BMBMK.First ;
while not dm.ADO_BMBMK.Eof do
begin
s_value:=trim(dm.ADO_BMBMK.Fieldbyname('bmbh').AsString)+'-';
s_value:=s_value+trim(dm.ADO_BMBMK.Fieldbyname('bmname').AsString);
cmbbm.Items.Add(s_value);
dm.ADO_BMBMK.Next ;
end;
dm.ADO_BMBMK.Close ;
if CurrentParam.N_E =1 then
begin
cmbcl.Text :=CurrentParam.djh ;
cmbbm.Text :=CurrentParam.ph
//if CurrentParam.N_E =1 then
end;
end;
procedure TfrmClffd.FormClose(Sender: TObject; var Action: TCloseAction);
begin
//DBSumList1.Activate(false);
action := cafree;
frmCLFFD := nil;
end;
procedure TfrmClffd.btnCloseClick(Sender: TObject);
begin
DBSumList1.Activate(FALSE);
DBSumList1.Free ;
DBSumList2.Activate(FALSE);
DBSumList2.Free ;
close;
end;
procedure TfrmClffd.DBGridEh1DblClick(Sender: TObject);
{var
s_value,sSpbh,sNo:string;
iNumber:integer;
d_value:double;
strsql:string; }
begin
{if DBGridEh1.SelectedField.FieldName='seri' then exit;
if DBGridEh1.SelectedField.FieldName='clTal' then exit;
CurrentParam.sl:=DBGridEh1.SelectedField.AsFloat ;
iNumber:=DBGridEh1.Fields[0].AsInteger ;
s_value:=DBGridEh1.SelectedField.FieldName ;
s_value:=s_value+inttostr(iNumber);
sSpbh:= returnint('-',trim(cmbcl.Text),2,true);
sNo:=trim(edtcode.Text);
strsql:='sfno=('+''''+sNo+''' '+') and (fields = '+''''+s_value+''')';
dm.ADO_GGXHB.Filter :=strsql;
dm.ADO_GGXHB.Filtered :=true;
CurrentParam.tmpCode :=sNo;
CurrentParam.tmpName :=sSpbh;
CurrentParam.ggxh :=s_value;
ShowModalForm(TfrmGgxh);
if dm.ADO_TBTMP.State =dsbrowse THEN
dm.ADO_TBTMP.Edit ;
DBGridEh1.SelectedField.AsFloat:=CurrentParam.sl; }
end;
procedure TfrmClffd.DBNavigator1BeforeAction(Sender: TObject;
Button: TNavigateBtn);
begin
IF Button=nbPost then
begin
btnsave.Enabled :=true;
{ IF CurrentParam.tzcl then
begin
dm.ADO_GGXHB.FieldByName('sfno').AsString :=trim(edtcode.Text);
dm.ADO_GGXHB.FieldByName('fields').AsString :=CurrentParam.ggxh;
dm.ADO_GGXHB.FieldByName('spbh').AsString :=CurrentParam.tmpName;
end; }
// lbltotal.Text :=DBGridEh1.Columns[11].Footers[0].Value;
end;
end;
procedure TfrmClffd.cmbClChange(Sender: TObject);
var
sCl:string;
begin
sCl:=trim(cmbcl.Text);
sCl:=returnint('-',sCl,1,true);
CurrentParam.tmpName:=sCl;
CurrentParam.bl:=1;
CurrentParam.dj:=returnDj(sCl,frmmain.adoqytmp);
CurrentParam.tmpCode:= sCl;
dm.ADO_GGXHB.Filter :='sfno='+''''+trim(edtcode.Text)+'''';
dm.ADO_GGXHB.Filtered :=true;
VisbleTure;
end;
procedure TfrmClffd.btnSaveClick(Sender: TObject);
begin
try
Add_Clffd_Data;
except
Application.MessageBox('数据提交出错,请重新起动应用程序!', '错误', mb_iconInformation + mb_defbutton1);
exit;
end;
end;
procedure TfrmClffd.edtCodeKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
screen.Cursor := crHourGlass;
dm.ADO_TBTMP.Active :=false;
strsql:='Select * from sfdj where sfno=:@sfno ';
with qydjsf do
begin
close;
sql.Clear ;
sql.Add(strsql);
Parameters.ParamByName('@sfno').Value :=TRIM(EDTCODE.Text) ;
Prepared ;
open;
if RecordCount >0 then
begin
{if application.MessageBox('输入的单据号不存在是否继续?!','材料租赁系统!',MB_YESNO)=IDYES then
begin
edtcode.SetFocus ; }
cleardata('sftmp',frmmain.adoqytmp) ;
edtSfdj(trim(edtcode.Text),frmmain.adoqytmp); //修改此单据号
dm.ADO_GGXHB.Filter :='sfno='+''''+CurrentParam.tmpCode+'''';
dm.ADO_GGXHB.Filtered :=true;
end;
dm.ADO_TBTMP.Active :=true;
screen.Cursor := crDefault;
end;
end;
end;
procedure TfrmClffd.DBSumList2SumListChanged(Sender: TObject);
begin
CurrentParam.sl :=DBSumList2.SumCollection.Items[0].SumValue;
lblTotal.Text := FloatToStr(CurrentParam.sl );
lblHtotal.Text := FloatToStr(CurrentParam.sl * CurrentParam.bl);
end;
procedure TfrmClffd.DBGridEh2KeyPress(Sender: TObject; var Key: Char);
var
i:integer;
begin
if key=#13 then
begin
i:= dm.ADO_GGXHB.RecordCount;
if DBGridEh2.SelectedField.FieldName ='long' THEN
if dm.ADO_GGXHB.State = dsinsert then
DBGridEh2.Fields[2].AsFloat :=1;
//if (DBGridEh2.SelectedField.FieldName ='number') OR (DBGridEh2.SelectedField.FieldName ='weith') or (DBGridEh2.SelectedField.FieldName ='long') then
// if DM.ADO_GGXHB.State in [dsedit,dsinsert] then
// begin
//DBGridEh2.Fields[3].AsFloat :=DBGridEh2.Fields[0].AsFloat*DBGridEh2.Fields[1].AsFloat*DBGridEh2.Fields[2].AsFloat ;
if DM.ADO_GGXHB.State in [dsinsert] then
begin
dm.ADO_GGXHB.FieldByName('seri').AsInteger :=i +1 ;
dm.ADO_GGXHB.FieldByName('sfno').AsString :=trim(edtcode.Text);
dm.ADO_GGXHB.FieldByName('fields').AsString :=CurrentParam.ggxh;
dm.ADO_GGXHB.FieldByName('spbh').AsString :=CurrentParam.tmpName;
end;
// dm.ADO_GGXHB.FieldByName('total').AsFloat :=DBGridEh2.Fields[0].AsFloat*DBGridEh2.Fields[1].AsFloat*DBGridEh2.Fields[2].AsFloat ;
// try
// dm.ADO_GGXHB.Post ;
// except
// dm.ADO_GGXHB.Cancel ;
// dm.ADO_GGXHB.Active :=false;
// dm.ADO_GGXHB.Active :=true;
// end;
// btnSave.Enabled :=TRUE;
// end;
end;
end;
procedure TfrmClffd.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
begin
dm.ADO_TBTMP.Close ;
dm.ADO_SFDJ.Close ;
dm.ADO_GGXHB.Close ;
end;
procedure TfrmClffd.SpeedButton1Click(Sender: TObject);
begin
locanumber(frmmain.adoqytmp); //计算单据编号
end;
procedure TfrmClffd.SpeedButton2Click(Sender: TObject);
var
Qrepcl:TQrepcl;
Qrepcl_t:TQrepcl_t;
sCl,
sBm,
sspbh,
sCode,
strsql:string;
begin
sCode:=trim(edtcode.Text);
sCl:=trim(cmbcl.Text);
sBm:=trim(cmbbm.Text);
sCl:=returnint('-',sCl,1,false);
sBm:=returnint('-',sBm,2,false);
// sspbh:=returnint('-',sCl,2,true);
if not CurrentParam.tzcl then
begin
qrepcl:=Tqrepcl.Create(self);
qrepcl.lblNo.Caption :=sCode;
qrepcl.lblname.Caption :=sCl;
qrepcl.lblffdate.Caption :=datetostr(dtdate.Date);
qrepcl.lblmb.Caption :=sBm;
qrepcl.lblTotal.Caption :=trim(lbltotal.Text)+CurrentParam.jldw ;
qrepcl.lblhTotal.Caption :=trim(lblhtotal.Text)+CurrentParam.jldw2;
qrepcl.lblZy.Caption :=trim(edtzy.Text);
qrepcl.lblFhr.Caption :=trim(edtfhr.Text);
qrepcl.lblJzr.Caption :=trim(edtjzr.Text);
qrepcl.lblJsr.Caption :=trim(edtjsr.Text);
strsql:='SELECT Cl_0, cl_1, cl_2, cl_3, cl_4, cl_5, cl_6, cl_7, cl_8, cl_9 FROM sftmp';
with frmmain.adoRep do
begin
close;
sql.Clear ;
sql.Add(strsql);
open;
end;
qrepcl.lblTitle.Caption :='江苏正华建设集团公司租赁站周转材料发放单';
qrepcl.PreviewModal ;
qrepcl.Free ;
end else
begin
//查询数据
strsql:='SELECT spbh, fields, long, weith, hight, number, total, bz FROM ggxhb Where SFNO='+''''+sCode+'''';
with frmmain.adoRep do
begin
close;
sql.Clear ;
sql.Add(strsql);
open;
end;
///
qrepcl_t:=Tqrepcl_t.Create(self);
qrepcl_t.lblNo.Caption :=sCode;
qrepcl_t.lblname.Caption :=sCl;
qrepcl_t.lblffdate.Caption :=datetostr(dtdate.Date);
qrepcl_t.lblmb.Caption :=sBm;
qrepcl_t.lblTotal.Caption :=trim(lbltotal.Text)+CurrentParam.jldw ;
qrepcl_t.lblhTotal.Caption :=trim(lblhtotal.Text)+CurrentParam.jldw2;
qrepcl_t.lblZy.Caption :=trim(edtzy.Text);
qrepcl_t.lblFhr.Caption :=trim(edtfhr.Text);
qrepcl_t.lblJzr.Caption :=trim(edtjzr.Text);
qrepcl_t.lblJsr.Caption :=trim(edtjsr.Text);
qrepcl_t.lblTitle.Caption :='江苏正华建设集团公司租赁站周转材料发放单';
qrepcl_t.PreviewModal ;
qrepcl_t.Free ;
end;
frmmain.adoRep.Active :=false;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -