⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 pay150_03.pas.svn-base

📁 一个用Delphi开发的ERP软件
💻 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 + -