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

📄 accountquery.pas

📁 胜天财务进销存2003源代码,SQLSERVER版,目前最完整的财务进销存系统.
💻 PAS
字号:
unit AccountQuery;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  ListForm, ImgList, ExtCtrls, dxCntner, dxTL,
  dxDBCtrl, dxDBGrid, DBData, Db, BillEdit, ADODB, Menus, dxDBTL, dxBar,
  dxBarExtItems, KsHooks, KsForms, KsSkinForms, KsControls, KsPanels,
  KsSkinPanels, KsMessages, KsSkinMessages, dxExEdtr, StdCtrls;

type
  TfrmAccountQuery = class(TfrmListForm)
    daBase2Info: TDataSource;
    ADOSetBillQuery: TADODataSet;
    MainGrid: TdxDBGrid;
    procedure bbSelectClick(Sender: TObject);
    procedure bbAddClick(Sender: TObject);
    procedure bbEditClick(Sender: TObject);
    procedure bbDelClick(Sender: TObject);
    procedure bbFindClick(Sender: TObject);
    procedure bbFilterClick(Sender: TObject);
    procedure bbDateClick(Sender: TObject);
    procedure bbSetColClick(Sender: TObject);
    procedure bbRefreshClick(Sender: TObject);
    procedure MainGridDblClick(Sender: TObject);
  private
    { Private declarations }
    lReturn: Integer;
    lMode: Integer;
    lSelect: Integer;
    bRead: Boolean;
    tStartDate, tEndDate: TDateTime;
    function QueryToEdit(lQMode: Integer): Integer;
    procedure ToolShow;
    procedure LoadGrid;
    function ReturnSQL: string;
    procedure MainShow;
    procedure LoadData;

  public
    { Public declarations }
  end;

function AccountQueryShow(l1Mode, l1Select: Integer; b1Read: Boolean): Integer;

implementation

uses SysPublic, AccountVoucher;

{$R *.DFM}

function AccountQueryShow(l1Mode, l1Select: Integer; b1Read: Boolean): Integer;
var
  frmAccountQuery: TfrmAccountQuery;
begin
  frmAccountQuery := TfrmAccountQuery.Create(Application);
  with frmAccountQuery do
  begin
    lMode := l1Mode;
    lSelect := l1Select;
    bRead := b1Read;
    lReturn := 0;
    MainShow;
    Result := lReturn;
    Free;
  end;
end;

procedure TfrmAccountQuery.MainShow;
begin
  if not GetDate(tStartDate, tEndDate) then
    Exit;
  ToolShow;
  LoadGrid;
  LoadData;
  ShowModal;
  SetColWidth(Caption, MainGrid);
end;

procedure TfrmAccountQuery.LoadGrid;
begin
  Caption := '凭证查询';
  StrToGridField(MainGrid, 'ID,Date,UserCode,Accessory,Memo,EName1',
    'ID,日期,凭证编号,附件,备注,制单人',
    '30,80,100,70,120,90');
  MainGrid.ColumnByFieldName('ID').Visible := false;
  MainGrid.ColumnByFieldName('Date').SummaryFooterType := cstCount;
  MainGrid.ColumnByFieldName('Date').SummaryFooterFormat := '记录条数: 0';
  SetCol(Caption, MainGrid, 1);
end;

function TfrmAccountQuery.ReturnSQL: string;
var
  sSql, sStartDate, sEndDate: string;
begin
  sStartDate := FormatDateTime('yyyy/mm/dd', tStartDate);
  sEndDate := FormatDateTime('yyyy/mm/dd', tEndDate);
  sSql :=
    'SELECT A.ID, A.UserCode, A.Date, A.Accessory, A.Memo, E1.Name AS EName1 ' +
    'FROM AccountIndex AS A LEFT JOIN Employe AS E1 ON A.EmployeID1 = E1.ID ' +
    'WHERE (A.EmployeID1=E1.[ID]) ' +
    'AND (A.[Date] BETWEEN #' + sStartDate + '# AND #' + sEndDate + '#)';
  Result := sSql;
end;

procedure TfrmAccountQuery.LoadData;
begin
  OpenDataSet(ADOSetBillQuery, ReturnSQL);
end;

function TfrmAccountQuery.QueryToEdit(lQMode: Integer): Integer;
var
  lEditMode: Integer;
begin
  case lQMode of
    ACCOUNT_VOUCHER_QUERY: lEditMode := ACCOUNT_VOUCHER_EDIT;
  else
    lEditMode := 0;
  end;
  Result := lEditMode;
end;

procedure TfrmAccountQuery.ToolShow;
begin
  if lSelect = 0 then
    bbSelect.Visible := ivNever
  else if lSelect = 1 then
    bbSelect.Visible := ivAlways;
end;

procedure TfrmAccountQuery.bbSelectClick(Sender: TObject);
begin
  inherited;
  lReturn := ADOSetBillQuery.FieldByName('ID').AsInteger;
  Close;
end;

procedure TfrmAccountQuery.bbAddClick(Sender: TObject);
var
  SavePlace: TBookmark;
begin
  inherited;
  with ADOSetBillQuery do
  begin
    SavePlace := GetBookmark;
    AccountVoucherShow(QueryToEdit(lMode), 0, 0);
    Close;
    Open;
    GotoBookmark(SavePlace);
    FreeBookmark(SavePlace);
  end;
end;

procedure TfrmAccountQuery.bbEditClick(Sender: TObject);
var
  SavePlace: TBookmark;
  lID: Integer;
begin
  inherited;
  with ADOSetBillQuery do
  begin
    if IsEmpty then
      exit;
    SavePlace := GetBookmark;
    lID := ADOSetBillQuery.FieldByName('ID').AsInteger;
    AccountVoucherShow(QueryToEdit(lMode), lID, 0);
    Close;
    Open;
    GotoBookmark(SavePlace);
    FreeBookmark(SavePlace);
  end;
end;

procedure TfrmAccountQuery.bbDelClick(Sender: TObject);
var
  lID: integer;
  sSql: string;
begin
  inherited;
  if ADOSetBillQuery.IsEmpty then
    exit;

  if MsgBox('数据删除后不可恢复,确认要删除?', '提示', MB_OKCancel) = IDOK then
  begin
    ADOSetBillQuery.ControlsDisabled;
    lID := ADOSetBillQuery.FieldByName('ID').AsInteger;
    sSql := 'DELETE FROM AccountIndex WHERE ID=' + IntToStr(lID);
    if ExecSql(sSql) then
    begin
      sSql := 'DELETE FROM AccountTable WHERE IndexID=' + IntToStr(lID);
      ExecSql(sSql);
    end;
    OpenDataSet(ADOSetBillQuery, ADOSetBillQuery.CommandText);
    ADOSetBillQuery.EnableControls;
  end;
end;

procedure TfrmAccountQuery.bbFindClick(Sender: TObject);
begin
  inherited;
  FindPublic(MainGrid, sPubFindText, lPubFindFiled);
end;

procedure TfrmAccountQuery.bbFilterClick(Sender: TObject);
begin
  inherited;
  FilterPublic(MainGrid);
end;

procedure TfrmAccountQuery.bbDateClick(Sender: TObject);
begin
  inherited;
  if GetDate(tStartDate, tEndDate) then
  begin
    LoadData;
  end;
end;

procedure TfrmAccountQuery.bbSetColClick(Sender: TObject);
begin
  inherited;
  SetCol(Caption, MainGrid, 0);
end;

procedure TfrmAccountQuery.bbRefreshClick(Sender: TObject);
begin
  inherited;
  ADOSetBillQuery.Filter := '';
end;

procedure TfrmAccountQuery.MainGridDblClick(Sender: TObject);
begin
  inherited;
  bbEditClick(nil);
end;

end.

⌨️ 快捷键说明

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