accountvoucher.pas
来自「中小企业管理系统------ ERP系统原代码」· PAS 代码 · 共 193 行
PAS
193 行
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.
//此源码由程序太平洋收集整理发布,任何人都可自由转载,但需保留本站信息
//╭⌒╮┅~ ¤ 欢迎光临程序太平洋╭⌒╮
//╭⌒╭⌒╮╭⌒╮~╭⌒╮ ︶ ,︶︶
//,︶︶︶︶,''︶~~ ,''~︶︶ ,''
//╔ ╱◥███◣═╬╬╬╬╬╬╬╬╬╗
//╬ ︱田︱田 田 ︱ ╬
//╬ http://www.5ivb.net ╬
//╬ ╭○╮● ╬
//╬ /■\/■\ ╬
//╬ <| || 有希望,就有成功! ╬
//╬ ╬
//╚╬╬╬╬╬╬╬╬╬╬╗ ╔╬╬╬╬╝
//
//说明:
//专业提供VB、.NET、Delphi、ASP、PB源码下载
//包括:程序源码,控件,商业源码,系统方案,开发工具,书籍教程,技术文档
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?