📄 sys300_01.pas.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 + -