📄 pay150_03.pas.svn-base
字号:
unit Pay150_03;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, dxExEdtr, Buttons, StdCtrls, dxDBTLCl, dxGrClms, dxTL, dxDBCtrl,
dxDBGrid, dxCntner, DB, ADODB, dxDBTL;
type
TPay150_03Form = class(TForm)
Label1: TLabel;
bbtnOk: TBitBtn;
bbtnExit: TBitBtn;
sbFirst: TSpeedButton;
sbPrior: TSpeedButton;
sbLast: TSpeedButton;
sbNext: TSpeedButton;
dsCwa150: TDataSource;
qryPay150: TADOQuery;
ListBox1: TListBox;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure bbtnOkClick(Sender: TObject);
procedure bbtnExitClick(Sender: TObject);
procedure sbFirstClick(Sender: TObject);
procedure sbPriorClick(Sender: TObject);
procedure sbLastClick(Sender: TObject);
procedure sbNextClick(Sender: TObject);
procedure ListBox1DragDrop(Sender, Source: TObject; X, Y: Integer);
procedure ListBox1DragOver(Sender, Source: TObject; X, Y: Integer;
State: TDragState; var Accept: Boolean);
procedure ListBox1EndDrag(Sender, Target: TObject; X, Y: Integer);
private
ADropIndex:Integer;
procedure SetInterface;
{ Private declarations }
public
{ Public declarations }
end;
var
Pay150_03Form: TPay150_03Form;
implementation
uses CommFun, SYSDATA;
{$R *.dfm}
procedure TPay150_03Form.SetInterface;
begin
Font.Name:=AFontName;
Caption:=GetDBString('PAY15003001'); //排序
Label1.Caption:=GetDBString('PAY15003002'); //薪资项目排序是为了在计算薪资项目时设置项目的计算顺序。有些薪资项目是依据其他薪资项目数据来计算的,这时就必须先计算其他项目。例如:计算“薪资所得税”必须要先计算“应得工资”。
qryPay150.FieldByName('P150_002').DisplayLabel:=GetDBString('PAY15003003'); //项目编号
qryPay150.FieldByName('P150_003').DisplayLabel:=GetDBString('PAY15003004'); //项目名称
qryPay150.FieldByName('P150_004').DisplayLabel:=GetDBString('PAY15003005'); //项目类型
qryPay150.FieldByName('P150_005').DisplayLabel:=GetDBString('PAY15003006'); //计量单位
qryPay150.FieldByName('P150_006').DisplayLabel:=GetDBString('PAY15003007'); //计算公式
qryPay150.FieldByName('P150_007').DisplayLabel:=GetDBString('PAY15003008'); //计算顺序
qryPay150.FieldByName('P150_008').DisplayLabel:=GetDBString('PAY15003009'); //是否使用
bbtnOk.Caption:=GetDBString('PAY15003010'); //确定(&O)
bbtnExit.Caption:=GetDBString('PAY15003011'); //退出(&X)
sbFirst.Hint:=GetDBString('PAY15003012'); //移到第一条记录前面
sbPrior.Hint:=GetDBString('PAY15003013'); //移到上一条记录前面
sbLast.Hint:=GetDBString('PAY15003014'); //移到下一条记录后面
sbNext.Hint:=GetDBString('PAY15003015'); //移到最后一条记录后面
end;
procedure TPay150_03Form.FormCreate(Sender: TObject);
var
S:String;
begin
ListBox1.Clear;
qryPay150.Open;
while not qryPay150.Eof do
begin
S:='['+qryPay150.FieldByName('P150_002').AsString+'] '+qryPay150.FieldByName('P150_003').AsString;
ListBox1.Items.Add(S);
qryPay150.Next;
end;
ListBox1.ItemIndex:=0;
SetInterface;
end;
procedure TPay150_03Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
qryPay150.Close;
end;
procedure TPay150_03Form.bbtnOkClick(Sender: TObject);
var
I:Integer;
S:String;
begin
//确定(&O)
for I:=0 to ListBox1.Items.Count-1 do
begin
S:=ListBox1.Items[I];
S:=copy(S,2,pos(']',S)-2);
qryPay150.Locate('P150_002',S,[loCaseInsensitive]);
qryPay150.Edit;
qryPay150.FieldByName('P150_007').Value:=I+1;
qryPay150.Post;
end;
ModalResult:=1;
end;
procedure TPay150_03Form.bbtnExitClick(Sender: TObject);
begin
//退出(&X)
Close;
end;
procedure TPay150_03Form.sbFirstClick(Sender: TObject);
var
ACurIndex,ANewIndex:Integer;
begin
//最前
if ListBox1.Count=0 then Exit;
ACurIndex:=ListBox1.ItemIndex;
ANewIndex:=0;
ListBox1.Items.Move(ACurIndex,ANewIndex);
ListBox1.ItemIndex:=ANewIndex;
end;
procedure TPay150_03Form.sbPriorClick(Sender: TObject);
var
ACurIndex,ANewIndex:Integer;
begin
//上移
if ListBox1.Count=0 then Exit;
ACurIndex:=ListBox1.ItemIndex;
ANewIndex:=ListBox1.ItemIndex-1;
ListBox1.Items.Move(ACurIndex,ANewIndex);
ListBox1.ItemIndex:=ANewIndex;
end;
procedure TPay150_03Form.sbLastClick(Sender: TObject);
var
ACurIndex,ANewIndex:Integer;
begin
//最后
if ListBox1.Count=0 then Exit;
ACurIndex:=ListBox1.ItemIndex;
ANewIndex:=ListBox1.Count-1;
ListBox1.Items.Move(ACurIndex,ANewIndex);
ListBox1.ItemIndex:=ANewIndex;
end;
procedure TPay150_03Form.sbNextClick(Sender: TObject);
var
ACurIndex,ANewIndex:Integer;
begin
//下移
if ListBox1.Count=0 then Exit;
ACurIndex:=ListBox1.ItemIndex;
ANewIndex:=ListBox1.ItemIndex+1;
ListBox1.Items.Move(ACurIndex,ANewIndex);
ListBox1.ItemIndex:=ANewIndex;
end;
procedure TPay150_03Form.ListBox1DragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
ADropIndex:=ListBox1.ItemIndex;
end;
procedure TPay150_03Form.ListBox1DragOver(Sender, Source: TObject; X,
Y: Integer; State: TDragState; var Accept: Boolean);
var
Item:Integer;
begin
Item:=ListBox1.ItemAtPos(Point(X, Y), False);
Accept:=(Item >= 0) and (Item < ListBox1.Items.Count) and (not ListBox1.Selected[Item]);
end;
procedure TPay150_03Form.ListBox1EndDrag(Sender, Target: TObject; X,
Y: Integer);
var
ANewIndex:Integer;
begin
if ADropIndex=0 then Exit;
ANewIndex:=ListBox1.ItemAtPos(Point(X, Y), False);
ListBox1.Items.Move(ADropIndex,ANewIndex);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -