📄 ser530_02.pas
字号:
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 + -