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

📄 accountvoucher.pas

📁 进销存管理 编译环境Delphi7+Win2000 用到的控件 ReportMachine2.6 InfoPower4000Pro_vcl7 RxLib2.7 SkinEngine 3
💻 PAS
字号:
unit AccountVoucher;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, BaseAccountVoucher, dxBar, dxBarExtItems,
  KsSkinForms, sncCurrency, dxTLClms, dxTL, dxCntner, dxEdLib, dxEditor,
  dxExEdtr, dxDBELib, KsSkinLabels, SysPublic, DB,
  ADODB, dxDBCtrl, dxDBGrid, ExtCtrls, dxDBTLCl, dxGrClms, StdCtrls,
  sncDBCurrency, Grids, DBGrids, se_controls;

type
  TfrmAccountVoucher = class(TfrmBaseAccountVoucher)
    procedure gridMainSummaryButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure gridMainSubjectNameButtonClick(Sender: TObject;
      AbsoluteIndex: Integer);
    procedure bbSaveClick(Sender: TObject);
  private
    { Private declarations }
    bReturn: Boolean;
    lMode, lID, lNewID, lRead: Integer;
    function ReturnSQL(cMode: char; lMasID: Integer): string;
    procedure MainShow;
    procedure LoadGrid;
    procedure LoadData;
    procedure SaveData;
  public
    { Public declarations }
  end;

function AccountVoucherShow(lMode1, lID1, lRead1: Integer): Boolean;
//lID1是凭证ID号,lRead1为1时只读
implementation
{$R *.dfm}

function AccountVoucherShow(lMode1, lID1, lRead1: Integer): Boolean;
var
  frmAccountVoucher: TfrmAccountVoucher;
begin
  frmAccountVoucher := TfrmAccountVoucher.Create(Application);
  with frmAccountVoucher do
  begin
    lID := lID1;
    lRead := lRead1;
    lMode := lMode1;
    MainShow;
    Result := bReturn;
    Free;
  end;
end;

procedure TfrmAccountVoucher.MainShow;
begin
  BaseMainShow;
  LoadGrid;
  LoadData;
  ShowModal;
  SetColWidth(Caption, gridMain);
end;

procedure TfrmAccountVoucher.LoadGrid;
begin
  edtDate.Date := SYSStartDate;
  SetCol(Caption, gridMain, 1);
end;

function TfrmAccountVoucher.ReturnSQL(cMode: char; lMasID: Integer): string;
begin
  if cMode = 'M' then
    Result := 'Select * from AccountIndex Where ID=' + IntToStr(lMasID)
  else
    if cMode = 'L' then
      Result := 'Select * from AccountTable Where IndexID=' + IntToStr(lMasID);
end;

procedure TfrmAccountVoucher.LoadData;
var
  lID1: Integer;
begin
  OpenDataSet(ADOSetMaster, ReturnSQL('M', lID));
  lID1 := ADOSetMaster.FieldByName('ID').AsInteger;
  OpenDataSet(ADOSetList, ReturnSQL('L', lID1));
  if lID = 0 then
    ADOSetMaster.Insert
  else
    ADOSetMaster.Edit;
  if lID = 0 then
    edtE1.text := LoginEmployeName;
  lNewID := ADOSetMaster.FieldByName('ID').AsInteger;
  ADOSetList.Insert;
  ADOSetList.FieldByName('IndexID').AsInteger := lNewID;
end;

procedure TfrmAccountVoucher.gridMainSummaryButtonClick(Sender: TObject;
  AbsoluteIndex: Integer);
var
  sSumm: string;
begin
  inherited;
  if not (ADOSetList.State in [dsEdit, dsInsert]) then
    ADOSetList.Edit;
  sSumm := BaseSelect(BASE_NARRATE, 1, gridMain.EditingText);
  if sSumm <> '' then
  begin
    ADOSetList.FieldByName('Summary').AsString := sSumm;
    gridMain.FocusedColumn := gridMain.FocusedColumn + 1;
  end
  else
  begin
    gridMain.CancelEditor;
    gridMain.Repaint;
    gridMain.ShowEditor;
  end;
end;

procedure TfrmAccountVoucher.gridMainSubjectNameButtonClick(
  Sender: TObject; AbsoluteIndex: Integer);
var
  sAID: string;
begin
  inherited;
  sAID := BaseSelect(BASE_SUBJECT, 1, gridMain.EditingText);
  if (sAID <> '') and (sAID <> '0') then
  begin
    if not (ADOSetList.State in [dsEdit, dsInsert]) then
      ADOSetList.Edit;
    ADOSetList.FieldByName('SubjectID').AsInteger := StrToInt2(sAID);
    ADOSetList.FieldByName('SubjectName').AsString := FieldIdToName('Subject', sAID, 'Name');
    gridMain.FocusedColumn := gridMain.FocusedColumn + 1;
  end
  else
  begin
    gridMain.CancelEditor;
    gridMain.Repaint;
    gridMain.ShowEditor;
  end;
end;

procedure TfrmAccountVoucher.SaveData;
var
  lID1: Integer;
begin
  if (ADOSetMaster.State in [dsEdit, dsInsert]) then
  begin
    ADOSetMaster.FieldByName('Mode').AsInteger := lMode;
    ADOSetMaster.FieldByName('EmployeID1').AsInteger := LoginEmployeID;
  end;
  if not SaveDataSet(ADOSetMaster, false) then
    exit;
  lID1 := ADOSetMaster.FieldByName('ID').AsInteger;
  ADOSetList.First;
  while not ADOSetList.Eof do
  begin
    ADOSetList.Edit;
    ADOSetList.FieldByName('IndexID').AsInteger := lID1;
    ADOSetList.Next;
  end;
  SaveDataSet(ADOSetList, True);
end;

procedure TfrmAccountVoucher.bbSaveClick(Sender: TObject);
begin
  inherited;
  if not CheckEditEmpty(1, self, [lblBillDate.Name, lblUserCode.Name],
    [edtDate.Name, edtUserCode.Name]) then
    Exit;
  SaveData;
end;

end.

⌨️ 快捷键说明

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