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

📄 monthfootfrm.pas

📁 医药连锁经营管理系统源码
💻 PAS
字号:
unit MonthFootFrm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, RzPanel, RzTabs, RzButton, ComCtrls, RzDTP, StdCtrls,
  Grids, DBGridEh, DbUtilsEh, EhLibCDS, xEhLibCtl, DB, DBClient, ckDBClient, TFlatSpeedButtonUnit,
  RzCmboBx, Mask, RzEdit, RzBtnEdt, MConnect, ImgList, ActnList, Menus,
  ModuleAction, IMainFrm, xBaseFrm, uDataTypes, DbFuncs, ShowProgress, FieldsLayoutFrm;

type
  TFmMonthFoot = class(TxBaseForm)
    RzPanel1: TRzPanel;
    Label1: TLabel;
    edFootMonth: TRzDateTimePicker;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    PageCtrl: TRzPageControl;
    TabSheet1: TRzTabSheet;
    TabSheet2: TRzTabSheet;
    TabSheet3: TRzTabSheet;
    RzBitBtn3: TRzBitBtn;
    Label2: TLabel;
    cdsMonthDtlStock: TckClientDataSet;
    dsMonthDtlStock: TDataSource;
    dbgMonthDtlStock: TxDBGridEh;
    Panel1: TPanel;
    Label3: TLabel;
    RzButtonEdit1: TRzButtonEdit;
    RzButtonEdit2: TRzButtonEdit;
    RzComboBox1: TRzComboBox;
    BtnDataFilter1: TRzBitBtn;
    DCOMConn: TDCOMConnection;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label7: TLabel;
    RzButtonEdit3: TRzButtonEdit;
    RzButtonEdit4: TRzButtonEdit;
    cdsMonthArrearage: TckClientDataSet;
    dsMonthArrearage: TDataSource;
    cdsMonthGathering: TckClientDataSet;
    dsMonthGathering: TDataSource;
    BtnPopMenu: TFlatSpeedButton;
    TopPopMenu: TPopupMenu;
    SetFields1: TMenuItem;
    refresh1: TMenuItem;
    ActionList1: TActionList;
    ActRefresh: TModlAction;
    ActTryoutMonthFoot: TModlAction;
    ActViewFootRec: TModlAction;
    ActFoot: TModlAction;
    ActPrint: TModlAction;
    ActExit: TModlAction;
    ActFieldsLayOut: TModlAction;
    ActDataExport: TModlAction;
    ActDesignReport: TModlAction;
    ImageList1: TImageList;
    BtnPrint: TRzBitBtn;
    BitBtn2: TRzBitBtn;
    ActUnFoot: TModlAction;
    RzBitBtn6: TRzBitBtn;
    Panel2: TPanel;
    dbgMonthArrearage: TxDBGridEh;
    Panel3: TPanel;
    dbgMonthGathering: TxDBGridEh;
    RzEdit1: TRzEdit;
    Label8: TLabel;
    RzButtonEdit5: TRzButtonEdit;
    RzEdit2: TRzEdit;
    Label9: TLabel;
    RzButtonEdit6: TRzButtonEdit;
    RzEdit3: TRzEdit;
    Label10: TLabel;
    Label11: TLabel;
    RzButtonEdit7: TRzButtonEdit;
    RzButtonEdit8: TRzButtonEdit;
    BtnDataFilter2: TRzBitBtn;
    Label12: TLabel;
    RzButtonEdit9: TRzButtonEdit;
    RzEdit4: TRzEdit;
    Label13: TLabel;
    RzButtonEdit10: TRzButtonEdit;
    RzEdit5: TRzEdit;
    Label14: TLabel;
    Label15: TLabel;
    RzButtonEdit11: TRzButtonEdit;
    RzButtonEdit12: TRzButtonEdit;
    BtnDataFilter3: TRzBitBtn;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BtnPopMenuClick(Sender: TObject);
    procedure ActViewFootRecExecute(Sender: TObject);
    procedure ActTryoutMonthFootExecute(Sender: TObject);
    procedure ActFootExecute(Sender: TObject);
    procedure ActUnFootExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure ActExitExecute(Sender: TObject);
    procedure ActFieldsLayOutExecute(Sender: TObject);
    procedure ActDataExportExecute(Sender: TObject);
  private
    IFmMain: IMainForm;
    iClientID: Integer;
    LocSetting: PLocSetting;
    CdsFieldProPerty:TCKClientDataSet;
    SvrCommon: TDispatchConnection;
  protected
    SvrDataTend: TDispatchConnection;
  public
  end;

