📄 cshw00_01.pas.svn-base
字号:
Abort;
end;
if AFromDate>AToDate then
begin
ShowMsg('UMS10000044'); //起始日期不能大于结束日期
Abort;
end;
if adsLists.IsEmpty then Exit;
AOpen:=0;
AIncome:=0;
APayment:=0;
ABalance:=0;
try
Cursor:=crHourGlass;
//资金总帐
AccNo:=0;
if adsLists.Locate('Name',cbAccNm.Text,[loCaseInsensitive]) then AccNo:=adsLists.FieldByName('Num').Value;
if cbAccNm.ItemIndex=0 then
begin
GetCashMaster(adsMaster,AFromDate,AToDate);
end else
//资金帐本
begin
GetCashDetail(adsDetail,AccNo,AFromDate,AToDate);
end;
finally
Cursor:=crDefault;
end;
end;
procedure TCshW00_01Form.tvReportsDblClick(Sender: TObject);
begin
if adsReports.IsEmpty then Exit;
CreateFormInPackage('T'+adsReports.FieldByName('Code').Value+'_01Form',True);
end;
procedure TCshW00_01Form.bbtnNewClick(Sender: TObject);
begin
//帐户(&N)
CreateFormInPackage('TCsh550_01Form',True);
end;
procedure TCshW00_01Form.bbtnInsertClick(Sender: TObject);
begin
//新增(&A)
DoPopupMenu(bbtnInsert,popInsert);
end;
procedure TCshW00_01Form.bbtnUpdateClick(Sender: TObject);
var
AcctNo,ABillNo:Integer;
ADate:TDateTime;
begin
//修改
if adsDetail.IsEmpty then Exit;
if adsDetailBILNO.Value='' then Exit;
adsLists.Locate('C550_002',cbAccNm.Text,[loCaseInsensitive]);
AcctNo:=adsLists.FieldByName('Num').Value;
ADate:=adsDetailBILDT.Value;
ABillNo:=adsDetailBILNO.AsInteger;
qryCsh550.Close;
qryCsh550.SQL.Clear;
qryCsh550.SQL.Add('select * from CSH510A where C510A_003='+IntToStr(AcctNo)+' and C510A_010='+GetDateString(ADate)+' and C510A_002='+IntToStr(ABillNo));
qryCsh550.Open;
if qryCsh550.FieldByName('C510A_004').Value<>3 then
begin
Csh510_02Form:=TCsh510_02Form.Create(Application);
Csh510_02Form.OpenData(qryCsh550.FieldByName('C510A_001').Value);
Csh510_02Form.ShowModal;
end else //转帐单
begin
Csh510_04Form:=TCsh510_04Form.Create(Application);
Csh510_04Form.OpenData(AcctNo,ADate,ABillNo);
Csh510_04Form.ShowModal;
end;
end;
procedure TCshW00_01Form.bbtnDeleteClick(Sender: TObject);
var
AccNo:Integer; //帐户编号
ADate:TDateTime; //日期
ABillNo,ABillNo1:Integer; //票据编号
ATypeNo,AObjType,ACustNo,ACurrNo:Integer;
ADate1:TDateTime; //日期
AAmount:Double;
begin
inherited;
//删除
if adsDetail.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
if adsDetailBILNO.Value='' then Exit;
if ShowDialog('UMS10000008')=IDNO then Abort; //确定要删除此记录吗?
//取得帐户编号、日期、票据编号
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select C550_001,C550_005 from CSH550 where C550_002='+''''+cbAccNm.Text+'''');
SYSDM.qryQuery.Open;
AccNo:=SYSDM.qryQuery.FieldByName('C550_001').Value;
ACurrNo:=SYSDM.qryQuery.FieldByName('C550_005').Value;
ADate:=adsDetailBILDT.Value;
ABillNo:=adsDetailBILNO.AsInteger;
//取得单据类型
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select C510A_003,C510A_004,C510A_008,C510A_009,C510A_007 from CSH510A where C510A_003='+IntToStr(AccNo)+' and C510A_010='+GetDateString(ADate)+' and C510A_002='+IntToStr(ABillNo));
SYSDM.qryQuery.Open;
ATypeNo:=SYSDM.qryQuery.FieldByName('C510A_004').Value;
AObjType:=SYSDM.qryQuery.FieldByName('C510A_007').Value;
ACustNo:=SYSDM.qryQuery.FieldByName('C510A_008').AsInteger;
AAmount:=SYSDM.qryQuery.FieldByName('C510A_009').Value;
//删除记录
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from CSH510A where C510A_003='+IntToStr(AccNo)+' and C510A_010='+GetDateString(ADate)+' and C510A_002='+IntToStr(ABillNo));
SYSDM.qryQuery.ExecSQL;
//取上条记录的日期&编号
GetPriorRecord(AccNo,ADate,ABillNo,ADate1,ABillNo1);
//计算余额
ReCalcBalance(AccNo,ADate1,ABillNo1);
sbSearch.Click;
if ATypeNo=3 then //转帐单
begin
//取得相关的帐户编号
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('select C510A_003,C510A_004 from CSH510A where C510A_004=3 and C510A_003<>'+IntToStr(AccNo)+' and C510A_010='+GetDateString(ADate)+' and C510A_002='+IntToStr(ABillNo));
SYSDM.qryQuery.Open;
AccNo:=SYSDM.qryQuery.FieldByName('C510A_003').Value;
//删除记录
SYSDM.qryQuery.Close;
SYSDM.qryQuery.SQL.Clear;
SYSDM.qryQuery.SQL.Add('delete from CSH510A where C510A_003='+IntToStr(AccNo)+' and C510A_010='+GetDateString(ADate)+' and C510A_002='+IntToStr(ABillNo));
SYSDM.qryQuery.ExecSQL;
//取上条记录的日期&编号
GetPriorRecord(AccNo,ADate,ABillNo,ADate1,ABillNo1);
//计算余额
ReCalcBalance(AccNo,ADate1,ABillNo1);
end;
//删除债权债务帐本表
if AObjType<>2 then
begin
UpdateCSH610(AObjType,ACustNo,ACurrNo,0,0,ABillNo,0,ADate,AAmount,'','','DEL');
end;
end;
procedure TCshW00_01Form.bbtnRefreshClick(Sender: TObject);
begin
//刷新(&R)
sbSearch.Click;
end;
procedure TCshW00_01Form.bbtnLocateClick(Sender: TObject);
var
ADataSource:TDataSource;
begin
//查找(&F)
if cbAccNm.ItemIndex=0 then ADataSource:=dsMaster else ADataSource:=dsDetail;
if ADataSource.DataSet.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
LocateDialog(ADataSource);
end;
procedure TCshW00_01Form.bbtnSearchClick(Sender: TObject);
var
ADataSource:TDataSource;
begin
//查询(&S)
if cbAccNm.ItemIndex=0 then ADataSource:=dsMaster else ADataSource:=dsDetail;
FilterDialog(ADataSource);
end;
procedure TCshW00_01Form.bbtnPrintClick(Sender: TObject);
var
ADataSet:TDataset;
AReportName:String;
begin
//打印(&P)
if cbAccNm.ItemIndex=0 then ADataSet:=adsMaster else ADataSet:=adsDetail;
if cbAccNm.ItemIndex=0 then AReportName:='CSH510A.frf' else AReportName:='CSH510B.frf';
SelectReport(ADataSet,AProgramID,AReportName,ReportGetValue);
sbSearch.Click;
end;
procedure TCshW00_01Form.MenuItemClick(Sender: TObject);
var
AcctNo:Integer;
begin
inherited;
if cbAccNm.Text='' then
AcctNo:=0
else
AcctNo:=GetValue('select C550_001 from CSH550 where C550_002='+''''+cbAccNm.Text+'''');
if TMenuItem(Sender).Tag=1 then
begin
Csh510_02Form:=TCsh510_02Form.Create(Application);
// Csh510_02Form.OpenData(AcctNo,0,0);
Csh510_02Form.ShowModal;
end else //转帐单
begin
Csh510_04Form:=TCsh510_04Form.Create(Application);
Csh510_04Form.OpenData(AcctNo,0,0);
Csh510_04Form.ShowModal;
end;
sbSearch.Click
end;
procedure TCshW00_01Form.dbgDetailBackgroundDrawEvent(Sender: TObject;
ACanvas: TCanvas; ARect: TRect);
var
AText:string;
begin
ARect.Left:=0;
ARect.Top:=0;
ACanvas.Brush.Color:=dbgDetail.GroupPanelColor;
ACanvas.Font.Color:=dbgDetail.GroupPanelFontColor;
//您可以把列标题拖放到此处使记录按此列进行分组
if dbgDetail.GroupColumnCount=0 then AText:=' '+GetDBString('NOT10001012') else AText:='';
Windows.FillRect(ACanvas.Handle, ARect, 0);
DrawText(ACanvas.Handle, PChar(AText), Length(AText), ARect, DT_LEFT or DT_EXPANDTABS or DT_NOPREFIX or DT_SINGLELINE or DT_VCENTER);
end;
procedure TCshW00_01Form.tvListsGetImageIndex(Sender: TObject;
Node: TTreeNode);
begin
if Node.HasChildren then
begin
Node.ImageIndex:=0;
Node.SelectedIndex:=0;
end else
begin
Node.ImageIndex:=1;
Node.SelectedIndex:=1;
end;
end;
procedure TCshW00_01Form.tvListsDblClick(Sender: TObject);
begin
//帐户选择
if tvLists.Items.Count=0 then Exit;
tvLists.Items.BeginUpdate;
tvLists.Items[0].Expand(True);
tvLists.Items.EndUpdate;
cbAccNm.ItemIndex:=cbAccNm.Items.IndexOf(adsListsName.Value);
cbAccNmChange(cbAccNm);
end;
procedure TCshW00_01Form.cbAccNmChange(Sender: TObject);
begin
if cbAccNm.ItemIndex=0 then
begin
bbtnInsert.Visible:=False;
bbtnUpdate.Visible:=False;
bbtnDelete.Visible:=False;
bbtnNew.Visible:=True;
dbgMaster.Visible:=True;
dbgDetail.Visible:=False;
end else
//资金帐本
begin
bbtnInsert.Visible:=True;
bbtnUpdate.Visible:=True;
bbtnDelete.Visible:=True;
bbtnNew.Visible:=False;
dbgMaster.Visible:=False;
dbgDetail.Visible:=True;
end;
sbSearch.Click;
end;
procedure TCshW00_01Form.dbgMasterDblClick(Sender: TObject);
begin
if adsMaster.IsEmpty then Exit;
cbAccNm.ItemIndex:=cbAccNm.Items.IndexOf(adsMasterACCNM.Value);
cbAccNmChange(cbAccNm);
end;
procedure TCshW00_01Form.dbgDetailDblClick(Sender: TObject);
begin
if bbtnUpdate.Enabled then bbtnUpdate.Click;
end;
procedure TCshW00_01Form.ReportGetValue(const ParName: String;
var ParValue: Variant);
begin
if ParName='USENM' then ParValue:=AUserName
else if ParName='PRNDT' then ParValue:=GetDBString('COM00006006') //列印日期
else if ParName='PRNNM' then ParValue:=GetDBString('COM00006007') //列印人員
else if ParName='REPNM' then ParValue:=AReportTitle
else if ParName='DATE_001' then ParValue:=GetDBString('CSH51001020')+dtpStartDate.Text //起始日期:
else if ParName='DATE_002' then ParValue:=GetDBString('CSH51001021')+dtpEndDate.Text; //结束日期:
if cbAccNm.ItemIndex=0 then
begin
if ParName='REPNM' then ParValue:=GetDBString('CSH50001011') //资金总帐清单
else if ParName='CURR_NAM' then ParValue:=GetDBString('CSH50001005') //币别
else if ParName='ACCT_NAM' then ParValue:=GetDBString('CSH50001006') //帐户名称
else if ParName='AMOT_001' then ParValue:=GetDBString('CSH50001007') //期初
else if ParName='AMOT_002' then ParValue:=GetDBString('CSH50001008') //收入
else if ParName='AMOT_003' then ParValue:=GetDBString('CSH50001009') //支出
else if ParName='AMOT_004' then ParValue:=GetDBString('CSH50001010') //余额
end else
begin
if ParName='REPNM' then ParValue:=GetDBString('CSH51001018') //资金帐本清单
else if ParName='BILL_DAT' then ParValue:=GetDBString('CSH51001003') //'日期'
else if ParName='BILL_NUM' then ParValue:=GetDBString('CSH51001005') //'票据编号'
else if ParName='MEMO_001' then ParValue:=GetDBString('CSH51001006') //'摘要'
else if ParName='AMOT_001' then ParValue:=GetDBString('CSH51001007') //'收入'
else if ParName='AMOT_002' then ParValue:=GetDBString('CSH51001008') //'支出'
else if ParName='AMOT_003' then ParValue:=GetDBString('CSH51001009') //'余额'
else if ParName='ACCT_NAM' then ParValue:=GetDBString('CSH51001019')+cbAccNm.Text //'帐户名称:'
end;
end;
procedure TCshW00_01Form.dbgMasterAMT01DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
//期初合计
if VarToStr(AOpen)<>'' then AText:=FloatToStrF(AOpen,ffCurrency,18,2);
AColor := clWhite;
end;
procedure TCshW00_01Form.dbgMasterAMT02DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
//收入合计
if VarToStr(AIncome)<>'' then AText:=FloatToStrF(AIncome,ffCurrency,18,2);
AColor := clWhite;
end;
procedure TCshW00_01Form.dbgMasterAMT03DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
//支出合计
if VarToStr(APayment)<>'' then AText:=FloatToStrF(APayment,ffCurrency,18,2);
AColor := clWhite;
end;
procedure TCshW00_01Form.dbgMasterAMT04DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
//余额合计
if VarToStr(ABalance)<>'' then AText:=FloatToStrF(ABalance,ffCurrency,18,2);
AColor := clWhite;
end;
procedure TCshW00_01Form.dbgDetailAMT01DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
//收入合计
if VarToStr(AIncome)<>'' then AText:=FloatToStrF(AIncome,ffCurrency,18,2);
AColor := clWhite;
end;
procedure TCshW00_01Form.dbgDetailAMT02DrawSummaryFooter(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; var AText: String;
var AAlignment: TAlignment; AFont: TFont; var AColor: TColor;
var ADone: Boolean);
begin
//支出合计
if VarToStr(APayment)<>'' then AText:=FloatToStrF(APayment,ffCurrency,18,2);
AColor := clWhite;
end;
procedure TCshW00_01Form.mmiReadedClick(Sender: TObject);
begin
//标识为“已阅读”
if not SYSDM.qrySys910.Active then Exit;
if SYSDM.qrySys910.IsEmpty then Exit;
SYSDM.qrySys910.Edit;
SYSDM.qrySys910S910_006.Value:=2;
SYSDM.qrySys910.Post;
end;
procedure TCshW00_01Form.FormShow(Sender: TObject);
begin
cbAccNm.Left:=lblAcct.Left+lblAcct.Width+8;
dtpStartDate.Left:=lblDate.Left+lblDate.Width+8;
dtpEndDate.Left:=dtpStartDate.Left+dtpStartDate.Width+8;
end;
procedure TCshW00_01Form.bbtnExcelClick(Sender: TObject);
var
ADataSet:TDataSet;
begin
//导出数据
if cbAccNm.ItemIndex=0 then ADataSet:=adsMaster else ADataSet:=adsDetail;
if adsMaster.IsEmpty then
begin
ShowMsg('UMS10000002'); //表记录为空,操作无效
Abort;
end;
HwExportForm:=THwExportForm.Create(Application);
HwExportForm.GetDataFields('CSH510A',ADataSet);
HwExportForm.ShowModal;
end;
procedure TCshW00_01Form.dxDBGrid1CustomDraw(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxDBTreeListColumn; const AText: String; AFont: TFont;
var AColor: TColor; ASelected, AFocused: Boolean; var ADone: Boolean);
begin
if SYSDM.qrySys910.IsEmpty then Exit;
//1=新消息,2=旧消息
case SYSDM.qrySys910S910_006.Value of
1:AFont.Style:=[fsBold];
else
AFont.Style:=[];
end;
end;
procedure TCshW00_01Form.ActCsh600Execute(Sender: TObject);
begin
//债权债务
CreateFormInPackage('TCsh600_01Form',True);
end;
procedure TCshW00_01Form.ActCsh730Execute(Sender: TObject);
begin
//债权债务查询
CreateFormInPackage('TCsh730_01Form',True);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -