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

📄 ser530_02.pas

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit Ser530_02;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Bas100_01, StdCtrls, Buttons, wwdbdatetimepicker, ComCtrls,
  Menus, DB, ADODB, ActnList, ToolWin, dxdbtrel, dxCntner, dxEditor, StrUtils,
  dxExEdtr, dxEdLib;

type
  TSer530_02Form = class(TBas100_01Form)
    gbInfo: TGroupBox;
    lblContinue: TLabel;
    lblDate: TLabel;
    cbContinue: TComboBox;
    edtDate: TwwDBDateTimePicker;
    gbDetail: TGroupBox;
    lblDetails: TLabel;
    memDetails: TMemo;
    qryOrd153: TADOQuery;
    lblCreateDate: TLabel;
    lblCreateBy: TLabel;
    lblUpdateDate: TLabel;
    lblUpdateBy: TLabel;
    edtCreateBy: TEdit;
    edtUpdateBy: TEdit;
    lblPerson: TLabel;
    edtPerson: TEdit;
    qrySer530: TADOQuery;
    qrySer110: TADOQuery;
    qryOrd153I150_002: TWideStringField;
    qryOrd153O153_003: TWideStringField;
    qryOrd153I150_003: TWideStringField;
    qryOrd153I150_004: TWideStringField;
    qryOrd153I120_003: TWideStringField;
    qryOrd153O150_002: TWideStringField;
    qryOrd153O150_003: TWideStringField;
    qryOrd153I150_001: TAutoIncField;
    CoolBar1: TCoolBar;
    ToolBar2: TToolBar;
    tlbFirst: TToolButton;
    tlbPrior: TToolButton;
    tlbNext: TToolButton;
    tlbLast: TToolButton;
    ToolButton1: TToolButton;
    tlbInsert: TToolButton;
    tlbUpdate: TToolButton;
    tlbDelete: TToolButton;
    ToolButton2: TToolButton;
    tlbSave: TToolButton;
    tlbCancel: TToolButton;
    ToolButton3: TToolButton;
    tlbRefresh: TToolButton;
    tlbLocate: TToolButton;
    tlbSearch: TToolButton;
    tlbPrint: TToolButton;
    ToolButton6: TToolButton;
    tlbExit: TToolButton;
    ActionList1: TActionList;
    ActFirst: TAction;
    ActPrior: TAction;
    ActNext: TAction;
    ActLast: TAction;
    ActInsert: TAction;
    ActUpdate: TAction;
    ActDelete: TAction;
    ActSave: TAction;
    ActCancel: TAction;
    ActRefresh: TAction;
    ActLocate: TAction;
    ActSearch: TAction;
    ActPrint: TAction;
    ActExit: TAction;
    dsSer530: TDataSource;
    qryInv150: TADOQuery;
    edtCreateDate: TEdit;
    edtUpdateDate: TEdit;
    qryInv150I150_001: TAutoIncField;
    qryInv150I150_002: TWideStringField;
    qryInv150I150_003: TWideStringField;
    qryOrd153O153_007: TDateTimeField;
    qryOrd153O153_008: TDateTimeField;
    qryOrd153O153_009: TDateTimeField;
    qryOrd153O153_010: TDateTimeField;
    qryOrd153O153_012: TSmallintField;
    edtCallName: TEdit;
    sbCallCode: TSpeedButton;
    edtCallCode: TEdit;
    lblCallCode: TLabel;
    edtCode: TEdit;
    lblCode: TLabel;
    gbCust: TGroupBox;
    lblCust: TLabel;
    lblAddress: TLabel;
    lblPhone: TLabel;
    lblFax: TLabel;
    lblItem: TLabel;
    lblMacNo: TLabel;
    edtCust: TEdit;
    edtCustName: TEdit;
    edtAddress: TEdit;
    edtPhone: TEdit;
    edtFax: TEdit;
    edtItem: TEdit;
    edtItemName: TEdit;
    edtMacNo: TEdit;
    qrySer530S530_001: TWideStringField;
    qrySer530S530_002: TWideStringField;
    qrySer530S530_004: TDateTimeField;
    qrySer530S530_005: TMemoField;
    qrySer530S530_006: TIntegerField;
    qrySer530S530_007: TDateTimeField;
    qrySer530S530_008: TWideStringField;
    qrySer530S530_009: TDateTimeField;
    qrySer530S530_010: TWideStringField;
    qrySer530S500_002: TWideStringField;
    qrySer530S500_018: TIntegerField;
    qrySer530S500_019: TWideStringField;
    qrySer530O150_001: TAutoIncField;
    qrySer530O150_002: TWideStringField;
    qrySer530O150_003: TWideStringField;
    qrySer530O150_005: TWideStringField;
    qrySer530O150_006: TWideStringField;
    qrySer530O150_012: TWideStringField;
    qrySer530I150_002: TStringField;
    qrySer530I150_003: TStringField;
    qrySer530S530_003: TWideStringField;
    qrySer530S110_003: TWideStringField;
    qrySer500: TADOQuery;
    qrySer500S500_001: TWideStringField;
    qrySer500S500_002: TWideStringField;
    qrySer500I150_002: TStringField;
    qrySer500I150_003: TStringField;
    qrySer500O150_002: TWideStringField;
    qrySer500O150_003: TWideStringField;
    qrySer500S500_019: TWideStringField;
    qrySer500O150_001: TAutoIncField;
    qrySer500S500_018: TIntegerField;
    qrySer500S500_033: TMemoField;
    procedure FormCreate(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure ActFirstExecute(Sender: TObject);
    procedure ActPriorExecute(Sender: TObject);
    procedure ActNextExecute(Sender: TObject);
    procedure ActLastExecute(Sender: TObject);
    procedure ActInsertExecute(Sender: TObject);
    procedure ActUpdateExecute(Sender: TObject);
    procedure ActDeleteExecute(Sender: TObject);
    procedure ActSaveExecute(Sender: TObject);
    procedure ActCancelExecute(Sender: TObject);
    procedure ActRefreshExecute(Sender: TObject);
    procedure ActLocateExecute(Sender: TObject);
    procedure ActSearchExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure qrySer530AfterScroll(DataSet: TDataSet);
    procedure qrySer530CalcFields(DataSet: TDataSet);
    procedure sbCallCodeClick(Sender: TObject);
    procedure edtCallCodeExit(Sender: TObject);
  private
    AMode,AOldCallCode:string;
    procedure SetButtonState(AInsUpd:Boolean);
    procedure SetInterface;
    procedure SaveData;
    procedure ReportGetValue(const ParName: String; var ParValue: Variant);
    { Private declarations }
  public
    procedure OpenData(ACode:string);
    { Public declarations }
  end;

var
  Ser530_02Form: TSer530_02Form;

implementation

uses SYSDATA, HwSelData, CommFun, TasComm, SerComm, Tas510_02;

{$R *.dfm}

//设置按钮状态
procedure TSer530_02Form.SetButtonState(AInsUpd:Boolean);
begin
  ActFirst.Enabled:=not AInsUpd;
  ActPrior.Enabled:=not AInsUpd;
  ActNext.Enabled:=not AInsUpd;
  ActLast.Enabled:=not AInsUpd;
  ActInsert.Enabled:=(ARights[2]='Y') and (not AInsUpd);
  ActUpdate.Enabled:=(ARights[3]='Y') and (not AInsUpd);
  ActDelete.Enabled:=(ARights[4]='Y') and (not AInsUpd);
  ActSave.Enabled:=AInsUpd;
  ActCancel.Enabled:=AInsUpd;
  ActRefresh.Enabled:=not AInsUpd;
  ActLocate.Enabled:=not AInsUpd;
  ActSearch.Enabled:=not AInsUpd;
  ActPrint.Enabled:=(ARights[5]='Y') and (not AInsUpd);
  ActExit.Enabled:=True;
  gbInfo.Enabled:=AInsUpd;
  gbCust.Enabled:=AInsUpd;
  gbDetail.Enabled:=AInsUpd;
end;

procedure TSer530_02Form.SetInterface;
begin
  Caption:=GetDBString('SER53002001');  //来电汇报维护
  ActFirst.Caption:=GetDBString('COM00005001');  //最前
  ActPrior.Caption:=GetDBString('COM00005002');  //上移
  ActNext.Caption:=GetDBString('COM00005003');  //下移
  ActLast.Caption:=GetDBString('COM00005004');  //最后
  ActInsert.Caption:=GetDBString('COM00005005');  //新增
  ActUpdate.Caption:=GetDBString('COM00005006');  //修改
  ActDelete.Caption:=GetDBString('COM00005007');  //删除
  ActSave.Caption:=GetDBString('COM00005008');  //保存
  ActCancel.Caption:=GetDBString('COM00005009');  //取消
  ActRefresh.Caption:=GetDBString('COM00005010');  //刷新
  ActLocate.Caption:=GetDBString('COM00005011');  //查找
  ActSearch.Caption:=GetDBString('COM00005012');  //查询
  ActPrint.Caption:=GetDBString('COM00005013');  //打印
  ActExit.Caption:=GetDBString('COM00005015');  //退出

  ActFirst.Hint:=GetDBString('COM00005001',2);  //移到第一条记录
  ActPrior.Hint:=GetDBString('COM00005002',2);  //移到上一条记录
  ActNext.Hint:=GetDBString('COM00005003',2);  //移到下一条记录
  ActLast.Hint:=GetDBString('COM00005004',2);  //移到最后一条记录
  ActInsert.Hint:=GetDBString('COM00005005',2);  //新增一条记录
  ActUpdate.Hint:=GetDBString('COM00005006',2);  //修改当前记录
  ActDelete.Hint:=GetDBString('COM00005007',2);  //删除当前记录
  ActSave.Hint:=GetDBString('COM00005008',2);  //保存编辑的记录
  ActCancel.Hint:=GetDBString('COM00005009',2);  //取消编辑的记录
  ActRefresh.Hint:=GetDBString('COM00005010',2);  //取得最新的数据
  ActLocate.Hint:=GetDBString('COM00005011',2);  //快速定位记录
  ActSearch.Hint:=GetDBString('COM00005012',2);  //按条件查询数据
  ActPrint.Hint:=GetDBString('COM00005013',2);  //将数据打印出来
  ActExit.Hint:=GetDBString('COM00005015',2);  //关闭当前窗口

  gbInfo.Caption:=GetDBString('SER53002002');  //基本信息
  gbCust.Caption:=GetDBString('SER53002003');  //客户产品
  gbDetail.Caption:=GetDBString('SER53002004');  //详细说明

  lblCode.Caption:=GetDBString('SER53002005');  //汇报编号
  lblCallCode.Caption:=GetDBString('SER53002006');  //来电编号
  lblPerson.Caption:=GetDBString('SER53002007');  //汇报人员
  lblDate.Caption:=GetDBString('SER53002008');  //汇报日期
  lblContinue.Caption:=GetDBString('SER53002009');  //后续处理

  lblCust.Caption:=GetDBString('SER53002010');  //客户编号
  lblPhone.Caption:=GetDBString('SER53002011');  //电话号码
  lblAddress.Caption:=GetDBString('SER53002012');  //客户地址
  lblFax.Caption:=GetDBString('SER53002013');  //传真号码
  lblItem.Caption:=GetDBString('SER53002014');  //产品编号
  lblMacNo.Caption:=GetDBString('SER53002015');  //机身编号

  lblDetails.Caption:=GetDBString('SER53002016');  //汇报内容
  lblCreateDate.Caption:=GetDBString('SER53002017');  //制单日期
  lblCreateBy.Caption:=GetDBString('SER53002018');  //制单人员
  lblUpdateDate.Caption:=GetDBString('SER53002019');  //修改日期
  lblUpdateBy.Caption:=GetDBString('SER53002020');  //修改人员

  qrySer530S530_001.DisplayLabel:=GetDBString('SER53002021');  //汇报编号
  qrySer530S530_002.DisplayLabel:=GetDBString('SER53002022');  //来电编号
  qrySer530S500_002.DisplayLabel:=GetDBString('SER53002023');  //来电名称
  qrySer530S530_003.DisplayLabel:=GetDBString('SER53002024');  //汇报人员
  qrySer530S530_004.DisplayLabel:=GetDBString('SER53002025');  //汇报日期
  qrySer530S110_003.DisplayLabel:=GetDBString('SER53002026');  //后续处理
  qrySer530S530_007.DisplayLabel:=GetDBString('SER53002027');  //制单日期
  qrySer530S530_008.DisplayLabel:=GetDBString('SER53002028');  //制单人员
  qrySer530S530_009.DisplayLabel:=GetDBString('SER53002029');  //修改日期
  qrySer530S530_010.DisplayLabel:=GetDBString('SER53002030');  //修改人员
  qrySer530S500_019.DisplayLabel:=GetDBString('SER53002031');  //机身编号
  qrySer530I150_002.DisplayLabel:=GetDBString('SER53002032');  //产品编号
  qrySer530I150_003.DisplayLabel:=GetDBString('SER53002033');  //产品名称
  qrySer530S500_018.DisplayLabel:=GetDBString('SER53002034');  //产品编号
  qrySer530O150_002.DisplayLabel:=GetDBString('SER53002035');  //客戶编号
  qrySer530O150_003.DisplayLabel:=GetDBString('SER53002036');  //客戶名称
  qrySer530O150_005.DisplayLabel:=GetDBString('SER53002037');  //电话号码
  qrySer530O150_006.DisplayLabel:=GetDBString('SER53002038');  //传真号码
  qrySer530O150_012.DisplayLabel:=GetDBString('SER53002039');  //客戶地址
  qrySer530S530_005.DisplayLabel:=GetDBString('SER53002040');  //汇报内容
  qrySer530S530_006.DisplayLabel:=GetDBString('SER53002041');  //后续处理

  qrySer500S500_001.DisplayLabel:=GetDBString('SER53002042');  //来电编号
  qrySer500S500_002.DisplayLabel:=GetDBString('SER53002043');  //来电名称
  qrySer500I150_002.DisplayLabel:=GetDBString('SER53002044');  //产品编号
  qrySer500I150_003.DisplayLabel:=GetDBString('SER53002045');  //产品名称
  qrySer500O150_002.DisplayLabel:=GetDBString('SER53002046');  //客戶编号
  qrySer500O150_003.DisplayLabel:=GetDBString('SER53002047');  //客戶名称
  qrySer500S500_019.DisplayLabel:=GetDBString('SER53002048');  //机身编号

  edtCode.Enabled:=not GetAutoCoding('SER530');
  if edtCode.Enabled then edtCode.Color:=AEnableColor else edtCode.Color:=ADisableColor;

  cbContinue.Clear;
  qrySer110.Close;
  qrySer110.SQL.Clear;
  qrySer110.SQL.Add('select * from SER110 where S110_001 in (3,4,13,12)');  //已報價,已簽回,完成
  qrySer110.Open;
  while not qrySer110.Eof do
  begin
    cbContinue.Items.Add(qrySer110.FieldByName('S110_003').AsString);
    qrySer110.Next;
  end;
  cbContinue.ItemIndex:=0; //已報價
end;

procedure TSer530_02Form.OpenData(ACode:string);
begin
  qrySer530.DisableControls;
  qrySer530.Close;
  qrySer530.SQL.Clear;
  qrySer530.SQL.Add('select A.*,');
  qrySer530.SQL.Add('       B.S500_002,B.S500_018,B.S500_019,');
  qrySer530.SQL.Add('       C.O150_001,C.O150_002,C.O150_003,C.O150_005,C.O150_006,C.O150_012,');
  qrySer530.SQL.Add('       D.S110_003');
  qrySer530.SQL.Add('from SER530 A, SER500 B, ORD150 C, SER110 D');
  qrySer530.SQL.Add('where A.S530_002=B.S500_001 and B.S500_017=C.O150_001 and A.S530_006=D.S110_001');
  qrySer530.SQL.Add('order by S530_001');
  qrySer530.Open;
  qrySer530.Locate('S530_001',ACode,[]);
  qrySer530.EnableControls;
  qrySer530AfterScroll(qrySer530);
end;

procedure TSer530_02Form.FormCreate(Sender: TObject);
begin
  inherited;
  SetInterface;
  qrySer110.Open;
  qryInv150.Open;
  qrySer500.Open;
  SetButtonState(False);
end;

procedure TSer530_02Form.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  inherited;
  if ActSave.Enabled then
  begin
    if ShowDialog('UMS10000007')=IDNO then  //数据尚未保存,现在保存吗?
      ActCancel.Execute
    else
      ActSave.Execute;
  end;
  qrySer110.Close;
  qryInv150.Close;
  qrySer500.Close;
end;

procedure TSer530_02Form.ActFirstExecute(Sender: TObject);
begin
  inherited;
//最前
  if qrySer530.IsEmpty then Exit;
  qrySer530.First;
  ActFirst.Enabled:=False;
  ActPrior.Enabled:=False;
  ActNext.Enabled:=True;
  ActLast.Enabled:=True;
end;

procedure TSer530_02Form.ActPriorExecute(Sender: TObject);
begin
  inherited;
//上移
  if qrySer530.IsEmpty then Exit;
  qrySer530.Prior;
  ActNext.Enabled:=not qrySer530.Eof;
  ActLast.Enabled:=not qrySer530.Eof;
  ActFirst.Enabled:=not qrySer530.Bof;
  ActPrior.Enabled:=not qrySer530.Bof;
end;

procedure TSer530_02Form.ActNextExecute(Sender: TObject);
begin
  inherited;
//下移
  if qrySer530.IsEmpty then Exit;
  qrySer530.Next;
  ActNext.Enabled:=not qrySer530.Eof;
  ActLast.Enabled:=not qrySer530.Eof;
  ActFirst.Enabled:=not qrySer530.Bof;
  ActPrior.Enabled:=not qrySer530.Bof;
end;

procedure TSer530_02Form.ActLastExecute(Sender: TObject);

⌨️ 快捷键说明

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