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

📄 gl_enter_gain_d.pas

📁 一个MRPII系统源代码版本
💻 PAS
字号:
unit Gl_Enter_Gain_D;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Detail, Db, AdODB, ExtCtrls, StdCtrls, ExtEdit, Mask, linkedit;

Type
  TFrm_Gl_Enter_Gain_D = Class(TFrm_Base_Detail)
    Label1: TLabel;
    edt_ProjectCode: TEdit;
    Label8: TLabel;
    cmb_issum: TComboBox;
    Label2: TLabel;
    edt_ProjectName: TEdit;
    Label4: TLabel;
    edt_lineno: TEdit;
    Label3: TLabel;
    edt_MonthSum: TEdit;
    Label5: TLabel;
    edt_Yearsum: TEdit;
    procedure edt_linenoExit(Sender: TObject);
    procedure btn_okClick(Sender: TObject);
  private
    { Private declarations }
  public
    procedure InitControls; Override;
    procedure SaveData;Override;
    procedure SetStatus(CurrentStatus:String;var EnableControls:String); Override;
    procedure CheckInfo;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_Gain_D: TFrm_Gl_Enter_Gain_D;

implementation
uses Sys_Global;
{$R *.DFM}

{ TFrm_Ar_Enter_Gathering_D }
procedure TFrm_Gl_Enter_Gain_D.CheckInfo;
var tMpstr,tmpkmCode,sqltext:string;
    i,j:integer;
begin
  if Add then 
   begin
     if Trim(edt_ProjectCode.Text)='' then 
       begin
         DispInfo('项目编号不能为空!',3);
         edt_ProjectCode.SetFocus;
         abort;
       end;
     Executesql(AdoQry_tmp,'select * from Gl_Gain where projectCode='+quotedstr(Trim(edt_ProjectCode.text)),0);
     if AdoQry_tmp.RecordCount>0 then 
       begin
         DispInfo('该项目编号已存在!',3);
         edt_ProjectCode.SetFocus;
         abort;
       end;     
   end;
  
  tMpstr:=Trim(edt_MonthSum.text);
  while tMpstr<>'' do
  begin
    i:=pos('+',tMpstr);
    j:=pos('-',tMpstr);
    if (i=0) and (j=0) then
    begin
      tmpkmCode:=tMpstr;
      tMpstr:='';
    end
    else 
    if (i=0) and (j<>0) then
    begin
      tmpkmCode:=copy(tMpstr,1,j-1);
      tMpstr:=copy(tMpstr,j+1,length(tMpstr)-j);
    end
    else if (i<>0) and (j=0) then
    begin
      tmpkmCode:=copy(tMpstr,1,i-1);
      tMpstr:=copy(tMpstr,i+1,length(tMpstr)-i);
    end;
    sqltext := IIFString(Cmb_IsSum.ItemIndex=0,
                         'select kmCode from Gl_AccountSubject'
                        +' where kmCode='+quotedstr(tmpkmCode),
                         ' select ProjectCode from Gl_Gain '
                        +'  where ProjectCode = '+QuotedStr(TmpKmCode)
                        ) ;
    Executesql(AdoQry_tmp,sqltext,0);
    if AdoQry_tmp.RecordCount=0 then 
    begin
      DispInfo(IIFString(Cmb_IsSum.ItemIndex=0,'科目代码','项目编号')+quotedstr(tmpkmCode)+'错误!',3);
      edt_MonthSum.SetFocus;
      abort;      
    end;
  end;

  tMpstr:=Trim(edt_Yearsum.text);
  while tMpstr<>'' do
  begin
    i:=pos('+',tMpstr);
    j:=pos('-',tMpstr);
    if (i=0) and (j=0) then
    begin
      tmpkmCode:=tMpstr;
      tMpstr:='';
    end
    else 
    if (i=0) and (j<>0) then
    begin
      tmpkmCode:=copy(tMpstr,1,j-1);
      tMpstr:=copy(tMpstr,j+1,length(tMpstr)-j);
    end
    else if (i<>0) and (j=0) then
    begin
      tmpkmCode:=copy(tMpstr,1,i-1);
      tMpstr:=copy(tMpstr,i+1,length(tMpstr)-i);
    end;
    sqltext := IIFString(Cmb_IsSum.ItemIndex=0,
                         'select kmCode from Gl_AccountSubject'
                        +' where kmCode='+quotedstr(tmpkmCode),
                         ' select ProjectCode from Gl_Gain '
                        +'  where ProjectCode = '+QuotedStr(TmpKmCode)
                        ) ;
    Executesql(AdoQry_tmp,sqltext,0);
    if AdoQry_tmp.RecordCount=0 then 
    begin
      DispInfo(IIFString(Cmb_IsSum.ItemIndex=0,'科目代码','项目编号')+quotedstr(tmpkmCode)+'错误!',3);
      edt_Yearsum.SetFocus;
      abort;      
    end;
  end;
  
