pkvoucher.pas

来自「企业ERP管理系统」· PAS 代码 · 共 162 行

PAS
162
字号
unit PkVoucher;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, WSCstFrm, StdCtrls, Grids, DBGrids, QLDBGrid, ComCtrls, Spin,
  ExtCtrls, DBCtrls, DB, ADODB;

type
  TVoucherPickForm = class(TWSCustomForm)
    DBGrid: TQLDBGrid;
    Button1: TButton;
    Button2: TButton;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    CmbxTableName: TComboBox;
    Label2: TLabel;
    Label3: TLabel;
    dtpBegin: TDateTimePicker;
    Label4: TLabel;
    dtpEnd: TDateTimePicker;
    btnRefresh: TButton;
    aqrTemp: TADOQuery;
    adsTemp: TADODataSet;
    dsTemp: TDataSource;
    CmbxClient: TComboBox;
    Label5: TLabel;
    CmbCode: TComboBox;
    Button3: TButton;
    procedure FormShow(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure cbDateTypeChange(Sender: TObject);
    procedure btnRefreshClick(Sender: TObject);
    procedure CmbxTableNameClick(Sender: TObject);
  private
    { Private declarations }
    STNameM,STNameD: string;
  public
    { Public declarations }
  end;

var
  VoucherPickForm: TVoucherPickForm;

function PickVoucherDlg(const VoucherTypeID: Integer; var VoucherID: Integer): Boolean;

implementation

uses CommonDM;

{$R *.dfm}

function PickVoucherDlg(const VoucherTypeID: Integer; var VoucherID: Integer): Boolean;
begin
  result := false;
end;

procedure TVoucherPickForm.FormShow(Sender: TObject);
begin
  inherited;
  dtpBegin.Date :=date;
  dtpEnd.Date :=date;
  CmbxTableName.Style :=csDropDown;
  CmbxClient.Style :=csDropDown;
  aqrTemp.Close;
  aqrTemp.SQL.Text :=' select distinct Brief from MSBillTable order by Brief';
  aqrTemp.Open;
  aqrTemp.First;
  while not aqrTemp.Eof do
  begin
    CmbxTableName.Items.Add(Trim(aqrTemp.fieldbyname('brief').AsString));
    aqrTemp.Next;
  end;
  aqrTemp.Close;
  aqrTemp.SQL.Text :=' select ID,name from DaClient where RecordState<>'
      +Quotedstr('删除');
  aqrTemp.Open;
  aqrTemp.First;
  while not aqrTemp.Eof do
  begin
    CmbxClient.Items.AddObject(aqrTemp.fieldbyname('Name').AsString, pointer(aqrTemp.FieldByName('ID').AsInteger) );
    aqrTemp.Next;
  end;
  CmbxTableName.Style :=csDropDownList;
  CmbxClient.Style :=csDropDownList;
end;

procedure TVoucherPickForm.Button2Click(Sender: TObject);
begin
  inherited;
  ModalResult := mrCancel;
end;

procedure TVoucherPickForm.Button1Click(Sender: TObject);
begin
  inherited;
  ModalResult := mrOk;
end;

procedure TVoucherPickForm.cbDateTypeChange(Sender: TObject);
var
  Year, Month, Day: Word;
begin
  inherited;
  DecodeDate(Now, Year, Month, Day);


end;

procedure TVoucherPickForm.btnRefreshClick(Sender: TObject);
var S:string;
begin
  inherited;
  s:='select b.Code as [编号], date [日期],BillMode [业务类别],
     +' brief as [业务摘要],c.name as [客户/厂商]'
     +' D.name as [经手人], a.* from '
     +' a left outer join ' +STNameM +' b on a.MasterID=b.ID'
     +' left outer join DAClient C on C.ID =B.ClientID'
     +' left outer join MSEmployee D on D.ID =B.EmployeeID'
  adsTemp.close;
  adsTemp.CommandText := S;
  adsTemp.open;

end;

procedure TVoucherPickForm.CmbxTableNameClick(Sender: TObject);
begin
  inherited;
  if CmbxTableName.ItemIndex<>-1 then STNameM :=trim(CmbxTableName.Text)
    else STNameM := '';
  aqrTemp.Close;
  aqrTemp.sql.Text := ' select OriginTable from MSBillTable'
          +' where brief like '+Quotedstr('%'+STNameM+'%')
          +' order by OriginTable Desc';
  aqrTemp.Open;
  aqrTemp.First;
  if not aqrTemp.fieldbyname('OriginTable').IsNull then
     STNameM:=aqrTemp.fieldbyname('OriginTable').AsString else STNameM :='';
  if STNameM='' then  exit;

  aqrTemp.Next;
  if not aqrTemp.fieldbyname('OriginTable').IsNull then
     STNameD:=aqrTemp.fieldbyname('OriginTable').AsString else STNameD :='';
  aqrTemp.Close;
  aqrTemp.sql.Text := ' select  code from '+STNameM +' where RecordState<>'
      +Quotedstr('删除')+' order by Date Desc';
  aqrTemp.Open;
  aqrTemp.first;

  CmbCode.Clear;
  while not aqrTemp.Eof do
  begin
    CmbCode.Items.Add(aqrTemp.fieldbyname('Code').AsString);
    aqrTemp.Next;
  end;
end;

end.

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?