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

📄 ord510_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
字号:
unit Ord510_01;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BAS200_10, dxExEdtr, ActnList, DB, ADODB, Menus, dxCntner, dxTL,
  dxDBCtrl, dxDBGrid, ExtCtrls, ComCtrls, ToolWin, StdCtrls,
  wwdbdatetimepicker, Buttons, dxDBTLCl, dxGrClms;

type
  TOrd510_01Form = class(TBas200_10Form)
    lblDate: TLabel;
    sbSearch: TSpeedButton;
    edtFromDate: TwwDBDateTimePicker;
    edtToDate: TwwDBDateTimePicker;
    qryHrm150: TADOQuery;
    qryHrm150H150_001: TAutoIncField;
    qryHrm150H150_002: TWideStringField;
    qryHrm150H150_003: TWideStringField;
    ADOQuery1O510A_001: TWideStringField;
    ADOQuery1O100_002: TWideStringField;
    ADOQuery1O510A_002: TIntegerField;
    ADOQuery1O510A_003: TDateTimeField;
    ADOQuery1O510A_004: TSmallintField;
    ADOQuery1H150_002: TStringField;
    ADOQuery1H150_003: TStringField;
    ADOQuery1O510A_005: TIntegerField;
    ADOQuery1O510A_006: TIntegerField;
    ADOQuery1G100_002: TWideStringField;
    ADOQuery1G100_003: TWideStringField;
    ADOQuery1O510A_007: TIntegerField;
    ADOQuery1O510A_008: TBCDField;
    ADOQuery1O510A_009: TIntegerField;
    ADOQuery1O510A_010: TSmallintField;
    ADOQuery1O510A_011: TWideStringField;
    ADOQuery1O510A_012: TFloatField;
    ADOQuery1O510A_013: TBCDField;
    ADOQuery1O510A_014: TFloatField;
    ADOQuery1O510A_015: TFloatField;
    ADOQuery1O510A_016: TFloatField;
    ADOQuery1O150_002: TWideStringField;
    ADOQuery1O150_003: TWideStringField;
    ADOQuery1O150_005: TWideStringField;
    ADOQuery1O150_006: TWideStringField;
    ADOQuery1O150_012: TWideStringField;
    ADOQuery1O510A_017: TIntegerField;
    ADOQuery1O510A_018: TWideStringField;
    ADOQuery1O510A_020: TMemoField;
    ADOQuery1O510A_021: TMemoField;
    ADOQuery1O510A_022: TDateTimeField;
    ADOQuery1O510A_023: TWideStringField;
    ADOQuery1O510A_024: TDateTimeField;
    ADOQuery1O510A_025: TWideStringField;
    dxDBGrid1O510A_001: TdxDBGridColumn;
    dxDBGrid1O100_002: TdxDBGridColumn;
    dxDBGrid1O510A_003: TdxDBGridDateColumn;
    dxDBGrid1O510A_004: TdxDBGridMaskColumn;
    dxDBGrid1H150_002: TdxDBGridLookupColumn;
    dxDBGrid1H150_003: TdxDBGridLookupColumn;
    dxDBGrid1G100_002: TdxDBGridColumn;
    dxDBGrid1G100_003: TdxDBGridColumn;
    dxDBGrid1O510A_008: TdxDBGridCurrencyColumn;
    dxDBGrid1G110_002: TdxDBGridMaskColumn;
    dxDBGrid1O510A_010: TdxDBGridMaskColumn;
    dxDBGrid1O510A_013: TdxDBGridCurrencyColumn;
    dxDBGrid1O150_002: TdxDBGridColumn;
    dxDBGrid1O150_003: TdxDBGridColumn;
    dxDBGrid1O150_005: TdxDBGridColumn;
    dxDBGrid1O150_006: TdxDBGridColumn;
    dxDBGrid1O150_012: TdxDBGridColumn;
    dxDBGrid1O510A_018: TdxDBGridColumn;
    dxDBGrid1O510A_019: TdxDBGridMaskColumn;
    dxDBGrid1O510A_022: TdxDBGridDateColumn;
    dxDBGrid1O510A_023: TdxDBGridColumn;
    dxDBGrid1O510A_024: TdxDBGridDateColumn;
    dxDBGrid1O510A_025: TdxDBGridColumn;
    ADOQuery1G110_002: TWideStringField;
    ADOQuery1O510A_019: TSmallintField;
    dxDBGrid1O510A_012: TdxDBGridCurrencyColumn;
    dxDBGrid1O510A_014: TdxDBGridCurrencyColumn;
    dxDBGrid1O510A_015: TdxDBGridCurrencyColumn;
    dxDBGrid1O510A_016: TdxDBGridCurrencyColumn;
    procedure sbSearchClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ADOQuery1O510A_004GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure ADOQuery1O510A_010GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure ADOQuery1O510A_019GetText(Sender: TField; var Text: String;
      DisplayText: Boolean);
    procedure Action1Execute(Sender: TObject);
    procedure Action2Execute(Sender: TObject);
    procedure Action3Execute(Sender: TObject);
    procedure dxDBGrid1O510A_001DrawSummaryFooter(Sender: TObject;
      ACanvas: TCanvas; ARect: TRect; var AText: String;
      var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
      var ADone: Boolean);
    procedure ActPrintExecute(Sender: TObject);
  private
    AStatus:array[0..5] of string;
    APick:array[0..4] of string;
    AFrom:array[0..2] of string;
    { Private declarations }
  public
    procedure SetInterface; override;
    procedure InsertEvent; override;
    procedure UpdateEvent; override;
    procedure DeleteEvent; override;
    procedure BrowseEvent; override;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
    { Public declarations }
  end;

var
  Ord510_01Form: TOrd510_01Form;

implementation

uses SYSDATA, CommFun, Ord510_02, OrdComm;

{$R *.dfm}

procedure TOrd510_01Form.SetInterface;
begin
  inherited;
  Caption:=GetDBString('ORD51001001');  //销售定单维护
  lblDate.Caption:=GetDBString('ORD51001002');  //日期
  sbSearch.Caption:=GetDBString('ORD51001003');  //查询

  ADOQuery1O510A_001.DisplayLabel:=GetDBString('ORD51001004');  //销售单号
  ADOQuery1O100_002.DisplayLabel:=GetDBString('ORD51001005');  //销售类型
  ADOQuery1O510A_003.DisplayLabel:=GetDBString('ORD51001006');  //销售日期
  ADOQuery1O510A_004.DisplayLabel:=GetDBString('ORD51001007');  //定单状态
  ADOQuery1H150_002.DisplayLabel:=GetDBString('ORD51001008');  //员工编号
  ADOQuery1H150_003.DisplayLabel:=GetDBString('ORD51001009');  //员工姓名
  ADOQuery1G100_002.DisplayLabel:=GetDBString('ORD51001010');  //币别编号
  ADOQuery1G100_003.DisplayLabel:=GetDBString('ORD51001011');  //币别名称
  ADOQuery1O510A_008.DisplayLabel:=GetDBString('ORD51001012');  //币别汇率
  ADOQuery1G110_002.DisplayLabel:=GetDBString('ORD51001013');  //付款方式
  ADOQuery1O510A_010.DisplayLabel:=GetDBString('ORD51001014');  //来源类型
//  ADOQuery1O510A_011.DisplayLabel:=GetDBString('ORD51001015');  //来源单号
  ADOQuery1O510A_012.DisplayLabel:=GetDBString('ORD51001016');  //金额总计
  ADOQuery1O510A_013.DisplayLabel:=GetDBString('ORD51001017');  //折扣比率
  ADOQuery1O510A_014.DisplayLabel:=GetDBString('ORD51001018');  //折扣金额
  ADOQuery1O510A_015.DisplayLabel:=GetDBString('ORD51001019');  //特殊费用
  ADOQuery1O510A_016.DisplayLabel:=GetDBString('ORD51001020');  //应收金额
  ADOQuery1O150_002.DisplayLabel:=GetDBString('ORD51001021');  //客户编号
  ADOQuery1O150_003.DisplayLabel:=GetDBString('ORD51001022');  //客户名称
  ADOQuery1O150_005.DisplayLabel:=GetDBString('ORD51001023');  //电话号码
  ADOQuery1O150_006.DisplayLabel:=GetDBString('ORD51001024');  //传真号码
  ADOQuery1O150_012.DisplayLabel:=GetDBString('ORD51001025');  //客户址址
  ADOQuery1O510A_018.DisplayLabel:=GetDBString('ORD51001026');  //交货地址
  ADOQuery1O510A_019.DisplayLabel:=GetDBString('ORD51001027');  //提货方式
  ADOQuery1O510A_020.DisplayLabel:=GetDBString('ORD51001028');  //销售条款
  ADOQuery1O510A_021.DisplayLabel:=GetDBString('ORD51001029');  //备注说明
  ADOQuery1O510A_022.DisplayLabel:=GetDBString('ORD51001030');  //制单日期
  ADOQuery1O510A_023.DisplayLabel:=GetDBString('ORD51001031');  //制单人员
  ADOQuery1O510A_024.DisplayLabel:=GetDBString('ORD51001032');  //修改日期
  ADOQuery1O510A_025.DisplayLabel:=GetDBString('ORD51001033');  //修改人员

  //定单状态(0=新建,1=执行,2=发货,3=取消,4=锁定,5=完成)
  AStatus[0]:=GetDBString('ORD51001034');  //新建
  AStatus[1]:=GetDBString('ORD51001035');  //执行
  AStatus[2]:=GetDBString('ORD51001036');  //发货
  AStatus[3]:=GetDBString('ORD51001037');  //取消
  AStatus[4]:=GetDBString('ORD51001038');  //锁定
  AStatus[5]:=GetDBString('ORD51001039');  //完成

  //提货方式(0=自提,1=送货,2=托运,3=邮寄,4=快递)
  APick[0]:=GetDBString('ORD51001040');  //自提
  APick[1]:=GetDBString('ORD51001041');  //送货
  APick[2]:=GetDBString('ORD51001042');  //托运
  APick[3]:=GetDBString('ORD51001043');  //邮寄
  APick[4]:=GetDBString('ORD51001044');  //快递

  //来源类型(0=手工输入,1=销售报价,2=销售合同)
  AFrom[0]:=GetDBString('ORD51001045');  //手工输入
  AFrom[1]:=GetDBString('ORD51001046');  //销售报价
  AFrom[2]:=GetDBString('ORD51001047');  //销售合同
  Action1.Caption:=GetDBString('ORD51001048');  //转采
  Action2.Caption:=GetDBString('ORD51001049');  //解锁
  Action3.Caption:=GetDBString('ORD51001050');  //取消
end;

procedure TOrd510_01Form.sbSearchClick(Sender: TObject);
begin
  inherited;
//查询
  if (edtFromDate.Text='') or (edtToDate.Text='') then
  begin
    ShowMsg('UMS10000319');  //起止日期不可为空
    if edtFromDate.Text='' then edtFromDate.SetFocus else edtToDate.SetFocus;
    Abort;
  end;
  if edtFromDate.Date>edtToDate.Date then
  begin
    ShowMsg('UMS10000320');  //结束日期不能小于起始日期
    edtToDate.SetFocus;
    Abort;
  end;

  Screen.Cursor:=crHourGlass;
  ADOQuery1.DisableControls;
  ADOQuery1.Close;
  ADOQuery1.SQL.Clear;
  ADOQuery1.SQL.Add('select A.*,');
  ADOQuery1.SQL.Add('    B.O100_002,');
  ADOQuery1.SQL.Add('    C.O150_002,C.O150_003,C.O150_005,C.O150_006,C.O150_012,');
  ADOQuery1.SQL.Add('    D.G100_002,D.G100_003,');
  ADOQuery1.SQL.Add('    E.G110_002');
  ADOQuery1.SQL.Add('from ORD510A A,ORD100 B,ORD150 C,GLD100 D,GLD110 E');
  ADOQuery1.SQL.Add('where A.O510A_002=B.O100_001 and A.O510A_017=C.O150_001 and A.O510A_007=D.G100_001 and A.O510A_009=E.G110_001');
  ADOQuery1.SQL.Add('      and O510A_003>='+GetDateString(edtFromDate.Date)+' and O510A_003<='+GetDateString(edtToDate.Date));
  ADOQuery1.SQL.Add('order by A.O510A_001');
  ADOQuery1.Open;
  ARecordCount:=GetDataSetCount(ADOQuery1);
  ADOQuery1.EnableControls;
  Screen.Cursor:=crDefault;
end;

procedure TOrd510_01Form.FormCreate(Sender: TObject);
var
  ADate:TDateTime;
begin
  inherited;
  ADate:=GetServerDate;
  edtFromDate.Date:=GetMonthFirstDate(ADate);
  edtToDate.Date:=GetMonthEndDate(ADate);
  sbSearch.Click;
end;

procedure TOrd510_01Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
//
end;

procedure TOrd510_01Form.ReportGetValue(const ParName: String; var ParValue: Variant);
begin
  inherited;
  if ParName='ADate' then ParValue:=lblDate.Caption  //日期
  else if ParName='AFromDate' then ParValue:=edtFromDate.Text  //
  else if ParName='AToDate' then ParValue:=edtToDate.Text  //
end;

procedure TOrd510_01Form.DeleteEvent;
var
  ACode:string;
begin
  inherited;
