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

📄 baseinput.pas

📁 产品信息系统!关于产品基础信息的系统!功能强大!
💻 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 + -