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

📄 updbommh.pas

📁 拥有全套神州数码马易飞ERP源码,现上传部分源码
💻 PAS
字号:
unit updBOMMH;

interface

uses sysUtils, dbtables, db, bde, updBase;

type
  TUpdateBOMMH = class(TBaseUpdateUnit)
  private
    FOtherVar: variant;
    function update_byBOMI09(xQrySource: TQuery): Boolean;
  public
    function update(xQrySource: TQuery; xAction: string;
       var xMsg: variant; xOtherVar: variant; xUserData: variant): Boolean;
  end;

implementation

function TUpdateBOMMH.update(xQrySource: TQuery; xAction: string;
           var xMsg: variant; xOtherVar: variant; xUserData: variant): Boolean;
begin
  Result := True;
  self.saveVar(xAction, xOtherVar, xUserData);
  FOtherVar:= xOtherVar;
  try
    setDBName(xQrySource.databaseName);
    if (compareText(self.SourceTxnCode, 'TXNBOMI09') = 0) then
      Result := update_byBOMI09(xQrySource)
    else
    begin
    end;
  finally
    //VarArrayUnlock(self.Msg);
    self.Query1.close;
    self.Query1.UnPrepare;
  end;
  xMsg := self.Msg;
end;

function TUpdateBOMMH.update_byBOMI09(xQrySource: TQuery): Boolean;
var
  mExist: Boolean;
  mMH001,mMH002,mMH003:String;
begin
  Result := True;
  self.Msg[0] := 'skip';
  self.Msg[1] := 'BOMMH';
  with xQrySource do
  begin
    self.Msg[2] := FieldByName('TH001').asString+' '+FieldByName('TH002').asString+' '+
                   FieldByName('TH003').asString;
  end;

  try
    if xQrySource.FieldByName('TH012').asString='Y' then
    begin
      if (self.Action = 'A') then
      begin
        with Query2 do
        begin
          close;
          SQL.clear;
          RequestLive := False;
          SQL.add('select * from $$BOMMH');
          SQL.add(' where MH001=:MH001 and MH005=''Y'' ');
          ParamByName('MH001').asString := xQrySource.FieldByName('TH001').asString;
          open;
          first;
          if not eof then
          begin
            mMH001:=FieldByName('MH001').asString;
            mMH002:=FieldByName('MH002').asString;
            mMH003:=FieldByName('MH003').asString;
            self.NewFlag := FieldByName('FLAG').asInteger + 1;
            if self.NewFlag > C_MAXFLAG then self.NewFlag := 1;
            close;
            SQL.clear;
            RequestLive := False;
            SQL.add('UPDATE $$BOMTH SET TH009=:TH009,TH010=:TH010 ');
            SQL.add(' WHERE TH001=:TH001 AND TH002=:TH002 AND TH003=:TH003 AND TH004=:TH004 ');
            ParamByName('TH001').asString := xQrySource.FieldByName('TH001').asString;
            ParamByName('TH002').asString := xQrySource.FieldByName('TH002').asString;
            ParamByName('TH003').asString := xQrySource.FieldByName('TH003').asString;
            ParamByName('TH004').asString := xQrySource.FieldByName('TH004').asString;
            ParamByName('TH009').asString := mMH002;
            ParamByName('TH010').asString := mMH003;
            TransSqlCommand(Query2);
            EXECSQL;
            close;
            SQL.clear;
            RequestLive := False;
            SQL.add('UPDATE $$BOMMH SET MH005=''N'',FLAG=:FLAG ');
            SQL.add(' WHERE MH001=:MH001 AND MH002=:MH002 AND MH003=:MH003 ');
            ParamByName('MH001').asString := mMH001;
            ParamByName('MH002').asString := mMH002;
            ParamByName('MH003').asString := mMH003;
            ParamByName('FLAG').asInteger := self.NewFlag;
            TransSqlCommand(Query2);
            EXECSQL;
          end;
        end;
      end  //絋粄
      else
      begin
        if (xQrySource.FieldByName('TH009').asString<>'') and
           (xQrySource.FieldByName('TH010').asString<>'') then
        begin
          with Query2 do
          begin
            close;
            SQL.clear;
            RequestLive := False;
            SQL.add('select * from $$BOMMH');
            SQL.add(' where MH001=:MH001 and MH002=:MH002');
            SQL.add('  and MH003=:MH003 ');
            ParamByName('MH001').asString := xQrySource.FieldByName('TH001').asString;
            ParamByName('MH002').asString := xQrySource.FieldByName('TH009').asString;
            ParamByName('MH003').asString := xQrySource.FieldByName('TH010').asString;
            open;
            first;
            if not eof then
            begin
              self.NewFlag := FieldByName('FLAG').asInteger + 1;
              if self.NewFlag > C_MAXFLAG then self.NewFlag := 1;
              close;
              SQL.clear;
              RequestLive := False;
              SQL.add('UPDATE $$BOMMH SET MH005=''Y'',FLAG=:FLAG ');
              SQL.add(' where MH001=:MH001 and MH002=:MH002');
              SQL.add('  and MH003=:MH003 ');
              ParamByName('MH001').asString := xQrySource.FieldByName('TH001').asString;
              ParamByName('MH002').asString := xQrySource.FieldByName('TH009').asString;
              ParamByName('MH003').asString := xQrySource.FieldByName('TH010').asString;
              ParamByName('FLAG').asInteger := self.NewFlag;
              TransSqlCommand(Query2);
              EXECSQL;
            end;
          end;
        end;
      end;
    end;

    with self.Query1 do
    begin
      close;
      SQL.clear;
      RequestLive := False;
      SQL.add('select * from $$BOMMH');
      SQL.add(' where MH001=:MH001 and MH002=:MH002');
      SQL.add('  and MH003=:MH003 ');
      ParamByName('MH001').asString := xQrySource.FieldByName('TH001').asString;
      ParamByName('MH002').asString := xQrySource.FieldByName('TH002').asString;
      ParamByName('MH003').asString := xQrySource.FieldByName('TH003').asString;
      open;
      first;
      mExist := not eof;
      if ((not mExist) and (self.Action = 'A')) then
      begin
        close;
        SQL.clear;
        RequestLive := False;
        SQL.add('INSERT INTO $$BOMMH (MH001 ,MH002 ,MH003 ,MH004 ,MH005 ,MH006,MH007,MH008 ,MH009 ,MH010 , ');
        SQL.add(' COMPANY ,CREATOR ,USR_GROUP ,CREATE_DATE ,FLAG ) ');
        SQL.add('VALUES (:MH001 ,:MH002 ,:MH003 ,:MH004 ,:MH005 ,:MH006,:MH007,:MH008 ,:MH009 ,:MH010 , ');
        SQL.add(' :COMPANY ,:CREATOR ,:USR_GROUP ,:CREATE_DATE ,1) ');
        ParamByName('MH001').asString := xQrySource.FieldByName('TH001').asString;
        ParamByName('MH002').asString := xQrySource.FieldByName('TH002').asString;
        ParamByName('MH003').asString := xQrySource.FieldByName('TH003').asString;
        ParamByName('MH004').asString := xQrySource.FieldByName('TH011').asString;
        ParamByName('MH005').asString := xQrySource.FieldByName('TH012').asString;
        ParamByName('MH006').asString := xQrySource.FieldByName('TH013').asString;
        ParamByName('MH007').asString := xQrySource.FieldByName('TH014').asString;
        ParamByName('MH008').asString := xQrySource.FieldByName('TH015').asString;
        ParamByName('MH009').asString := xQrySource.FieldByName('TH016').asString;
        ParamByName('MH010').asString := xQrySource.FieldByName('TH017').asString;
        ParamByName('COMPANY').asString :=self.FCOMPANY;
        ParamByName('CREATOR').asString :=self.FCREATOR;
        ParamByName('USR_GROUP').asString :=self.FUSR_GROUP;
        ParamByName('CREATE_DATE').asString :=self.FCREATE_DATE;
        try
          TransSqlCommand(Query1);
          EXECSQL;
        except
          on E: EDBEngineError do
          begin
            if E.Errors[0].ErrorCode <> DBIERR_KEYVIOL then raise
            else //糶

⌨️ 快捷键说明

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