stockmoveqry.~pas
来自「群星医药系统源码」· ~PAS 代码 · 共 361 行
~PAS
361 行
unit StockMoveQry;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, RzPanel, TFlatSpeedButtonUnit, ExtCtrls, RzStatus, StrUtils,
TFlatPanelUnit, Menus, ImgList, ActnList, ModuleAction, RzButton,
StdCtrls, RzCmboBx, RzRadChk, RzBtnEdt, Mask, RzEdit, ComCtrls, RzDTP,
RzLabel, RzSplit, Grids, DBGridEh, xEhLibCtl, DB, DBClient, MConnect,
xBaseFrm, IMainFrm, uDataTypes, ckDBClient, DBFuncs, ceGlobal, RepSelectFrm;
type
TFmStockMoveQuery = class(TxBaseForm)
ptBkPanel: TFlatPanel;
FlatPanel2: TPanel;
BtnWhatIs: TFlatSpeedButton;
BtnHelp: TFlatSpeedButton;
FlatPanel3: TPanel;
BtnPopMenu: TFlatSpeedButton;
RzSizePanel1: TRzSizePanel;
RzGroupBox2: TRzGroupBox;
Label15: TLabel;
Label16: TLabel;
Label17: TLabel;
Label18: TLabel;
Label20: TLabel;
Label21: TLabel;
Label22: TLabel;
Label23: TLabel;
Label24: TLabel;
Label25: TLabel;
Label26: TLabel;
Label27: TLabel;
RzLabel1: TRzLabel;
dtpBegin: TRzDateTimePicker;
dtpEnd: TRzDateTimePicker;
edtBillNoBegin: TRzEdit;
edtBillNoEnd: TRzEdit;
edtDepotID: TRzButtonEdit;
edtToDepotID: TRzButtonEdit;
edtShipper: TRzButtonEdit;
edtEmpNo: TRzButtonEdit;
edtAudit: TRzButtonEdit;
edtCreater: TRzButtonEdit;
edtCrup: TRzButtonEdit;
chkMultiSelect: TRzCheckBox;
cmbAudit: TRzComboBox;
RzBitBtn1: TRzBitBtn;
RzBitBtn2: TRzBitBtn;
RzBitBtn3: TRzBitBtn;
ActionList1: TActionList;
ActQuery: TModlAction;
ActReport: TModlAction;
ActFieldsLayout: TModlAction;
ActDataExport: TModlAction;
ActDesignReport: TModlAction;
ActViewBill: TModlAction;
ImageList1: TImageList;
TopPopMenu: TPopupMenu;
SetFields1: TMenuItem;
refresh1: TMenuItem;
grdStockMove: TxDBGridEh;
DataSource: TDataSource;
DCOM: TDCOMConnection;
edtGoodsID: TRzButtonEdit;
cdsStockMove: TckClientDataSet;
procedure BtnPopMenuClick(Sender: TObject);
procedure edtDepotIDButtonClick(Sender: TObject);
procedure edtCreaterButtonClick(Sender: TObject);
procedure edtShipperButtonClick(Sender: TObject);
procedure edtToDepotIDButtonClick(Sender: TObject);
procedure edtCrupButtonClick(Sender: TObject);
procedure edtEmpNoButtonClick(Sender: TObject);
procedure edtAuditButtonClick(Sender: TObject);
procedure edtGoodsIDButtonClick(Sender: TObject);
procedure ActQueryExecute(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure ActReportExecute(Sender: TObject);
procedure ActViewBillExecute(Sender: TObject);
procedure dtpBeginKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ActFieldsLayoutExecute(Sender: TObject);
procedure ActDataExportExecute(Sender: TObject);
private
{ Private declarations }
IFmMain: IMainForm;
LocSetting: PLocSetting;
iClientID: Integer;
SvrCommon: TDispatchConnection;
CdsFieldProperty :TckClientDataSet;
public
{ Public declarations }
end;
var
FmStockMoveQuery: TFmStockMoveQuery;
implementation
uses ShowProgress, SelectGoodsFrm, SelectEmpFrm, SelectDepotFrm, FieldsLayoutFrm, DataExportFrm;
{$R *.dfm}
Const
sFieldProPerty='Select * From SysFieldProperty Where TableName=''StockMove''';
procedure TFmStockMoveQuery.FormCreate(Sender: TObject);
var SystemTime: TSystemTime;
begin
CdsFieldProperty := TckClientDataSet.Create(Self);
GetLocalTime(SystemTime);
with SystemTime do
dtpBegin.Date := EncodeDate(wYear, wMonth, 1);
dtpEnd.Date := Date;
IFmMain := Application.MainForm as IMainForm;
LocSetting := IFmMain.IFmMainEx.GetLocSetting;
iClientID := IFmMain.IFmMainEx.ClientID;
SetGressHint('正在连接到公用信息服务器...');
SvrCommon := IFmMain.GetConnection(Handle, '', 'CommonSvr.CommonRDM');
cdsStockMove.RemoteServer := SvrCommon;
CdsFieldProPerty.ProviderName:='DspTemp';
CdsFieldProPerty.RemoteServer:=SvrCommon;
end;
procedure TFmStockMoveQuery.FormShow(Sender: TObject);
var sTableNames: string;
begin
SetGressHint('初始化本地环境...');
IFmMain.SetActionStatus(ActionList1, hInstance, self.ClassName);
SysFieldXml(CdsFieldProPerty,sFieldProPerty,'TFrmStockMoveQuery.Xml');
sTableNames:='StockMove';
SetFieldProperty(CdsFieldProPerty,cdsStockMove,sTableNames);
SetGridEhColor([grdStockMove]);
ptBkPanel.Color := TitlePanelColor;
FreeGressForm;
end;
procedure TFmStockMoveQuery.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 TFmStockMoveQuery.edtDepotIDButtonClick(Sender: TObject);
var
iDepotID: integer;
sDepotNo, sDepotName: string;
begin
iDepotID := 0;
sDepotNo := '';
sDepotName := '';
if SelectDepot(iDepotID, sDepotNo, sDepotName) then
begin
edtDepotID.Tag := iDepotID;
edtDepotID.Text := sDepotNo + '(' + sdepotName + ')';
end;
end;
procedure TFmStockMoveQuery.edtCreaterButtonClick(Sender: TObject);
var
sEmpNo, sEmpName: string;
begin
sEmpNo := '';
sEmpName := '';
if SelectEmp(sEmpNo, sEmpName) then
edtCreater.Text := sEmpNo;
end;
procedure TFmStockMoveQuery.edtShipperButtonClick(Sender: TObject);
var
sEmpNo, sEmpName: string;
begin
sEmpNo := '';
sEmpName := '';
if SelectEmp(sEmpNo, sEmpName) then
edtShipper.Text := sEmpNo;
end;
procedure TFmStockMoveQuery.edtToDepotIDButtonClick(Sender: TObject);
var
iDepotID: integer;
sDepotNo, sDepotName: string;
begin
iDepotID := 0;
sDepotNo := '';
sDepotName := '';
if SelectDepot(iDepotID, sDepotNo, sDepotName) then
begin
edtToDepotID.Tag := iDepotID;
edtToDepotID.Text := sDepotNo + '(' + sDepotName + ')';
end;
end;
procedure TFmStockMoveQuery.edtCrupButtonClick(Sender: TObject);
var
sEmpNo, sEmpName: string;
begin
sEmpNo := '';
sEmpName := '';
if SelectEmp(sEmpNo, sEmpName) then
edtCrup.Text := sEmpNo;
end;
procedure TFmStockMoveQuery.edtEmpNoButtonClick(Sender: TObject);
var
sEmpNO, sEmpName: string;
begin
sEmpNO := '';
sEmpname := '';
if SelectEmp(sEmpNo, sEmpName) then
edtEmpNo.Text := sEmpNo;
end;
procedure TFmStockMoveQuery.edtAuditButtonClick(Sender: TObject);
var
sEmpNo, sEmpName: string;
begin
sEmpNo := '';
sEmpName := '';
if SelectEmp(sEmpNo, sEmpName) then
edtAudit.Text := sEmpNo;
end;
procedure TFmStockMoveQuery.edtGoodsIDButtonClick(Sender: TObject);
var
s, sGoodsID: string;
begin
s := edtGoodsID.Text;
if SelectGoodsID(sGoodsID, true) then
begin
if chkMultiSelect.Checked then
begin
if s <> '' then
s := s + ',' + sGoodsID
else
s := sGoodsID;
end
else
s := sGoodsID;
end;
edtGoodsID.Text := s;
end;
procedure TFmStockMoveQuery.ActQueryExecute(Sender: TObject);
var
sTableNames, s, sm, sd: string;
begin
sm := ' and M.FDate >= ''' + FormatDateTime('yyyy-mm-dd', dtpBegin.Date) + '''';
sm := sm + ' and M.FDate <=''' + FormatDateTime('yyyy-mm-dd', dtpEnd.Date) + '''';
s := edtDepotID.Text;
if s <> '' then
sm := sm + ' and M.DepotID = ' + IntToStr(edtDepotID.Tag);
s := edtToDepotID.Text;
if s <> '' then
sm := sm + ' and M.ToDepotID = ' + IntToStr(edtToDepotID.Tag);
s := edtCreater.Text;
if s <> '' then
sm := sm + ' and M.Creater = ''' + s + '''';
s := edtCrup.Text;
if s <> '' then
sm := sm + ' and M.Grup = ''' + s + '''';
s := edtShipper.Text;
if s <> '' then
sm := sm + ' and M.Shipper = ''' + s + '''';
s := edtEmpNo.Text;
if s <> '' then
sm := sm + ' and M.EmpNo = ''' + s + '''';
s := edtAudit.Text;
if s <> '' then
sm := sm + ' and M.Audit = ''' + s + '''';
if cmbAudit.ItemIndex > 0 then
sm := sm + ' and M.Transfer =' + IntToStr(cmbAudit.ItemIndex-1);
s := edtBillNoBegin.Text;
if s <> '' then
if edtBillNoEnd.Text <> '' then
sm := sm + ' and BillNo >= ''' + s + ''' and BillNo <= ''' + edtBillNoEnd.Text + ''''
else
sm := sm + ' and BillNo like ''' + s + '''';
s := edtGoodsID.Text;
if s <> '' then
if AnsiPos(',', s) > 0 then
sd := ' and GoodsID in(''' + AnsiReplaceText(s, ',', ''',''') + ''')'
else
sd := sd + ' and GoodsID = ''' + s + '''';
cdsStockMove.Close;
cdsStockMove.Data := SvrCommon.AppServer.QueryBill(iClientID, 'StockMove', sm, sd);
sTableNames := 'StockMove';
SetFieldProperty(CdsFieldProPerty,cdsStockMove,sTableNames);
end;
procedure TFmStockMoveQuery.ActReportExecute(Sender: TObject);
begin
SelRepPrint(self.Name, [cdsStockMove], '移库单查询', ActDesignReport.Enabled);
end;
procedure TFmStockMoveQuery.ActViewBillExecute(Sender: TObject);
var Values: Variant;
sBillNo, sBills: String;
mark: TBookmark;
begin
if cdsStockMove.IsEmpty then Exit;
with cdsStockMove 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; //查询后的所有单据
//'StockMain.bpl;TFmStockIn','ViewBill', values
IFmMain.DoSome(ActViewBill.ModuleFile, 'ViewBill', Values); //DoSome(类名,类型, 值)
Values := NULL;
end;
procedure TFmStockMoveQuery.dtpBeginKeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
if key = 13 then
ActQuery.Execute;
end;
procedure TFmStockMoveQuery.ActFieldsLayoutExecute(Sender: TObject);
begin
SetFieldsLayOut(LocSetting^.FieldLayoutCfgFile, Name, [grdStockMove], '移库单查询');
end;
procedure TFmStockMoveQuery.ActDataExportExecute(Sender: TObject);
begin
inherited;
ExportData([cdsStockMove], '移库单查询', '');
end;
initialization
RegisterClass(TFmStockMoveQuery);
finalization
UnRegisterClass(TFmStockMoveQuery);
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?