end;


procedure TFrm_Gl_Enter_Gain_D.InitControls;
var i:integer;
begin
  if (Add) then
    begin
      SetFocus_Control:=edt_ProjectCode;
    end
  else
    SetFocus_Control:=cmb_issum;
  inherited;
  with AdoQry_Maintain do
    begin
      edt_ProjectCode.Text:=AdoQry_Maintain.fieldbyname('projectCode').asstring;
      cmb_issum.ItemIndex:=AdoQry_Maintain.fieldbyname('issum').asinteger;
      edt_ProjectName.Text:=AdoQry_Maintain.fieldbyname('projectName').asstring;
      edt_lineno.Text:=AdoQry_Maintain.fieldbyname('plineno').asstring;
      edt_MonthSum.Text:=AdoQry_Maintain.fieldbyname('MonthSum').asstring;
      edt_Yearsum.Text:=AdoQry_Maintain.fieldbyname('Yearsum').asstring;
      
      if not Add then
      begin
        edt_ProjectCode.Enabled:=False;
        cmb_issum.Enabled:=True;
      end
      else 
      begin
        edt_ProjectCode.Enabled:=True;
        cmb_issum.Enabled:=True;
      end;
    end;

end;

procedure TFrm_Gl_Enter_Gain_D.SaveData;
var sqltext:string;
    AdoQry:TAdoQuery;
begin
  inherited;
  AdoQry:=TAdoQuery.Create(nil);
  AdoQry.Connection:=dbconnect;
  try
    dbconnect.beginTrans;
    if Add then
    //新增
      sqltext:='insert into Gl_Gain(projectCode,issum,'
              +' projectName,plineno,MonthSum,Yearsum)'
              +' Values('+quotedstr(Trim(edt_ProjectCode.text))+','
                      +inttostr(cmb_issum.Itemindex)+','
                      +quotedstr(Trim(edt_ProjectName.text))+','
                      +iifstring(Trim(edt_lineno.text)='','null',Trim(edt_lineno.text))+','
                      +quotedstr(Trim(edt_MonthSum.text))+','
                      +quotedstr(Trim(edt_Yearsum.text))
                      +')'
    else
      sqltext:='update Gl_Gain'
             +' set projectName='+quotedstr(Trim(edt_ProjectName.text))+','
             +'     plineno='+iifstring(Trim(edt_lineno.text)='','null',Trim(edt_lineno.text))+','
             +'     MonthSum='+quotedstr(Trim(edt_MonthSum.text))+','
             +'     Yearsum='+quotedstr(Trim(edt_Yearsum.text))
             +'where projectCode='+quotedstr(Trim(edt_ProjectCode.text));
    if Add then
      begin
        Executesql(AdoQry_tmp,sqltext,1);
        saveGainhistory(dbconnect,Trim(edt_ProjectCode.text),userCode,0);
      end
    else
      begin
        saveGainhistory(dbconnect,Trim(edt_ProjectCode.text),userCode,1);
        Executesql(AdoQry_tmp,sqltext,1);
      end;
    if Assigned(AdoQry) then AdoQry.Free;
    dbconnect.CommitTrans;
    with AdoQry_Maintain do
      begin
        fieldbyname('projectCode').asstring:=Trim(edt_ProjectCode.text);
        fieldbyname('issum').asinteger:=cmb_issum.ItemIndex;
        fieldbyname('projectName').asstring:=Trim(edt_ProjectName.text);
        if Trim(edt_lineno.text)='' then
        fieldbyname('plineno').asinteger:=0
        else fieldbyname('plineno').asinteger:=strtoint(Trim(edt_lineno.text));
        fieldbyname('MonthSum').asstring:=Trim(edt_MonthSum.text);
        fieldbyname('Yearsum').asstring:=Trim(edt_Yearsum.text);
        post;
      end;
  except
    if dbconnect.InTransaction then
      dbconnect.RollBackTrans;
    if Assigned(AdoQry) then AdoQry.Free;
    abort;
  end;
end;

procedure TFrm_Gl_Enter_Gain_D.SetStatus(CurrentStatus: String;
  var EnableControls: String);
begin
  inherited;

end;

procedure TFrm_Gl_Enter_Gain_D.edt_linenoExit(Sender: TObject);
begin
  inherited;
  if Trim(edt_lineno.text)='' then exit;
  integercheck(sender);
end;

procedure TFrm_Gl_Enter_Gain_D.btn_okClick(Sender: TObject);
begin
  CheckInfo;//检测信息
  inherited;

end;

end.

⌨️ 快捷键说明

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