//删除
  //0=新建,1=执行,2=发货,3=取消,4=锁定,5=完成
  if ADOQuery1.FieldByName('O510A_004').AsInteger<>0 then
  begin
    ShowMsg('UMS10000531');  //不允许删除非新建状态的销售报价单
    Abort;
  end;
  ACode:=ADOQuery1.FieldByName('O510A_001').Value;
  //更新报价单的状态,当销售定单删除时,删除前调用
  UpdataOrd500(ACode);
  //删除销售定单
  SYSDM.qryQuery.Close;
  SYSDM.qryQuery.SQL.Clear;
  SYSDM.qryQuery.SQL.Add('delete from ORD510B where O510B_001='+''''+ACode+'''');
  SYSDM.qryQuery.ExecSQL;
  DeleteTableRecord(ADOQuery1,'ORD510A','O510A_001='+''''+ACode+'''');
end;

procedure TOrd510_01Form.InsertEvent;
begin
  inherited;
  Ord510_02Form:=TOrd510_02Form.Create(Application);
  Ord510_02Form.OpenData('');
  Ord510_02Form.ActInsert.Execute;
  Ord510_02Form.ShowModal;
end;

procedure TOrd510_01Form.UpdateEvent;
begin
  inherited;
  //0=新建,1=执行,2=发货,3=取消,4=锁定,5=完成
  if ADOQuery1.FieldByName('O510A_004').AsInteger<>0 then
  begin
    ShowMsg('UMS10000530');  //不允许修改非新建状态的销售报价单
    Abort;
  end;
  Ord510_02Form:=TOrd510_02Form.Create(Application);
  Ord510_02Form.OpenData(ADOQuery1.FieldByName('O510A_001').Value);
  Ord510_02Form.ActUpdate.Execute;
  Ord510_02Form.ShowModal;
end;

procedure TOrd510_01Form.BrowseEvent;
begin
  inherited;
  Ord510_02Form:=TOrd510_02Form.Create(Application);
  Ord510_02Form.OpenData(ADOQuery1.FieldByName('O510A_001').Value);
  Ord510_02Form.ShowModal;
end;

procedure TOrd510_01Form.ADOQuery1O510A_004GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Text:=AStatus[Sender.AsInteger];
end;

procedure TOrd510_01Form.ADOQuery1O510A_010GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Text:=AFrom[Sender.AsInteger];
end;

procedure TOrd510_01Form.ADOQuery1O510A_019GetText(Sender: TField;
  var Text: String; DisplayText: Boolean);
begin
  inherited;
  if ADOQuery1.IsEmpty then Exit;
  Text:=APick[Sender.AsInteger];
end;

procedure TOrd510_01Form.Action1Execute(Sender: TObject);
begin
  inherited;
//转采
  //0=新建,1=执行,2=发货,3=取消,4=锁定,5=完成
  if ADOQuery1.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;
  if ADOQuery1O510A_004.Value<>0 then
  begin
    ShowMsg('UMS10000545');  //仅新建状态的销售定单可以生成采购定单
    Abort;
  end;
  //销售定单生成采购定单
  CreatePurchase(ADOQuery1O510A_001.AsString);
  ADOQuery1.Edit;
  ADOQuery1O510A_004.Value:=1;
  ADOQuery1.Post;
  ActRefresh.Execute;
  ShowMsg('UMS10000546');  //销售定单已成功生成采购定单
end;

procedure TOrd510_01Form.Action2Execute(Sender: TObject);
begin
  inherited;
//解锁
  if ADOQuery1.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;
  if ADOQuery1O510A_004.Value<>1 then
  begin
    ShowMsg('UMS10000547');  //仅锁定状态的销售定单可以解锁
    Abort;
  end;
  ADOQuery1.Edit;
  ADOQuery1O510A_004.Value:=0;
  ADOQuery1.Post;
  ActRefresh.Execute;
  ShowMsg('UMS10000548');  //销售定单已成功解锁
end;

procedure TOrd510_01Form.Action3Execute(Sender: TObject);
begin
  inherited;
//取消
  if ADOQuery1.IsEmpty then
  begin
    ShowMsg('UMS10000002');  //表记录为空,操作无效
    Abort;
  end;
  if not (ADOQuery1O510A_004.Value in [1,2]) then
  begin
    ShowMsg('UMS10000549');  //仅执行和发货状态的销售定单可以取消
    Abort;
  end;
  ADOQuery1.Edit;
  ADOQuery1O510A_004.Value:=3;
  ADOQuery1.Post;
  ActRefresh.Execute;
  ShowMsg('UMS10000550');  //销售定单已成功设置为取消状态
end;

procedure TOrd510_01Form.dxDBGrid1O510A_001DrawSummaryFooter(
  Sender: TObject; ACanvas: TCanvas; ARect: TRect; var AText: String;
  var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
  var ADone: Boolean);
begin
  inherited;
  AColor:=clWhite;
  AText:=GetDBString('COM00004002')+IntToStr(ARecordCount);  //记录总数:
end;

procedure TOrd510_01Form.ActPrintExecute(Sender: TObject);
begin
  AReportName:='';
  inherited;
end;

initialization
  RegisterClass(TOrd510_01Form);

finalization
  UnRegisterClass(TOrd510_01Form);

end.

⌨️ 快捷键说明

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