📄 ugettwodate.pas
字号:
unit uGetTwoDate;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ComCtrls, StdCtrls, Buttons, DateUtils, ExtCtrls, cxControls,
cxContainer, cxEdit, cxTextEdit, cxMaskEdit, cxButtonEdit;
type
TfrmGetTwoDate = class(TForm)
Image1: TImage;
Image2: TImage;
Label2: TLabel;
Label1: TLabel;
ComboBox1: TComboBox;
Bevel3: TBevel;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
cxButtonEdit1: TcxButtonEdit;
cxButtonEdit2: TcxButtonEdit;
Label5: TLabel;
Label9: TLabel;
Label3: TLabel;
D_Picker1: TDateTimePicker;
Label4: TLabel;
D_Picker2: TDateTimePicker;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
procedure D_Picker1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure D_Picker2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton1Click(Sender: TObject);
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure ComboBox1Exit(Sender: TObject);
procedure cxButtonEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxButtonEdit1PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure cxButtonEdit2PropertiesButtonClick(Sender: TObject;
AButtonIndex: Integer);
procedure cxButtonEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormShow(Sender: TObject);
private
procedure init;
function GetOperationID(Sender: Tobject): integer;
procedure ClientToMaster;
function GetClientData(SField, sFieldT: String): integer;
{ Private declarations }
public
{ Public declarations }
end;
implementation
uses
uMain, uReport, uGlobal, uPublic;
{$R *.dfm}
procedure TfrmGetTwoDate.D_Picker1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return: d_picker2.SetFocus;
end;
end;
procedure TfrmGetTwoDate.D_Picker2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: ComboBox1.SetFocus;
end;
end;
procedure TfrmGetTwoDate.SpeedButton2Click(Sender: TObject);
begin
close;
end;
procedure TfrmGetTwoDate.SpeedButton1Click(Sender: TObject);
var sqlT:string;
IDL : integer;
c_sou,c_dec : string;
begin
if (d_picker2.Date - d_picker1.Date) < 0 then begin
infoWnd('开始日期不能大于结束日期!');
exit;
end;
IDL := GetOperationID(ComboBox1);
IF IDL = 0 THEN EXIT;
c_sou := formatDatetime('yyyy-MM-dd',d_picker1.date);
c_dec := formatDateTime('yyyy-MM-dd',d_picker2.date + 1);
try
case tag of
13: begin
sqlT := 'EXECUTE getStockPlanDay @cStock = '''''+
',@DSOU = '''+c_sou+''''+
',@DDEC = '''+c_dec+''''+
',@CCLIENT = '''+cxButtonEdit1.Text+'''';
frmMain.cdPub.Close;
frmmain.cdPub.CommandText := sqlT;
frmmain.cdPub.Open;
frmReport.ReportS(13,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
end;
23: begin
sqlT := 'EXECUTE getStockDay @IDL = '''+intTostr(IDL)+''''+
',@DSOU = '''+c_sou+''''+
',@DDEC = '''+c_dec+''''+
',@CCLIENT = '''+cxButtonEdit1.Text+'''';
frmMain.cdPub.Close;
frmmain.cdPub.CommandText := sqlT;
frmmain.cdPub.Open;
IF IDL = 21 THEN
frmReport.ReportS(23,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
IF IDL = 22 THEN
frmReport.ReportS(24,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
IF IDL = -21 THEN
frmReport.ReportS(25,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
IF IDL = -22 THEN
frmReport.ReportS(26,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
end;
33: begin
sqlT := 'EXECUTE getHGoodsDay @IDL = '''+intTostr(IDL)+''''+
',@DSOU = '''+c_sou+''''+
',@DDEC = '''+c_dec+''''+
',@CCLIENT = '''+cxButtonEdit1.Text+'''';
frmMain.cdPub.Close;
frmmain.cdPub.CommandText := sqlT;
frmmain.cdPub.Open;
IF IDL = 31 THEN
frmReport.ReportS(33,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
IF IDL = 32 THEN
frmReport.ReportS(34,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
IF IDL = -31 THEN
frmReport.ReportS(35,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
IF IDL = -32 THEN
frmReport.ReportS(36,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
end;
43: begin //成品日
sqlT := 'EXECUTE getGoodsDay @IDL = '''+intTostr(IDL)+''''+
',@DSOU = '''+c_sou+''''+
',@DDEC = '''+c_dec+''''+
',@CCLIENT = '''+trim(cxButtonEdit1.Text)+'''';
frmMain.cdPub.Close;
frmmain.cdPub.CommandText := sqlT;
frmmain.cdPub.Open;
IF IDL = 41 THEN
frmReport.ReportS(43,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
IF IDL = -41 THEN
frmReport.ReportS(44,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
end;
53: begin
sqlT := 'EXECUTE getMoneyDay @clb = '''+intTostr(IDL)+''''+
',@DSOU = '''+c_sou+''''+
',@DDEC = '''+c_dec+''''+
',@CCLIENT = '''+cxButtonEdit1.Text+'''';
frmMain.cdPub.Close;
frmmain.cdPub.CommandText := sqlT;
frmmain.cdPub.Open;
frmReport.ReportS(53,0,c_sou+' 至 '+c_dec, frmMain.cdpub.data);
end;
end;
finally
end;
end;
procedure TfrmGetTwoDate.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (key=vk_return) and (ssCtrl in shift) then
SpeedButton1Click(nil)
else
if key=vk_escape then
speedbutton2Click(nil);
end;
procedure TfrmGetTwoDate.ComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return: IF cxButtonEdit1.CanFocus THEN
cxButtonEdit1.SetFocus;
end;
end;
procedure TfrmGetTwoDate.ComboBox1Exit(Sender: TObject);
begin
GetOperationID(comboBox1);
end;
procedure TfrmGetTwoDate.cxButtonEdit1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : if cxButtonEdit1.Text = '' then
cxButtonEdit2.SetFocus
Else
cxButtonEdit1PropertiesButtonClick(sender,0);
end;
end;
procedure TfrmGetTwoDate.cxButtonEdit1PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
If GetClientData('CCode',trim(cxButtonEdit1.Text)) <= 0 then exit;
IF frmGetData.ShowModal = mrOk THEN BEGIN
ClientToMaster;
d_Picker1.SetFocus;
END;
end;
procedure TfrmGetTwoDate.cxButtonEdit2PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
begin
If GetClientData('cName',trim(cxButtonEdit2.Text)) <= 0 then exit;
IF frmGetData.ShowModal = mrOk THEN BEGIN
ClientToMaster;
d_Picker1.SetFocus;
END;
end;
procedure TfrmGetTwoDate.cxButtonEdit2KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : if cxButtonEdit2.Text = '' then
cxButtonEdit1.SetFocus
Else
cxButtonEdit2PropertiesButtonClick(sender,0);
end;
end;
function TfrmGetTwoDate.GetOperationID(Sender: Tobject): integer;
begin
Result := 0;
IF (TcomboBox(sender).Text = '-41') OR
(TcomboBox(sender).Text = '成品销售(-41)') THEN Begin
TcomboBox(sender).Text := '成品销售(-41)';
result := -41;
End
ELSE
IF (TcomboBox(sender).Text = '-32') OR
(TcomboBox(sender).Text = '委外加工(-32)') THEN Begin
TcomboBox(sender).Text := '委外加工(-32)';
result := -32;
End
ELSE
IF (TcomboBox(sender).Text = '-31') OR
(TcomboBox(sender).Text = '半成品出仓(-31)') THEN Begin
TcomboBox(sender).Text := '半成品出仓(-31)';
result := -31;
End
ELSE
IF (TcomboBox(sender).Text = '-22') OR
(TcomboBox(sender).Text = '发外染料(-22)') THEN Begin
TcomboBox(sender).Text := '发外染料(-22)';
result := -22;
End
ELSE
IF (TcomboBox(sender).Text = '-21') OR
(TcomboBox(sender).Text = '材料出仓(-21)') THEN Begin
TcomboBox(sender).Text := '材料出仓(-21)';
result := -21;
End
ELSE
IF (TcomboBox(sender).Text = '11') OR
(TcomboBox(sender).Text = '采购计划(11)') THEN Begin
TcomboBox(sender).Text := '采购计划(11)';
result := 11;
End
ELSE
IF (TcomboBox(sender).Text = '21') OR
(TcomboBox(sender).Text = '材料进仓(21)') THEN Begin
TcomboBox(sender).Text := '材料进仓(21)';
result := 21;
End
ELSE
IF (TcomboBox(sender).Text = '22') OR
(TcomboBox(sender).Text = '染料收货(22)') THEN Begin
TcomboBox(sender).Text := '染料收货(22)';
result := 22;
End
ELSE
IF (TcomboBox(sender).Text = '31') OR
(TcomboBox(sender).Text = '裁床登记(31)') THEN Begin
TcomboBox(sender).Text := '裁床登记(31)';
result := 31;
End
ELSE
IF (TcomboBox(sender).Text = '32') OR
(TcomboBox(sender).Text = '加工收货(32)') THEN Begin
TcomboBox(sender).Text := '加工收货(32)';
result := 32;
End
ELSE
IF (TcomboBox(sender).Text = '41') OR
(TcomboBox(sender).Text = '成品进仓(41)') THEN Begin
TcomboBox(sender).Text := '成品进仓(41)';
result := 41;
End
ELSE
IF (TcomboBox(sender).Text = '53') OR
(TcomboBox(sender).Text = '收付款日报表') THEN Begin
TcomboBox(sender).Text := '收付款日报表';
result := 53;
End
ELSE BEGIN
//TcomboBox(sender).SetFocus;
infoWnd('请确定业务类别!');
END;
end;
function TfrmGetTwoDate.GetClientData(SField, sFieldT: String): integer;
begin
with frmMain.cdPub do begin
close;
commandText := 'select IKey,CCode 客户编号,CName 客户名称 From T_pubClient'+#13+
'where ' + sfield +' like ''%'+sfieldT+'%''';
open;
fieldbyname('IKEY').Visible := False;
Result := recordCount;
end;
end;
procedure TfrmGetTwoDate.ClientToMaster;
begin
with frmMain.cdPub do Begin
cxButtonEdit1.text := fieldbyname('客户编号').Asstring;
cxButtonEdit2.text := fieldbyname('客户名称').AsString;
end;
end;
procedure TfrmGetTwoDate.init;
begin
comboBox1.Clear;
d_picker1.Date := date;
d_picker2.Date := date;
case tag of
13: Begin
comboBox1.Items.Add('采购计划(11)');
comboBox1.Text := '采购计划(11)';
end;
23: Begin
comboBox1.Items.Add('发外染料(-22)');
comboBox1.Items.Add('材料出仓(-21)');
comboBox1.Items.Add('材料进仓(21)');
comboBox1.Items.Add('染料收货(22)');
end;
33: Begin
comboBox1.Items.Add('裁床登记(31)');
comboBox1.Items.Add('加工收货(32)');
comboBox1.Items.Add('半成品出仓(-31)');
comboBox1.Items.Add('委外加工(-32)');
end;
43: Begin
comboBox1.Items.Add('成品进仓(41)');
comboBox1.Items.Add('成品销售(-41)');
end;
53: Begin
comboBox1.Items.Add('收付款日报表');
comboBox1.Text := '收付款日报表';
end;
end;
end;
procedure TfrmGetTwoDate.FormShow(Sender: TObject);
begin
init;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -