📄 frmdsch00_detalp.pas
字号:
unit FrmDsCh00_DetalP;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, FrmBaseFormP, DB, ADODB, StdCtrls, ExtCtrls, Menus;
type
TFrmDsCh00_Detal = class(TFrmBaseForm)
Img1: TImage;
Label1: TLabel;
Label2: TLabel;
Shape1: TShape;
Shape2: TShape;
Label3: TLabel;
Label4: TLabel;
Label8: TLabel;
Label5: TLabel;
Label6: TLabel;
Label7: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Edit7: TEdit;
Edit3: TEdit;
Edit4: TEdit;
Edit5: TEdit;
Edit6: TEdit;
ADOQ_DsCh01: TADOQuery;
Label9: TLabel;
Edit8: TEdit;
Edit9: TEdit;
Edit10: TEdit;
Label10: TLabel;
Edit11: TEdit;
Label11: TLabel;
Edit13: TEdit;
ADOQ_DsSu00: TADOQuery;
ADOQ_DsODID: TADOQuery;
ADOQ_DsEl00: TADOQuery;
ADOQ_DsEl01: TADOQuery;
Label12: TLabel;
Edit12: TEdit;
procedure FormShow(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Edit3DblClick(Sender: TObject);
procedure Edit6DblClick(Sender: TObject);
procedure Edit9DblClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Edit3Exit(Sender: TObject);
procedure Edit6Exit(Sender: TObject);
procedure Edit9Exit(Sender: TObject);
procedure Edit8DblClick(Sender: TObject);
procedure Edit8Exit(Sender: TObject);
procedure Edit12Exit(Sender: TObject);
private
{ Private declarations }
public
Procedure GetPrice();
{ Public declarations }
end;
var
FrmDsCh00_Detal: TFrmDsCh00_Detal;
implementation
uses FrmMainP, FrmDsCh00P, SysPub, DataM1P;
{$R *.dfm}
procedure TFrmDsCh00_Detal.FormShow(Sender: TObject);
begin
inherited;
FrmMain.TlB1.Enabled :=False;
Img1.Picture.LoadFromFile(_AppPath+'Bmp\Tao.Bmp');
FrmMain.TQuit.Enabled :=True;
If DetalFlag=1 then
Begin
Edit1.Text :=ADOQ_DsCh01.FieldByName('Ch_ID').AsString ;
Edit2.Text :=ADOQ_DsCh01.FieldByName('CH_SID').AsString ;
Edit3.Text :=ADOQ_DsCh01.FieldByName('EL_NO').AsString ;
IF ADOQ_DsEl00.Locate('EL_No',Edit3.Text,[]) Then
Edit4.Text :=ADOQ_DsEl00.FieldByName('El_Name').AsString
Else
Edit4.Text :='';
Edit5.Text :=ADOQ_DsCh01.FieldByName('EL_UNIT').AsString ;
Edit6.Text :=ADOQ_DsCh01.FieldByName('SU_NO').AsString ;
IF ADOQ_DsSu00.Locate('SU_NO',Edit6.Text,[]) Then
Edit7.Text :=ADOQ_DsSu00.FieldByName('SU_CNa').AsString
Else
Edit7.Text :='';
Edit8.Text :=FloatToStr(ADOQ_DsCh01.FieldByName('EL_PRICE').AsFloat ) ;
Edit9.Text :=ADOQ_DsCh01.FieldByName('OD_ID').AsString ;
IF ADOQ_DsOdID.Locate('Fid',Edit9.Text,[]) Then
Edit10.Text :=ADOQ_DsOdId.FieldByName('Fname').AsString
Else
Edit10.Text :='';
Edit11.Text :=ADOQ_DsCh01.FieldByName('CH_CDATE').AsString ;
Edit12.Text :=FloatToStr(ADOQ_DsCh01.FieldByName('CH_Qty').AsFloat );
Edit13.Text :=ADOQ_DsCh01.FieldByName('CH_NOTE').AsString ;
End
Else
Begin
Edit1.Text :=StrFNo ;
Edit2.Text :=StrSno;
End;
end;
procedure TFrmDsCh00_Detal.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
// inherited;
FrmMain.TlB1.Enabled :=True;
IF Edit8.Text ='' Then
Edit8.Text :='0.0';
IF Edit12.Text ='' Then
Edit12.Text :='0.0';
Try
DataM1.Adoc.BeginTrans ;
With ADOQ_DsCh01 Do
IF DetalFlag=0 then
Begin
Edit ;
FieldByName('CH_ID').AsString :=StrFNo ;
FieldByName('CH_SID').AsString :=StrSno;
FieldByName('EL_NO').AsString :=Edit3.Text ;
FieldByName('EL_UNIT').AsString :=Edit5.Text ;
FieldByName('SU_NO').AsString :=Edit6.Text ;
FieldByName('EL_PRICE').AsFloat :=StrToFloat(Edit8.Text ) ;
FieldByName('CH_QTY').AsFloat :=StrToFloat(Edit12.Text ) ;
FieldByName('OD_ID').AsString :=Edit9.Text ;
FieldByName('CH_CDATE').AsString :=Edit11.Text ;
FieldByName('CH_NOTE').AsString :=Edit13.Text ;
post;
End
Else
Begin
Edit;
FieldByName('EL_NO').AsString :=Edit3.Text ;
FieldByName('EL_UNIT').AsString :=Edit5.Text ;
FieldByName('SU_NO').AsString :=Edit6.Text ;
FieldByName('EL_PRICE').AsFloat :=StrToFloat(Edit8.Text ) ;
FieldByName('CH_QTY').AsFloat :=StrToFloat(Edit12.Text ) ;
FieldByName('OD_ID').AsString :=Edit9.Text ;
FieldByName('CH_CDATE').AsString :=Edit11.Text ;
FieldByName('CH_NOTE').AsString :=Edit13.Text ;
post;
End;
DataM1.Adoc.CommitTrans ;
Except
Begin
Showmessage('数据保存出错');
DataM1.Adoc.RollbackTrans ;
abort;
End;
end;
ADOQ_DsCh01.Active :=False;
ADOQ_DsEL00.Active :=False;
ADOQ_DsODID.Active :=False;
ADOQ_DsSu00.Active :=False;
action:=cafree;
End;
procedure TFrmDsCh00_Detal.FormCreate(Sender: TObject);
var Sqltext:String ;
begin
//inherited;
SqlText:='Select * From DsCH01 Where CH_ID='+''''+StrFno+''''+' And CH_SID='+''''+StrSno+'''' ;
ADOQ_DsCh01.SQL.Clear ;
ADOQ_DsCh01.SQL.Text:=SqlText;
IF ADOQ_DsCh01.Active =False Then
ADOQ_DsCh01.Active :=True;
ADOQ_DsCh01.Open ;
ADOQ_DsEl00.Active :=True;
ADOQ_DsSu00.Active :=True;
ADOQ_DsODID.Active :=True;
end;
procedure TFrmDsCh00_Detal.Edit3DblClick(Sender: TObject);
var SqlStr:String;
begin
inherited;
IF Edit3.ReadOnly <>True Then
Begin
SqlStr:='Select El_No as 料品编号,EL_Name as 料品名称 From DsEL00 Where EL_No Like '+''''+Edit3.Text+'%'+''''+' Order By EL_NO';
Edit3.Text :=SetFindForm(Self.Caption,SqlStr);
End;
end;
procedure TFrmDsCh00_Detal.Edit6DblClick(Sender: TObject);
var SqlStr:String;
begin
inherited;
IF Edit6.ReadOnly <>True Then
Begin
SqlStr:='Select SU_NO as 厂商编号,Su_CNA as 厂商名称 From DsSu00 Where Su_No Like '+''''+Edit6.Text+'%'+''''+' Order By Su_NO';
Edit6.Text :=SetFindForm(Self.Caption,SqlStr);
End;
end;
procedure TFrmDsCh00_Detal.Edit9DblClick(Sender: TObject);
var SqlStr:String;
begin
inherited;
IF Edit9.ReadOnly <>True Then
Begin
SqlStr:='Select Fid as 币别编号,FName as 币别名称 From Dsodid Where Fid Like '+''''+Edit9.Text+'%'+''''+' Order By Fid';
Edit9.Text :=SetFindForm(Self.Caption,SqlStr);
End;
end;
procedure TFrmDsCh00_Detal.Edit3Exit(Sender: TObject);
begin
inherited;
IF ADOQ_DsEL00.Locate('EL_NO',Edit3.Text,[]) Then
Edit4.Text :=ADOQ_DsEL00.FieldByName('EL_Name').AsString
Else
Begin
ShowMessage('料号:'+Edit3.Text+'在料品表中不存在!');
Edit3.SetFocus ;
Exit
End;
end;
procedure TFrmDsCh00_Detal.Edit6Exit(Sender: TObject);
begin
inherited;
IF ADOQ_DsSu00.Locate('Su_NO',Edit6.Text,[]) Then
Edit7.Text :=ADOQ_DsSu00.FieldByName('Su_Cna').AsString
Else
Begin
ShowMessage('厂商:'+Edit6.Text+'在厂商表中不存在!');
Edit6.SetFocus ;
Exit
End;
end;
procedure TFrmDsCh00_Detal.Edit9Exit(Sender: TObject);
begin
inherited;
IF ADOQ_DsODID.Locate('Fid',Edit9.Text,[]) Then
Edit10.Text :=ADOQ_DsOdID.FieldByName('FName').AsString
Else
Begin
ShowMessage('币别:'+Edit10.Text+'在币别表中不存在!');
Edit10.SetFocus ;
Exit
End;
end;
procedure TFrmDsCh00_Detal.GetPrice;
var StrSql:string;
begin
StrSql:='Select * From DsEl01 Where SU_NO='+''''+Edit6.Text+'''';
StrSql:=StrSql+' And El_No='+''''+Edit3.Text+'''';
StrSql:=StrSql+' And OD_ID='+''''+Edit9.Text+'''';
StrSql:=StrSql+' Order By Su_No,EL_No,OD_ID';
ADOQ_DsEl01.Active :=False;
ADOQ_DsEl01.SQL.Clear ;
ADOQ_DsEl01.SQL.Text:=StrSql;
ADOQ_DsEl01.Active :=True;
ADOQ_DsEl01.ExecSQL ;
end;
procedure TFrmDsCh00_Detal.Edit8DblClick(Sender: TObject);
var StrSql:string;
begin
StrSql:='Select EL_Price as 报价单价,SU_NO As 厂商代号,EL_NO As 料品编号, OD_ID as 币别代号 From DsEl01 Where SU_NO like '+''''+Edit6.Text+'%'+'''';
StrSql:=StrSql+' And El_No Like '+''''+Edit3.Text+'%'+'''';
StrSql:=StrSql+' Order By Su_No,EL_No,OD_ID';
Edit8.Text :=FloatToStr(StrToFloat(SetFindForm(Self.Caption,StrSql)));
end;
procedure TFrmDsCh00_Detal.Edit8Exit(Sender: TObject);
Var LPrice,Lprice1,StrPass:String;
begin
inherited;
Self.GetPrice ;
Lprice1:=FloatTostr(ADOQ_DsEL00.FieldByName('EL_LPrice').AsFloat);
IF Edit8.Text >LPrice1 Then
IF Application.MessageBox(PansiChar('单价:'+Edit8.Text+'高于历史最低报价单价,是否特采?'),'提示信息',4+32+256)=6 Then
Begin
While StrPass<>'dspace' Do
StrPass:=InputBox('提示信息','密码输入错误,请输入特采密码','');
Edit13.Text :='特采 历史最低报价为:'+Lprice1;
Exit;
End
Else
Begin
Edit8.SetFocus ;
Exit
End;
Lprice:=FloatTostr(ADOQ_DsEL01.FieldByName('EL_Price').AsFloat);
IF Edit8.Text>LPrice Then
Begin
ShowMessage('单价:'+Edit8.Text+'超过报价单价');
Edit13.Text :='Cost Up 报价为:'+Lprice;
End;
IF Edit8.Text<LPrice Then
Begin
ShowMessage('单价:'+Edit8.Text+'低于报价单价');
Edit13.Text :='Cost Down 报价为:'+Lprice;
End
end;
procedure TFrmDsCh00_Detal.Edit12Exit(Sender: TObject);
begin
inherited;
IF Edit12.Text ='' Then
Edit12.Text :='0.0';
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -