📄 handle.~pa
字号:
unit Handle;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
DBCtrls, StdCtrls, ComCtrls, Grids, DBGrids, ExtCtrls, Spin;
type
TfrmHandle = class(TForm)
GroupBox1: TGroupBox;
dgHandle: TDBGrid;
GroupBox2: TGroupBox;
GroupBox3: TGroupBox;
Label1: TLabel;
txtBeginMoney: TEdit;
Label2: TLabel;
txtEndMoney: TEdit;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
txtName: TEdit;
Label10: TLabel;
txtCategory: TEdit;
txtSpec: TEdit;
txtPreMoney: TEdit;
txtNumber: TEdit;
cmdOk: TButton;
cmdCancel: TButton;
cmdExit: TButton;
Label11: TLabel;
Label12: TLabel;
Label13: TLabel;
Label14: TLabel;
cmbCategory: TComboBox;
cmdQuery: TButton;
Label8: TLabel;
Label9: TLabel;
txtHandlePrice: TEdit;
Label15: TLabel;
txtHandleNum: TEdit;
staHandle: TStaticText;
txtYear: TSpinEdit;
txtMonth: TSpinEdit;
txtDay: TSpinEdit;
procedure cmdExitClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure cmbCategoryKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure dgHandleCellClick(Column: TColumn);
procedure txtBeginMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtEndMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
//procedure txtYearKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtYearExit(Sender: TObject);
//procedure txtMonthKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
//procedure txtDayKeyUp(Sender: TObject; var Key: Word;
// Shift: TShiftState);
procedure cmdCancelClick(Sender: TObject);
procedure cmdQueryClick(Sender: TObject);
procedure txtHandleNumKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cmdOkClick(Sender: TObject);
procedure txtHandlePriceKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtHandleNumKeyPress(Sender: TObject; var Key: Char);
procedure txtYearKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtMonthKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure txtDayKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
procedure IniCategoryBox;
procedure ClearForm;
public
{ Public declarations }
end;
var
frmHandle: TfrmHandle;
implementation
uses DmPawn, Msg;
{$R *.DFM}
var
//Sql:string;
NowToTen:TDateTime;
PawnNumber:integer;
PawnCode:String;
LineNum:integer;
CertiEnterTimes:Integer; //证件名称选择时用到(即组合框用键盘控制时用到)
procedure TfrmHandle.ClearForm;
begin
txtName.Text:='';
txtCategory.Text:='';
txtSpec.Text:='';
txtNumber.Text :='';
txtPreMoney.Text:='';
txtHandlePrice.Text :='';
txtHandleNum.Text :='';
txtBeginMoney.Text:='';
txtEndMoney.Text:='';
txtYear.Text:='';
txtMonth.Text:='';
txtDay.Text:='';
cmbCategory.Text:='';
end;
procedure TfrmHandle.IniCategoryBox;
begin
with cmbCategory.Items do
begin
with dmPawnFrm do
begin
tblCategory.Open;
tblCategory.First ;
while not tblCategory.Eof do
begin
Add(tblCategory.fieldByName('Name').asstring);
tblCategory.Next ;
end;
tblCategory.Close;
end;
end;
cmbCategory.ItemIndex :=0;
end;
procedure TfrmHandle.cmdExitClick(Sender: TObject);
begin
close;
end;
procedure TfrmHandle.FormShow(Sender: TObject);
var
Year,NYear,Month,NMonth,Day,NDay:word;
NowDate:TDateTime;
DaysElapsed:TDateTime;
Sql:string;
//DayLimit:integer;
begin
IniCategoryBox;
cmbCategory.Text:='';
txtYear.Text:='';
txtMonth.Text:='';
txtDay.Text:='';
DecodeDate(Now,Year,Month,Day);
NowDate:=EncodeDate(Year,Month,Day);
DaysElapsed:=NowDate-10;
DecodeDate(DaysElapsed,NYear,NMonth,NDay);
NowToTen:=EncodeDate(NYear,NMonth,NDay);
//将所有绝当物品显示出来
//先从库存表中取出当票编号,去头表中取出当票编号相同的结果集放入dqDeadHead
with dmPawnFrm do
begin
dqDeadDetail.Close;
dqDeadDetail.SQL.Clear;
Sql:='SELECT d.PawnTicketCode, d.PawnLineNum,d.PawnName, d.PawnCategory,';
Sql:=Sql+ 'd.PawnSpec, d.PawnNumber, d.AppriseValue, d.DiscountRate,';
Sql:=Sql+ 'd.PawnMoney, h.PawnEndDate FROM PawnDetail_Tbl AS d, ';
Sql:=Sql+ 'Stockpile_Tbl AS s INNER JOIN PawnHead_Tbl AS h ON h.PawnTicketCode=s.PawnCode ';
Sql:=Sql+ 'WHERE True and d.PawnTicketCode=h.PawnTicketCode ';
Sql:=Sql+ 'and (h.Status=''绝当'' or h.Status=''半处'') ';
//DateDiff("d",h.PawnEndDate,Now())>10';
Sql:=Sql+'and (d.Status='''' or d.Status=''半处'') ';
dqDeadDetail.SQL.Add(Sql);
//dqDeadDetail.ParamByName('Sta1').asstring:='绝当';
//dqDeadDetail.ParamByName('DateElapsed').asDateTime:=NowToTen;
//dqDeadDetail.ParamByName('Sta1').asstring:='半处';
//dqDeadDetail.ParamByName('Sta3').asstring:='解挂';
dqDeadDetail.Open;
end;
end;
procedure TfrmHandle.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 TfrmHandle.dgHandleCellClick(Column: TColumn);
var
PreMoney:Double;
begin
PawnCode:=dgHandle.Columns[0].Field.AsString;
LineNum:=dgHandle.Columns[1].Field.AsInteger;
txtName.Text:=dgHandle.Columns[2].Field.AsString;
txtCategory.Text:=dgHandle.Columns[3].Field.AsString;
txtSpec.Text :=dgHandle.Columns[4].Field.AsString;
PreMoney:=dgHandle.Columns[8].Field.AsFloat;
txtPreMoney.Text :=format('%8.1f',[PreMoney]);
PawnNumber:=dgHandle.Columns[5].Field.AsInteger;
txtNumber.Text:=inttostr(PawnNumber);
txtHandleNum.SetFocus;
end;
procedure TfrmHandle.txtBeginMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
txtEndMoney.SetFocus ;
end;
procedure TfrmHandle.txtEndMoneyKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_RETURN then
txtYear.SetFocus ;
end;
{procedure TfrmHandle.txtYearKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtYear.Text =''then
txtYear.Text := IntToStr(Year);
if (length(txtYear.text)=4) then {or
(length(txtPawnBeginYear.text)=2)then
txtMonth.SetFocus ;
end;}
{procedure TfrmHandle.txtYearExit(Sender: TObject);
var
InputYear : Integer;
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtYear.Text =''then
txtYear.Text :=IntToStr(Year);
InputYear:=strtoint(txtYear.text);
case InputYear of
0:txtYear.Text :='2000';
1..9:txtYear.Text :='190'+inttostr(InputYear);
10..64:txtYear.Text :='19'+inttostr(InputYear);
65..99:txtYear.Text :='19'+txtYear.Text ;
end;
end;}
{procedure TfrmHandle.txtMonthKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
InputMonth:integer;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtMonth.Text ='' then
txtMonth.Text:=IntToStr(Month);
if (length(txtMonth.text)=2)then
begin
InputMonth:=strtoint(txtMonth.Text);
if (InputMonth>12)or(InputMonth<1) then
begin
txtMonth.Text :=IntToStr(Month);
end;
txtDay.SetFocus ;
end;
end;
procedure TfrmHandle.txtDayKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
var
Present: TDateTime;
Year, Month, Day: Word;
begin
Present:= Now;
DecodeDate(Present, Year, Month, Day);
if txtDay.Text =''then
txtDay.Text:=IntToStr(Day);
if length(txtDay.text)=2 then
begin
if (strtoint(txtDay.text)<1)or
(strtoint(txtDay.text)>31) then
begin
txtDay.Text :=IntToStr(Day);
end;
cmbCategory.SetFocus;
end;
end;}
procedure TfrmHandle.cmdCancelClick(Sender: TObject);
begin
ClearForm;
end;
procedure TfrmHandle.cmdQueryClick(Sender: TObject);
var
SearchDate:TDateTime;
DateMark:Boolean;
BeginMoneyMark,MoneyMark:Boolean;
Sql:string;
begin
BeginMoneyMark:=False;
MoneyMark:=False;
DateMark:=False;
Sql:='SELECT d.PawnTicketCode, d.PawnLineNum,d.PawnName, d.PawnCategory,';
Sql:=Sql+ 'd.PawnSpec, d.PawnNumber, d.AppriseValue, d.DiscountRate,';
Sql:=Sql+ 'd.PawnMoney, h.PawnEndDate FROM PawnDetail_Tbl AS d, ';
Sql:=Sql+ 'Stockpile_Tbl AS s INNER JOIN PawnHead_Tbl AS h ON h.PawnTicketCode=s.PawnCode ';
Sql:=Sql+ 'WHERE True and d.PawnTicketCode=h.PawnTicketCode ';
Sql:=Sql+ 'and (h.Status=''绝当'' or h.Status=''半处'') ';
Sql:=Sql+'and (d.Status='''' or d.Status=''半处'') ';
if txtYear.Text<>''then
begin
if txtMonth.Text<>''then
begin
if txtDay.Text<>''then
begin
SearchDate:=EncodeDate(txtYear.Value,txtMonth.Value,
txtDay.Value);
DateMark:=True;
Sql:=Sql+ 'and h.PawnEndDate>=:SearchDate ';
end
else
begin
{//必须输入日期
messagedlg(Msg.MsgDayInfo,mtWarning,[mbYes],0);
exit;}
//不判断日期
DateMark:=False;
end;
end
else
//不判断日期
DateMark:=False;
end
else
//不判断日期
DateMark:=False;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -