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

📄 sys300_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Sys300_01;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ComCtrls, ToolWin, ExtCtrls, Grids, DBGrids, StdCtrls, Menus, jpeg, Db,
  Wwdbigrd, Wwdbgrid, fr_Class,
  wwdbdatetimepicker, Buttons, ADODB, dxExEdtr, dxCntner, dxTL, dxDBCtrl,
  dxDBGrid, dxDBTLCl, dxGrClms, ActnList, wwfltdlg, wwDialog, Wwlocate,
  Wwintl;

type
  TSys300_01Form = class(TForm)
    Panel1: TPanel;
    Image1: TImage;
    dsSys300: TDataSource;
    lblUser: TLabel;
    cbUser: TComboBox;
    lblDate: TLabel;
    edtFromDate: TwwDBDateTimePicker;
    qrySys300: TADOQuery;
    qrySys500A: TADOQuery;
    CoolBar1: TCoolBar;
    ToolBar2: TToolBar;
    tlbFirst: TToolButton;
    tlbPrior: TToolButton;
    tlbNext: TToolButton;
    tlbLast: TToolButton;
    ToolButton1: TToolButton;
    tlbRefresh: TToolButton;
    tlbLocate: TToolButton;
    ToolButton5: TToolButton;
    tlbPrint: TToolButton;
    ToolButton6: TToolButton;
    tlbExit: TToolButton;
    PopupMenu1: TPopupMenu;
    mmiPrint: TMenuItem;
    mmiExport: TMenuItem;
    ActionList1: TActionList;
    ActFirst: TAction;
    ActPrior: TAction;
    ActNext: TAction;
    ActLast: TAction;
    ActDelete: TAction;
    ActRefresh: TAction;
    ActLocate: TAction;
    ActSearch: TAction;
    ActPrint: TAction;
    ActExport: TAction;
    ActExit: TAction;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    qrySys300S300_004: TDateTimeField;
    qrySys300S300_005: TStringField;
    qrySys300S500D_001: TStringField;
    qrySys300Program: TStringField;
    ScrollBox1: TScrollBox;
    dxDBGrid1: TdxDBGrid;
    dxDBGrid1S500D_001: TdxDBGridMaskColumn;
    dxDBGrid1Program: TdxDBGridLookupColumn;
    dxDBGrid1S300_004: TdxDBGridDateColumn;
    dxDBGrid1S300_005: TdxDBGridMaskColumn;
    qrySys300S500A_002: TWideStringField;
    dxDBGrid1S500A_002: TdxDBGridMaskColumn;
    edtToDate: TwwDBDateTimePicker;
    sbSearch: TSpeedButton;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ReportGetValue(const ParName: String;
      var ParValue: Variant);
    procedure cbUserChange(Sender: TObject);
    procedure ActFirstExecute(Sender: TObject);
    procedure ActPriorExecute(Sender: TObject);
    procedure ActNextExecute(Sender: TObject);
    procedure ActLastExecute(Sender: TObject);
    procedure ActDeleteExecute(Sender: TObject);
    procedure ActRefreshExecute(Sender: TObject);
    procedure ActLocateExecute(Sender: TObject);
    procedure ActSearchExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActExportExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure qrySys300AfterScroll(DataSet: TDataSet);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure dxDBGrid1BackgroundDrawEvent(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect);
    procedure sbSearchClick(Sender: TObject);
  private
    USENO:Integer;
    AReportName:String;
    procedure SetInterface;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Sys300_01Form: TSys300_01Form;

implementation

uses CommFun, SYSDATA;

{$R *.DFM}

procedure TSys300_01Form.SetInterface;
begin
  Font.Name:=AFontName;
  Image1.Picture.Bitmap.LoadFromResourceName(AImgHandle,'TOPTITL');
  Caption:=GetDBString('SYS30001001');  //上机日志明细

  ActFirst.Caption:=GetDBString('COM00005001');  //最前
  ActPrior.Caption:=GetDBString('COM00005002');  //上移
  ActNext.Caption:=GetDBString('COM00005003');  //下移
  ActLast.Caption:=GetDBString('COM00005004');  //最后
  ActRefresh.Caption:=GetDBString('COM00005010');  //刷新
  ActLocate.Caption:=GetDBString('COM00005011');  //查找
  ActSearch.Caption:=GetDBString('COM00005012');  //查询
  ActPrint.Caption:=GetDBString('COM00005013');  //打印
  ActExport.Caption:=GetDBString('COM00005014');  //导出数据
  ActExit.Caption:=GetDBString('COM00005015');  //退出

  ActDelete.Caption:=GetDBString('SYS30001006');  //清空

  lblUser.Caption:=GetDBString('SYS30001013');  //用户名称
  lblDate.Caption:=GetDBString('SYS30001014');  //操作日期
  sbSearch.Caption:=GetDBString('SYS30001015');  //确定
  qrySys300S500A_002.DisplayLabel:=GetDBString('SYS30001013');  //用户名称
  qrySys300S500D_001.DisplayLabel:=GetDBString('SYS30001017');  //程序编号
  qrySys300Program.DisplayLabel:=GetDBString('SYS30001018');  //程序名称
  qrySys300S300_004.DisplayLabel:=GetDBString('SYS30001019');  //操作日期
  qrySys300S300_005.DisplayLabel:=GetDBString('SYS30001020');  //操作说明
end;

procedure TSys300_01Form.FormCreate(Sender: TObject);
begin
  AProgramID:=copy(Name,1,6);
  AReportName:=copy(Name,1,6)+'.frf';

  cbUser.Items.Clear;
  qrySys500A.Open;
  cbUser.Items.Add(GetDBString('SYS30001021'));  //'所有用户'
  while not qrySys500A.Eof do
  begin
    cbUser.Items.Add(qrySys500A.FieldByName('S500A_002').AsString);
    qrySys500A.Next;
  end;
  cbUser.ItemIndex:=0;
  qrySys500A.Close;
  edtFromDate.Date:=Date;
  edtToDate.Date:=Date;

  sbSearch.Click;

  //设置界面信息
  SetInterface;
end;

procedure TSys300_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  qrySys300.Close;
  Action:=caFree;
end;

procedure TSys300_01Form.ReportGetValue(const ParName: String;
  var ParValue: Variant);
begin
  if ParName='USENM' then ParValue:=AUserName
  else if ParName='PRNDT' then ParValue:=GetDBString('COM00006006')  //列印日期
  else if ParName='PRNNM' then ParValue:=GetDBString('COM00006007')  //列印人員
  else if ParName='REPNM' then ParValue:=AReportTitle

  else if ParName='S500A_002' then ParValue:=qrySys300S500A_002.DisplayLabel  //用户名称
  else if ParName='S500D_001' then ParValue:=qrySys300S500D_001.DisplayLabel  //程序編號
  else if ParName='S500D_007' then ParValue:=qrySys300Program.DisplayLabel  //程序名称
  else if ParName='S300_004' then ParValue:=qrySys300S300_004.DisplayLabel  //操作日期
  else if ParName='S300_005' then ParValue:=qrySys300S300_005.DisplayLabel  //操作说明
end;

procedure TSys300_01Form.cbUserChange(Sender: TObject);
begin
  if not qrySys500A.Active then qrySys500A.Open;
  if qrySys500A.Locate('S500A_002',cbUser.Text,[]) then
    USENO:=qrySys500A.FieldByName('S500A_001').Value
  else
    USENO:=0;
end;

procedure TSys300_01Form.ActFirstExecute(Sender: TObject);
begin
//最前
  if qrySys300.IsEmpty then Exit;
  qrySys300.First;
  ActFirst.Enabled:=False;
  ActPrior.Enabled:=False;
  ActNext.Enabled:=True;
  ActLast.Enabled:=True;
end;

procedure TSys300_01Form.ActPriorExecute(Sender: TObject);
begin
//上移
  if qrySys300.IsEmpty then Exit;
  qrySys300.Prior;
  ActNext.Enabled:=not qrySys300.Eof;
  ActLast.Enabled:=not qrySys300.Eof;
  ActFirst.Enabled:=not qrySys300.Bof;
  ActPrior.Enabled:=not qrySys300.Bof;
end;

procedure TSys300_01Form.ActNextExecute(Sender: TObject);
begin
//下移
  if qrySys300.IsEmpty then Exit;
  qrySys300.Next;
  ActNext.Enabled:=not qrySys300.Eof;
  ActLast.Enabled:=not qrySys300.Eof;
  ActFirst.Enabled:=not qrySys300.Bof;
  ActPrior.Enabled:=not qrySys300.Bof;
end;

procedure TSys300_01Form.ActLastExecute(Sender: TObject);
begin
//最后
  if qrySys300.IsEmpty then Exit;
  qrySys300.Last;
  ActNext.Enabled:=False;
  ActLast.Enabled:=False;
  ActFirst.Enabled:=True;
  ActPrior.Enabled:=True;
end;

procedure TSys300_01Form.ActDeleteExecute(Sender: TObject);
begin
//清空
  if ShowDialog('UMS10000030')=IDNO then Exit;  //确定要清除表中的所有记录吗?
  try
    SYSDM.qryQuery.Close;
    SYSDM.qryQuery.SQL.Clear;
    SYSDM.qryQuery.SQL.Add('delete from SYS300');
    SYSDM.qryQuery.ExecSQL;
  except
    ShowMsg('UMS10000031');  //清空表失败,请稍侯再试
    Exit;
  end;
  sbSearch.Click;
end;

procedure TSys300_01Form.ActRefreshExecute(Sender: TObject);
begin
//刷新
  qrySys300.Close;
  qrySys300.Open;
end;

procedure TSys300_01Form.ActLocateExecute(Sender: TObject);
begin
//查找
  if qrySys300.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Exit;
  end;
  LocateDialog(dsSys300);
end;

procedure TSys300_01Form.ActSearchExecute(Sender: TObject);
begin
//查询
  FilterDialog(dsSys300);
end;

procedure TSys300_01Form.ActPrintExecute(Sender: TObject);
begin
//打印
  SelectReport(qrySys300,AProgramID,AReportName,ReportGetValue);
end;

procedure TSys300_01Form.ActExportExecute(Sender: TObject);
begin
//导出到Excel
  if qrySys300.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Exit;
  end;
  SaveToExcel(dxDBGrid1);
end;

procedure TSys300_01Form.ActExitExecute(Sender: TObject);
begin
//退出
  Close;
end;

procedure TSys300_01Form.qrySys300AfterScroll(DataSet: TDataSet);
begin
  ActNext.Enabled:=not qrySys300.Eof;
  ActLast.Enabled:=not qrySys300.Eof;
  ActFirst.Enabled:=not qrySys300.Bof;
  ActPrior.Enabled:=not qrySys300.Bof;
end;

procedure TSys300_01Form.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if Key=VK_F1 then
    HtmlHelp(Application.Handle, AHelpFile+'::/'+AProgramID+'.htm', $0000, nil);
end;

procedure TSys300_01Form.dxDBGrid1BackgroundDrawEvent(Sender: TObject;
  ACanvas: TCanvas; ARect: TRect);
var
  AText:string;
begin
  ARect.Left:=0;
  ARect.Top:=0;
  ACanvas.Brush.Color:=dxDBGrid1.GroupPanelColor;
  ACanvas.Font.Color:=dxDBGrid1.GroupPanelFontColor;
  //您可以把列标题拖放到此处使记录按此列进行分组
  if dxDBGrid1.GroupColumnCount=0 then AText:=' '+GetDBString('NOT10001012') else AText:='';
  Windows.FillRect(ACanvas.Handle, ARect, 0);
  DrawText(ACanvas.Handle, PChar(AText), Length(AText), ARect, DT_LEFT or DT_EXPANDTABS or DT_NOPREFIX or DT_SINGLELINE or DT_VCENTER);
end;

procedure TSys300_01Form.sbSearchClick(Sender: TObject);
var
  AFromDate,AToDate:String;
begin
//查詢
  AFromDate:=FormatDateTime('yyyy-mm-dd',edtFromDate.Date);
  AToDate:=FormatDateTime('yyyy-mm-dd',edtToDate.Date);
  qrySys300.Close;
  qrySys300.SQL.Clear;
  if USENO=0 then
  begin
    case ADatabase of  //0=Access,1=SQL Server
      0:qrySys300.SQL.Add('select S500A_002,S500D_001,S300_004,S300_005 from SYS300,SYS500D,SYS500A where S300_002=S500D_011 and S300_001=S500A_001 and format(S300_004,''yyyy-mm-dd'')>='+''''+AFromDate+''''+' and format(S300_004,''yyyy-mm-dd'')<='+''''+AToDate+'''');
      1:qrySys300.SQL.Add('select S500A_002,S500D_001,S300_004,S300_005 from SYS300,SYS500D,SYS500A where S300_002=S500D_011 and S300_001=S500A_001 and convert(char(10),getdate(),120)>='+''''+AFromDate+''''+' and convert(char(10),getdate(),120)<='+''''+AToDate+'''');
    end;
  end else
  begin
    case ADatabase of  //0=Access,1=SQL Server
      0:qrySys300.SQL.Add('select S500A_002,S500D_001,S300_004,S300_005 from SYS300,SYS500D,SYS500A where S300_002=S500D_011 and S300_001=S500A_001 and S300_001='+IntToStr(USENO)+' and format(S300_004,''yyyy-mm-dd'')>='+''''+AFromDate+''''+' and format(S300_004,''yyyy-mm-dd'')<='+''''+AToDate+'''');
      1:qrySys300.SQL.Add('select S500A_002,S500D_001,S300_004,S300_005 from SYS300,SYS500D,SYS500A where S300_002=S500D_011 and S300_001=S500A_001 and S300_001='+IntToStr(USENO)+' and convert(char(10),getdate(),120)>='+''''+AFromDate+''''+' and convert(char(10),getdate(),120)<='+''''+AToDate+'''');
    end;
  end;
  qrySys300.Open;
end;

initialization
  RegisterClass(TSys300_01Form);

finalization
  UnRegisterClass(TSys300_01Form);

end.

⌨️ 快捷键说明

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