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

📄 empinfset.pas

📁 彩票销售系统
💻 PAS
字号:
unit empinfset;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGrids, StdCtrls, Buttons, DB, ADODB, ExtCtrls, ToolWin,
  ComCtrls,Printers;

type
  Temp_set_form = class(TForm)
    StatusBar1: TStatusBar;
    ToolBar1: TToolBar;
    Panel1: TPanel;
    DataSource1: TDataSource;
    empinf_qold: TADOQuery;
    BitBtn1: TBitBtn;
    editemp: TADOQuery;
    empinf_qoldFClientid: TIntegerField;
    empinf_qoldFClientNo: TStringField;
    empinf_qoldFclientName: TStringField;
    empinf_qoldFRadioButton: TStringField;
    empinf_qoldFVisible: TStringField;
    Panel2: TPanel;
    GroupBox1: TGroupBox;
    DBGrid1: TDBGrid;
    Splitter1: TSplitter;
    Panel3: TPanel;
    GroupBox2: TGroupBox;
    DBGrid2: TDBGrid;
    empinf_q: TADOTable;
    empinfentry: TADOTable;
    DataSource2: TDataSource;
    editempentry: TADOQuery;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    empinfentryFTEntryId: TAutoIncField;
    empinfentryFClientid: TIntegerField;
    empinfentryFTranType: TIntegerField;
    empinfentryFTranName: TStringField;
    empinfentryFQuitCorpus: TStringField;
    empinfentryFLossRatio: TBCDField;
    empinfentryFWriteBillWin: TBCDField;
    empinfentryFWriteBillLoss: TBCDField;
    BitBtn6: TBitBtn;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
    procedure DBGrid2MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BitBtn4Click(Sender: TObject);
    procedure BitBtn5Click(Sender: TObject);
    procedure DBGrid1MouseUp(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure BitBtn2Click(Sender: TObject);
    procedure BitBtn3Click(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure BitBtn6Click(Sender: TObject);
  private
    { Private declarations }
    procedure EnableEmp(Sender:TObject);
    procedure DisableEmp(Sender:TObject);
    procedure EnableQuit(Sender:TObject);
    procedure DisableQuit(Sender:TObject);
  public
    { Public declarations }
    Procedure OnMouseWheel(Var Msg :TMsg;var Handled:Boolean);
  end;

var
  emp_set_form: Temp_set_form;

implementation
  uses NumberManger;
{$R *.dfm}

procedure Temp_set_form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  action:=cafree;
end;

procedure Temp_set_form.FormShow(Sender: TObject);
begin
  empinf_q.Open;
  empinfentry.Open;
end;

procedure Temp_set_form.BitBtn1Click(Sender: TObject);
begin
  empinf_q.Close;
  close;
end;

procedure Temp_set_form.EnableEmp(Sender:TObject);
begin
  if application.MessageBox('是否启用该员工?','系统提示',mb_yesno+mb_iconquestion)=id_yes  then
  begin
    editemp.Close;
    editemp.SQL.Clear;
    editemp.SQL.Add('update T_Client set FVisible=1 where FClientid='''+floattostr(empinf_q.Fields[0].value)+'''');
    editemp.ExecSQL;
    editemp.Close;
    Application.MessageBox('员工已启用', '系统提示', 0 or MB_ICONINFORMATION);
    empinf_q.Close;empinf_q.open;
  end;
end;
procedure Temp_set_form.DisableEmp(Sender:TObject);
begin
  if application.MessageBox('是否禁用该员工?','系统提示',mb_yesno+mb_iconquestion)=id_yes  then
  begin
    editemp.Close;
    editemp.SQL.Clear;
    editemp.SQL.Add('update T_Client set FVisible=0 where FClientid='''+floattostr(empinf_q.Fields[0].value)+'''');
    editemp.ExecSQL;
    editemp.Close;
    Application.MessageBox('员工已禁用', '系统提示', 0 or MB_ICONINFORMATION);
    empinf_q.Close;empinf_q.open;
  end;
end;


procedure Temp_set_form.EnableQuit(Sender:TObject);
var
  editsql:string;
begin
  if application.MessageBox('是否启用退本?','系统提示',mb_yesno+mb_iconquestion)=id_yes  then
  begin
    editsql:='update T_ClientEntry set FQuitCorpus=1 where FClientid='''+floattostr(empinfentry.Fields[1].value)+'''';
    editsql:=editsql+' and FTranType='''+floattostr(empinfentry.Fields[2].value)+'''';
    editempentry.Close;
    editempentry.SQL.Clear;
    editempentry.SQL.Add(editsql);
    editempentry.ExecSQL;
    editempentry.Close;
    Application.MessageBox('已启用退本', '系统提示', 0 or MB_ICONINFORMATION);
    empinfentry.Close;empinfentry.open;

  end;
end;
procedure Temp_set_form.DisableQuit(Sender:TObject);
var
  editsql:string;

begin
  if application.MessageBox('是否禁用退本?','系统提示',mb_yesno+mb_iconquestion)=id_yes  then
  begin
    editsql:='update T_ClientEntry set FQuitCorpus=0 where FClientid='''+floattostr(empinfentry.Fields[1].value)+'''';
    editsql:=editsql+' and FTranType='''+floattostr(empinfentry.Fields[2].value)+'''';
    editempentry.Close;
    editempentry.SQL.Clear;
    editempentry.SQL.Add(editsql);
    editempentry.ExecSQL;
    editempentry.Close;
    Application.MessageBox('已禁用退本', '系统提示', 0 or MB_ICONINFORMATION);
    empinfentry.Close;empinfentry.open;
  end;
end;

procedure Temp_set_form.DBGrid2MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
   if empinfentry.Fields[4].value='未退本' then
  begin
    BitBtn4.Enabled:=true;bitbtn5.Enabled :=false;
  end
  else
  begin
    BitBtn4.Enabled:=false;bitbtn5.Enabled :=true;
  end;
end;

procedure Temp_set_form.BitBtn4Click(Sender: TObject);
begin
  EnableQuit(Sender);
end;

procedure Temp_set_form.BitBtn5Click(Sender: TObject);
begin
  DisableQuit(Sender);
end;

procedure Temp_set_form.DBGrid1MouseUp(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if empinf_q.Fields[4].value='未启用' then
  begin
    BitBtn2.Enabled:=true;bitbtn3.Enabled :=false;
  end
  else
  begin
    BitBtn2.Enabled:=false;bitbtn3.Enabled :=true;
  end;
end;

procedure Temp_set_form.BitBtn2Click(Sender: TObject);
begin
  EnableEmp(Sender);
end;

procedure Temp_set_form.BitBtn3Click(Sender: TObject);
begin
  DisableEmp(Sender);
end;

Procedure Temp_set_form.OnMouseWheel(Var Msg :TMsg;var Handled:Boolean);
begin
  if Msg.message = WM_MouseWheel then
  begin
    if Msg.wParam > 0 then
     begin
       if DBGrid1.Focused then
         DataSource1.DataSet.Prior;
       if DBGrid2.Focused then
         DataSource2.DataSet.Prior;
     end
    else
     begin
       if DBGrid1.Focused then
         DataSource1.DataSet.Next;
       if DBGrid2.Focused then
         DataSource2.DataSet.Next;
     end;
    Handled:= True;
  end;
end;

procedure Temp_set_form.FormCreate(Sender: TObject);
begin
  Application.OnMessage:=OnMouseWheel; // 截获鼠标滚动事件
end;

procedure Temp_set_form.BitBtn6Click(Sender: TObject);
const 
  LeftBlank=1;//定义页边距单位厘米
  RightBlank=1;
  TopBlank=2;
  BottomBlank=3;

var
  PointX,PointY,lx,ly:integer;
  PointScale,PrintStep:integer;
  s:string;
  x,y,y1:integer;
  i,j:integer;
  print_ti:boolean;
  comno:string;
begin
  print_ti:=false;
  //comno:='hl00';
  //获取当前打印机的分辨率
  PointX:=Trunc(GetDeviceCaps(Printer.Handle,LOGPIXELSX)/2.54);
  PointY:=Trunc(GetDeviceCaps(Printer.Handle,LOGPIXELSY)/2.54);
  //根据打印机和屏幕的分辨率计算出从屏幕转换到打印机的比例
  PointScale:=Trunc(GetDeviceCaps(Printer.Handle,LOGPIXELSX)/Screen.PixelsPerInch+0.5);
  j:=0;
  //横向打印
  for i:=0 to DBGrid1.FieldCount-1 do
  begin
    if DBGrid1.Columns[i].Visible then
    begin
      j:=j+1;
    end;
  end;
  if j<10 then
    printer.Orientation:=poPortrait
  else
    printer.Orientation:=poLandscape;
  //打印的字体和大小
  printer.Canvas.Font.Name:='宋体';
  printer.canvas.Font.Size:=14;
  //根据字体的大小确定每行的高度
  s:='有限公司';
  PrintStep:=printer.canvas.TextHeight(s)+26;
  //打印的起点位置
  x:=PointX*LeftBlank;
  y:=PointY*TopBlank;
  ly:=PointY*TopBlank+100;
  //DataSource1是DBGrid1所连接的数据源
  if ((DataSource2.DataSet).Active=true) and ((DataSource2.DataSet).RecordCount>0) then
  begin
     printer.BeginDoc;
    (DataSource2.DataSet).First;
    while not (DataSource2.DataSet).Eof do
    begin //打印DBGrid中的所有列
      for i:=0 to DBGrid2.FieldCount-1 do
      begin
        if DBGrid2.Columns[i].Visible then
        begin
        //假如所要打印的列超出了打印范围,则忽略该列
          if (x+DBGrid2.Columns.Items[i].Width*PointScale)<=(Printer.PageWidth-PointX*RightBlank)then
          begin //画表格线
            //**打印标题**//
            if y=PointY*TopBlank then
            begin
            if not print_ti then
            begin
              printer.Canvas.Font.Name:='宋体';
              printer.canvas.Font.Size:=18;
              comno:='                                  员工回水表 ' ;
              Printer.Canvas.TextOut(x+60,y-160,comno);
              printer.Canvas.Font.Name:='宋体';
              printer.canvas.Font.Size:=12;
              comno:='                          打印时间:'+DateToStr(Date);
              printer.Canvas.TextOut(x,y-20,comno);
              print_ti:=true;
              y:=y+100;
            end;
            end;
            printer.Canvas.Font.Color:=DBGrid2.Columns.Items[i].Font.Color; 
            Printer.Canvas.Rectangle(x,y-8,x+DBGrid2.Columns.Items[i].Width*PointScale,y+PrintStep);
            if y=ly then
            begin
              printer.Canvas.Font.Name:='宋体';
              printer.canvas.Font.Size:=14;
              Printer.Canvas.TextOut(x+8,y,DBGrid2.Columns[i].Title.Caption);
            end
          else
            begin
              printer.Canvas.Font.Name:='宋体';
              printer.canvas.Font.Size:=14;
              Printer.Canvas.TextOut(x+8,y,DBGrid2.Fields[i].asString);
            end;
          end;
          //计算下一列的横坐标
          x:=x+DBGrid2.Columns.Items[i].Width*PointScale;
        end;
      end;
      //if not (y=PointY*TopBlank) then (DataSource1.DataSet).next;
      if not (y=ly) then (DataSource2.DataSet).next;
      x:=PointX*LeftBlank;
      y:=y+PrintStep; //换页
      if (y+PrintStep)>(Printer.PageHeight-PointY*BottomBlank) then
      begin
        Printer.NewPage;
        y:=PointY*TopBlank;
        print_ti:=false;
      end;
    end;
    printer.EndDoc;
    Application.MessageBox('打印完成','打印',32);
    (DataSource2.DataSet).First;
   end ;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -