⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cshw00_01.pas.svn-base

📁 这是一个功能齐全的,代码完整的ERP企业信息管理系统,现在上传和大家分享
💻 SVN-BASE
📖 第 1 页 / 共 3 页
字号:
    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 + -