uni_outlaypayout.~pas
来自「一个非常不错的经费报销管理软件」· ~PAS 代码 · 共 693 行 · 第 1/2 页
~PAS
693 行
end;
procedure Tfrm_OutlayPayout.tbAuditingClick(Sender: TObject);
begin
if not PurviewSet('经费支出审核') then Exit;
if qryMain.FieldByName('iState').AsInteger<>1 then Exit;
if MessageBoxQuery('确定要审核您选择的单据吗?')=IDNO then Exit;
qryMain.Edit;
IF qryMain.FieldByName('dtAuditTime').AsString=''
THEN BEGIN
qryMain.FieldByName('dtAuditTime').AsDateTime:=Now;
END;
qryMain.FieldByName('cAuditUser').AsString:=DM.bsLoginUser.FieldByName('cName').AsString;
qryMain.FieldByName('iState').AsInteger:=2;
qryMain.Post;
qryDetail.First;
DM.bsBook.Close;
DM.bsBook.SQL.Text:='select top 1 *from bsbook';
DM.bsBook.Open;
while not qryDetail.Eof do
begin
qryDetail.Edit;
qryDetail.FieldByName('iState').AsInteger:=2;
qryDetail.Post;
//插入到台帐表
DM.bsBook.Insert;
DM.bsBook.FieldByName('id').AsString:=GetGUID;
DM.bsBook.FieldByName('dtDateTime').AsDateTime:=qryMain.FieldByName('dtAuditTime').AsDateTime;
DM.bsBook.FieldByName('cOperation').AsString:='经费支出';
DM.bsBook.FieldByName('cBillNum').AsString:=qryDetail.FieldByName('cNum').AsString;
DM.bsBook.FieldByName('cBranchsNum').AsString:=qryDetail.FieldByName('cbranchsNo').AsString;
DM.bsBook.FieldByName('cItemNum').AsString:=qryDetail.FieldByName('cItemNum').AsString;
DM.bsBook.FieldByName('cItemName').AsString:=qryDetail.FieldByName('cItemName').AsString;
DM.bsBook.FieldByName('fManCount').AsFloat:=qryDetail.FieldByName('fManCount').AsFloat;
DM.bsBook.FieldByName('fStandard').AsFloat:=qryDetail.FieldByName('fStandard').AsFloat;
DM.bsBook.FieldByName('fMoney').AsFloat:=qryDetail.FieldByName('fPayoutMoney').AsFloat;
DM.bsBook.FieldByName('cztName').AsString:='经费管理';
DM.bsBook.Post;
qryDetail.Next;
end;
tbRefreshClick(Sender);
end;
procedure Tfrm_OutlayPayout.tbSaveClick(Sender: TObject);
begin
if not CHKFields then Exit;
//
try
//SaveRecord;
qryMain.Edit;
qryMain.FieldByName('iState').AsInteger:=1;
qryMain.FieldByName('cNum').AsString:=FormatDateTime('yyyymmdd-',Now)+qryMain.FieldByName('iReco').AsString;
if qryMain.State in [dsEdit,dsInsert] then qryMain.Post;
//
qryDetail.First;
while NOT qryDetail.Eof do
begin
IF qryDetail.FieldByName('fPayoutMoney').AsFloat<>0
then begin
qryDetail.Edit;
qryDetail.FieldByName('cNum').AsString:=qryMain.FieldByName('cNum').AsString;
qryDetail.FieldByName('iState').AsInteger:=1;
if qryDetail.State in [dsEdit,dsInsert] then qryDetail.Post;
qryDetail.Next;
end
else
begin
qryDetail.Delete;
end;
end;
MessageBoxInfo('数据保存成功!');
except
MessageBoxInfo('数据保存失败:请检查数据格式等信息!'+#13#10+#13#10+
'输入的关键字数据没有重复;'+#13#10+
'数据格式输入正确;'+#13#10+
'必须填写的数据信息填写完成;'+#13#10+
'其它存在的错误!');
raise;
end;
//SetAddEditMode(false);
//SetButtonsEnable(false);
N_StateClick(Sender);
end;
procedure Tfrm_OutlayPayout.tbCancelClick(Sender: TObject);
begin
//CancelRecord;
qryDetail.Cancel;
qryMain.Cancel;
//
if (not qryMain.Active) or (qryMain.IsEmpty) then Exit;
qryDetail.First;
while not qryDetail.Eof
do begin
if qryDetail.FieldByName('iState').AsInteger=0
then qryDetail.Delete
else qryDetail.Next;
end;
if qryMain.FieldByName('iState').AsInteger=0
then qryMain.Delete;
//
N_StateClick(Sender);
end;
procedure Tfrm_OutlayPayout.FormShow(Sender: TObject);
begin
//设置数据为显示状态,不能修改
//SetAddEditMode(false);
//设置按钮状态
//SetButtonsEnable(false);
//
dtBegin.Date:=Now;
dtEnd.Date:=Now;
N_QueryClick(Sender);
end;
procedure Tfrm_OutlayPayout.tbRefreshClick(Sender: TObject);
var
id:String;
begin
IF qryMain.Active then id:=qryMain.FieldByName('id').AsString;
qryMain.Close;
qryMain.Open;
qryMain.Locate('id',id,[]);
end;
procedure Tfrm_OutlayPayout.tbHelpClick(Sender: TObject);
begin
//
end;
procedure Tfrm_OutlayPayout.tbExitClick(Sender: TObject);
begin
Close;
end;
procedure Tfrm_OutlayPayout.mniFirstClick(Sender: TObject);
begin
with Sender as TMenuItem do
DoNavigator(Tag);
end;
procedure Tfrm_OutlayPayout.SB_recordClick(Sender: TObject);
begin
Application.CreateForm(TFrm_Branchs,Frm_Branchs);
Choosed:=True;
Frm_branchs.ShowModal;
IF Frm_Branchs.strid='' THEN Exit;
qryMain.Edit;
qryMain.FieldByName('cBranchsNum').AsString:=Frm_branchs.strid;
end;
procedure Tfrm_OutlayPayout.grdDetailColumns3EditButtonClick(
Sender: TObject; var Handled: Boolean);
begin
Application.CreateForm(TFrm_Item,Frm_Item);
Choosed:=True;
Frm_Item.ShowModal;
IF Frm_Item.strid='' THEN Exit;
qryDetail.Edit;
qryDetail.FieldByName('cItemNum').AsString:=Frm_Item.strid;
end;
procedure Tfrm_OutlayPayout.grdDetailColumns4EditButtonClick(
Sender: TObject; var Handled: Boolean);
begin
Application.CreateForm(TFrm_Item,Frm_Item);
Choosed:=True;
Frm_Item.ShowModal;
qryDetail.Edit;
qryDetail.FieldByName('cItemNum').AsString:=Frm_Item.strid;
end;
procedure Tfrm_OutlayPayout.grdDetailColumns6EditButtonClick(
Sender: TObject; var Handled: Boolean);
begin
Application.CreateForm(TFrm_Branchs,Frm_Branchs);
Choosed:=True;
Frm_branchs.ShowModal;
qryDetail.Edit;
qryDetail.FieldByName('cBranchsNum').AsString:=Frm_branchs.strid;
end;
procedure Tfrm_OutlayPayout.mniAddLineClick(Sender: TObject);
begin
qryDetail.Append;
qryDetail.FieldByName('id').AsString:=GetGUID;
qryDetail.FieldByName('cNum').AsString:=qryMain.FieldByName('cNum').AsString;
qryDetail.FieldByName('cBranchsNum').AsString:=qryMain.FieldByName('cBranchsNum').AsString;
end;
procedure Tfrm_OutlayPayout.mniDelLineClick(Sender: TObject);
begin
qryDetail.Delete;
end;
procedure Tfrm_OutlayPayout.N_StateClick(Sender: TObject);
var
i:Integer;
begin
for i :=0 to TB_Main.ButtonCount-1 do TB_Main.Buttons[i].Enabled:=not TB_Main.Buttons[i].Enabled;
pnlList.Enabled:=tbSave.Enabled; //单据头状态
grdMain.Enabled:=tbNew.Enabled; //单据头列表状态
if pnlList.Enabled //单据体状态
then grdDetail.Options:=grdDetail.Options+[dgEditing]
else grdDetail.Options:=grdDetail.Options-[dgEditing];
end;
procedure Tfrm_OutlayPayout.TB_FirstClick(Sender: TObject);
begin
qryMain.First;
end;
procedure Tfrm_OutlayPayout.TB_LastClick(Sender: TObject);
begin
qryMain.Last;
end;
procedure Tfrm_OutlayPayout.TB_PriorClick(Sender: TObject);
begin
qryMain.Prior;
end;
procedure Tfrm_OutlayPayout.TB_NextClick(Sender: TObject);
begin
qryMain.Next;
end;
procedure Tfrm_OutlayPayout.qryDetailAfterInsert(DataSet: TDataSet);
begin
try
qryDetail.Edit;
qryDetail.FieldByName('id').AsString:=GetGUID;
qryDetail.FieldByName('cItemNum').AsString:=Frm_Item.strid;
//qryDetail.FieldByName('cBranchsNum').AsString:=qryMain.FieldByName('cBranchsNum').AsString;
//qryDetail.FieldByName('cNum').AsString:=qryMain.FieldByName('cNum').AsString;
except
end;
end;
procedure Tfrm_OutlayPayout.ToolButton1Click(Sender: TObject);
begin
if Splitter.Position=0 then Splitter.Position:=250 else Splitter.Position:=0;
end;
procedure Tfrm_OutlayPayout.N_QueryClick(Sender: TObject);
begin
qryMain.Close;
qryMain.SQL.Text:=' select * from PayoutHost '
+' where'
+' dtSaveTime >'+QuotedStr(DateTimeToStr(dtBegin.DateTime))
+' AND dtSaveTime <'+QuotedStr(DateTimeToStr(dtEnd.DateTime))
+' AND cNum in (select a.cNum from PayoutMX a left join bsBranchs b on a.cBranchsNum=b.id where b.cName like '+QuotedStr('%'+Edt_Branchs.Text+'%')+')'
+' AND (cNum LIKE '+QuotedStr('%'+edtQuery.Text+'%')
+' OR cUSER LIKE '+QuotedStr('%'+edtQuery.Text+'%')
+' OR cAUDITUSER LIKE '+QuotedStr('%'+edtQuery.Text+'%')
+' OR cREMARK LIKE '+QuotedStr('%'+edtQuery.Text+'%')+')';
qryMain.Open;
end;
procedure Tfrm_OutlayPayout.dtBeginChange(Sender: TObject);
begin
N_QueryClick(Sender);
end;
procedure Tfrm_OutlayPayout.grdDetailDrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumnEh;
State: TGridDrawState);
//var i:Integer;
begin
{
i:=0;
if i=0
then begin
(Sender as TDBGridEh).Canvas.Brush.Color:=clSkyBlue;
(Sender as TDBGridEh).DefaultDrawColumnCell(Rect,DataCol,Column,State);
end;
}
end;
procedure Tfrm_OutlayPayout.SpeedButton1Click(Sender: TObject);
begin
Application.CreateForm(TFrm_Branchs,Frm_Branchs);
Choosed:=True;
Frm_branchs.ShowModal;
IF Frm_Branchs.strid='' THEN Exit;
Edt_Branchs.Text:=Frm_Branchs.strName;
end;
procedure Tfrm_OutlayPayout.TB_DelLineClick(Sender: TObject);
begin
if qryDetail.IsEmpty then Exit;
qryDetail.Delete;
end;
procedure Tfrm_OutlayPayout.TB_AuditingCancelClick(Sender: TObject);
begin
if not PurviewSet('经费支出反审') then Exit;
if qryMain.FieldByName('iState').AsInteger<>2 then Exit;
if MessageBoxQuery('您确定要取消当前已审核的单据吗?')=IDNO then Exit;
DM.bsBook.Close;
DM.bsBook.SQL.Text:='DELETE From bsBook WHERE cOperation=''经费支出'' AND cBILLNUM='+QuotedStr(qryMain.FieldByName('cNum').AsString);
DM.bsBook.ExecSQL;
qryMain.Edit;
qryMain.FieldByName('cAuditUser').AsString:='';
qryMain.FieldByName('iState').AsInteger:=1;
qryMain.Post;
qryDetail.First;
while NOT qryDetail.Eof do
begin
qryDetail.Edit;
qryDetail.FieldByName('iState').AsInteger:=1;
qryDetail.Post;
qryDetail.Next;
end;
tbRefreshClick(Sender);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?