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

📄 gl_enter_foreigncurrencyrate.pas

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

        SaveHistoryFCurrencyRateLine(DbConnect,IdentityNo,IntToStr(AdoQry_Body.fieldbyname('AccountPeriodDate').AsInteger),UserCode,0);

        AdoQry_Body.Next;
      end;
    end
    else
    begin
{    Select CURRENCYCode ,AccountPeriod ,ForeignRate, ChangeForeignRate, RemArk
    From Gl_ForeignCurrencyRate }
      SaveHistoryFCurrencyRate(DbConnect,IdentityNo,UserCode,1);
      SqlText:='Update Gl_ForeignCurrencyRate '
              +' Set CURRENCYCode='''+Trim(Edt_CURRENCYCode.Text)+''','
              +' AccountPeriod= '''+Trim(Edt_AccountPeriod.Text)+''','
              +' ForeignRate='''+Trim(Edt_ForeignRate.Text)+''','
              +' ChangeForeignRate='''+Trim(Edt_ChangeForeignRate.Text)+''','
              +' RemArk='''+Trim(Edt_RemArk.Text)+''' '
              +' Where ForeignCurrencyRateID='''+IdentityNo +'''';
      AdoQry_Tmp.Close;
      AdoQry_Tmp.SQL.Text:=SqlText;
      AdoQry_Tmp.ExecSQL;
      AdoQry_Body.First;
      While Not AdoQry_Body.Eof Do
      begin
        {Select ForeignCurrencyRateID,AccountPeriodDate,ForeignRate,ChangeForeignRate,RemArk
      From Gl_ForeignCurrencyRateLine}
              SaveHistoryFCurrencyRateLine(DbConnect,IdentityNo,IntToStr(AdoQry_Body.fieldbyname('AccountPeriodDate').AsInteger),UserCode,1);
        SqlText:=' UpDate Gl_ForeignCurrencyRateLine '
                  +' Set  AccountPeriodDate='+''''+AdoQry_Body.fieldbyname('AccountPeriodDate').AsString+''''+','
                  +' ForeignRate='+''''+AdoQry_Body.fieldbyname('ForeignRate').AsString+''''+','
                  +' ChangeForeignRate='+''''+AdoQry_Body.fieldbyname('ChangeForeignRate').AsString+''''+','
                  +' RemArk='''+AdoQry_Body.fieldbyname('RemArk').AsString+''''

                  +' Where ForeignCurrencyRateID='+''''+IdentityNo+''''
                  +'       And AccountPeriodDate='+''''+AdoQry_Body.fieldbyname('AccountPeriodDate').AsString+'''';
          AdoQry_Tmp.Close;
          AdoQry_Tmp.SQL.Text:=SqlText;
          AdoQry_Tmp.ExecSQL;
        AdoQry_Body.Next;
      end; //end while
    end;  //end if
    DbConnect.CommitTrans;
    Act_Save.Enabled:=False;
    DispInfo('数据保存成功!',3);
  Except
    on e:Exception do
    begin
      If DbConnect.InTransaction Then
        DbConnect.RollBackTrans;
        RecOrderror(Self,AdoQry_tmp,E.message);
        DispInfo('保存数据失败,请重试!',1);
        Abort;
    end ;
  end;
  with AdoQry_Head do
  begin
    fieldbyname('CurrencyCode').AsString := Edt_CurrencyCode.Text;
    fieldbyname('CurrencyName').AsString := Edt_CurrencyName.Text;
    fieldbyname('AccountPeriod').AsString := Edt_AccountPeriod.Text ;
    fieldbyname('ForeignRate').AsString := Edt_ForeignRate.Text;
    fieldbyname('ChangeForeignRate').AsString := Edt_ChangeForeignRate.Text;
    fieldbyname('RemArk').AsString := Edt_RemArk.Text;
  end;

end;

procedure TFrm_Gl_Enter_ForeignCurrencyRate.Edt_AccountPeriodEnter(
  Sender: TObject);
begin
  inherited;
  Month := Trim(Edt_AccountPeriod.Text);
end;

procedure TFrm_Gl_Enter_ForeignCurrencyRate.Edt_AccountPeriodExit(
  Sender: TObject);
begin
  inherited;
  try
    StrToDateTime(Trim(Edt_AccountPeriod.Text)+'.01');
  except
    DispInfo('月份输入错误!',1);
    Edt_AccountPeriod.SetFocus;
    abort;
  end;
  if Trim(Edt_AccountPeriod.Text) <> Month then
  begin
    while not AdoQry_Body.Eof do
    begin
      AdoQry_Body.Delete;
    end;
    ChangeDetill;
    Month := Trim(Edt_AccountPeriod.Text);
  end;
end;

procedure TFrm_Gl_Enter_ForeignCurrencyRate.ChangeDetill;
var
  Dates:String;
  Days,I:integer;
begin
    Dates := Edt_AccountPeriod.Text+'.01';
    AdoQry_Tmp.Close;
    AdoQry_Tmp.SQL.clear;
    AdoQry_Tmp.SQL.Text := ' Select DatePArt(Day,DateAdd(Month,1,Convert(DateTime,'''+Dates+'''))-1) As days ';
    AdoQry_Tmp.Open;
    Days := AdoQry_Tmp.fieldbyname('Days').AsInteger;
    for I := 1 to Days do
    begin
      with AdoQry_Body do
      begin
        Append;
        fieldbyname('AccountPeriodDate').AsInteger := I;
        AdoQry_Body.fieldbyname('ForeignRate').AsString := '0';
        AdoQry_Body.fieldbyname('ChangeForeignRate').AsString := '0';
        AdoQry_Body.fieldbyname('RemArk').AsString := '';
        Post;
      end;
    end;
end;

procedure TFrm_Gl_Enter_ForeignCurrencyRate.SaveHistoryFCurrencyRate(
  AdoConnection: TAdoConnection; ForeignCurrencyRateID, UserCode: string;
  HisType: integer);
var AdoQry:TAdoQuery;
    AdoQrytmp:TAdoQuery;
    sqltext:string;
    chgType:string;
begin
 case hisType of
   0: chgType:='新增';
   1: chgType:='修改';
   2: chgType:='删除';
 end;
 AdoQry:=TAdoQuery.Create(Application);
 AdoQry.EnableBCD:=False;
 AdoQry.Connection:=AdoConnection;
 AdoQrytmp:=TAdoQuery.Create(Application);
 AdoQrytmp.EnableBCD:=False;
 AdoQrytmp.Connection:=AdoConnection;
 SqlText := ' Select * From Gl_ForeignCurrencyRate Where ForeignCurrencyRateID='''+ForeignCurrencyRateID+''' ';
 AdoQry.Close;
 AdoQry.SQL.clear;
 AdoQry.Sql.Text := SqlText;
 AdoQry.Open;
   SqlText:='Insert Gl_ForeignCurrencyRateHistory '
              +' (ForeignCurrencyRateID,CurrencyCode,AccountPeriod,ForeignRate,ChangeForeignRate,RemArk, '
              +'  ChgEmployeeCode,ChgTime,ChgType )'
              +'  Values('
              +''''+ AdoQry.fieldbyname('ForeignCurrencyRateID').AsString+''','
              +''''+ AdoQry.fieldbyname('CurrencyCode').AsString+''','
              +''''+ AdoQry.fieldbyname('AccountPeriod').AsString+''','
              +''''+ AdoQry.fieldbyname('ForeignRate').AsString+''','
              +''''+ AdoQry.fieldbyname('ChangeForeignRate').AsString+''','
              +''''+ AdoQry.fieldbyname('RemArk').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;


procedure TFrm_Gl_Enter_ForeignCurrencyRate.SaveHistoryFCurrencyRateLine(
  AdoConnection: TAdoConnection; ForeignCurrencyRateID, days,
  UserCode: string; HisType: integer);
var AdoQry:TAdoQuery;
    AdoQrytmp:TAdoQuery;
    sqltext:string;
    chgType:string;
begin
 case hisType of
   0: chgType:='新增';
   1: chgType:='修改';
   2: 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_ForeignCurrencyRateLine where ForeignCurrencyRateID='+ForeignCurrencyRateID
              +' and  AccountPeriodDate='+Days;
    Prepared;
    open;
   end;
   SqlText:='Insert Gl_ForeignCurrencyRateLineHist '
                +' (ForeignCurrencyRateID,AccountPeriodDate,ForeignRate,ChangeForeignRate, '
                +' RemArk,ChgEmployeeCode,ChgTime,ChgType)'
                +' Values('
                + Quotedstr(AdoQry.fieldbyname('ForeignCurrencyRateID').AsString)+','
                + Quotedstr(AdoQry.fieldbyname('AccountPeriodDate').AsString)+','
                + Quotedstr(AdoQry.fieldbyname('ForeignRate').AsString)+','
                + Quotedstr(AdoQry.fieldbyname('ChangeForeignRate').AsString)+','
                + Quotedstr(AdoQry.fieldbyname('RemArk').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;

end.

⌨️ 快捷键说明

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