📄 baseinput.pas
字号:
unit BaseInput;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BaseInfoBase, wwDialog, wwidlg, DB, ADODB, ActnList, ComCtrls,
ToolWin, StdCtrls, Grids, DBGridEh, ExtCtrls, DBGridEhImpExp;
type
TfrmBaseInput = class(TfrmBaseInfoBase)
pnl1: TPanel;
pnl2: TPanel;
pnl3: TPanel;
DBGridEh2: TDBGridEh;
btnAuditDate: TButton;
btnCopyDate: TButton;
qry_cx: TADOQuery;
ds_cx: TDataSource;
lbl1: TLabel;
dtp1: TDateTimePicker;
procedure btnCopyDateClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure ToolButton2Click(Sender: TObject);
procedure DbGridEh2KeyPress(Sender: TObject; var Key: Char);
procedure btnAuditDateClick(Sender: TObject);
procedure DbGridEh2MouseDown(Sender: TObject; Button: TMouseButton;
Shift: TShiftState; X, Y: Integer);
private
{ Private declarations }
public
{ Public declarations }
function cx(sqlstr: string): Boolean; //查询函数,结果不为空返回True
function cx2(sqlstr: string): Boolean; //查询函数,结果不为空返回True
end;
var
frmBaseInput : TfrmBaseInput;
sqlstr : string; //动态查询用SQl语句变量
implementation
{$R *.dfm}
function TfrmBaseInput.cx(sqlstr: string): Boolean; //查询函数,结果不为空返回True
begin
with QIsUnique do
begin
close;
SQL.Clear;
SQL.Add(sqlstr);
Open;
Result := False;
if not IsEmpty then
Result := True;
end;
end;
function TfrmBaseInput.cx2(sqlstr: string): Boolean; //查询函数,结果不为空返回True
begin
with qry_cx do
begin
close;
SQL.Clear;
SQL.Add(sqlstr);
Open;
Result := False;
if not IsEmpty then
Result := True;
end;
end;
procedure TfrmBaseInput.btnCopyDateClick(Sender: TObject);
var
i : Integer;
ar : array of variant;
begin
inherited;
QBaseInfo.Refresh;
if QBaseInfo.State in [dsInsert, dsEdit] then
showmessage('请先保存后再复制记录')
else
begin
SetLength(ar, QBaseInfo.FieldCount);
//复制当前记录
for i := 0 to QBaseInfo.FieldCount - 1 do
ar[i] := QBaseInfo.Fields[i].Value;
QBaseInfo.Append;
//将复制的记录粘贴到新记录中
for i := 0 to QBaseInfo.FieldCount - 1 do
QBaseInfo.Fields[i].Value := ar[i];
QBaseInfo.Post;
QBaseInfo.Last;
QBaseInfo.Edit;
end
end;
procedure TfrmBaseInput.FormCreate(Sender: TObject);
//var
// i,j : Integer;
begin
inherited;
dtp1.Date:=StrToDate(FormatDateTime('yyyy-mm-dd', Date()));
tbtFind.visible := False;
{ for i:=0 to ComponentCount-1 do
begin
if (Components[i] is TDBGrid) then
begin
for j := 0 to (Components[i] as TDBGrid).Columns.Count - 1 do
begin
if j mod 2 = 0 then
(Components[i] as TDBGrid).Columns[j].Color := clMoneyGreen
else
(Components[i] as TDBGrid).Columns[j].Color := clWhite;
end;
end;
if (Components[i] is TDBGridEh) then
begin
for j := 0 to (Components[i] as TDBGridEh).Columns.Count - 1 do
begin
if j mod 2 = 0 then
(Components[i] as TDBGridEh).Columns[j].Color := clMoneyGreen
else
(Components[i] as TDBGridEh).Columns[j].Color := clWhite;
end;
end;
{ for i := 0 to DBGridEh2.Columns.Count - 1 do
begin
if i mod 2 = 0 then
DBGridEh2.Columns[i].Color := clMoneyGreen
else
DBGridEh2.Columns[i].Color := clWhite;
end;
}
end;
procedure TfrmBaseInput.ToolButton2Click(Sender: TObject);
begin
inherited;
SaveDialog1.DefaultExt := 'XLS';
SaveDialog1.Filter := '*.XLS|*.XLS';
if SaveDialog1.Execute then
begin
if SaveDialog1.FileName <> '' then
begin
SaveDBGridEhToExportFile(TDBGridEhExportAsXLS, DBGridEh2, SaveDialog1.FileName, True);
Application.MessageBox('Excel文件导出成功!', '成功', MB_OK);
end;
end;
end;
procedure TfrmBaseInput.DbGridEh2KeyPress(Sender: TObject; var Key: Char);
begin
inherited;
if QBaseInfo.State in [dsInsert, dsEdit] then
begin
//-----自动复制数据
if DBGridEh2.SelectedField.FieldName = 'fAudit' then
begin
btnCopyDate.Click;
QBaseInfo.Last;
QBaseInfo.Edit;
DBGridEh2.SelectedIndex := 0;
end;
//-----------
end;
end;
procedure TfrmBaseInput.btnAuditDateClick(Sender: TObject);
begin
inherited;
if QBaseInfo.State in [dsInsert, dsEdit] then
Application.MessageBox('请先将数据保存后再审核!', '信息提示', MB_OK)
else
begin
QBaseInfo.Requery();
if MessageDlg('确定审核吗?', mtConfirmation, [mbYes, mbNo], 0) = mrYes then
begin
while (not QBaseInfo.Eof) do
begin
QBaseInfo.Edit;
QBaseInfo.FieldbyName('faudit').asBoolean := True;
// QBaseInfo.Post;
QBaseInfo.Next;
end;
end;
QBaseInfo.Requery();
end;
end;
procedure TfrmBaseInput.DbGridEh2MouseDown(Sender: TObject;
Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
inherited;
if QBaseInfo.State in [dsInsert, dsEdit] then
begin
if DBGridEh2.SelectedField.FieldName = 'fDate' then
QBaseInfo.FieldbyName('fDate').AsDateTime := strtodate(FormatDateTime('yyyy-mm-dd', dtp1.Date));
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -