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 + -
显示快捷键?