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

📄 unit1.pas

📁 delphi控件的使用
💻 PAS
字号:
unit Unit1;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Grids, WzGrid, StdCtrls, DBGrids, StringGridPro, Db, DBTables, ExtCtrls,
  ComCtrls, ToolWin;

type
  TForm1 = class(TForm)
    Database1: TDatabase;
    Query1: TQuery;
    ScrollBox1: TScrollBox;
    ToolBar1: TToolBar;
    ToolButton1: TToolButton;
    ToolButton2: TToolButton;
    ToolButton3: TToolButton;
    ToolButton4: TToolButton;
    ToolButton5: TToolButton;
    StatusBar1: TStatusBar;
    Bevel1: TBevel;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Edit3: TEdit;
    Edit4: TEdit;
    WzGrid1: TWzGrid;
    procedure WzGrid1GoNext(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure WzGrid1SetData(Sender: TObject; OrgIndex, Row: Integer;
      var value: String);
    procedure Edit1Exit(Sender: TObject);
    procedure Edit2Enter(Sender: TObject);
    procedure WzGrid1ColExit(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    procedure DataShow;
    procedure DataSave;
    function  ErrorCheck(Sender : TObject) : Boolean;
    function GetFldStr(FldName : String) : String;
  end;

var
  Form1: TForm1;

implementation

{$R *.DFM}

procedure TForm1.WzGrid1GoNext(Sender: TObject);
begin
  DataSave;
end;

procedure TForm1.DataSave;
var sqlstr : string;
begin
  with WzGrid1 do begin
    sqlstr := 'insert into wz_outmoney values (' + Cells[1,1]+','''+
    Cells[2,1]+''','+Cells[3,1]+',16.2'+')';
  end;

  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add(sqlstr);
  Query1.Prepare;
  Query1.ExecSQL;

  Query1.SQL.Clear;
  Query1.SQL.Add('Commit');
  Query1.Prepare;
  Query1.ExecSQL;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
//
end;

procedure TForm1.FormShow(Sender: TObject);
begin
  DataShow;
end;

procedure TForm1.WzGrid1SetData(Sender: TObject; OrgIndex, Row: Integer;
  var value: String);
begin
//ShowMessage('abc');
  case OrgIndex of
  0 : Value := Edit2.Text;
  1 : value := Edit3.Text;
  2 : value := Edit4.Text;
  end;
end;

procedure TForm1.Edit1Exit(Sender: TObject);
var sqlstr : string;
    i : integer;
begin
{  sqlstr := 'select flowno,recordno,recorder,recorddate, comment From wz_outmoney where flowno = ''' + Edit1.Text +'''';
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add(sqlstr);
  Query1.Prepare;
  Query1.open;
  Query1.first;
  Edit2.Text := Query1.fieldByName('recordno').asstring;
  Edit3.Text := Query1.fieldByName('recorder').asstring;
  Edit4.Text := Query1.fieldByName('recorddate').asstring;}
end;

procedure TForm1.Edit2Enter(Sender: TObject);
begin
  ErrorCheck(Sender);
end;

function  TForm1.ErrorCheck(Sender: TObject) : Boolean;
var
  List : TList;
  i,n  : integer;
  s    : string;
begin
  try
{    if Sender = BtnFind then MsgBox.Panels[1].Text := NL;
    MsgBox.Panels[2].Text := ActiveControl.Hint;}
    s := '';
    List := TList.Create;
    SCrollBox1.GetTabOrderList(List);
    if Sender = nil then n := List.Count else n := List.IndexOf( Sender );

    for i := 0 to n-1 do begin
      case i of
//      0 : if not FindAname then s := '找不到该编码';
      1 : begin
{           if Eymd.DateError then s := Eymd.errormsg;
            if  ( s = NL )
            and ( SetLongDate(Eymd.Text) <= SetLongDate(q_ymd) ) then
              s := '不能输入上次清算日以前的日期';}
          end;
      end;

      Result := s = '';
      if not Result then begin
        ActiveControl := TWinControl( List.Items[i] );
//      err([s]);
        Abort;
      end;
    end;
  finally
    List.Free;
  end;
end;

procedure TForm1.DataShow;
var sqlstr : string;
    i : integer;
begin
  sqlstr := 'select flowno, recordno,classcode,occurmoney,membercode, ' +
    'recorddate,comment  from wz_outmoney order by flowno,recordno';
  i := 1;
  with WzGrid1, Query1 do begin
    Close;
    SQL.Clear;
    SQL.Add(sqlstr);
    Prepare;
    open;
    first;
    Edit1.Text := Fields[0].AsString;
    Edit2.Text := Fields[5].AsString;
    Edit3.Text := Fields[6].AsString;

    while not Eof do begin
      Cells[1,i] := Fields[1].AsString;
      Cells[2,i] := Fields[2].AsString;
//    Cells[3,i] := Fields[3].AsString;
      Cells[4,i] := Fields[3].AsString;
      Cells[5,i] := Fields[6].AsString;
      Inc(i);
      if (i >= RowCount) then begin
        Close;
        break;
      end;
      next;
    end;
  end;
end;

procedure TForm1.WzGrid1ColExit(Sender: TObject);
begin
//
  with WzGrid1 do begin
    case SelectedIndex of
    0 : begin
          Cells[Col+1,Row] := GetFldStr(Cells[Col,Row]);
        end;
//  2 : ShowMessage(Cells[Col,Row]);
//  4 : ShowMessage(Cells[Col,Row]);
    end;
  end;
end;

function TForm1.GetFldStr(FldName : String) : String;
var SqlStr : String;
begin
  SqlStr := 'Select ClassName From wz_Class Where ClassCode = '''+ FldName + '''';
  Query1.Close;
  Query1.SQL.Clear;
  Query1.SQL.Add(sqlstr);
  Query1.Prepare;
  Query1.Open;
  Result := Query1.FieldByName('ClassName').AsString;
end;

end.

⌨️ 快捷键说明

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