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

📄 ufrm_programmaintain.pas

📁 完整的进销存系统。 设计文件及完整的源代码。 Delphi6.0
💻 PAS
字号:
{
************************************
Program name:mpss_program
Author      :Guo xuliang
Purpose     :程序資料維護
Date        :2003/05/09
************************************
程序資料單頭維護(master)
}
unit ufrm_programmaintain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ufrm_level4_2, dxExEdtr, DB, DBTables, ImgList, dxCntner, dxTL,
  dxDBCtrl, dxDBGrid, StdCtrls, ExtCtrls, ComCtrls, ToolWin, DBCtrls, Mask,
  dxEditor, dxEdLib, dxDBELib, Menus;

type
  Tfrm_program_maintain = class(Tfrm_level4_2)
    dbc_zb01: TdxDBGridColumn;
    dbc_zb02: TdxDBGridColumn;
    dbc_zb03: TdxDBGridColumn;
    dbc_d_sn: TdxDBGridColumn;
    Label1: TLabel;
    Label3: TLabel;
    Label6: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    acti: TDBText;
    Label4: TLabel;
    za01: TDBEdit;
    za03: TDBEdit;
    za04: TDBEdit;
    za02: TdxDBButtonEdit;
    za05: TDBRadioGroup;
    lb_zb02_desc: TLabel;
    procedure qy_masterAfterScroll(DataSet: TDataSet);
    procedure za02ButtonClick(Sender: TObject; AbsoluteIndex: Integer);
    procedure qy_masterNewRecord(DataSet: TDataSet);
  private
    { Private declarations }
  protected
    procedure set_Focus;        override;  //設置焦點
    procedure chg_canwrite;     override;  //設置關鍵字為可寫
    procedure chg_Readonly;     override;  //設置關鍵字為只讀
    function  chk_save:boolean; override;  //保存前的檢查
    function  chk_conf:boolean; override;  //確認前的檢查
    procedure call_detail;      override;  //調用單身維護
    //===================================================
    function  chk_za01:boolean;  //檢查序號是否有效
    function  chk_za02:boolean;  //檢查父階是否有效
    function  next_za01:integer;  //生成下一個序號
  public
    { Public declarations }
  end;

var
  frm_program_maintain: Tfrm_program_maintain;

implementation

uses udm,uglobal_var, ufrm_programmaintain_d,uglobal_fun,ufrm_program_select;

{$R *.dfm}

procedure Tfrm_program_maintain.call_detail;
begin
  inherited;
  Application.CreateForm(Tfrm_programmaintain_d, frm_programmaintain_d);

  frm_programmaintain_d.ShowModal;

  try
    frm_programmaintain_d.Free;
  except
    ;
  end;
end;

procedure Tfrm_program_maintain.chg_canwrite;
begin
  inherited;
  za01.Enabled:=true;
  za03.Enabled:=true;
end;

procedure Tfrm_program_maintain.chg_Readonly;
begin
  inherited;
  za01.Enabled:=false;
  za03.Enabled:=false;
end;

function Tfrm_program_maintain.chk_conf: boolean;
begin
   result:=true;
   if TRIM(qy_master.FieldByName('ZA04').AsString)='' then
    begin
      u_error:='程序說明不能為空';
      result:=false;
    end;
end;

function Tfrm_program_maintain.chk_save: boolean;
begin
  result:=true;
  //判斷序號和父階段是否有效
  if not self.chk_za01 then
    begin
      //uglobal_fun.cl_showmsg(u_error);
      result:=false;
      exit;
    end;
  if not self.chk_za02 then
    begin
      //uglobal_fun.cl_showmsg(u_error);
      result:=false;
      exit; 
    end;

end;

function Tfrm_program_maintain.chk_za01: boolean;
begin
  result:=true;
  if TRIM(qy_master.FieldByName('ZA01').AsString)='' then
    begin
      u_error:='程序序號不能為空';
      result:=false;
      exit;
    end;
  if qy_master.State=dsInsert then
    begin
      with dm do
        begin
          g_sqlstr:='SELECT ZA01 FROM ZA_FILE WHERE ZA01='''+
            qy_master.fieldbyname('ZA01').AsString+'''';
          pub1.Close;
          pub1.sql.Clear;
          pub1.sql.Add(g_sqlstr);
          pub1.Open;
          if not (pub1.Bof and pub1.Eof ) then
            begin
              u_error:='序號已經存在';
              result:=false;
              pub1.Close;
              exit;
            end;
          pub1.Close;
        end;
    end;
end;

function Tfrm_program_maintain.chk_za02: boolean;
begin
result:=true;
  if trim(qy_master.fieldbyname('ZA02').AsString)='' then
    begin
      u_error:='父階不能為空';
      result:=false;
      exit;
    end;
  if qy_master.FieldByName('ZA02').AsString='0' then exit;
  with dm do
    begin
      g_sqlstr:='SELECT ZA01 FROM ZA_FILE WHERE ZA01='''+
        qy_master.fieldbyname('ZA02').AsString+'''';
      pub1.close;
      pub1.sql.Clear;
      pub1.SQL.Add(g_sqlstr);
      pub1.Open;
      if pub1.Bof and pub1.Eof then
        begin
          u_error:='父階不存在';
          result:=false;
          exit;
        end;
    end;
end;

function Tfrm_program_maintain.next_za01: integer;
begin
  result:=1;
  with dm.pub1 do
    begin
      g_sqlstr:='SELECT MAX(ZA01) FROM ZA_FILE';
      close;
      sql.Clear;
      sql.Add(g_sqlstr);
      open;
      result:=fields[0].AsInteger+1;
    end;
end;

procedure Tfrm_program_maintain.qy_masterAfterScroll(DataSet: TDataSet);
var l_desc:string;
begin
  inherited;
  with dm do
    begin
      g_sqlstr:='SELECT ZA04 FROM ZA_FILE WHERE ZA01='''+
                 qy_master.fieldbyname('ZA02').Asstring+'''';
      pub1.close;
      pub1.sql.clear;
      pub1.sql.add(g_sqlstr);
      pub1.open;
      l_desc:=pub1.fieldbyname('ZA04').Asstring;
      //if l_desc='' then l_desc:='Root';
      pub1.close;
    end;
  lb_zb02_desc.Caption:=l_desc;
end;

procedure Tfrm_program_maintain.set_Focus;
begin
  inherited;
  if za03.Enabled then
     za03.SetFocus
  else
     za02.SetFocus;
end;

procedure Tfrm_program_maintain.za02ButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
begin
  inherited;
  //to do
 Application.CreateForm(Tfrm_program_select,frm_program_select);
 frm_program_select.init('','2');
 if frm_program_select.showmodal=mrok then
   begin
     qy_master.FieldByName('ZA02').AsString:=frm_program_select.za_file.fieldbyname('ZA01').AsString;
     lb_zb02_desc.Caption:=frm_program_select.za_file.fieldbyname('ZA04').AsString;
   end;
 try
   frm_program_select.Release;
 except
   ;
 end;
end;

procedure Tfrm_program_maintain.qy_masterNewRecord(DataSet: TDataSet);
begin
  inherited;
  qy_master.FieldByName('ZA01').AsInteger:=next_za01;
  qy_master.FieldByName('ZA05').AsString:='1'; 
end;

end.

⌨️ 快捷键说明

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