我想让用户输入字段“入库单价”和字段“入库数量”后,字段“入库金额”自动为他们两个的积,不是人为的输入,应该怎么做呢?(100分)

  • 主题发起人 主题发起人 人鱼公主:)
  • 开始时间 开始时间
取库的最后一条记录应该怎么写
 
select top 1 * from tt order by xxx desc
 
是想找到我编辑的这条记录的前一条记录
 
dataset.prior
 
我建议你用StringGrid组件,不要用dbgrid组件,当然用DBGrid组件也能实现
 
example:

//---------
//-ADODSTDanSen的第一列(商品编码)的Validate处理函数
procedure TForm1.ADODSTDanSenDSDesignerValidate(Sender: TField);
var
strMinCenGuiGe:string;
begin
//得到商品规格型号,同时定位次商品编码的记录
//调用DataModule2.GetSangpinMinCenGuiGe
strMinCenGuiGe:=DataModule2.GetSangpinMinCenGuiGe(self.ADOTableSangPinXinXi,self.ADODSTDanSen.Fields.Fields[0].AsString);

//降商品的相应信息赋予ADODSTDanSen
if strMinCenGuiGe<>'' then
begin
//showmessage(strMinCenGuiGe);
self.ADODSTDanSen.FieldValues['商品名称规格']:=strMinCenGuiGe;

self.ADODSTDanSen.FieldValues['单位']:=
self.ADOTableSangPinXinXi.FieldValues['c_jldw'];

self.ADODSTDanSen.FieldValues['残损成本']:=
self.ADOTableSangPinXinXi.FieldValues['m_wsjj'];

self.ADODSTDanSen.FieldValues['厂商']:=
self.ADOTableSangPinXinXi.FieldValues['c_csbm'];

//光标移动到DBGridDanse的第4列(数量)
self.DBGridDanSen.SelectedIndex:=3;
//进入加记录状态
self.flgAddMode:=1;
end
else begin
showmessage('错误的商品编码!请从新输入');
end;

end;

//-ADODSTDanSen的第4列(数量)的Validate处理函数
procedure TForm1.ADODSTDanSenDSDesigner4Validate(Sender: TField);
begin
if self.ADODSTDanSen.FieldValues['数量']>0 then
begin
//计算字段
self.ADODSTDanSen.FieldValues['总残损成本']:=
self.ADODSTDanSen.FieldValues['残损成本']*
self.ADODSTDanSen.FieldValues['数量'];

//光标移动到DBGridDanse的第7列(单位残值)
self.DBGridDanSen.SelectedIndex:=6;
end;
end;

//-ADODSTDanSen的第7列(单位残值)的Validate处理函数
procedure TForm1.ADODSTDanSenDSDesigner7Validate(Sender: TField);
begin
//如果数量小与0就不计算字段
if self.ADODSTDanSen.FieldValues['单位残值']<=0 then
begin
showmessage('必须输入数量大于0');
//self.DBGridDanSen.SelectedIndex:=6;
exit;
end;

self.ADODSTDanSen.FieldValues['总残值']:=
self.ADODSTDanSen.FieldValues['单位残值']*
self.ADODSTDanSen.FieldValues['数量'];

self.ADODSTDanSen.FieldValues['仓位码']:='001';

//****统计总数,总残损成本合计和总残值*****
self.ADODSTDanTou.FieldValues['总数']:=
self.ADODSTDanTou.FieldValues['总数']+
self.ADODSTDanSen.FieldValues['数量'];

self.ADODSTDanTou.FieldValues['总残损成本合计']:=
self.ADODSTDanTou.FieldValues['总残损成本合计']+
self.ADODSTDanSen.FieldValues['残损成本'];

self.ADODSTDanTou.FieldValues['总残值合计']:=
self.ADODSTDanTou.FieldValues['总残值合计']+
self.ADODSTDanSen.FieldValues['单位残值'];
//*************************
//sleep(1000);
//self.JiaOneMinXi();
end;
//----------------
 
我想用LOCATE 语句实现查找字段A的值为EDIT1并且字段B的值为EDIT2的记录,这条语句应该怎么写呢?
还有就是adoquery1.sql.text:=format('select * from kucrn where 库存类型=''aaa'' and 型号=''%s''',[edit1.text])
这条语句,我想再增回一个条件就是符合上述条件并且字段日期为edit3的值的记录,应该怎么写呢?
 
前两个框的后一个的完成事件中写上
计算金额 := 入库数量*入库单价
让它直接写入,而且不让人员输入
 
多人接受答案了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
D
回复
0
查看
1K
DelphiTeacher的专栏
D
D
回复
0
查看
2K
DelphiTeacher的专栏
D
后退
顶部