📄 uinvmonth.pas
字号:
unit uInvMonth;
interface
uses
Windows, SysUtils, Variants, Classes, Graphics, Controls, Forms, DateUtils,
Dialogs, upub3, dxExEdtr, ImgList, ActnList, Menus, DB, ComCtrls, DBClient,
ToolWin, dxCntner, dxTL, dxDBCtrl, dxDBGrid, ExtCtrls, StdCtrls,
wwdbdatetimepicker, dxEditor, dxEdLib;
type
TfmInvMonth = class(Tfmpub3)
procedure AApproveExecute(Sender: TObject);
procedure AConfirmExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure DBGrid1CustomDrawCell(Sender: TObject; ACanvas: TCanvas;
ARect: TRect; ANode: TdxTreeListNode; AColumn: TdxTreeListColumn;
ASelected, AFocused, ANewItemRow: Boolean; var AText: String;
var AColor: TColor; AFont: TFont; var AAlignment: TAlignment;
var ADone: Boolean);
private
{ Private declarations }
public
{ Public declarations }
end;
var
fmInvMonth: TfmInvMonth;
implementation
uses udminv, SherryLib, udata;
{$R *.dfm}
procedure TfmInvMonth.AApproveExecute(Sender: TObject);
begin
Try
ShowWait;
with DMINV.CInvMonth do
begin
Active:=False;
Params.ParamValues['@Flag']:=0;
Params.ParamValues['@Date']:=DTPMonth.Date;
Active:=True;
ShowGrid(DBGrid1,'上月单价本月单价',3,True,True, True, True,1);
end;
finally
HideWait;
End;
end;
procedure TfmInvMonth.AConfirmExecute(Sender: TObject);
begin
if exists(Format('Select 1 from FinanceLock where Finished=1 and YearNo=%d and MonthNo=%d',[YearOf(DTPMonth.Datetime),MonthOf(DTPMonth.Datetime)])) then
Warn(Format('当前会计期间【%s】已经结帐,只能查询而不允许再计算!',[FormatDateTime('yyyyMM',DTPMonth.DateTime)]));
if 100*Yearof(SystemStartDate)+MonthOf(SystemStartDate)>=100*YearOf(DTPMonth.DateTime)+MonthOf(DTPMonth.DateTime) then
Warn(Format('当前会计期间【%s】必须大於系统启用期间【%s】,系统启用期间内的进销存帐也只能查询而不允许再计算!',[FormatDateTime('yyyyMM',DTPMonth.DateTime),FormatDateTime('yyyyMM',SystemStartDate)]));
if not exists(Format('Select 1 from InvMonth where YearNo=%d and MonthNo=%d',[YearOf(IncMonth(DTPMonth.Date,-1)),MonthOf(IncMonth(DTPMonth.Date,-1))])) then
if MonthsBetween(SystemStartDate, IncMonth(DTPMonth.Date,-1))<>0 then
if Ask(Format('上一个会计期间【%0:s】还未完成计算,是否先计算上一个会计期间【%0:s】的进销存帐? ',[FormatDateTime('yyyyMM',IncMonth(DTPMonth.DateTime,-1))])) then
DTPMonth.Date:=IncMonth(DTPMonth.Date,-1);
try
ShowWait;
with DMINV.CInvMonth do
begin
Active:=False;
Params.ParamValues['@Flag']:=1;
Params.ParamValues['@Date']:=DTPMonth.Date;
Active:=True;
ShowGrid(DBGrid1,'上月单价本月单价');
Log(Self.Caption,'计算月进销'+FormatDateTime('yyyyMM',DTPMonth.DateTime))
end;
finally
HideWait;
End;
end;
procedure TfmInvMonth.FormCreate(Sender: TObject);
begin
inherited;
IncMonth(DTPMonth.Date,-1);
AApprove.Execute;
end;
procedure TfmInvMonth.DBGrid1CustomDrawCell(Sender: TObject;
ACanvas: TCanvas; ARect: TRect; ANode: TdxTreeListNode;
AColumn: TdxTreeListColumn; ASelected, AFocused, ANewItemRow: Boolean;
var AText: String; var AColor: TColor; AFont: TFont;
var AAlignment: TAlignment; var ADone: Boolean);
begin
//inherited;
if (not ANode.HasChildren) then
begin
if ANode.Index mod 2 <> 0 then AColor := clMoneyGreen;
if Pos(AColumn.Caption,'本月单价,本月结存')>0 then
If (ANode.Values[DBGrid1.FindColumnByFieldName('本月结存').Index]<0) or
(ANode.Values[DBGrid1.FindColumnByFieldName('本月单价').Index]<0) Then AColor:=clred
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -