📄 inv500_01.pas.svn-base
字号:
unit Inv500_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, Buttons, StdCtrls,
dxDBTLCl, dxGrClms, wwdbdatetimepicker;
type
TInv500_01Form = class(TBas200_10Form)
lblDate: TLabel;
sbSearch: TSpeedButton;
edtFromDate: TwwDBDateTimePicker;
edtToDate: TwwDBDateTimePicker;
ADOQuery1I500A_001: TWideStringField;
ADOQuery1I500A_002: TIntegerField;
ADOQuery1I550_002: TWideStringField;
ADOQuery1I550_003: TWideStringField;
ADOQuery1I500A_003: TWideStringField;
ADOQuery1I500A_004: TDateTimeField;
ADOQuery1I500A_005: TSmallintField;
ADOQuery1I500A_006: TIntegerField;
ADOQuery1FCode: TStringField;
ADOQuery1FName: TStringField;
ADOQuery1I500A_007: TWideStringField;
ADOQuery1I500A_008: TIntegerField;
ADOQuery1G100_002: TWideStringField;
ADOQuery1G100_003: TWideStringField;
ADOQuery1I500A_009: TFloatField;
ADOQuery1I500A_010: TIntegerField;
ADOQuery1I100_002: TWideStringField;
ADOQuery1I100_003: TWideStringField;
ADOQuery1I500A_011: TMemoField;
ADOQuery1I500A_012: TDateTimeField;
ADOQuery1I500A_013: TWideStringField;
ADOQuery1I500A_014: TDateTimeField;
ADOQuery1I500A_015: TWideStringField;
ADOQuery1I500A_016: TBooleanField;
ADOQuery1I550_001: TAutoIncField;
ADOQuery1I550_004: TSmallintField;
ADOQuery1I550_005: TSmallintField;
ADOQuery1I550_006: TBooleanField;
ADOQuery1I550_007: TSmallintField;
ADOQuery1I550_008: TWideStringField;
ADOQuery1I550_009: TIntegerField;
ADOQuery1I550_010: TSmallintField;
ADOQuery1I550_011: TWideStringField;
ADOQuery1G100_001: TAutoIncField;
ADOQuery1I100_001: TAutoIncField;
dxDBGrid1I500A_001: TdxDBGridColumn;
dxDBGrid1I550_002: TdxDBGridColumn;
dxDBGrid1I550_003: TdxDBGridColumn;
dxDBGrid1I500A_003: TdxDBGridColumn;
dxDBGrid1I500A_004: TdxDBGridDateColumn;
dxDBGrid1I500A_005: TdxDBGridMaskColumn;
dxDBGrid1FCode: TdxDBGridColumn;
dxDBGrid1FName: TdxDBGridColumn;
dxDBGrid1I500A_007: TdxDBGridColumn;
dxDBGrid1G100_002: TdxDBGridColumn;
dxDBGrid1G100_003: TdxDBGridColumn;
dxDBGrid1I500A_009: TdxDBGridMaskColumn;
dxDBGrid1I100_002: TdxDBGridColumn;
dxDBGrid1I100_003: TdxDBGridColumn;
dxDBGrid1I500A_012: TdxDBGridDateColumn;
dxDBGrid1I500A_013: TdxDBGridColumn;
dxDBGrid1I500A_014: TdxDBGridDateColumn;
dxDBGrid1I500A_015: TdxDBGridColumn;
dxDBGrid1I500A_016: TdxDBGridCheckColumn;
lblWhs: TLabel;
cbWhs: TComboBox;
qryInv100: TADOQuery;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sbSearchClick(Sender: TObject);
procedure ADOQuery1I500A_005GetText(Sender: TField; var Text: String;
DisplayText: Boolean);
private
AObjTyp:array[0..3] 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
Inv500_01Form: TInv500_01Form;
implementation
uses Inv500_02, CommFun, SYSDATA, InvComm;
{$R *.dfm}
procedure TInv500_01Form.SetInterface;
begin
inherited;
Caption:=GetDBString('INV50001001'); //料品进出处理
ADOQuery1I500A_001.DisplayLabel:=GetDBString('INV50001002'); //进出单号
// ADOQuery1I500A_002.DisplayLabel:=GetDBString('INV50001003'); //
ADOQuery1I550_002.DisplayLabel:=GetDBString('INV50001003'); //类型编号
ADOQuery1I550_003.DisplayLabel:=GetDBString('INV50001004'); //类型名称
ADOQuery1I500A_003.DisplayLabel:=GetDBString('INV50001005'); //摘要说明
ADOQuery1I500A_004.DisplayLabel:=GetDBString('INV50001006'); //进出日期
ADOQuery1I500A_005.DisplayLabel:=GetDBString('INV50001007'); //对象类型
// ADOQuery1I500A_006.DisplayLabel:=GetDBString('INV50001008'); //
ADOQuery1FCode.DisplayLabel:=GetDBString('INV50001008'); //对象编号
ADOQuery1FName.DisplayLabel:=GetDBString('INV50001009'); //对象名称
ADOQuery1I500A_007.DisplayLabel:=GetDBString('INV50001010'); //相关单据
// ADOQuery1I500A_008.DisplayLabel:=GetDBString('INV50001011'); //
ADOQuery1G100_002.DisplayLabel:=GetDBString('INV50001011'); //币别编号
ADOQuery1G100_003.DisplayLabel:=GetDBString('INV50001012'); //币别名称
ADOQuery1I500A_009.DisplayLabel:=GetDBString('INV50001013'); //币别汇率
ADOQuery1I500A_010.DisplayLabel:=GetDBString('INV50001014'); //仓库编号
ADOQuery1I500A_011.DisplayLabel:=GetDBString('INV50001015'); //备注说明
ADOQuery1I500A_012.DisplayLabel:=GetDBString('INV50001016'); //制单日期
ADOQuery1I500A_013.DisplayLabel:=GetDBString('INV50001017'); //制单人员
ADOQuery1I500A_014.DisplayLabel:=GetDBString('INV50001018'); //修改日期
ADOQuery1I500A_015.DisplayLabel:=GetDBString('INV50001019'); //修改人员
ADOQuery1I500A_016.DisplayLabel:=GetDBString('INV50001020'); //已过帐否
AObjTyp[0]:=GetDBString('INV50001021'); //空白
AObjTyp[1]:=GetDBString('INV50001022'); //客户
AObjTyp[2]:=GetDBString('INV50001023'); //员工
AObjTyp[3]:=GetDBString('INV50001024'); //部门
lblWhs.Caption:=GetDBString('INV50001025'); //仓库
lblDate.Caption:=GetDBString('INV50001026'); //日期
sbSearch.Caption:=GetDBString('INV50001027'); //查询
cbWhs.Clear;
cbWhs.Items.Add(GetDBString('INV50001028')); //所有仓库
qryInv100.Close;
qryInv100.Open;
while not qryInv100.Eof do
begin
cbWhs.Items.Add(qryInv100.FieldByName('I100_003').AsString);
qryInv100.Next;
end;
cbWhs.ItemIndex:=0;
end;
procedure TInv500_01Form.FormCreate(Sender: TObject);
var
ADate:TDateTime;
begin
inherited;
ADate:=GetServerDate;
edtFromDate.Date:=GetMonthFirstDate(ADate);
edtToDate.Date:=GetMonthEndDate(ADate);
sbSearch.Click;
end;
procedure TInv500_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
//
end;
procedure TInv500_01Form.sbSearchClick(Sender: TObject);
var
AWhsNo:Integer;
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;
AWhsNo:=0;
if cbWhs.ItemIndex<>0 then
begin
qryInv100.Locate('I100_003',cbWhs.Text,[]);
AWhsNo:=qryInv100.FieldByName('I100_001').Value;
end;
Screen.Cursor:=crHourGlass;
ADOQuery1.DisableControls;
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select A.*,');
ADOQuery1.SQL.Add(' B.*,');
ADOQuery1.SQL.Add(' C.G100_001,C.G100_002,C.G100_003,');
ADOQuery1.SQL.Add(' D.I100_001,D.I100_002,D.I100_003');
ADOQuery1.SQL.Add('from INV500A A,INV550 B,GLD100 C,INV100 D');
ADOQuery1.SQL.Add('where I500A_002=I550_001 and I500A_008=G100_001 and I500A_010=I100_001');
if AWhsNo<>0 then ADOQuery1.SQL.Add(' and A.I500A_010='+IntToStr(AWhsNo));
ADOQuery1.SQL.Add('order by I500A_001');
ADOQuery1.Open;
ADOQuery1.EnableControls;
ARecordCount:=GetDataSetCount(ADOQuery1);
Screen.Cursor:=crDefault;
end;
procedure TInv500_01Form.BrowseEvent;
begin
inherited;
Inv500_02Form:=TInv500_02Form.Create(Application);
Inv500_02Form.OpenData(ADOQuery1.FieldByName('I500A_001').AsString);
Inv500_02Form.ShowModal;
end;
procedure TInv500_01Form.InsertEvent;
begin
inherited;
//新增
Inv500_02Form:=TInv500_02Form.Create(Application);
Inv500_02Form.OpenData('');
Inv500_02Form.ActInsert.Execute;
Inv500_02Form.ShowModal;
end;
procedure TInv500_01Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
end;
procedure TInv500_01Form.UpdateEvent;
begin
inherited;
//修改
if ADOQuery1.FieldByName('I500A_016').AsBoolean then
begin
ShowMsg('UMS10000612'); //不允许修改已经过帐的进出仓单
Abort;
end;
if ADOQuery1I550_001.Value=14 Then
begin
ShowMsg('UMS10000613'); //不允许修改操作类型为盘点调整的料品进出单
Abort;
end;
if IsExists('select 1 from INV500B where I500B_011='+''''+ADOQuery1I500A_001.AsString+'''') then
begin
ShowMsg('UMS10000614'); //不允许修改有相关单据的料品进出单
Abort;
end;
Inv500_02Form:=TInv500_02Form.Create(Application);
Inv500_02Form.OpenData(ADOQuery1.FieldByName('I500A_001').AsString);
Inv500_02Form.ActUpdate.Execute;
Inv500_02Form.ShowModal;
end;
procedure TInv500_01Form.DeleteEvent;
var
ACode:String;
begin
//删除
inherited;
if ADOQuery1.FieldByName('I500A_016').AsBoolean then
begin
ShowMsg('UMS10000605'); //不允许删除已经过帐的进出仓单
Abort;
end;
if ADOQuery1I550_001.Value=14 Then
begin
ShowMsg('UMS10000615'); //不允许删除操作类型为盘点调整的料品进出单
Abort;
end;
if IsExists('select 1 from INV500B where I500B_011='+''''+ADOQuery1I500A_001.AsString+'''') then
begin
ShowMsg('UMS10000616'); //不允许删除有相关单据的料品进出单
Abort;
end;
ACode:=ADOQuery1I500A_001.AsString;
//更新相关的数据,当进出仓单更新时
UpdateInv500B(ACode,'INV500','DEL',0);
//删除进出单据
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from INV500B where I500B_001='+''''+ACode+'''');
SYSDM.qryQuery.ExecSQL;
DeleteTableRecord(ADOQuery1,'INV500A','I500A_001='+''''+ACode+'''');
//更新相关的数据,当进出仓单更新时
UpdateInv500B(ACode,'INV500','DEL',0);
//更新进出仓单的应收发数量
UpdateInv500BOrdQty(ACode);
end;
procedure TInv500_01Form.ADOQuery1I500A_005GetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if ADOQuery1.IsEmpty then Exit;
Text:=AObjTyp[Sender.AsInteger];
end;
initialization
RegisterClass(TInv500_01Form);
finalization
UnRegisterClass(TInv500_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -