📄 pawnquery.pas
字号:
dqHeadUn.ParamByName('Status1').asstring:='处理';
dqHeadUn.ParamByName('Status2').asstring:='绝当';
end;
if ckNopawn.Checked=True then
begin
//dqHeadUn.ParamByName ('OutTime').AsDateTime:=NowToTen; //EncodeDate(Year,Month,Day)-Pawn.OutPawnLimit;
dqHeadUn.ParamByName ('Status').Asstring:='绝当';
end;}
dqHeadUn.Open;
staRecNum.Caption:='共'+inttostr(dqHeadUn.RecordCount)+'张当票';
DataSetHeadOpenMark:=True;
end;
end;
end;
//当头表中的某一条记录被点中后,取出他的当票编号,
//再在细表中查询具有此当票编号的当物信息放入网格dgDetail中,
//dgDetail在点击检索键时被设为与dsQueryDetailUn数据源相连
procedure TfrmPawnQuery.dgHeadCellClick(Column: TColumn);
var
Sql:string;
PawnStatus:string;
PawnEndDate:TDateTime;
DayLimit:integer;
CategoryMark:Boolean;
begin
dgDetail.DataSource :=dmPawnFrm.dsQueryDetailUn ;
self.staQuery.Caption:='';
if DataSetHeadOpenMark=True then
begin
//DataSetHeadOpenMark:=False;
if ckRansom.Checked=True then
begin
PawnCode:=dgHRansom.Columns[0].Field.AsString;
end
else
begin
PawnCode:=dgHead.Columns[0].Field.AsString;
end;
end
else
begin
exit;
//PawnCode:='';
end;
Sql:='select PawnTicketCode,PawnLineNum,PawnName,PawnCategory,PawnSpec,';
Sql:=Sql+'PawnNumber,AppriseValue,DiscountRate,PawnMoney from PawnDetail_Tbl ';
Sql:=Sql+ 'where True and Status='''' ';
with dmPawnFrm do
begin
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey;
tblHead.FieldByName('PawnTicketCode').Asstring:=PawnCode;
if tblHead.GotoKey then
PawnStatus:=tblHeadStatus.Value;
tblHead.Close;
end;
if (PawnStatus='未赎')or (PawnStatus='解挂') or
(PawnStatus='半处')then
begin
PawnEndDate:=dgHead.Columns[11].Field.Value;
DayLimit:=Round(Now-PawnEndDate);
if DayLimit<0 then //在当
self.staQuery.Caption:=Msg.StatusBuyOnline;
//if DayLimit>10 then //绝当
//self.staQuery.Caption:=Msg.StatusBuyDeadPawn;
if (DayLimit>=1)and (DayLimit<=10) or (DayLimit>10) then //逾期
self.staQuery.Caption:=Msg.StatusBuyTimeOut;
end
else
begin
if PawnStatus='赎回'then
begin
self.staQuery.Caption:=Msg.MsgBuyBuyed;
end;
if PawnStatus='挂失'then
begin
self.staQuery.Caption:=Msg.MsgBuyLost;
end;
if PawnStatus='处理'then
begin
self.staQuery.Caption:=Msg.MsgBuyDeadOutStock;
end;
if PawnStatus='绝当' then
begin
self.staQuery.Caption:=Msg.StatusBuyDeadPawn;
end;
end;
//查询细表
with dmPawnFrm do
begin
dqDetailUn.close;
dqDetailUn.SQL.clear;
Sql:=Sql+' and PawnTicketCode=:PawnCode ';
//if cmbCategory.Text<>'' then
//begin
//CategoryMark:=True;
//Sql:=Sql+'and PawnCategory=:Category ';
//end;
dqDetailUn.SQL.add(Sql);
dqDetailUn.paramByName('PawnCode').Asstring:=PawnCode;
//if CategoryMark=True then
//begin
//CategoryMark:=False;
//dqDetailUn.ParamByName('Category').asstring:=cmbCategory.Text;
//end;
dqDetailUn.open;
end;
end;
//点击挂失键
procedure TfrmPawnQuery.cmdLostClick(Sender: TObject);
begin
if PawnCode='' then
begin
messagedlg(Msg.MsgDelClickHead,mtInformation,[mbYes],0);
exit;
end;
staQuery.Caption :=Msg.StatusMsgLostIn;
with dmPawnFrm do
begin
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey;
tblHead.FieldByName('PawnTicketCode').asstring:=PawnCode;
if tblHead.GotoKey then
begin
if tblHeadStatus.Value<>'赎回' then
begin
tblHead.Edit;
tblHeadStatus.Value :='挂失';
tblHead.Post ;
staQuery.Caption :=Msg.StatusMsgLostOver;
end
else
messagedlg(Msg.MsgModifyInfo,mtWarning,[mbYes],0);
end;
tblHead.Close;
end;
end;
//点击解挂键
procedure TfrmPawnQuery.cmdFindClick(Sender: TObject);
begin
if PawnCode='' then
begin
messagedlg(Msg.MsgDelClickHead,mtInformation,[mbYes],0);
exit;
end;
staQuery.Caption :=Msg.StatusMsgFindIn;
with dmPawnFrm do
begin
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey;
tblHead.FieldByName('PawnTicketCode').asstring:=PawnCode;
if tblHead.GotoKey then
begin
if tblHeadStatus.Value<>'赎回'then
begin
tblHead.Edit;
tblHeadStatus.Value :='解挂';
tblHead.Post ;
staQuery.Caption :=Msg.StatusMsgFindOver;
end
else
messagedlg(Msg.MsgModifyInfo,mtWarning,[mbYes],0);
end;
tblHead.Close;
end;
end;
procedure TfrmPawnQuery.FormShow(Sender: TObject);
var
Present: TDateTime;
Year, Month, Day: Word;
begin
dgHRansom.Visible:=False;
Present:= Now;
DecodeDate(Present, Year, Month, Day);
txtBeginYear.Value :=Year;
txtBeginMonth.Value:=Month;
txtBeginDay.Value:=Day;
txtEndYear.Value:=Year;
txtEndMonth.Value:=Month;
txtEndDay.Value:=Day;
ckTotalData.Checked:=True;
//IniCategoryBox;
with dmPawnFrm do
begin
dqHeadUn.Close;
if DataSetHeadOpenMark=True then
begin
DataSetHeadOpenMark:=False;
end;
dqDetailUn.Close;
end;
end;
//点击删除键
procedure TfrmPawnQuery.cmdDeleteClick(Sender: TObject);
var
Sql:string;
begin
if messagedlg(Msg.MsgDel,mtConfirmation,[mbYes,mbNo],0)=mrYes then
begin
if PawnCode='' then
begin
messagedlg(Msg.MsgDelClickHead,mtInformation,[mbYes],0);
exit;
end;
//dmPawnFrm.Database.Commit ;
//dmPawnFrm.Database.StartTransaction;
staQuery.Caption :=Msg.StatusMsgDelIn;
with dmPawnFrm do
begin
//删除头表中的记录
tblHead.Open;
tblHead.IndexFieldNames:='PawnTicketCode';
tblHead.SetKey;
tblHead.FieldByName('PawnTicketCode').asstring:=PawnCode;
if tblHead.GotoKey then
begin
tblHead.Delete;
//在dmpawnfrm 的tblHead 的DELETE之前有beforedelete
//将要删除的记录存入头表历史数据表中
end;
tblHead.Close;
//删除细表中相应的记录根据当票编号
Sql:='select PawnTicketCode,PawnLineNum,PawnName,PawnCategory,PawnSpec,';
Sql:=Sql+'PawnNumber,AppriseValue,DiscountRate,PawnMoney from PawnDetail_Tbl ';
Sql:=Sql+ 'where PawnTicketCode=:PawnCode';
dqDetailDel.Close;
dqDetailDel.SQL.Clear ;
//Sql:=Sql+' and PawnTicketCode=:PawnCode'; //"'+ PawnCode + '"';
dqDetailDel.SQL.Add (Sql);
dqDetailDel.ParamByName('PawnCode').Asstring:=PawnCode;
dqDetailDel.Open;
if dqDetailDel.IsEmpty=False then
begin
//dqDetailDel.RequestLive:=True;
dqDetailDel.First ;
tblDetailHistory.Open;
while not dqDetailDel.Eof do
begin
//删除细表记录前,将要删除的记录存入细表历史数据表中
//有beforedelete事件
dqDetailDel.Delete ;
//dqDetailDel.Next ;
end;
tblDetailHistory.Close;
end
else
begin
staQuery.Caption:='';
end;
//dqDetailDel.RequestLive:=False;
//删除库存记录
tblStockpile.Open;
tblStockpile.IndexFieldNames:='PawnCode';
tblStockpile.SetKey;
tblStockpile.FieldByName('PawnCode').asstring:=PawnCode;
if tblStockpile.GotoKey then
begin
tblStockpile.Delete; //在dmpawnfrm 的tblHead 的DELETE之前有beforedelete
end;
tblStockpile.Close;
//删除典当金额数据表中的记录PawnMoney_Tbl
tblPawnMoney.Open;
tblPawnMoney.IndexFieldNames:='PawnTicketCode';
tblPawnMoney.SetKey;
tblPawnMoney.FieldByName('PawnTicketCode').asstring:=PawnCode;
if tblPawnMoney.GotoKey then
begin
tblPawnMoney.Delete;
end;
tblPawnMoney.Close;
//将网格中的数据刷新
cmdQueryClick(Sender);
//dgDetail被设为允许修改和删除的数据源dsDetailDel
//为了将删除后的数据刷新
dgDetail.DataSource:=dsDetailDel ;
dgDetail.Refresh ;
staQuery.Caption :=Msg.StatusMsgDelOver;
end;
end;
end;
procedure TfrmPawnQuery.cmbCategoryKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
begin
if CertiEnterTimes=0 then
begin
CertiEnterTimes:=CertiEnterTimes+1;
if SendMessage((Sender as TComBoBox).handle,CB_GetDroppedState,0,0)
=0 then
PostMessage((Sender as TComBoBox).handle,CB_SHOWDROPDOWN,1,0);
end
else
begin
CertiEnterTimes:=0;
end;
end;
end;
procedure TfrmPawnQuery.dgHRansomKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Column:TColumn;
begin
if key=VK_RETURN then
begin
dgHeadCellClick(Column);
end;
end;
procedure TfrmPawnQuery.dgHeadKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Column:TColumn;
begin
if key=VK_RETURN then
begin
dgHeadCellClick(Column);
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -