📄 cwa150_03.pas.svn-base
字号:
unit Cwa150_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
TCwa150_03Form = class(TForm)
Label1: TLabel;
bbtnOk: TBitBtn;
bbtnExit: TBitBtn;
sbFirst: TSpeedButton;
sbPrior: TSpeedButton;
sbLast: TSpeedButton;
sbNext: TSpeedButton;
dsCwa150: TDataSource;
qryCwa150: 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
Cwa150_03Form: TCwa150_03Form;
implementation
uses CommFun, SYSDATA;
{$R *.dfm}
procedure TCwa150_03Form.SetInterface;
begin
Font.Name:=AFontName;
Caption:=GetDBString('CWA15003001'); //排序
Label1.Caption:=GetDBString('CWA15003002'); //考勤项目排序是为了在计算考勤项目时设置项目的计算顺序。有些考勤项目是依据其他考勤项目数据来计算的,这时就必须先计算其他项目。 例如:计算“年请假时数”必须要先计算“月请假时数”。
qryCwa150.FieldByName('C150_002').DisplayLabel:=GetDBString('CWA15003003'); //项目编号
qryCwa150.FieldByName('C150_003').DisplayLabel:=GetDBString('CWA15003004'); //项目名称
qryCwa150.FieldByName('C150_004').DisplayLabel:=GetDBString('CWA15003005'); //项目类型
qryCwa150.FieldByName('C150_005').DisplayLabel:=GetDBString('CWA15003006'); //计量单位
qryCwa150.FieldByName('C150_006').DisplayLabel:=GetDBString('CWA15003007'); //计算公式
qryCwa150.FieldByName('C150_007').DisplayLabel:=GetDBString('CWA15003008'); //计算顺序
qryCwa150.FieldByName('C150_008').DisplayLabel:=GetDBString('CWA15003009'); //是否使用
bbtnOk.Caption:=GetDBString('CWA15003010'); //确定(&O)
bbtnExit.Caption:=GetDBString('CWA15003011'); //退出(&X)
sbFirst.Hint:=GetDBString('CWA15003012'); //移到第一条记录前面
sbPrior.Hint:=GetDBString('CWA15003013'); //移到上一条记录前面
sbLast.Hint:=GetDBString('CWA15003014'); //移到下一条记录后面
sbNext.Hint:=GetDBString('CWA15003015'); //移到最后一条记录后面
end;
procedure TCwa150_03Form.FormCreate(Sender: TObject);
var
S:String;
begin
ListBox1.Clear;
qryCwa150.Open;
while not qryCwa150.Eof do
begin
S:='['+qryCwa150.FieldByName('C150_002').AsString+'] '+qryCwa150.FieldByName('C150_003').AsString;
ListBox1.Items.Add(S);
qryCwa150.Next;
end;
ListBox1.ItemIndex:=0;
SetInterface;
end;
procedure TCwa150_03Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
qryCwa150.Close;
end;
procedure TCwa150_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);
qryCwa150.Locate('C150_002',S,[loCaseInsensitive]);
qryCwa150.Edit;
qryCwa150.FieldByName('C150_007').Value:=I+1;
qryCwa150.Post;
end;
ModalResult:=1;
end;
procedure TCwa150_03Form.bbtnExitClick(Sender: TObject);
begin
//退出(&X)
Close;
end;
procedure TCwa150_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 TCwa150_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 TCwa150_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 TCwa150_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 TCwa150_03Form.ListBox1DragDrop(Sender, Source: TObject; X,
Y: Integer);
begin
ADropIndex:=ListBox1.ItemIndex;
end;
procedure TCwa150_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 TCwa150_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 + -