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

📄 frmdsch00_detalp.pas

📁 进销存管理系统包含开题报告、无错程序源代码、无个性标记的可执行程序、院优毕业论文、PPT答辩资料等
💻 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 + -