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

📄 baseinfoedit.pas

📁 进销存·完整的·有数据库的·非常完整·只得参考
💻 PAS
字号:
unit BaseInfoEdit;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  EditForm, StdCtrls, Buttons, dxCntner, dxEditor, dxEdLib, dxDBELib,
  dxExEdtr, DBData, dxDBTL, db, Variants, KsSkinButtons, KsSkinForms,
  KsSkinLabels, ADODB, se_controls, KsSkinSpeedButtons;

type
  TfrmBaseInfoEdit = class(TfrmEditForm)
    bbOk: TSeSkinButton;
    bbNo: TSeSkinButton;
    lblName1: TSeSkinLabel;
    edt1: TdxDBEdit;
    lblName2: TSeSkinLabel;
    edt2: TdxDBEdit;
    lblSelect1: TSeSkinLabel;
    cbx1: TdxDBPickEdit;
    edt3: TdxDBEdit;
    bbAdd: TSeSkinButton;
    procedure bbNoClick(Sender: TObject);
    procedure bbOkClick(Sender: TObject);
    procedure bbAddClick(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    bReturn: Boolean;
    treeMain: TdxDBTreeList;
    sCbxStr: string;
    lMode: Integer;
    procedure SetCbx;
    procedure MainShow;
    procedure LoadData;
  public
    { Public declarations }
  end;

function BaseInfoEditShow(tree1Main: TdxDBTreeList; s1CbxStr, s1Caption: string;
  l1Mode: Integer): Boolean;
implementation

uses BaseInfo, SysPublic;

{$R *.DFM}

function BaseInfoEditShow(tree1Main: TdxDBTreeList; s1CbxStr, s1Caption: string;
  l1Mode: Integer): Boolean;
var
  frmBaseInfoEdit: TfrmBaseInfoEdit;
begin
  frmBaseInfoEdit := TfrmBaseInfoEdit.Create(Application);
  with frmBaseInfoEdit do
  begin
    treeMain := tree1Main;
    sCbxStr := s1CbxStr;
    Caption := s1Caption + '编辑';
    lMode := l1Mode;
    MainShow;
    Result := bReturn;
    Free;
  end;
end;

procedure TfrmBaseInfoEdit.MainShow;
begin
  DataSet := treeMain.DataSource.DataSet;
  LoadData;
  ShowModal;
end;

procedure TfrmBaseInfoEdit.LoadData;
begin
  lblName1.Visible := false;
  edt1.Visible := false;
  lblName2.Visible := false;
  edt2.Visible := false;
  lblSelect1.Visible := false;
  cbx1.Visible := false;
  edt3.Visible := false;
  bReturn := false;
  if treeMain.ColumnCount >= 1 then
  begin
    lblName1.Caption := treeMain.Columns[0].Caption + ':';
    edt1.DataField := treeMain.Columns[0].FieldName;
    lblName1.Visible := true;
    edt1.Visible := true;
  end;
  if (treeMain.ColumnCount = 2) and (sCbxStr <> '') then
  begin
    lblSelect1.Caption := treeMain.Columns[1].Caption + ':';
    cbx1.DataField := treeMain.Columns[1].FieldName;
    SetCbx;
    lblSelect1.Visible := true;
    cbx1.Visible := true;
  end
  else
    if (treeMain.ColumnCount >= 2) then
    begin
      lblName2.Caption := treeMain.Columns[1].Caption + ':';
      edt2.DataField := treeMain.Columns[1].FieldName;
      lblName2.Visible := true;
      edt2.Visible := true;
    end;
  if (treeMain.ColumnCount = 3) and (sCbxStr <> '') then
  begin
    lblSelect1.Caption := treeMain.Columns[2].Caption + ':';
    cbx1.DataField := treeMain.Columns[2].FieldName;
    SetCbx;
    lblSelect1.Visible := true;
    cbx1.Visible := true;
  end
  else
    if (treeMain.ColumnCount >= 3) then
    begin
      lblSelect1.Caption := treeMain.Columns[2].Caption + ':';
      edt3.DataField := treeMain.Columns[2].FieldName;
      SetCbx;
      lblSelect1.Visible := true;
      edt3.Visible := true;
    end;

  if treeMain.ColumnCount = 1 then
    Height := edt3.Top + 30
  else
    if treeMain.ColumnCount = 2 then
      Height := edt3.Top + edt3.Height + 30
    else
      if treeMain.ColumnCount = 3 then
        Height := edt3.Top + edt3.Height + 40;

end;

procedure TfrmBaseInfoEdit.SetCbx;
var
  s1, s2, s3: string;
begin
  if sCbxStr <> '' then
  begin
    s1 := sCbxStr + ',';
    while pos(',', s1) <> 0 do
    begin
      s2 := copy(s1, 0, pos(',', s1) - 1);
      s1 := copy(s1, pos(',', s1) + 1, Length(s1));
      if s2 <> '' then
      begin
        if s3 <> '' then
          s3 := s3 + #13 + s2
        else
          s3 := s2;
      end;
    end;
    cbx1.Items.Text := s3;
  end;
end;

procedure TfrmBaseInfoEdit.bbNoClick(Sender: TObject);
begin
  inherited;
  Close;
end;

procedure TfrmBaseInfoEdit.bbOkClick(Sender: TObject);
begin
  inherited;
  if not CheckEditEmpty(1, self, [lblName1.Name], [edt1.Name]) then Exit;
  DataSet.FieldByName('Mode').AsInteger := lMode;
  bReturn := true;
  Close;
end;

procedure TfrmBaseInfoEdit.bbAddClick(Sender: TObject);
var
  FParentValue: Variant;
begin
  inherited;
  if not CheckEditEmpty(1, self, [lblName1.Name], [edt1.Name]) then Exit;
  with DataSet do
  begin
    Edit;
    FieldByName('Mode').AsInteger := lMode;
    Post;
    SaveDataSet(TAdoDataSet(DataSet), False);
    if FieldByName('TreeParent').IsNull then
      FParentValue := Null
    else
      FParentValue := FieldByName('TreeParent').Value;
    Last;
    Insert;
    FieldByName('TreeParent').Value := FParentValue;
  end;
end;

procedure TfrmBaseInfoEdit.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  if (bReturn = False) and (DataSet.State in [dsInsert]) and
    not CheckEditEmpty(0, self, [lblName1.Name], [edt1.Name]) then
  begin
    if MsgBox('你没有保存数据,确定要退出吗?',
      '提示', MB_OKCANCEL) <> IDOK then
      Action := caNone;
  end;
end;

procedure TfrmBaseInfoEdit.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  case KEY of
    VK_ESCAPE: bbNoClick(nil);
    VK_RETURN: bbOkClick(nil);
  end;
end;

end.

⌨️ 快捷键说明

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