📄 ubookquery.pas
字号:
unit uBookQuery;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
cxDataStorage, cxEdit, DB, cxDBData, cxButtonEdit, cxCalc, cxContainer,
cxTextEdit, cxMaskEdit, cxGridLevel, cxGridCustomTableView,
cxGridTableView, cxGridDBTableView, cxClasses, cxControls,
cxGridCustomView, cxGrid, ExtCtrls, ComCtrls, StdCtrls, Buttons,
cxDropDownEdit, DBClient, DateUtils, cxCurrencyEdit;
type
TfrmBookQuery = class(TForm)
cxGrid1: TcxGrid;
GridCWZB: TcxGridDBTableView;
colMon: TcxGridDBColumn;
colDay: TcxGridDBColumn;
colDH: TcxGridDBColumn;
colZY: TcxGridDBColumn;
colXS: TcxGridDBColumn;
colSk: TcxGridDBColumn;
colFk: TcxGridDBColumn;
colYE2: TcxGridDBColumn;
colNIL: TcxGridDBColumn;
cxGridLevel1: TcxGridLevel;
colJG: TcxGridDBColumn;
colYE1: TcxGridDBColumn;
colNil2: TcxGridDBColumn;
GridCKZB: TcxGridDBTableView;
Panel1: TPanel;
GroupBox1: TGroupBox;
SpeedButton1: TSpeedButton;
SpeedButton2: TSpeedButton;
SpeedButton3: TSpeedButton;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
dtPicker1: TDateTimePicker;
cxButtonEdit1: TcxButtonEdit;
cxButtonEdit2: TcxButtonEdit;
GroupBox2: TGroupBox;
StatusBar1: TStatusBar;
Bevel1: TBevel;
Label4: TLabel;
Memo1: TMemo;
Label5: TLabel;
cxComboBox1: TcxComboBox;
cdDoGet: TClientDataSet;
dsDoGet: TDataSource;
cdData: TClientDataSet;
dsData: TDataSource;
cxComboBox2: TcxComboBox;
cxTextEdit1: TcxTextEdit;
colMon1: TcxGridDBColumn;
colDay1: TcxGridDBColumn;
colDH1: TcxGridDBColumn;
colZy1: TcxGridDBColumn;
colJC: TcxGridDBColumn;
colBack: TcxGridDBColumn;
colCC: TcxGridDBColumn;
colOut: TcxGridDBColumn;
colJY: TcxGridDBColumn;
colUSER1: TcxGridDBColumn;
colNil1: TcxGridDBColumn;
colUser: TcxGridDBColumn;
lbColor: TLabel;
cxComboBox3: TcxComboBox;
Label6: TLabel;
Label7: TLabel;
cxCalcEdit1: TcxCalcEdit;
cxCalcEdit2: TcxCalcEdit;
SpeedButton4: TSpeedButton;
cxTextEdit2: TcxTextEdit;
procedure SpeedButton1Click(Sender: TObject);
procedure dtPicker1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxComboBox1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
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 cxComboBox1Exit(Sender: TObject);
procedure cxComboBox2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxTextEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure FormResize(Sender: TObject);
procedure SpeedButton2Click(Sender: TObject);
procedure SpeedButton3Click(Sender: TObject);
procedure cxComboBox3KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxCalcEdit1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxCalcEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure cxComboBox2Exit(Sender: TObject);
procedure SpeedButton4Click(Sender: TObject);
procedure cxComboBox3Exit(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cxTextEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
IkeyClient,ikeyStk: integer;
procedure GetZhangbenCW(IYea,ikeyClient: integer);
procedure ClientToMaster;
function GetClientData(SField, sFieldT: String): integer;
procedure GetZhangBenCK(IYea,ikey: integer; clb: string);
{ Private declarations }
public
{ Public declarations }
end;
var
frmBookQuery: TfrmBookQuery;
implementation
uses
uGlobal, uGetData, uPublic;
{$R *.dfm}
{ TfrmSqlZhangBen }
procedure TfrmBookQuery.GetZhangbenCW(IYea, ikeyClient: integer);
begin
if iKeyClient <= 0 then exit;
WITH cdDoGet do Begin
close;
RemoteServer := frmMain.DCOMcn;
providerName := 'PGetZhangbenCW';
commandText := 'EXECUTE GetZhangbenCW @IYea = '+quotedStr(intTOstr(IYea))+
',@IkeyClient = ' + quotedStr(intTostr(ikeyClient));
open;
cdData.Data := Data;
close;
cdData.Last;
end;
end;
procedure TfrmBookQuery.SpeedButton1Click(Sender: TObject);
begin
IF TRIM(cxComboBox1.Text) = '财务帐本' THEN
GetZhangbenCW(YearOf(dtPicker1.Date),ikeyClient);
IF TRIM(cxComboBox1.Text) = '仓库帐本' THEN
GetZhangbenCK(YearOf(dtPicker1.Date),ikeySTK,cxComboBox2.Text);
end;
procedure TfrmBookQuery.dtPicker1KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return : cxComboBox1.SetFocus;
end;
end;
procedure TfrmBookQuery.cxComboBox1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : IF NOT cxComboBox1.DroppedDown THEN BEGIN
IF cxButtonEdit1.CanFocus THEN
cxButtonEdit1.SetFocus;
IF cxComboBox2.CanFocus THEN
cxComboBox2.SetFocus;
END;
end;
end;
procedure TfrmBookQuery.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 TfrmBookQuery.cxButtonEdit1PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
var rec: integer;
begin
rec := GetClientData('Ccode', cxButtonEdit1.Text);
if rec <= 0 then exit;
if frmGetData.ShowModal = mrOk then Begin
ClientToMaster;
dtPicker1.SetFocus;
SpeedButton1Click(nil);
end;
end;
procedure TfrmBookQuery.cxButtonEdit2PropertiesButtonClick(
Sender: TObject; AButtonIndex: Integer);
var rec: integer;
begin
rec := GetClientData('CName', cxButtonEdit2.Text);
if rec <= 0 then exit;
if frmGetData.ShowModal = mrOk then Begin
ClientToMaster;
dtPicker1.SetFocus;
SpeedButton1Click(nil);
end;
end;
procedure TfrmBookQuery.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;
procedure TfrmBookQuery.cxComboBox1Exit(Sender: TObject);
begin
IF TRIM(cxComboBox1.Text) = '财务帐本' THEN BEGIN
cxGridLevel1.GridView := gridCWZB;
label4.Caption := '客户情况→';
label2.Caption := '客户编号 = ';
label3.Caption := '客户名称 = ';
lbColor.Visible := false;
label6.Visible := false;
label7.Visible := false;
label3.Visible := true;
cxButtonEdit1.Visible := true;
cxButtonEdit2.Visible := true;
cxComboBox2.Visible := false;
cxTextEdit1.Visible := false;
cxTextEdit2.Visible := false;
cxComboBox3.Visible := false;
cxCalcEdit1.Visible := false;
cxCalcEdit2.Visible := false;
END;
IF TRIM(cxComboBox1.Text) = '仓库帐本' THEN BEGIN
cxGridLevel1.GridView := gridCKZB;
label4.Caption := '产品情况→';
label2.Caption := '业务类别 = ';
label3.Caption := '产品编号 = ';
label3.Visible := false;
lbColor.Visible := false;
label6.Visible := false;
label7.Visible := false;
cxButtonEdit1.Visible := False;
cxButtonEdit2.Visible := false;
cxComboBox2.Visible := true;
cxTextEdit1.Visible := false;
cxTextEdit2.Visible := false;
cxComboBox3.Visible := false;
cxCalcEdit1.Visible := false;
cxCalcEdit2.Visible := false;
END;
end;
procedure TfrmBookQuery.cxComboBox2KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : IF NOT cxComboBox2.DroppedDown THEN BEGIN
cxTextEdit1.Visible := true;
cxTextEdit1.SetFocus;
END;
end;
end;
procedure TfrmBookQuery.cxTextEdit1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : if cxComboBox3.CanFocus then
cxComboBox3.SetFocus;
end;
end;
procedure TfrmBookQuery.FormResize(Sender: TObject);
begin
GroupBox1.Width := cxGrid1.Width - GroupBox2.Width - 10;
end;
procedure TfrmBookQuery.SpeedButton2Click(Sender: TObject);
begin
cxButtonEdit1.Clear;
cxButtonEdit2.Clear;
cxComboBox2.Text := '';
cxTextEdit1.Clear;
cxComboBox3.Text := '';
cxCalcEdit1.Clear;
cxCalcEdit2.Clear;
dtPicker1.SetFocus;
end;
function TfrmBookQuery.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 TfrmBookQuery.ClientToMaster;
begin
with frmMain.cdPub do Begin
cxButtonEdit1.text := fieldbyname('客户编号').AsString;
cxButtonEdit2.text := fieldbyname('客户名称').AsString;
iKeyClient := fieldbyname('Ikey').asInteger;
end;
end;
procedure TfrmBookQuery.GetZhangBenCK(IYea, ikey: integer; clb: string);
begin
//if iKeySTK <= 0 then exit;
if clb = '' then exit;
WITH cdDoGet do Begin
close;
RemoteServer := frmMain.DCOMcn;
providerName := 'PGetZhangbenCK';
colBack.Visible := true;
colOut.Visible := true;
IF trim(CLB) = '原材料' THEN
commandText := 'EXECUTE GetZhangbenStock @IYea = '+quotedStr(intTOstr(IYea))+
',@ccode = ' + quotedStr(cxTextEdit1.text)+
',@FHD = ' + quotedStr(cxCalcEdit1.text)+
',@FKD = ' + quotedStr(cxCalcEdit2.text)+
',@ccolor = ' + quotedStr(cxComboBox3.text);
IF trim(CLB) = '半成品' THEN
commandText := 'EXECUTE GetZhangbenHGoods @IYea = '+quotedStr(intTOstr(IYea))+
',@ccode = ' + quotedStr(cxTextEdit1.text)+
',@CMS = ' + quotedStr(cxTextEdit2.text)+
',@ccolor = ' + quotedStr(cxComboBox3.text);
IF trim(CLB) = '成品' THEN BEGIN
commandText := 'EXECUTE GetZhangbenGoods @IYea = '+quotedStr(intTOstr(IYea))+
',@Ikey = ' + quotedStr(cxTextEdit1.text);
colBack.Visible := False;
colOut.Visible := false;
END;
open;
cdData.Data := Data;
close;
cdData.Last;
end;
end;
procedure TfrmBookQuery.SpeedButton3Click(Sender: TObject);
var iOject: integer;
begin
if cxGridLevel1.GridView = GridCWZB Then
iOject := 71
Else
iOject := 72;
frmReport.ReportS(iOject, 0, '', cdData.Data);
end;
procedure TfrmBookQuery.cxComboBox3KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : if (not cxComboBox3.DroppedDown) then
if cxCalcEdit1.CanFocus then
cxCalcEdit1.SetFocus
else
IF cxTextEdit2.CanFocus then
cxTextEdit2.SetFocus
Else
dtPicker1.SetFocus;
end;
end;
procedure TfrmBookQuery.cxCalcEdit1KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : if (not cxCalcEdit1.DroppedDown) and (cxCalcEdit2.CanFocus) then
cxCalcEdit2.SetFocus;
end;
end;
procedure TfrmBookQuery.cxCalcEdit2KeyDown(Sender: TObject;
var Key: Word; Shift: TShiftState);
begin
case key of
vk_return : dtPicker1.SetFocus;
end;
end;
procedure TfrmBookQuery.cxComboBox2Exit(Sender: TObject);
begin
IF trim(cxComboBox2.Text) = '原材料' THEN BEGIN
label3.Visible := true;
lbColor.Visible := true;
label6.Visible := TRUE;
label7.Visible := TRUE;
cxCalcEdit1.Visible := true;
cxCalcEdit2.Visible := true;
cxTextEdit1.Visible := true;
cxTextEdit2.Visible := false;
label6.Caption := '克重 =';
cxComboBox3.Visible := true;
END;
IF trim(cxComboBox2.Text) = '成品' THEN BEGIN
label3.Visible := true;
lbColor.Visible := true;
label6.Visible := false;
label7.Visible := false;
cxCalcEdit1.Visible := FALSE;
cxCalcEdit2.Visible := FALSE;
cxTextEdit1.Visible := true;
cxTextEdit2.Visible := false;
cxComboBox3.Visible := true;
END;
IF trim(cxComboBox2.Text) = '半成品' THEN BEGIN
label3.Visible := true;
lbColor.Visible := true;
label6.Visible := TRUE;
label7.Visible := false;
cxCalcEdit1.Visible := FALSE;
cxCalcEdit2.Visible := FALSE;
cxTextEdit1.Visible := true;
cxTextEdit2.Visible := True;
label6.Caption := '码数 =';
cxComboBox3.Visible := true;
END;
end;
procedure TfrmBookQuery.SpeedButton4Click(Sender: TObject);
begin
CLOSE;
end;
procedure TfrmBookQuery.cxComboBox3Exit(Sender: TObject);
begin
cbox_SetColor(cxComboBox3);
end;
procedure TfrmBookQuery.FormCreate(Sender: TObject);
begin
cbox_GetColor(cxComboBox3);
end;
procedure TfrmBookQuery.cxTextEdit2KeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
case key of
vk_return : dtPicker1.SetFocus;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -