📄 handle.~pa
字号:
{end
else
begin
//必须输入月份
messagedlg(Msg.MsgMonthInfo,mtWarning,[mbYes],0);
exit;
end;
end
else //年份没有输入
begin
if txtMonth.Text<>''then
begin
//必须输入年份
messagedlg(Msg.MsgYearInfo,mtWarning,[mbYes],0);
exit;
end
else //年月为空
begin
if txtDay.Text<>''then
begin
//必须输入年月
messagedlg(Msg.MsgMYInfo,mtWarning,[mbYes],0);
exit;
end
else
DateMark:=False;
end;
end;}
if txtBeginMoney.Text<>'' then
begin //起始金额不为空
if txtEndMoney.Text<>''then
begin //终到金额也不为空
Sql:=Sql+'and (d.PawnMoney>=:BeginMoney and d.PawnMoney<:EndMoney) ';
//BeginMoneyMark:=True;
MoneyMark:=True;
end
else //终到金额为空--允许
begin
Sql:=Sql+'and d.PawnMoney>=:BeginMoney ';
BeginMoneyMark:=True;
end;
end
else //起始的金额为空
begin
if txtEndMoney.Text<>'' then
begin //终到的金额不为空,必须输入起始金额
messagedlg(Msg.MsgHandleMoney,mtWarning,[mbYes],0);
txtBeginMoney.SetFocus ;
exit;
end
else //终到金额为空,不判断金额
MoneyMark:=False;
end;
with dmPawnFrm do
begin
dqDeadDetail.Close;
dqDeadDetail.SQL.Clear ;
if cmbCategory.Text<>'' then
begin
Sql:=Sql+'and d.PawnCategory=:Category ';
end;
dqDeadDetail.SQL.Add(Sql);
//dqDeadDetail.ParamByName('DateElapsed').AsDateTime:=NowtoTen;
if cmbCategory.Text<>'' then
begin
dqDeadDetail.ParamByName('Category').asstring:=cmbCategory.Text;
end;
//dqDeadDetail.ParamByName('Sta1').asstring:='绝当';
if DateMark=True then
begin
DateMark:=False;
dqDeadDetail.ParamByName('SearchDate').asDateTime:=SearchDate;
end;
if MoneyMark=True then
begin
MoneyMark:=False;
dqDeadDetail.ParamByName('BeginMoney').asfloat:=strtofloat(txtBeginMoney.text);
dqDeadDetail.ParamByName('EndMoney').asfloat:=strtofloat(txtEndMoney.text);
end;
if BeginMoneyMark=True then
begin
BeginMoneyMark:=False;
dqDeadDetail.ParamByName('BeginMoney').asfloat:=strtofloat(txtBeginMoney.text);
end;
dqDeadDetail.Open;
if dqDeadDetail.IsEmpty=True then
messagedlg(Msg.MsgNoDeadPawn,mtWarning,[mbYes],0);
end;
end;
procedure TfrmHandle.txtHandleNumKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtHandleNum.Text<>'' then
begin
if PawnNumber<strtoint(txtHandleNum.text) then
begin
messagedlg(Msg.MsgNumberExceed,mtWarning,[mbYes],0);
txtHandleNum.SetFocus ;
exit;
end;
if txtHandleNum.Text='0' then
begin
messagedlg('数量不能为零,请重新输入!',mtWarning,[mbYes],0);
txtHandleNum.SetFocus;
exit;
end;
txtHandlePrice.SetFocus ;
end
else
begin
//未输入数量
messagedlg('请输入数量!',mtWarning,[mbYes],0);
txtHandleNum.SetFocus;
end;
end;
end;
procedure TfrmHandle.cmdOkClick(Sender: TObject);
var
SqlHandle:string;
HandleRecNum:integer;
TotalRecNum:integer;
begin
if txtNumber.Text='' then
txtNumber.Text:='0';
if txtPreMoney.Text='' then
txtPreMoney.Text:='0';
//判断输入的数量是否超出已有的数量
if txtHandleNum.Text<>'' then
begin
if PawnNumber<strtoint(txtHandleNum.text) then
begin
messagedlg(Msg.MsgNumberExceed,mtWarning,[mbYes],0);
txtHandleNum.SetFocus ;
exit;
end;
if txtHandleNum.Text='0' then
begin
messagedlg('数量不能为零,请重新输入!',mtWarning,[mbYes],0);
txtHandleNum.SetFocus;
exit;
end;
//txtHandlePrice.SetFocus ;
end
else
begin
//未输入数量
messagedlg('请输入数量!',mtWarning,[mbYes],0);
txtHandleNum.SetFocus;
exit;
end;
//判断输入的金额是否合理
if txtHandlePrice.Text='' then
begin
txtHandlePrice.Text:=Format('%8.1f',[0.0]);
messagedlg('处理金额为0.0,请确认!',mtWarning,[mbYes],0);
exit;
end
else
begin
if strtofloat(txtHandlePrice.Text)=0 then
begin
messagedlg('处理金额为0.0,请确认!',mtWarning,[mbYes],0);
txtHandlePrice.SetFocus;
exit;
end;
txtHandlePrice.Text:=Format('%8.1f',[strtofloat(txtHandlePrice.Text)]);
//cmdOk.SetFocus;
end;
//------------------
with dmPawnFrm do
begin
//将此条已处理的信息放入Handle_Tbl
tblHandle.Open;
tblHandle.Insert;
tblHandlePawnTicketCode.Value:=PawnCode;
tblHandlePawnName.Value:=trim(txtName.text);
tblHandlePawnCategory.Value:=trim(txtCategory.text);
tblHandlePawnSpec.Value:=trim(txtSpec.text);
tblHandlePawnNumber.Value:=strtoint(trim(txtHandleNum.text));
tblHandlePawnMoney.Value:=strtofloat(trim(txtPreMoney.text));
tblHandleSellMoney.Value:=strtofloat(trim(txtHandlePrice.text));
tblHandleHandleDate.value:=Date;
tblHandle.Post;
tblHandle.Close;
//将细表中此条记录的Status设为处理
tblDetail.Open;
tblDetail.SetKey;
tblDetail.FieldByName('PawnTicketCode').Asstring:=PawnCode;
tblDetail.FieldByName('PawnLineNum').asinteger:=LineNum;
if tblDetail.FindKey([PawnCode,LineNum]) then
begin
tblDetail.DisableControls ;
tblDetail.Edit;
if strtoint(txtHandleNum.Text)=PawnNumber then
tblDetailStatus.Value:='处理'
else if strtoint(txtHandleNum.Text)<PawnNumber then
begin
tblDetailPawnNumber.Value:=PawnNumber-strtoint(txtHandleNum.Text);
tblDetailStatus.Value:='半处';
end;
tblDetail.Post;
tblDetail.EnableControls ;
end;
tblDetail.Close;
//再查看细表中所有具有此当票编号的记录的Status是否均为处理
//若均为处理,则将头表中有此当票编号的记录的Status设为处理
//并将其从库存数据表stockpile_Tbl中删除
//否则,设为半处!
//----将已处理的记录数与有此当票编号的所有记录数进行比较
//----当两记录数相等,即为均被处理
dqDetail.Close;
dqDetail.SQL.Clear;
SqlHandle:='Select * from PawnDetail_Tbl ';
SqlHandle:=SqlHandle+'where PawnTicketCode=:PawnCode ';
SqlHandle:=SqlHandle+'and Status=:Status;';
dqDetail.SQL.Add(SqlHandle);
dqDetail.ParamByName('PawnCode').asstring:=PawnCode;
dqDetail.ParamByName('Status').asstring:='处理';
dqDetail.Open;
if dqDetail.IsEmpty=False then
HandleRecNum:=dqDetail.RecordCount
else
HandleRecNum:=0;
dqDetail.Close;
//----此当票编号的所有记录数
dqDetail.Close;
dqDetail.SQL.Clear ;
SqlHandle:='Select * from PawnDetail_Tbl ';
SqlHandle:=SqlHandle+'where PawnTicketCode=:PawnCode ';
dqDetail.SQL.Add(SqlHandle);
dqDetail.ParamByName('PawnCode').asstring:=PawnCode;
dqDetail.Open;
if dqDetail.IsEmpty=False then
TotalRecNum:=dqDetail.RecordCount
else
TotalRecNum:=0;
dqDetail.Close;
//开始判断
if TotalRecNum<>0 then
begin
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey;
tblHead.FieldByName('PawnTicketCode').asstring:=PawnCode;
if TotalRecNum=HandleRecNum then
begin //均被处理
if tblHead.GotoKey then
begin
tblHead.Edit;
tblHeadStatus.Value:='处理';
tblHead.Post ;
//从库存中删除它
tblStockpile.Open;
tblStockpile.IndexFieldNames:='PawnCode';
tblStockpile.SetKey ;
tblStockpile.FieldByName('PawnCode').asstring:=PawnCode;
if tblStockpile.GotoKey then
begin
tblStockpile.Delete;
end;
tblStockpile.Close;
end;
end
else //未被全部处理
begin
if HandleRecNum<>0 then //有被处理的记录
begin
if tblHead.GotoKey then
begin
tblHead.Edit;
tblHeadStatus.Value:='半处';
tblHead.Post ;
end;
end;
end;//end else
tblHead.Close;
end;//end totalrecnum<>0
end;//end with
//staHandle.Caption:='物品处理结束!';
ClearForm;
FormShow(Sender);
end;
procedure TfrmHandle.txtHandlePriceKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if txtHandlePrice.Text='' then
begin
txtHandlePrice.Text:=Format('%8.1f',[0.0]);
messagedlg('处理金额为0.0,请确认!',mtWarning,[mbYes],0);
end
else
begin
if strtofloat(txtHandlePrice.Text)=0 then
begin
messagedlg('处理金额为0.0,请确认!',mtWarning,[mbYes],0);
txtHandlePrice.SetFocus;
exit;
end;
txtHandlePrice.Text:=Format('%8.1f',[strtofloat(txtHandlePrice.Text)]);
cmdOk.SetFocus;
end;
end;
end;
procedure TfrmHandle.txtHandleNumKeyPress(Sender: TObject; var Key: Char);
begin
if key>=chr(58) then
key:=chr(0);
end;
procedure TfrmHandle.txtYearKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Year,Month,Day:word;
begin
if key=VK_RETURN then
begin
if txtYear.Text =''then
begin
DecodeDate(Now, Year, Month, Day);
txtYear.Value:= Year;
end;
txtMonth.SetFocus;
end;
end;
procedure TfrmHandle.txtMonthKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Year,Month,Day:word;
begin
if key=VK_RETURN then
begin
if txtMonth.Text =''then
begin
DecodeDate(Now, Year, Month, Day);
txtMonth.Value:=Month;
end;
txtDay.SetFocus;
end;
end;
procedure TfrmHandle.txtDayKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Year,Month,Day:word;
begin
if key=VK_RETURN then
begin
if txtDay.Text =''then
begin
DecodeDate(Now, Year, Month, Day);
txtDay.Value:=Day;
end;
cmdQuery.SetFocus;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -