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

📄 ord130_02.pas.svn-base

📁 开源的网站整站程序,功能强大带采集系统.
💻 SVN-BASE
字号:
unit Ord130_02;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BAS200_16, DB, wwdbdatetimepicker, StdCtrls, Buttons, ADODB,
  Menus, ExtCtrls, Grids, Wwdbigrd, Wwdbgrid;

type
  TOrd130_02Form = class(TBas200_16Form)
    lblItem: TLabel;
    lblSpec: TLabel;
    lblCurr: TLabel;
    lblDate: TLabel;
    lblPrice: TLabel;
    sbItem: TSpeedButton;
    lblUnit: TLabel;
    edtItem: TEdit;
    edtItemName: TEdit;
    edtSpec: TEdit;
    cbCurr: TComboBox;
    edtDate: TwwDBDateTimePicker;
    edtPrice: TEdit;
    edtUnit: TEdit;
    qryInv150: TADOQuery;
    qryInv150I150_002: TWideStringField;
    qryInv150I150_003: TWideStringField;
    qryInv150I150_004: TWideStringField;
    qryInv150I140_002: TWideStringField;
    qryInv150I140_003: TWideStringField;
    qryInv150I150_001: TAutoIncField;
    qryInv150I140_001: TAutoIncField;
    qryGld100: TADOQuery;
    qryGld100G100_001: TAutoIncField;
    qryGld100G100_002: TWideStringField;
    qryGld100G100_003: TWideStringField;
    qryGld100G100_004: TBooleanField;
    qryGld100G100_005: TFloatField;
    qryGld100G100_006: TWideStringField;
    ADOQuery1I150_002: TStringField;
    ADOQuery1I150_003: TStringField;
    ADOQuery1I150_004: TStringField;
    ADOQuery1I140_002: TStringField;
    ADOQuery1I140_003: TStringField;
    ADOQuery1G100_002: TStringField;
    ADOQuery1O130_003: TDateTimeField;
    ADOQuery1O130_004: TBCDField;
    ADOQuery1O130_001: TIntegerField;
    ADOQuery1O130_002: TIntegerField;
    qryOrd130: TADOQuery;
    Panel1: TPanel;
    adsOrd130: TADODataSet;
    dsOrd130: TDataSource;
    adsOrd130FItem: TStringField;
    adsOrd130FItemName: TStringField;
    adsOrd130FPrice: TFloatField;
    adsOrd130FCurr: TStringField;
    adsOrd130FDate: TDateTimeField;
    qryOrd130I150_002: TWideStringField;
    qryOrd130I150_003: TWideStringField;
    qryOrd130O130_004: TFloatField;
    qryOrd130G100_002: TWideStringField;
    qryOrd130O130_003: TDateTimeField;
    GroupBox1: TGroupBox;
    wwDBGrid1: TwwDBGrid;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure edtPriceKeyPress(Sender: TObject; var Key: Char);
    procedure sbItemClick(Sender: TObject);
    procedure edtItemExit(Sender: TObject);
  private
    AOldItem,AOldCurr:Integer;
    AOldDate:TDateTime;
    procedure GetSameItem(AItem:string);
    { Private declarations }
  public
    procedure OpenData(AItemNo,ACurrNo:Integer;ADate:TDateTime);
    procedure SetInterface; override;
    procedure GetDataInfo; override;
    procedure SetEmptyInit; override;
    procedure InsertInit; override;
    procedure TableBeforePost; override;
    procedure TableAfterPost; override;
    { Public declarations }
  end;

var
  Ord130_02Form: TOrd130_02Form;

implementation

uses SYSDATA, CommFun, HwSelData;

{$R *.dfm}

procedure TOrd130_02Form.OpenData(AItemNo,ACurrNo:Integer;ADate:TDateTime);
begin
  if AItemNo=0 then AMode:='ADD' else AMode:='UPD';
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select * from ORD130 order by O130_001,O130_002,O130_003');
  ADOQuery1.Open;
  ADOQuery1.Locate('O130_001;O130_002;O130_003',VarArrayOf([AItemNo,ACurrNo,ADate]),[]);
  ADOQuery1AfterScroll(ADOQuery1);
end;

procedure TOrd130_02Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('ORD13002001');  //销售价格维护
  lblItem.Caption:=GetDBString('ORD13002002');  //产品编号
  lblSpec.Caption:=GetDBString('ORD13002003');  //规格型号
  lblUnit.Caption:=GetDBString('ORD13002004');  //计量单位
  lblCurr.Caption:=GetDBString('ORD13002005');  //币别名称
  lblDate.Caption:=GetDBString('ORD13002006');  //生效日期
  lblPrice.Caption:=GetDBString('ORD13002007');  //销售价格
  bbtnOk.Caption:=GetDBString('ORD13002008');  //保存(&S)
  bbtnExit.Caption:=GetDBString('ORD13002009');  //退出(&X)

  qryInv150I150_002.DisplayLabel:=GetDBString('ORD13002010');  //产品编号
  qryInv150I150_003.DisplayLabel:=GetDBString('ORD13002011');  //产品名称
  qryInv150I150_004.DisplayLabel:=GetDBString('ORD13002012');  //规格型号
  qryInv150I140_002.DisplayLabel:=GetDBString('ORD13002013');  //单位编号
  qryInv150I140_003.DisplayLabel:=GetDBString('ORD13002014');  //单位名称

  adsOrd130FItem.DisplayLabel:=GetDBString('ORD13002015');      //料品编号
  adsOrd130FItemName.DisplayLabel:=GetDBString('ORD13002016');  //料品名称
  adsOrd130FPrice.DisplayLabel:=GetDBString('ORD13002017');     //销售价格
  adsOrd130FCurr.DisplayLabel:=GetDBString('ORD13002018');      //币别编号
  adsOrd130FDate.DisplayLabel:=GetDBString('ORD13002019');      //生效日期

  cbCurr.Clear;
  qryGld100.Close;
  qryGld100.Open;
  qryGld100.First;
  while not qryGld100.Eof do
  begin
    cbCurr.Items.Add(qryGld100.FieldByName('G100_002').AsString);
    qryGld100.Next;
  end;
  cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ACurrID);
  adsOrd130.Close;
  adsOrd130.CreateDataSet;
end;

procedure TOrd130_02Form.FormCreate(Sender: TObject);
begin
  inherited;
  qryInv150.Open;
end;

procedure TOrd130_02Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  qryGld100.Close;
  qryInv150.Close;
end;

procedure TOrd130_02Form.GetDataInfo;
begin
  inherited;
  edtItem.Text:=ADOQuery1.FieldByName('I150_002').AsString;
  edtItemName.Text:=ADOQuery1.FieldByName('I150_003').AsString;
  edtSpec.Text:=ADOQuery1.FieldByName('I150_004').AsString;
  edtUnit.Text:=ADOQuery1.FieldByName('I140_003').AsString;
  cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ADOQuery1.FieldByName('G100_002').AsString);
  edtDate.Date:=ADOQuery1.FieldByName('O130_003').Value;
  edtPrice.Text:=ADOQuery1.FieldByName('O130_004').AsString;

  AOldItem:=ADOQuery1.FieldByName('O130_001').AsInteger;
  AOldCurr:=ADOQuery1.FieldByName('O130_002').AsInteger;
  AOldDate:=ADOQuery1.FieldByName('O130_003').AsDateTime;

  GetSameItem(edtItem.Text);
end;

procedure TOrd130_02Form.InsertInit;
begin
  inherited;
  SetEmptyInit;
end;

procedure TOrd130_02Form.SetEmptyInit;
begin
  inherited;
  edtItem.Text:='';
  edtItemName.Text:='';
  edtSpec.Text:='';
  cbCurr.ItemIndex:=cbCurr.Items.IndexOf(ACurrID);
  edtDate.Date:=GetServerDate;
  edtPrice.Text:='0.00';
  if Visible then edtItem.SetFocus;
  adsOrd130.Close;
  adsOrd130.CreateDataSet;
end;

procedure TOrd130_02Form.TableAfterPost;
begin
  inherited;

end;

procedure TOrd130_02Form.TableBeforePost;
var
  AItemNo,ACurrNo:Integer;
begin
  inherited;
  if trim(edtItem.Text)='' then
  begin
    ShowMsg('UMS10000274');  //产品编号不能为空
    edtItem.SetFocus;
    Abort;
  end;
  if not qryInv150.Locate('I150_002',edtItem.Text,[]) then
  begin
    ShowMsg('UMS10000267');  //输入的产品编号无效
    edtItem.SetFocus;
    Abort;
  end;
  AItemNo:=qryInv150.FieldByName('I150_001').Value;
  if trim(cbCurr.Text)='' then
  begin
    ShowMsg('UMS10000020');  //币别名称不能为空
    cbCurr.SetFocus;
    Abort;
  end;
  if not qryGld100.Locate('G100_002',cbCurr.Text,[]) then
  begin
    ShowMsg('UMS10000412');  //输入的币别编号无效
    cbCurr.SetFocus;
    Abort;
  end;
  ACurrNo:=qryGld100.FieldByName('G100_001').Value;
  if trim(edtDate.Text)='' then
  begin
    ShowMsg('UMS10000235');  //生效日期不能为空
    edtDate.SetFocus;
    Abort;
  end;
  if trim(edtPrice.Text)='' then
  begin
    ShowMsg('UMS10000413');  //销售价格不能为空或零
    edtPrice.SetFocus;
    Abort;
  end;
  if (AOldItem<>AItemNo) or (AOldCurr<>ACurrNo) or (AOldDate<>edtDate.Date) then
  begin
    if IsExists('select 1 from ORD130 where O130_001='+IntToStr(AItemNo)+' and O130_002='+IntToStr(ACurrNo)+' and O130_003='+GetDateString(edtDate.Date)) then
    begin
      ShowMsg('UMS10000414');  //相同信息的记录已存在,请重新输入
      edtDate.SetFocus;
      Abort;
    end;
  end;

  if AMode='ADD' then ADOQuery1.Append else ADOQuery1.Edit;
  ADOQuery1.FieldByName('O130_001').Value:=AItemNo;
  ADOQuery1.FieldByName('O130_002').Value:=ACurrNo;
  ADOQuery1.FieldByName('O130_003').Value:=edtDate.Date;
  ADOQuery1.FieldByName('O130_004').AsString:=edtPrice.Text;
end;

procedure TOrd130_02Form.edtPriceKeyPress(Sender: TObject; var Key: Char);
begin
  inherited;
  ValidFloat(Sender,Key);
end;

procedure TOrd130_02Form.sbItemClick(Sender: TObject);
begin
  inherited;
//产品编号
  if not edtItem.Focused then edtItem.SetFocus;
  HwSelDataForm:=THwSelDataForm.Create(Application);
  HwSelDataForm.OpenSelData(qryInv150,nil);
  if HwSelDataForm.ShowModal=1 then
  begin
    edtItem.Text:=qryInv150.FieldByName('I150_002').AsString;
    edtItemName.Text:=qryInv150.FieldByName('I150_003').AsString;
    edtSpec.Text:=qryInv150.FieldByName('I150_004').AsString;
    edtUnit.Text:=qryInv150.FieldByName('I140_003').AsString;
    GetSameItem(edtItem.Text);
  end;
  
end;

procedure TOrd130_02Form.edtItemExit(Sender: TObject);
begin
  inherited;
//产品编号
  if trim(edtItem.Text)='' then Exit;
  if qryInv150.Locate('I150_002',edtItem.Text,[]) then
  begin
    edtItem.Text:=qryInv150.FieldByName('I150_002').Value;
    edtItemName.Text:=qryInv150.FieldByName('I150_003').Value;
    edtSpec.Text:=qryInv150.FieldByName('I150_004').AsString;
    edtUnit.Text:=qryInv150.FieldByName('I140_003').AsString;
    GetSameItem(edtItem.Text);
  end else
  begin
    edtItem.Text:='';
    edtItemName.Text:='';
    edtUnit.Text:='';
    ShowMsg('UMS10000267');  //输入的产品编号无效
    edtItem.SetFocus;
    Abort;
  end;
end;

procedure TOrd130_02Form.GetSameItem(AItem: string);
begin
  qryOrd130.Close;
  qryOrd130.SQL.Clear;
  qryOrd130.SQL.Add('select I150_002,I150_003,O130_004,G100_002,O130_003');
  qryOrd130.SQL.Add(' from ORD130,GLD100,INV150');
  qryOrd130.SQL.Add(' where O130_002=G100_001 and O130_001=I150_001 and I150_002='+''''+AItem+''''+' Order By O130_003');
  qryOrd130.Open;
  qryOrd130.First;
  adsOrd130.Close;
  adsOrd130.CreateDataSet;
  while not qryOrd130.Eof do
  begin
    if not (adsOrd130.State in [dsInsert,dsEdit]) then adsOrd130.Append;
    adsOrd130.FieldByName('FItem').Value:=qryOrd130.fieldByName('I150_002').Value;
    adsOrd130.FieldByName('FItemName').Value:=qryOrd130.fieldByName('I150_003').Value;
    adsOrd130.FieldByName('FPrice').Value:=qryOrd130.fieldByName('O130_004').Value;
    adsOrd130.FieldByName('FCurr').Value:=qryOrd130.fieldByName('G100_002').Value;
    adsOrd130.FieldByName('FDate').Value:=qryOrd130.fieldByName('O130_003').Value;
    adsOrd130.Post;
    qryOrd130.Next;
  end;
  wwDBGrid1.Columns[0].ReadOnly:=True;
  wwDBGrid1.Columns[1].ReadOnly:=True;
  wwDBGrid1.Columns[2].ReadOnly:=True;
  wwDBGrid1.Columns[3].ReadOnly:=True;
  wwDBGrid1.Columns[4].ReadOnly:=True;
end;

initialization
  RegisterClass(TOrd130_02Form);

finalization
  UnRegisterClass(TOrd130_02Form);

end.

⌨️ 快捷键说明

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