ucostinitial.pas
来自「成本系统三层结构源码 开发工具:Delphi 7.0+SQLServer 20」· PAS 代码 · 共 166 行
PAS
166 行
unit uCostInitial;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, upub3, dxExEdtr, ImgList, ActnList, Menus, DB, ComCtrls, DateUtils,
ToolWin, dxCntner, dxTL, dxDBCtrl, dxDBGrid, ExtCtrls, dxEditor, dxEdLib,
StdCtrls, wwdbdatetimepicker, dxDBTLCl, dxGrClms;
type
TfmCostInitial = class(Tfmpub3)
DataSource2: TDataSource;
StaticText1: TStaticText;
N1: TMenuItem;
N3: TMenuItem;
N4: TMenuItem;
N5: TMenuItem;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure AApproveExecute(Sender: TObject);
procedure AConfirmExecute(Sender: TObject);
procedure TBTempClick(Sender: TObject);
procedure DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure N3Click(Sender: TObject);
procedure N5Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmCostInitial: TfmCostInitial;
implementation
uses udmcost, udmsys, SherryLib, udata;
{$R *.dfm}
procedure TfmCostInitial.FormCreate(Sender: TObject);
var i:integer;
begin
OpenData(DataSource2);
ShowFields(DMCost.CCostInitial);
DMCost.CCostInitial.Params.ParamValues['@StartDate']:=DMSys.CSysConfig['StartDate'];
DMCost.CCostInitial.Active:=True;
ShowGrid(DbGrid1, '年度月份', 3, False, True, False, False);
inherited;
OpenData(DataSource1);
if Exists('select 1 from sysobjects where xtype=''TR'' and name=''TrCostInitial''') then
begin
AApprove.Enabled := False;
AConfirm.Enabled := False;
TBTemp.Enabled:=False;
DBGrid1.OptionsDB := DBGrid1.OptionsDB - [edgoCanDelete, edgoCanAppend];
dbgrid1.OptionsBehavior:=dbgrid1.OptionsBehavior+[edgoautosort,edgoautosearch,edgomultisort];
StaticText1.Caption := '已封帐';
end
else
begin
AApprove.Enabled := True;
AConfirm.Enabled := False;
TBTemp.Enabled:=True;
for i:=DBGrid1.ColumnCount-1 downto 0 do
if Pos(UpperCase('Cost'),UpperCase(DBGrid1.Columns[i].FieldName))>0 then
DBGrid1.Columns[i].DisableEditor := False;
DBGrid1.OptionsDB := DBGrid1.OptionsDB + [edgoCanDelete, edgoCanAppend];
DBGrid1.OptionsBehavior := DBGrid1.OptionsBehavior- [edgoautosort,edgoautosearch,edgomultisort];
StaticText1.Caption := '未封帐';
end;
end;
procedure TfmCostInitial.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
inherited;
CloseData(DataSource1);
CloseData(DataSource2);
end;
procedure TfmCostInitial.AApproveExecute(Sender: TObject);
var i: Integer;
begin
if DMCost.CCostInitial.ChangeCount>0 then Warn('请先保存数据!');
if not Ask('封帐後将不能再调整期初成本,是否继续?') then abort;
try
ShowWait;
Try
exec_Sql('CostInitialLock');
except
On E: Exception do
sherrylib.AppException(E);
end;
Log(Self.Caption,'期初成本封帐'+FormatDateTime('yyyyMM',DTPMonth.DateTime));
AApprove.Enabled := False;
AConfirm.Enabled := True;
for i:=DBGrid1.ColumnCount-1 downto 0 do
DBGrid1.Columns[i].DisableEditor := True;
InFo('期初成本封帐完毕!');
finally
HideWait;
end;
end;
procedure TfmCostInitial.AConfirmExecute(Sender: TObject);
var i:Integer;
begin
try
ShowWait;
exec_Sql('if exists(select 1 from sysobjects where xtype=''TR'' and name=''TrCostInitial'') drop trigger TrCostInitial');
AApprove.Enabled := True;
AConfirm.Enabled := False;
for i:=DBGrid1.ColumnCount-1 downto 0 do
if Pos(UpperCase('Cost'),UpperCase(DBGrid1.Columns[i].FieldName))>0 then
DBGrid1.Columns[i].DisableEditor := True;
InFo('解帐成功,请记得及时再次封帐!');
finally
HideWait;
end;
end;
procedure TfmCostInitial.TBTempClick(Sender: TObject);
begin
Try
showWait;
DMCost.CCostInitial.ApplyUpdates(0);
Finally
HideWait;
End;
end;
procedure TfmCostInitial.DBGrid1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
inherited;
dxDbgridKeyDown(key,DBGrid1, Shift);
end;
procedure TfmCostInitial.N3Click(Sender: TObject);
begin
if DMCost.CCostInitial.ChangeCount>0 then
DMCost.CCostInitial.ApplyUpdates(0);
Try
showWait;
Exec_SQL(Format('Insert into Costmonth(OrderNo, YearNo, MonthNo) '+#13+
'select OrderNo, %0:d,%1:d from OrderData OD '+#13+
'where not exists(select 1 from CostMonth CI where CI.OrderNo=OD.OrderNo and YearNo=%0:d and MonthNo=%1:d)',
[YearOf(DMSys.CSysConfig['StartDate']),MonthOf(DMSys.CSysConfig['StartDate'])]));
DMCost.CCostInitial.Refresh;
Finally
HideWait;
End;
end;
procedure TfmCostInitial.N5Click(Sender: TObject);
begin
DMCost.CCostInitial.ApplyUpdates(0);
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?