qutation.pas

来自「SunwayERP框架(支持Plugin)」· PAS 代码 · 共 177 行

PAS
177
字号
unit Qutation;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BaseMDForm, DB, ADODB, ComCtrls, ExtCtrls, ToolWin, ImgList,
  StdCtrls, Buttons, Grids, DBGrids, Mask, DBCtrls;

type
  TfrmQutation = class(TfrmBaseMDForm)
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    Label8: TLabel;
    Label9: TLabel;
    Label10: TLabel;
    Label11: TLabel;
    Label12: TLabel;
    Label13: TLabel;
    Label14: TLabel;
    Label15: TLabel;
    Label16: TLabel;
    SpeedButton1: TSpeedButton;
    DBGrid1: TDBGrid;
    Panel2: TPanel;
    Label17: TLabel;
    DBText1: TDBText;
    DBText2: TDBText;
    DBText3: TDBText;
    DBText4: TDBText;
    DBText5: TDBText;
    DBText6: TDBText;
    DBText7: TDBText;
    DBText8: TDBText;
    DBText9: TDBText;
    DBText10: TDBText;
    DBText11: TDBText;
    DBText12: TDBText;
    DBText13: TDBText;
    DBText14: TDBText;
    DBText15: TDBText;
    DBText16: TDBText;
    DBEdit1: TDBEdit;
    SpeedButton2: TSpeedButton;
    ADOQuery2: TADOQuery;
    DataSource2: TDataSource;
    procedure DataSource1StateChange(Sender: TObject);
    procedure btnNewClick(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
    Function GetRate(curCode:String):real;
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmQutation: TfrmQutation;


implementation

uses SAL_Main, DBPicker;
{$R *.dfm}

procedure TfrmQutation.DataSource1StateChange(Sender: TObject);
begin
  inherited;
  if DataSource1.State in [dsInsert] then
    begin
      btnCopy.Enabled:=False;
      btnNew.Enabled:=False;
      btnOpen.Enabled:=False;
      btnEdit.Enabled:=False;
      btnSave.Enabled:=True;
      btnCancel.Enabled:=True;
      btnDelete.Enabled:=False;
      btnUP.Enabled:=False;
      btnPrint.Enabled:=False;
    end;
  if DataSource1.State in [dsBrowse] then
    begin
      btnCopy.Enabled:=True;
      btnNew.Enabled:=True;
      btnOpen.Enabled:=True;
      btnEdit.Enabled:=True;
      btnSave.Enabled:=False;
      btnCancel.Enabled:=False;
      btnDelete.Enabled:=True;
      btnUP.Enabled:=True;
      btnPrint.Enabled:=True;
    end;
  if DataSource1.State in [dsEdit] then
    begin
      btnCopy.Enabled:=False;
      btnNew.Enabled:=False;
      btnOpen.Enabled:=False;
      btnEdit.Enabled:=False;
      btnSave.Enabled:=True;
      btnCancel.Enabled:=True;
      btnDelete.Enabled:=False;
      btnUP.Enabled:=False;
      btnPrint.Enabled:=False;
    end;
end;

procedure TfrmQutation.btnNewClick(Sender: TObject);
begin
  inherited;
  with ADOQuery1 do
    begin
      Close;
      SQL.Text:='Select * from QUOTATION_MAIN where QU_ID is null';
      LockType:=ltOptimistic;
      Open;
      Append;
      Fieldbyname('QU_ID').AsString:='{...}';
      Fieldbyname('QU_VERSION').AsInteger:=0;
      Fieldbyname('QU_CREATEDATE').AsDateTime:=Date();
      Fieldbyname('QU_CREATOR').AsString:=Sal_Main.UID;
      Fieldbyname('QU_STATUS').AsInteger:=0;
    end;
end;

procedure TfrmQutation.SpeedButton2Click(Sender: TObject);
begin
  inherited;
  if not (ADOQuery1.State in [dsEdit,dsInsert]) then Exit;
  frmDBPicker:=TfrmDBPicker.Create(Self);
  frmDBPicker.Caption:='选择客户';
  with frmDBPicker.ADOQuery1 do
    begin
      Connection:=ADOQuery1.Connection;
      SQL.Text:='Select * from CUSTOMER order by CUST_ID';
      Open;
    end;
  if frmDBPicker.ShowModal=mrOK then
    begin
      DBEdit1.Field.Value:=frmDBPicker.ADOQuery1.Fieldbyname('CUST_ID').AsString;
      DBText8.Field.Value:=frmDBPicker.ADOQuery1.Fieldbyname('CUST_NAME').AsString;
      DBText9.Field.Value:=frmDBPicker.ADOQuery1.fieldbyname('CUST_AREA').AsString;
      DBText10.Field.Value:=frmDBPicker.ADOQuery1.fieldbyname('CUST_TYPE').AsString;
      DBText11.Field.Value:=frmDBPicker.ADOQuery1.fieldbyname('SAL_TYPE').AsString;
      DBText12.Field.Value:=frmDBPicker.ADOQuery1.fieldbyname('CUST_CURRENCRY').AsString;
      DBText13.Field.Value:=GETRATE(frmDBPicker.ADOQuery1.fieldbyname('CUST_CURRENCRY').AsString);
      DBText14.Field.Value:=frmDBPicker.ADOQuery1.fieldbyname('CUST_PAYMODE').AsString;
      //DBText15.Field.Value:=frmDBPicker.ADOQuery1.fieldbyname('CUST_CURRENCRY').AsString;
      DBText16.Field.Value:=frmDBPicker.ADOQuery1.fieldbyname('CUST_INVCODE').AsString;
    end;
  frmDBPicker.Free;
end;

function TfrmQutation.GetRate(curCode: String): real;
var
  TmpQuery:TADOQuery;
begin
  Result:=-1;
  TmpQuery:=TADOQuery.Create(Self);
  with TmpQuery do
    begin
      Connection:=ADOQuery1.Connection;
      SQL.Text:='Select * from CURRENCRY where CUR_CODE='''+curCode+'''';
      Open;
      if not isempty then
        Result:=Fieldbyname('CUR_RATE').AsFloat;
      Close;
    end;
  TmpQuery.Free;
end;

end.

⌨️ 快捷键说明

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