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

📄 gl_enter_accountsubject.pas

📁 一个MRPII系统源代码版本
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Gl_Enter_AccountSubject;

Interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  Base_Outer, Menus, ExtPrintReport, Db, ActnList, AdODB, Grids, DBGridEh,
  StdCtrls, ExtCtrls, ComCtrls, ToolWin, jpeg;

Type
  TFrm_Gl_Enter_AccountSubject = Class(TFrm_Base_Outer)
    AdoQry_MainKmID: TAutoIncField;
    AdoQry_MainKmLevel: TIntegerField;
    AdoQry_MainKmCode: TStringField;
    AdoQry_MainKmHelpCode: TStringField;
    AdoQry_MainKmName: TStringField;
    AdoQry_MainKmType: TIntegerField;
    AdoQry_MainKmProperty: TIntegerField;
    AdoQry_MainPageType: TIntegerField;
    AdoQry_MainFCurrecy: TStringField;
    AdoQry_MainAmountCalculate: TIntegerField;
    AdoQry_MainUomCode: TStringField;
    AdoQry_MainCashControl: TIntegerField;
    AdoQry_MainKmFreeze: TIntegerField;
    AdoQry_MainDepArtCalculate: TIntegerField;
    AdoQry_MainPersonCalculate: TIntegerField;
    AdoQry_MainCustomerCalculate: TIntegerField;
    AdoQry_MaInvendorCalculate: TIntegerField;
    AdoQry_MainProjectCalculate: TIntegerField;
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    TabSheet2: TTabSheet;
    TabSheet3: TTabSheet;
    TabSheet4: TTabSheet;
    TabSheet5: TTabSheet;
    TabSheet6: TTabSheet;
    DBGridEh1: TDBGridEh;
    DBGridEh2: TDBGridEh;
    DBGridEh3: TDBGridEh;
    DBGridEh4: TDBGridEh;
    DBGridEh5: TDBGridEh;
    DBGridEh6: TDBGridEh;
    procedure FormShow(Sender: TObject);
    procedure PageControl1Change(Sender: TObject);
    procedure Act_DeleteExecute(Sender: TObject);
    procedure AdoQry_MainKmNameGetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
  private
    function DeleteendKm(var_KmCode:String):Boolean;
    procedure endKmCheck(kmCodestr: string; kmLevelint: integer);
    procedure SaveGl_AccountSubjectHistoryHistory(AdoConnection:TAdoConnection;KmCode:string;UserCode:string;HisType:integer);
    { Private declarations }
  public
    procedure InitForm(AdOConnection:TAdOConnection;ReadOnly:Boolean);Override;
    { Public declarations }
  end;

var
  Frm_Gl_Enter_AccountSubject: TFrm_Gl_Enter_AccountSubject;

implementation

uses Gl_Enter_AccountSubject_D, Sys_Global;

{$R *.DFM}

{ TFrm_Gl_Enter_AccountSubject }

procedure TFrm_Gl_Enter_AccountSubject.InitForm(
  AdOConnection: TAdOConnection; ReadOnly: Boolean);
begin
  inherited;
  SelectFromSql:=' Select * From Gl_AccountSubject ';
  OrderByFields := 'KmCode,KmLevel';
  GetData;
  Frm_Sys_Detail:=TFrm_Gl_Enter_AccountSubject_D.Create(Application);

end;

procedure TFrm_Gl_Enter_AccountSubject.FormShow(Sender: TObject);
begin
  inherited;
  PageControl1.ActivePageIndex := 0;
end;

procedure TFrm_Gl_Enter_AccountSubject.PageControl1Change(Sender: TObject);
begin
  inherited;
  if  PageControl1.ActivePageIndex = 0 then
  begin
    Condition := '';
    ConditionUserDefine:='' ;
    Lbl_Condition.Caption := '全部';
  end
  else
    if  PageControl1.ActivePageIndex = 1 then
    begin
      Condition := '';
      ConditionUserDefine:=' KmType = 1 ';
      Lbl_Condition.Caption := '资产';
    end
    else
        if  PageControl1.ActivePageIndex = 2 then
        begin
          Condition := '';
          ConditionUserDefine:=' KmType = 2 ';
          Lbl_Condition.Caption := '负债';
        end
        else
            if  PageControl1.ActivePageIndex = 3 then
            begin
               Condition := '';
               ConditionUserDefine:=' KmType = 3 ';
               Lbl_Condition.Caption := '权益';
            end
            else
              if  PageControl1.ActivePageIndex = 4 then
              begin
                Condition := '';
                ConditionUserDefine:=' KmType = 4 ';
                Lbl_Condition.Caption := '成本';
              end
              else
              begin
                Condition := '';
                ConditionUserDefine:=' KmType = 5 ';
                Lbl_Condition.Caption := '损益';
              end;
  GetData;

end;

procedure TFrm_Gl_Enter_AccountSubject.Act_DeleteExecute(Sender: TObject);
var
  KmID:String;
begin
//  inherited;
//  endKmCheck(AdoQry_Main.fieldbyname('KmCode').AsString,AdoQry_Main.fieldbyname('Kmlevel').Asinteger);
  //exit;
  if (not AdoQry_Main.IsEmpty) and
     (DispInfo(' 真的删除当前记录吗? ',2)='y') then
  begin
    try
      DbConnect.beginTrans;
      SaveGl_AccountSubjectHistoryHistory(DbConnect,AdoQry_Main.fieldbyname('KmCode').AsString,UserCode,3);
      endKmCheck(AdoQry_Main.fieldbyname('KmCode').AsString,AdoQry_Main.fieldbyname('Kmlevel').Asinteger);
      If not DeleteendKm(AdoQry_Main.fieldbyname('KmCode').AsString) then
        Abort;

      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text:='Select KmId From Gl_AccountSubject Where KmCode='''+AdoQry_Main.fieldbyname('KmCode').AsString+'''';
      AdoQry_Tmp.OPen;
      KmId := AdoQry_Tmp.fieldbyname('KmId').AsString;
      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.clear;
      AdoQry_Tmp.SQL.Text:= ' Delete Gl_AccountSubjectBalance Where kmId ='''+KmID+''' ';
      AdoQry_Tmp.ExecSQL;

      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text:='Delete Gl_AccountSubject Where KmCode='''+AdoQry_Main.fieldbyname('KmCode').AsString+'''';
      AdoQry_Tmp.ExecSQL;

      AdoQry_Main.Delete;
      DbConnect.CommitTrans;
    except
      DbConnect.RollBackTrans ;
      DispInfo(' 无法删除当前记录!',1);
      Abort;
    end;
  end;
end;

procedure TFrm_Gl_Enter_AccountSubject.SaveGl_AccountSubjectHistoryHistory(
  AdoConnection: TAdoConnection; KmCode, UserCode: string;
  HisType: integer);
var AdoQry:TAdoQuery;
    AdoQrytmp:TAdoQuery;
    sqltext:string;
    chgType:string;
begin
  case hisType of
    1: chgType:='新增';
    2: chgType:='修改';
    3: chgType:='删除';
  end;
  AdoQry:=TAdoQuery.Create(Application);
  AdoQry.EnableBCD:=False;
  AdoQry.Connection:=AdoConnection;
  AdoQrytmp:=TAdoQuery.Create(Application);
  AdoQrytmp.EnableBCD:=False;
  AdoQrytmp.Connection:=AdoConnection;
  with AdoQry do
   begin
    Close;
    sql.clear;
    sql.Text:='Select * from Gl_AccountSubject where KmCode='+Quotedstr(KmCode);
    Prepared;
    open;
    if recordCount=0 then exit;
   end;
      sqltext := ' Insert into Gl_AccountSubjectHistory'
                +' (endKm,KmId,KmLevel,KmCode,KmHelpCode,KmName,FCurrecy,UomCode,KmType,KmProperty,'
                +' PageType,AmountCalculate,KmFreeze,CashControl,'
                +' PersonCalculate,DepArtCalculate,VendorCalculate,'
                +' CustomerCalculate,ProjectCalculate,ChgEmployeeCode,ChgTime,ChgType ) '
                +' Values('
                +' '''+AdoQry.fieldbyname('endKm').AsString+''','
                +' '''+AdoQry.fieldbyname('KmID').AsString+''','
                +' '''+AdoQry.fieldbyname('KmLevel').AsString+''','
                +' '''+AdoQry.fieldbyname('KmCode').AsString+''','
                +' '''+AdoQry.fieldbyname('KmHelpCode').AsString+''','
                +' '''+AdoQry.fieldbyname('KmName').AsString+''','

//                +' '''+AdoQry.fieldbyname('TotalKmCode').AsString +''','
                +' '''+AdoQry.fieldbyname('FCurrecy').AsString +''','
                +' '''+AdoQry.fieldbyname('UomCode').AsString +''','

                +''''+AdoQry.fieldbyname('KmType').AsString +''','
                +''''+AdoQry.fieldbyname('KmProperty').AsString +''','
                +''''+AdoQry.fieldbyname('PageType').AsString +''','
//                +''''+AdoQry.fieldbyname('FCurrecyCalculate').AsString +''','
                +''''+AdoQry.fieldbyname('AmountCalculate').AsString +''','
                +''''+AdoQry.fieldbyname('KmFreeze').AsString +''','
                +''''+AdoQry.fieldbyname('CashControl').AsString +''','
                +''''+AdoQry.fieldbyname('PersonCalculate').AsString +''','
                +''''+AdoQry.fieldbyname('DepArtCalculate').AsString +''','
                +''''+AdoQry.fieldbyname('VendorCalculate').AsString +''','
                +''''+AdoQry.fieldbyname('CustomerCalculate').AsString +''','
                +''''+AdoQry.fieldbyname('ProjectCalculate').AsString +''','
                   +quotedstr(userCode)+','
                   +'getdate(),'
                   +quotedstr(chgType)+')';

  with AdoQrytmp do
    begin
      Close;
      sql.clear;
      sql.Text:=sqltext;
      try
      execsql;
      except
      end;
    end;
 try
  AdoQry.Free;
  AdoQrytmp.Free;
 except
 end;
end;

function TFrm_Gl_Enter_AccountSubject.DeleteendKm(

⌨️ 快捷键说明

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