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

📄 uinvmonth.pas

📁 成本系统三层结构源码 开发工具:Delphi 7.0+SQLServer 2005 主要技术:Midas、COM+ 所用第三方控件: FastReport V2.47 D7 Inforp
💻 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 + -