?? unit_userlog.pas
字號:
unit Unit_UserLog;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Grids, DBGrids, Db, DBTables, ExtCtrls, StdCtrls, ComCtrls, Buttons,
TFlatButtonUnit;
type
TDataCode = class
Code:string;
end;
TFrm_SetupUserLog = class(TForm)
Panel1: TPanel;
QueryOperateLog: TQuery;
DataSource1: TDataSource;
DBGrid1: TDBGrid;
Label1: TLabel;
ComboBoxJX: TComboBox;
Label2: TLabel;
EditGh: TEdit;
Panel2: TPanel;
Panel3: TPanel;
Label3: TLabel;
DateTimePicker1: TDateTimePicker;
Label4: TLabel;
DateTimePicker2: TDateTimePicker;
QueryJX: TQuery;
BitBtn1: TFlatButton;
BitBtn2: TFlatButton;
BitBtn3: TFlatButton;
Label5: TLabel;
Label6: TLabel;
DateTimePicker3: TDateTimePicker;
DateTimePicker4: TDateTimePicker;
Label7: TLabel;
Label8: TLabel;
procedure FormShow(Sender: TObject);
procedure BitBtn1Click(Sender: TObject);
procedure BitBtn3Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure BitBtn2Click(Sender: TObject);
procedure ComboBoxJXChange(Sender: TObject);
procedure FormDestroy(Sender: TObject);
procedure ComboBoxJXKeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker1KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker2KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker3KeyPress(Sender: TObject; var Key: Char);
procedure DateTimePicker4KeyPress(Sender: TObject; var Key: Char);
private
{ Private declarations }
sqlstr:String;
//記錄當前的
FCode:string;
P_jxdm,P_cityno :string;
// 創建拉框 pSpace 為真預先加入的一個值,其code為空
Procedure CreateComboBox(Combobox:TCombobox;pQuery:TDataSet;pCode,pCode1,pLabel:string;pSpace:string);
//釋放內存
Procedure FreeNode(Combobox:TCombobox);
//根據Code 得到索引號
Function GetCodeIndex(Combobox:TCombobox;pCode:string):integer;
//設置編輯框的灰和不灰Lflag為true,可編輯
procedure ProcSetPanel(Lflag:boolean);
public
{ Public declarations }
end;
var
Frm_SetupUserLog: TFrm_SetupUserLog;
implementation
Uses
Main,crypt,procedurep,Unit_UserLog_Rp;
{$R *.DFM}
procedure TFrm_SetupUserLog.FormShow(Sender: TObject);
begin
//***********禁止用Locate****************
{ComboboxJX.Items.Clear;
ComboboxJx.Items.Add('所有');
QueryJX.Open;
While Not QueryJX.Eof Do
Begin
ComboboxJX.Items.Add(QueryJx.FieldByName('Home_name').AsString);
QueryJX.Next;
End;
//當前到當前的用戶的局向,要不要加權限呢?對業務不是很熟悉
If QueryJX.Locate('Off_no_home',JX,[])=True Then
ComboboxJX.ItemIndex:=ComboboxJx.Items.IndexOf(QueryJx.FieldByName('Home_name').AsString)
Else
ComboboxJx.ItemIndex:=0; }
//建下拉框并定位
QueryJX.close;
QueryJX.Open;
CreateComboBox(ComboboxJx,QueryJX,'OFF_NO_HOME','CITYNO','HOME_NAME','所有');
//定位,奇怪的設計,局向是不唯一的?
ComboboxJX.ItemIndex:=GetCodeIndex(ComboboxJx,inttostr(JX)+'#'+PS_CityNo);
ComboBoxJXChange(nil);
DateTimePicker1.DateTime:=Date;
DateTimePicker2.DateTime:=Date;
DateTimePicker3.DateTime:=Date;
DateTimePicker4.DateTime:=Date;
//加上權限,和局向及城市控制
if JBDM<=2 then
begin
BitBtn1.Enabled :=true;
ComboBoxJX.Enabled :=true;
//BitBtn1Click(Nil);
end
else
begin
//BitBtn1.Enabled :=false;
ComboBoxJX.Enabled :=false;
//ProcSetPanel(false);
end;
end;
procedure TFrm_SetupUserLog.BitBtn1Click(Sender: TObject);
begin
//只是一個子查詢的問題,干嗎寫成這樣?
{QueryOperateLog.Close;
QueryOperateLog.SQL.Clear;
QueryOperateLog.SQL.Add('Select a.* From T_H_UserLog a,T_F_Manager b Where a.WK_NO=B.WK_NO ');
QueryOperateLog.SQL.Add('And Substr(BEGINTIME,1,10)>='''+FormatDateTime('YYYY-MM-DD',DateTimePicker1.Date)+''' And Substr(BEGINTIME,1,10)<='''+FormatDateTime('YYYY-MM-DD',DateTimePicker2.Date)+'''');
If QueryJX.Locate('Home_name',ComboboxJX.Text,[])=True Then
QueryOperateLog.SQL.Add(' And b.Off_no_home='+QueryJX.FieldByName('Off_no_home').AsString);
If Trim(EditGH.Text)<>'' Then
QueryOperateLog.SQL.Add(' And a.WK_NO='''+EditGH.Text+'''');
sqlstr:=QueryOperateLog.sql.text;
QueryOperateLog.Open;}
sqlstr :='Select * From T_H_UserLog Where OPID is not null';
//加上開始時間
sqlstr :=sqlstr+' and BEGINTIME>=to_date('
+#39+FormatDateTime('YYYY-MM-DD',DateTimePicker1.Date)+' 00:00:00'+#39
+','+#39+' yyyy-mm-dd hh24:mi:ss'+#39+')';
sqlstr :=sqlstr+' and BEGINTIME<=to_date('
+#39+FormatDateTime('YYYY-MM-DD',DateTimePicker2.Date)+' 23:59:59'+#39
+','+#39+' yyyy-mm-dd hh24:mi:ss'+#39+')';
//加上結束時間
sqlstr :=sqlstr+' and ENDTIME>=to_date('
+#39+FormatDateTime('YYYY-MM-DD',DateTimePicker3.Date)+' 00:00:00'+#39
+','+#39+' yyyy-mm-dd hh24:mi:ss'+#39+')';
sqlstr :=sqlstr+' and ENDTIME<=to_date('
+#39+FormatDateTime('YYYY-MM-DD',DateTimePicker4.Date)+' 23:59:59'+#39
+','+#39+' yyyy-mm-dd hh24:mi:ss'+#39+')';
//加上客戶經理
If Trim(EditGH.Text)<>'' Then
sqlstr :=sqlstr+' and WK_NO='+#39+EditGH.Text+#39;
//查找出來的人必須是為下拉的局向
if ComboboxJX.Text<>'所有' then
sqlstr :=sqlstr+' and WK_NO in (select WK_NO from T_F_Manager '+
' where OFF_NO_HOME='+#39+P_jxdm+#39+' and CITYNO='+#39+P_cityno+#39+')';
QueryOperateLog.sql.text :=sqlstr;
QueryOperateLog.Open;
end;
procedure TFrm_SetupUserLog.BitBtn3Click(Sender: TObject);
begin
Close;
end;
procedure TFrm_SetupUserLog.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
//crypt.UserEnter_Log(Caption,'瀏覽',0,Gh,'登入窗體');
Action := CaFree;
end;
procedure TFrm_SetupUserLog.BitBtn2Click(Sender: TObject);
begin
with TQuickReportczrz.Create(application) do
try
QRLabel2.Caption:='局向:'+ComboBoxJX.text;
QRLabel3.Caption:='工號:'+EditGh.text;
QRLabel4.Caption:='時間:'+DateToStr(DateTimePicker1.DateTime)+'-'+DateToStr(DateTimePicker2.DateTime);
QueryTmp.Close;
QueryTmp.sql.clear;
QueryTmp.sql.add(sqlstr);
QueryTmp.Open;
Preview;
finally
free;
end;
end;
procedure TFrm_SetupUserLog.CreateComboBox(Combobox: TCombobox;
pQuery: TDataSet; pCode,pCode1,pLabel: string; pSpace: string);
var Ldata:TDataCode;
begin
FreeNode(Combobox);
ComboBox.Clear;
if pSpace<>'' then
begin
//先加一個空值
Ldata:=TdataCode.Create;
Ldata.Code:='';
ComboBox.Items.AddObject(pSpace,Ldata);
end;
if not pQuery.Active then exit;
//從數據庫里取數據
pQuery.First;
while not pQuery.Eof do
begin
Ldata:=TdataCode.Create;
Ldata.Code:=trim(pQuery.FieldByName(pCode).AsString)
+'#'+trim(pQuery.FieldByName(pCode1).AsString);
ComboBox.Items.AddObject(trim(pQuery.FieldByName(pLabel).AsString),Ldata);
pQuery.Next;
end;
end;
procedure TFrm_SetupUserLog.FreeNode(Combobox: TCombobox);
var
i:integer;
Ldata:TDataCode;
begin
for i:=0 to ComboBox.Items.Count - 1 do
begin
Ldata:=TdataCode(ComboBox.Items.Objects[i]);
if Ldata <> nil then Ldata.Free;
end;
end;
procedure TFrm_SetupUserLog.ComboBoxJXChange(Sender: TObject);
var
li,lj :integer;
begin
FCode:=TDataCode(ComboBoxJX.Items.Objects[ComboBoxJX.ItemIndex]).Code;
li :=pos('#',FCode);
lj :=length(FCode);
P_jxdm :=copy(FCode,1,li-1);
P_cityno :=copy(FCode,li+1,lj-li);
end;
procedure TFrm_SetupUserLog.FormDestroy(Sender: TObject);
begin
FreeNode(ComboboxJX);
end;
function TFrm_SetupUserLog.GetCodeIndex(Combobox: TCombobox;
pCode: string): integer;
var
i:integer;
begin
result:=0;
for i:=0 to ComboBox.Items.Count - 1 do
begin
if (ComboBox.Items.Objects[i]<>nil) and (pCode = TDataCode(ComboBox.Items.Objects[i]).Code) then
begin
result:=i;
break;
end;
end;
end;
procedure TFrm_SetupUserLog.ComboBoxJXKeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
EditGh.SetFocus;
end;
procedure TFrm_SetupUserLog.DateTimePicker1KeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
DateTimePicker2.SetFocus;
end;
procedure TFrm_SetupUserLog.DateTimePicker2KeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
DateTimePicker3.SetFocus;
end;
procedure TFrm_SetupUserLog.DateTimePicker3KeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
DateTimePicker4.SetFocus;
end;
procedure TFrm_SetupUserLog.DateTimePicker4KeyPress(Sender: TObject;
var Key: Char);
begin
if key = #13 then
BitBtn1.SetFocus;
end;
procedure TFrm_SetupUserLog.ProcSetPanel(Lflag: boolean);
var
li:integer;
begin
for li:=1 to Frm_SetupUserLog.ComponentCount -1 do
begin
if Frm_SetupUserLog.Components[li] is TComboBox then
TComboBox(Frm_SetupUserLog.Components[li]).enabled :=Lflag;
if Frm_SetupUserLog.Components[li] is TDateTimePicker then
TDateTimePicker(Frm_SetupUserLog.Components[li]).enabled :=Lflag;
if Frm_SetupUserLog.Components[li] is TEdit then
TEdit(Frm_SetupUserLog.Components[li]).enabled :=Lflag;
end;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -