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

📄 csh730_01.pas.svn-base

📁 开源的网站整站程序,功能强大带采集系统.
💻 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 + -