📄 csh730_01.pas.svn-base
字号:
unit Csh730_01;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, BAS200_11, dxExEdtr, StdCtrls, wwdbdatetimepicker, Buttons,
dxTL, dxDBCtrl, dxDBGrid, DB, ADODB, ActnList, Menus, dxCntner, ExtCtrls,
ComCtrls, ToolWin;
type
TCsh730_01Form = class(TBas200_11Form)
ADODataSet1FCurrName: TStringField;
ADODataSet1FType: TIntegerField;
ADODataSet1FCode: TStringField;
ADODataSet1FName: TStringField;
ADODataSet1FInAmt: TFloatField;
ADODataSet1FOutAmt: TFloatField;
ADODataSet1FBalance: TFloatField;
dxDBGrid1FCurrName: TdxDBGridMaskColumn;
dxDBGrid1FType: TdxDBGridMaskColumn;
dxDBGrid1FCode: TdxDBGridMaskColumn;
dxDBGrid1FName: TdxDBGridMaskColumn;
dxDBGrid1FInAmt: TdxDBGridMaskColumn;
dxDBGrid1FOutAmt: TdxDBGridMaskColumn;
dxDBGrid1FBalance: TdxDBGridMaskColumn;
lblDate: TLabel;
lblInOut: TLabel;
sbSearch: TSpeedButton;
edtFromDate: TwwDBDateTimePicker;
edtToDate: TwwDBDateTimePicker;
cbInOut: TComboBox;
PopupMenu1: TPopupMenu;
N1: TMenuItem;
N2: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
qryCsh610: TADOQuery;
ADODataSet1FOpen: TFloatField;
dxDBGrid1FOpen: TdxDBGridMaskColumn;
ADODataSet1FCustNo: TIntegerField;
ADODataSet1FCurrNo: TIntegerField;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure sbSearchClick(Sender: TObject);
procedure ADODataSet1FTypeGetText(Sender: TField; var Text: String;
DisplayText: Boolean);
private
AType:array[0..1,0..2] of string;
ATypeNo:array[0..1] of string;
AInOut:array[0..1] of string;
{ Private declarations }
public
procedure SetInterface; override;
procedure BrowseEvent; override;
procedure RefreshEvent; override;
procedure ReportGetValue(const ParName: String; var ParValue: Variant); override;
{ Public declarations }
end;
var
Csh730_01Form: TCsh730_01Form;
implementation
uses SYSDATA, CommFun, Csh730_02, Csh510_02, CshComm;
{$R *.dfm}
procedure TCsh730_01Form.SetInterface;
begin
inherited;
Caption:=GetDBString('CSH73001001'); //债权债务查询
lblInOut.Caption:=GetDBString('CSH73001002'); //类型
lblDate.Caption:=GetDBString('CSH73001003'); //日期
sbSearch.Caption:=GetDBString('CSH73001004'); //查询
ADODataSet1FCurrName.DisplayLabel:=GetDBString('CSH73001005'); //币别名称
ADODataSet1FType.DisplayLabel:=GetDBString('CSH73001006'); //对象类型
ADODataSet1FCode.DisplayLabel:=GetDBString('CSH73001007'); //对象编号
ADODataSet1FName.DisplayLabel:=GetDBString('CSH73001008'); //对象名称
AType[0,0]:=GetDBString('CSH73001009'); //应收金额
AType[0,1]:=GetDBString('CSH73001010'); //已收金额
AType[0,2]:=GetDBString('CSH73001011'); //未收金额
AType[1,0]:=GetDBString('CSH73001012'); //应付金额
AType[1,1]:=GetDBString('CSH73001013'); //已付金额
AType[1,2]:=GetDBString('CSH73001014'); //未付金额
ATypeNo[0]:=GetDBString('CSH73001017'); //客户
ATypeNo[1]:=GetDBString('CSH73001018'); //员工
AInOut[0]:=GetDBString('CSH73001015'); //债权
AInOut[1]:=GetDBString('CSH73001016'); //债务
cbInOut.Clear;
cbInOut.Items.Add(AInOut[0]); //债权
cbInOut.Items.Add(AInOut[1]); //债务
cbInOut.ItemIndex:=0;
end;
procedure TCsh730_01Form.FormCreate(Sender: TObject);
var
ADate:TDateTime;
begin
inherited;
ADate:=GetServerDate;
edtFromDate.Date:=GetMonthFirstDate(ADate);
edtToDate.Date:=GetMonthEndDate(ADate);
sbSearch.Click;
end;
procedure TCsh730_01Form.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
//
end;
procedure TCsh730_01Form.sbSearchClick(Sender: TObject);
var
AFromDate,AToDate:TDateTime;
AInOut,ACustNo,ACurrNo:Integer;
AOpen:Double;
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;
AFromDate:=edtFromDate.Date;
AToDate:=edtToDate.Date;
try
Screen.Cursor:=crHourGlass;
ADODataSet1.DisableControls;
ADODataSet1.Close;
ADODataSet1.CreateDataSet;
ADODataSet1FInAmt.DisplayLabel:=AType[cbInOut.ItemIndex,0];
ADODataSet1FOutAmt.DisplayLabel:=AType[cbInOut.ItemIndex,1];
ADODataSet1FBalance.DisplayLabel:=AType[cbInOut.ItemIndex,2];
qryCsh610.Close;
qryCsh610.SQL.Clear;
qryCsh610.SQL.Add('select * from');
qryCsh610.SQL.Add(' (select A.*,');
qryCsh610.SQL.Add(' B.O150_002,B.O150_003,');
qryCsh610.SQL.Add(' C.G100_002,C.G100_003');
qryCsh610.SQL.Add(' from CSH610 A,ORD150 B,GLD100 C');
qryCsh610.SQL.Add(' where C610_001=0 and C610_002=O150_001 and C610_003=G100_001');
qryCsh610.SQL.Add(' union');
qryCsh610.SQL.Add(' select A.*,');
qryCsh610.SQL.Add(' B.H150_002,B.H150_003,');
qryCsh610.SQL.Add(' C.G100_002,C.G100_003');
qryCsh610.SQL.Add(' from CSH610 A,HRM150 B,GLD100 C');
qryCsh610.SQL.Add(' where C610_001=1 and C610_002=H150_001 and C610_003=G100_001) AA');
qryCsh610.SQL.Add('where C610_004='+IntToStr(cbInOut.ItemIndex)+' and C610_006>='+GetDateString(AFromDate)+' and C610_006<='+GetDateString(AToDate));
qryCsh610.SQL.Add('order by C610_001,O150_002,G100_002,C610_006,C610_011');
qryCsh610.Open;
while not qryCsh610.Eof do
begin
if ADODataSet1.Locate('FCurrName;FType;FCode',VarArrayOf([qryCsh610.FieldByName('G100_003').Value,qryCsh610.FieldByName('C610_001').Value,qryCsh610.FieldByName('O150_002').Value]),[]) then
ADODataSet1.Edit
else
ADODataSet1.Append;
ADODataSet1.FieldByName('FCurrName').Value:=qryCsh610.FieldByName('G100_003').Value;
ADODataSet1.FieldByName('FType').Value:=qryCsh610.FieldByName('C610_001').Value;
ADODataSet1.FieldByName('FCode').Value:=qryCsh610.FieldByName('O150_002').Value;
ADODataSet1.FieldByName('FName').Value:=qryCsh610.FieldByName('O150_003').Value;
case qryCsh610.FieldByName('C610_005').AsInteger of //0=期初,1=收入,2=支出
0:ADODataSet1.FieldByName('FOpen').AsFloat:=ADODataSet1.FieldByName('FOpen').AsFloat+qryCsh610.FieldByName('C610_007').AsFloat;
1:ADODataSet1.FieldByName('FInAmt').AsFloat:=ADODataSet1.FieldByName('FInAmt').AsFloat+qryCsh610.FieldByName('C610_007').AsFloat;
2:ADODataSet1.FieldByName('FOutAmt').AsFloat:=ADODataSet1.FieldByName('FOutAmt').AsFloat+qryCsh610.FieldByName('C610_007').AsFloat;
end;
ADODataSet1.FieldByName('FBalance').Value:=qryCsh610.FieldByName('C610_008').Value;
ADODataSet1.FieldByName('FCustNo').Value:=qryCsh610.FieldByName('C610_002').Value;
ADODataSet1.FieldByName('FCurrNo').Value:=qryCsh610.FieldByName('C610_003').Value;
ADODataSet1.Post;
qryCsh610.Next;
end;
//取得的期初余额
qryCsh610.First;
while not qryCsh610.Eof do
begin
AInOut:=qryCsh610.FieldByName('C610_001').AsInteger;
ACustNo:=qryCsh610.FieldByName('C610_002').AsInteger;
ACurrNo:=qryCsh610.FieldByName('C610_003').AsInteger;
AOpen:=GetAcrOpen(AInOut,ACustNo,ACurrNo,cbInOut.ItemIndex,AFromDate);
if ADODataSet1.Locate('C610_001;C610_002;C610_003',VarArrayOf([AInOut,ACustNo,ACurrNo]),[]) then
begin
ADODataSet1.Edit;
ADODataSet1.FieldByName('FOpen').Value:=AOpen;
ADODataSet1.Post;
end;
qryCsh610.Next;
end;
finally
ADODataSet1.EnableControls;
Screen.Cursor:=crDefault;
end;
ARecordCount:=GetDataSetCount(ADODataSet1);
end;
procedure TCsh730_01Form.BrowseEvent;
var
AInOut,AType,ACustNo,ACurrNo:Integer;
AFromDate,AToDate:TDateTime;
begin
inherited;
AInOut:=cbInOut.ItemIndex;
AType:=ADODataSet1FType.AsInteger;
ACustNo:=ADODataSet1FCustNo.AsInteger;
ACurrNo:=ADODataSet1FCurrNo.AsInteger;
AFromDate:=edtFromDate.Date;
AToDate:=edtToDate.Date;
Csh730_02Form:=TCsh730_02Form.Create(Application);
Csh730_02Form.OpenData(AInOut,AType,ACustNo,ACurrNo,AFromDate,AToDate);
Csh730_02Form.ShowModal;
end;
procedure TCsh730_01Form.RefreshEvent;
begin
inherited;
sbSearch.Click;
end;
procedure TCsh730_01Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
inherited;
end;
procedure TCsh730_01Form.ADODataSet1FTypeGetText(Sender: TField;
var Text: String; DisplayText: Boolean);
begin
inherited;
if ADODataSet1.IsEmpty then Exit;
Text:=ATypeNo[Sender.AsInteger];
end;
initialization
RegisterClass(TCsh730_01Form);
finalization
UnRegisterClass(TCsh730_01Form);
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -