stockchecksurplusqry.pas

来自「医药连锁经营管理系统源码」· PAS 代码 · 共 305 行

PAS
305
字号
unit StockCheckSurplusQry;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Grids, DBGridEh, xEhLibCtl, RzButton, RzRadChk, ComCtrls, RzDTP,
  StdCtrls, RzCmboBx, RzBtnEdt, Mask, RzEdit, RzLabel, RzPanel, RzSplit,
  TFlatSpeedButtonUnit, ExtCtrls, TFlatPanelUnit, DB, ActnList, MConnect,
  ModuleAction, ImgList, DBClient, ckDBClient, Menus, RzDBDTP, RzDBEdit,
  RzDBBnEd, xBaseFrm, IMainFrm, uGlobal, uDataTypes,StrUtils;

type
  TFmStockCheckSurplusQry = class(TxBaseForm)
    TopPopMenu: TPopupMenu;
    SetFields1: TMenuItem;
    refresh1: TMenuItem;
    ImageList1: TImageList;
    ActionList1: TActionList;
    ActQuery: TModlAction;
    ActReport: TModlAction;
    ActFieldsLayout: TModlAction;
    ActDataExport: TModlAction;
    ActDesignReport: TModlAction;
    ActViewBill: TModlAction;
    DataSource: TDataSource;
    cdsStockCheckSurplus: TckClientDataSet;
    ptBkPanel: TFlatPanel;
    FlatPanel2: TPanel;
    BtnWhatIs: TFlatSpeedButton;
    BtnHelp: TFlatSpeedButton;
    FlatPanel3: TPanel;
    BtnPopMenu: TFlatSpeedButton;
    Panel1: TRzSizePanel;
    Panel2: TPanel;
    RzGroupBox1: TRzGroupBox;
    RzBitBtn2: TRzBitBtn;
    RzBitBtn1: TRzBitBtn;
    btnAll: TRzBitBtn;
    dbgStockCheckSurplus: TxDBGridEh;
    Label1: TLabel;
    Label2: TLabel;
    Label3: TLabel;
    Label4: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    ckMultiSelect: TRzCheckBox;
    edBillNo1: TRzEdit;
    edFDate1: TRzDateTimePicker;
    Label7: TLabel;
    edBillNo2: TRzEdit;
    Label8: TLabel;
    edFDate2: TRzDateTimePicker;
    edDepotNo: TRzButtonEdit;
    edEmpNo: TRzButtonEdit;
    edAudit: TRzButtonEdit;
    edGoodsID: TRzButtonEdit;
    Label9: TLabel;
    Label10: TLabel;
    edCreater: TRzButtonEdit;
    edGrup: TRzButtonEdit;
    Label11: TLabel;
    cbAudit: TRzComboBox;
    procedure edEmpNoButtonClick(Sender: TObject);
    procedure edAuditButtonClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure ActQueryExecute(Sender: TObject);
    procedure edDepotNoButtonClick(Sender: TObject);
    procedure SetFields1Click(Sender: TObject);
    procedure refresh1Click(Sender: TObject);
    procedure ActReportExecute(Sender: TObject);
    procedure ActViewBillExecute(Sender: TObject);
    procedure edGoodsIDButtonClick(Sender: TObject);
    procedure edCreaterButtonClick(Sender: TObject);
    procedure edGrupButtonClick(Sender: TObject);
  private
    { Private declarations }
    IFmMain: IMainForm;
    LocSetting: PLocSetting;
    iClientID: Integer;
    SvrCommon: TDispatchConnection;
    CdsFieldProperty :TckClientDataSet;
  public
    { Public declarations }
  end;

var
  FmStockCheckSurplusQry: TFmStockCheckSurplusQry;

Const
  sFieldProPerty='Select * From SysFieldProperty '+' Where TableName=''StockCheckSurplus''';

implementation

uses SelectGoodsFrm,ceGlobal, ShowProGress, FieldsLayoutFrm, RepSelectFrm, DataExportFrm,
     SelectProvFrm,SelectEmpFrm,SelectDepartFrm,SelectPayMode,DBFuncs,SelectProvLinkManFrm,
     SelectDepotFrm;

{$R *.dfm}

procedure TFmStockCheckSurplusQry.FormCreate(Sender: TObject);
var SystemTime: TSystemTime;
begin
  CdsFieldProperty := TckClientDataSet.Create(Self);
  GetLocalTime(SystemTime);
  with SystemTime do
    edFDate1.Date := EncodeDate(wYear, wMonth, 1);
  edFDate2.Date := Date;

  IFmMain := Application.MainForm as IMainForm;
  LocSetting := IFmMain.IFmMainEx.GetLocSetting;
  iClientID := IFmMain.IFmMainEx.ClientID;
  SetGressHint('正在连接到公用信息服务器...');
  SvrCommon := IFmMain.GetConnection(Handle, '', 'CommonSvr.CommonRDM');
  cdsStockCheckSurplus.RemoteServer := SvrCommon;

  CdsFieldProPerty.ProviderName:='DspTemp';
  CdsFieldProPerty.RemoteServer:=SvrCommon;
end;

procedure TFmStockCheckSurplusQry.FormShow(Sender: TObject);
var sTableNames: string;
begin
  SetGressHint('初始化本地环境...');
  IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
  SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFmStockCheckSurplus.Xml');
  sTableNames:='StockCheckSurplus';
  SetFieldProperty(CdsFieldProPerty,cdsStockCheckSurplus,sTableNames);
  SetGridEhColor([dbgStockCheckSurplus]);
  ptBkPanel.Color := TitlePanelColor;
  FreeGressForm;
end;

procedure TFmStockCheckSurplusQry.edEmpNoButtonClick(Sender: TObject);
var
  sEmpNo, sEmpName: string;
begin
  sEmpNo := '';
  sEmpName := '';
  if SelectEmp(sEmpNo, sEmpName) then
    edEmpNo.Text := sEmpNo;
end;

procedure TFmStockCheckSurplusQry.edAuditButtonClick(Sender: TObject);
var
  sEmpNo, sEmpName: string;
begin
  sEmpNo := '';
  sEmpName := '';
  if SelectEmp(sEmpNo, sEmpName) then
    edAudit.Text := sEmpNo;
end;

procedure TFmStockCheckSurplusQry.ActQueryExecute(Sender: TObject);
var s,swMst,swDtl,sTableNames:string;
begin
  swMst:= ' and M.FDate >= ''' + FormatDateTime('yyyy-mm-dd', edFDate1.date)
      + ''' and M.FDate <= ''' + FormatDateTime('yyyy-mm-dd', edFDate2.Date) + '''';
  s:=edBillNo1.Text;
  if s<>'' then
  begin
    if edBillNo2.Text <> '' then
      swMst := swMst + ' and BillNo >= ''' + s + ''' and BillNo <= ''' + edBillNo2.Text + ''''
    else
      swMst := swMst + ' and BillNo = ''' + s + '''';
  end;
  s:=edEmpNo.Text;
  if s<>'' then
    swMst := swMst + ' and EmpNo = ''' + s + '''';
  s:=edAudit.Text;
  if s<>'' then
    swMst := swMst + ' and EmpNo = ''' + s + '''';
  s := edDepotNo.Text;
  if  s <> '' then
    swMst := swMst + ' and DepotID = ' + IntToStr(edDepotNo.Tag);
  s:=edCreater.Text;
  if s<>'' then
    swMst:=swMst+' and Creater='''+s+'''';
  s:=edGrup.Text;
  if s<>'' then
    swMst:=swMst+' and Grup='''+s+'''';
  if cbAudit.ItemIndex>0 then
    swMst := swMst + ' and Transfer='+IntToStr(cbAudit.ItemIndex-1);
  s := edGoodsID.Text;
  if s <> '' then
  begin
    if AnsiPos(',', s) <> 0 then
      swDtl := swDtl + ' and GoodsID in(''' + AnsiReplaceText(s, ',', ''',''') + ''')'
    else
      swDtl := swDtl + ' and GoodsID Like ''' + s + '''';
  end;

  cdsStockCheckSurplus.Close;
  cdsStockCheckSurplus.Data := SvrCommon.AppServer.QueryBill(iClientID, 'StockCheckSurplus', swMst, swDtl);
  sTableNames := 'StockCheckSurplus';
  SetFieldProperty(CdsFieldProPerty,cdsStockCheckSurplus,sTableNames);
end;

procedure TFmStockCheckSurplusQry.edDepotNoButtonClick(Sender: TObject);
var
  nDepotID: integer;
  sDepotNO, sDepotName: string;
begin
  nDepotID := 0;
  sDepotNO := '';
  sDepotName := '';
  if SelectDepot(nDepotID, sDepotNo, sDepotName) then
  begin
    edDepotNo.Tag := nDepotID;
    edDepotNo.Text := sDepotName;
  end;
end;

procedure TFmStockCheckSurplusQry.SetFields1Click(Sender: TObject);
begin
  SetFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [dbgStockCheckSurplus], '盘点盈亏单查询');
end;

procedure TFmStockCheckSurplusQry.refresh1Click(Sender: TObject);
begin
	ExportData([cdsStockCheckSurplus], '盘点盈亏单查询', '');
end;

procedure TFmStockCheckSurplusQry.ActReportExecute(Sender: TObject);
begin
  SelRepPrint(self.Name, [cdsStockCheckSurplus], '盘点盈亏单查询', ActDesignReport.Enabled);
end;

procedure TFmStockCheckSurplusQry.ActViewBillExecute(Sender: TObject);
var Values: Variant;
    sBillNo, sBills: String;
    mark: TBookmark;
begin
  if cdsStockCheckSurplus.IsEmpty then Exit;
  with cdsStockCheckSurplus do begin
    sBillNo := FieldByName('BillNo').AsString;
    mark := GetBookmark;
    DisableControls;
    try
      First;
      while not Eof do begin
        sBills := sBills+FieldByName('BillNo').AsString+#13;
        Next;
      end;
    finally
      GotoBookmark(mark);
      FreeBookmark(mark);
      EnableControls;
    end;
  end;
  Values := VarArrayCreate([0,1], varOleStr);
  Values[0] := sBillNo;
  Values[1] := sBills;
  IFmMain.DoSome(ActViewBill.ModuleFile, 'ViewBill', Values);
  Values := NULL;
end;

procedure TFmStockCheckSurplusQry.edGoodsIDButtonClick(Sender: TObject);
var
  sGoodsId :String;
begin
  sGoodsID := '';
  if ckMultiSelect.Checked then
  begin
    if SelectGoodsID(sGoodsID, true) then
      If edGoodsID.Text<>'' Then
        edGoodsId.Text := edGoodsId.Text+','+sGoodsId
      else
        edGoodsId.Text := sGoodsID;
  End
  else if SelectGoodsID(sGoodsID, false) then
    edGoodsID.text := sGoodsID;
end;

procedure TFmStockCheckSurplusQry.edCreaterButtonClick(Sender: TObject);
var
  sEmpNo, sEmpName: string;
begin
  sEmpNo := '';
  sEmpName := '';
  if SelectEmp(sEmpNo, sEmpName) then
    edCreater.Text := sEmpNo;
end;

procedure TFmStockCheckSurplusQry.edGrupButtonClick(Sender: TObject);
var iID: Integer;
    sNo, sName: String;
begin
  iID := 0;
  if SelectDepart(iID, sNo, sName) then
  begin
    edGrup.Tag := iID;
    edGrup.Text:= sNo;
  end;
end;

initialization
  RegisterClass(TFmStockCheckSurplusQry);

finalization
  UnRegisterClass(TFmStockCheckSurplusQry);

end.

⌨️ 快捷键说明

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