📄 ord510_01.pas.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 + -