var
  FmMonthFoot: TFmMonthFoot;

const
  sFieldProPerty='Select * From SysFieldProPerty '+
       ' Where TableName In(''MonthGathering'',''MonthArrearage'',''MonthDtlStock'')';

implementation

uses ceGlobal, RepSelectFrm, DataExportFrm;

{$R *.dfm}

procedure TFmMonthFoot.FormCreate(Sender: TObject);
begin
  IFmMain := Application.MainForm as IMainForm;
  iClientID := IFmMain.IFmMainEx.ClientID;
  LocSetting := IFmMain.IFmMainEx.GetLocSetting;
  SetGressHint('正在连接数据分析服务器...');
  SvrDataTend := IFmMain.GetConnection(Handle, '', 'SysDataTendSvr.SysDataTend');
  SetGressHint('正在连接到公用信息服务器...');
  SvrCommon:=IFmMain.GetConnection(Handle,'','CommonSvr.CommonRDM');
  CdsFieldProPerty.RemoteServer:=SvrCommon;
  cdsMonthDtlStock.RemoteServer := SvrDataTend;
  cdsMonthArrearage.RemoteServer := SvrDataTend;
  cdsMonthGathering.RemoteServer := SvrDataTend;
end;

procedure TFmMonthFoot.FormShow(Sender: TObject);
var sTableNames: string;
begin
  PageCtrl.TabIndex := 0;
  SetGridEhColor([dbgMonthDtlStock, dbgMonthArrearage, dbgMonthGathering]);

  LoadFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgMonthGathering,dbgMonthArrearage,dbgMonthDtlStock]);
  SetGressHint('初始化本地环境...');
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmSelectGathering.Xml');
  sTableNames:='MonthGathering';
  SetFieldProperty(CdsFieldProPerty,cdsMonthGathering,sTableNames);
  sTableNames:='MonthArrearage';
  SetFieldProperty(CdsFieldProPerty,cdsMonthArrearage,sTableNames);
  sTableNames:='MonthDatlStock';
  SetFieldProperty(CdsFieldProPerty,cdsMonthDtlStock,sTableNames);
  FreeGressForm;
end;

procedure TFmMonthFoot.BtnPopMenuClick(Sender: TObject);
var tp:TPoint;
begin
  tp.X:=BtnPopMenu.Left;
  tp.Y:=BtnPopMenu.Top+BtnPopMenu.Height+1;
  tp:=ClientToScreen(tp);
	TopPopmenu.Popup(tp.x,tp.Y);
end;

procedure TFmMonthFoot.ActTryoutMonthFootExecute(Sender: TObject);
var sInaptBills: String;
    i, j, n: word;
    k: Integer;
begin
  DecodeDate(edFootMonth.Date, i, j, n);
  k := i*100+j;
  SvrDataTend.AppServer.TryoutMonthFoot(iClientID, k, sInaptBills);
  cdsMonthDtlStock.Close;
  cdsMonthDtlStock.Params[0].Value := k;
  cdsMonthDtlStock.Open;
  cdsMonthArrearage.Close;
  cdsMonthArrearage.Params[0].Value := k;
  cdsMonthArrearage.Open;
  cdsMonthGathering.Close;
  cdsMonthGathering.Params[0].Value := k;
  cdsMonthGathering.Open;
  if sInaptBills<>'' then
    ShowMessage(sInaptBills);
end;

procedure TFmMonthFoot.ActViewFootRecExecute(Sender: TObject);
var i, j, n: word;
    k: Integer;
begin
  DecodeDate(edFootMonth.Date, i, j, n);
  k := i*100+j;
  cdsMonthDtlStock.Close;
  cdsMonthDtlStock.Params[0].Value := k;
  cdsMonthDtlStock.Open;
  cdsMonthArrearage.Close;
  cdsMonthArrearage.Params[0].Value := k;
  cdsMonthArrearage.Open;
  cdsMonthGathering.Close;
  cdsMonthGathering.Params[0].Value := k;
  cdsMonthGathering.Open;
end;

procedure TFmMonthFoot.ActFootExecute(Sender: TObject);
var i, j, n: word;
    k, m: Integer;
    sError: String;
begin
  DecodeDate(edFootMonth.Date, i, j, n);
  k := i*100+j;
  m := cdsMonthDtlStock.Params[0].Value;
  if k<>m then begin
    Application.MessageBox('为了保障月结封帐的可靠性,应先核对该月份的月结记录(或进行月结试算)后再执行此操作!', '消息', MB_ICONINFORMATION);
    Exit;
  end;
  if Application.MessageBox('"月结封帐"是一个非常重要且不可逆的操作,"解帐"只是返回上月的非常手段。'#13
         +'系统并不能为您提供任何有关"解帐"操作所引的数据安全性担保。'#13#13'你确定准备就绪了吗?', '警告', MB_YESNO+MB_ICONWARNING)=IDNO then
    Exit;
  if not SvrDataTend.AppServer.MonthFoot(iClientID, k, sError) then begin
    Application.MessageBox(PChar(sError), '"月结封帐"操作失败', MB_ICONERROR);
  end;
end;

procedure TFmMonthFoot.ActUnFootExecute(Sender: TObject);
var i, j, n: word;
    k: Integer;
    sError: String;
begin
  DecodeDate(edFootMonth.Date, i, j, n);
  k := i*100+j;
  if Application.MessageBox('"解帐"只是返回上月的非常手段,系统管理员不应将此权限授予普通用户。'#13
         +'系统并不能为您提供任何有关"解帐"操作所引的数据安全性担保。'#13#13'你确定准备就绪了吗?', '警告', MB_YESNO+MB_ICONWARNING)=IDNO then
    Exit;
  if not SvrDataTend.AppServer.UndoMonthFoot(iClientID, k, sError) then begin
    Application.MessageBox(PChar(sError), '"解帐"操作失败', MB_ICONERROR);
    Exit;
  end;
  cdsMonthDtlStock.Refresh;
  cdsMonthArrearage.Refresh;
  cdsMonthGathering.Refresh;
end;

procedure TFmMonthFoot.ActPrintExecute(Sender: TObject);
begin
  SelRepPrint(self.Name, [cdsMonthDtlStock, cdsMonthArrearage, cdsMonthGathering],
              '库存月结数量;应付款月结;应收付款月结',ActDesignReport.Enabled);
end;

procedure TFmMonthFoot.ActFieldsLayOutExecute(Sender: TObject);
begin
  SetFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name,
                  [dbgMonthDtlStock, dbgMonthArrearage, dbgMonthGathering],'库存月结数量;应付款月结;应收付款月结');
end;

procedure TFmMonthFoot.ActDataExportExecute(Sender: TObject);
begin
	ExportData([cdsMonthDtlStock, cdsMonthArrearage, cdsMonthGathering],
             '库存月结数量;应付款月结;应收付款月结', '');
end;

procedure TFmMonthFoot.ActExitExecute(Sender: TObject);
begin
  Close;
end;

initialization
  RegisterClass(TFmMonthFoot);

finalization
  UnRegisterClass(TFmMonthFoot);

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -