📄 cgjhbb.~pas
字号:
unit cgjhbb;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Grids, DBGrids, Buttons, ExtCtrls, ComCtrls, DB,
RpDefine, RpBase, RpSystem,main;
type
Tf_cgjhbb = class(TForm)
Label1: TLabel;
Panel2: TPanel;
dy: TBitBtn;
yl: TBitBtn;
BitBtn2: TBitBtn;
cx: TBitBtn;
Grid1: TDBGrid;
Panel1: TPanel;
Check1: TCheckBox;
zd: TComboBox;
zhi: TComboBox;
Check2: TCheckBox;
qssj: TDateTimePicker;
Label2: TLabel;
zzsj: TDateTimePicker;
Rprinter: TRvSystem;
DataSource1: TDataSource;
procedure FormCreate(Sender: TObject);
procedure zdChange(Sender: TObject);
procedure cxClick(Sender: TObject);
procedure RprinterPrint(Sender: TObject);
procedure dyClick(Sender: TObject);
procedure ylClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
RFont = Record //设置字体
RFontName: String;
RFontSize: Integer;
RFontColor: Integer;
RFontStyle: TFontStyles;
End;
RContent = ReCord //设置正文
TitleHeight: Real; //标题高度
BtHeight: Real;//表头与标题的间距
Bgjj: Real;//表格与表头的间距
Czyjj: real;//操作员与其标签的水平距离
sjjj: real;//时间与其标签的水平距离
Bgdqfs: integer;//表格内容的对齐方式 0居左,1居右,2居中
end;
var
f_cgjhbb: Tf_cgjhbb;
TempField: String ='';
Sumzdkd: real=0.0;// 字段总宽度
Rowzdkd: Real=0.0;//每行字段总宽度
zbj: real=0.0; //正文左边距
Content: RContent;
AZdmc: Array[0..12]of String=('采购票号','库存名称','商品代码','商品名称','采购单位','数量','单价','折扣','税率','税额','无折让金额','金额','保质期');
AZdkd : Array[0..12]of Real=(1,1,1,1,1,1,1,1,1,1,1,1,1); //数组中的元素对应表格中相应字段的宽度
TitleFont,BtFont,BgtitleFont,BgFont: RFont;//读取或设置标题,表头,表格字体,表格标题字体
zds : integer = 13;//表格字段数
Cols: integer = 13;//每行列数
implementation
uses DataModal, cgjhdysz;
{$R *.dfm}
procedure Tf_cgjhbb.FormCreate(Sender: TObject);
var
i: Integer;
begin
qssj.DateTime := Now;
zzsj.DateTime := Now;
zds := 13;
cols := 7;
Sumzdkd := 0;
For i := 0 to zds-1 do
begin
Azdkd[i]:= 1;
sumzdkd := Sumzdkd+ Azdkd[i];
end;
Rowzdkd := Cols*(Sumzdkd/13);//6 为总的字段数
with TitleFont do
begin
RFontName := '宋体';
RFontSize := 18;
RFontColor := clRed;
RFontStyle := [];
end;
with BtFont do
begin
RFontName := '宋体';
RFontSize := 10;
RFontColor := clBlue;
RFontStyle := [];
end;
with BgFont do
begin
RFontName := '宋体';
RFontSize := 10;
RFontColor := clBlue;
RFontStyle := [];
end;
with BgtitleFont do
begin
RFontName := '宋体';
RFontSize := 12;
RFontColor := clBlue;
RFontStyle := [fsBold];
end;
with Content do
begin
TitleHeight := 0.8;
BtHeight := 0.4;
Bgjj := 0.4;
Czyjj := 0.8;
sjjj := 0.8;
Bgdqfs := 0;//表格居左对齐
end;
end;
procedure Tf_cgjhbb.zdChange(Sender: TObject);
begin
if Trim(zd.Text)<>'' then
begin
zhi.Clear;
Case zd.ItemIndex of
0: TempField := 'cgph';
1: TempField := 'spdm';
2: TempField := 'spmc';
3: TempField := 'ckmc';
end;
if TempField<>'spmc' then
begin
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct '+ TempField + ' From t_cgmx');
Open;
end;
end
else
begin
with Data.Query1 do
begin
Close;
SQL.Clear;
SQL.Add('select distinct '+ TempField + ' From t_spjcxx');
Open;
end;
end;
while Not Data.Query1.Eof do
begin
zhi.Items.Add(Trim(Data.Query1.Fields[0].AsString));
Data.Query1.Next;
end;
end;
end;
procedure Tf_cgjhbb.cxClick(Sender: TObject);
begin
if check1.Checked = True then
begin
if (Trim(zd.Text)<>'')and(Trim(zhi.Text)<>'') then
begin
if check2.Checked = False then
begin
with Data.Query2 do
begin
Close;
SQL.Clear;
if TempField <>'spmc' then
SQL.Add('select aa.cgph,aa.ckmc,aa.spdm,bb.spmc,aa.cgdw,aa.shl,aa.dj,aa.zk,aa.sl,aa.se,aa.wzrje,aa.je,aa.bzq from t_cgmx aa inner join t_spjcxx bb on aa.spdm = bb.spdm and aa.'+TempField + ' =:a')
else
SQL.Add('select aa.cgph,aa.ckmc,aa.spdm,bb.spmc,aa.cgdw,aa.shl,aa.dj,aa.zk,aa.sl,aa.se,aa.wzrje,aa.je,aa.bzq from t_cgmx aa inner join t_spjcxx bb on aa.spdm = bb.spdm and bb.'+TempField + ' =:a');
ParamByName('a').AsString := Trim(zhi.Text);
Open;
end;
if Data.Query2.RecordCount>0 then
begin
DataSource1.DataSet := Data.Query2;
dy.Enabled := True;
end
else
begin
DataSource1.DataSet := Nil;
dy.Enabled := False;
Application.MessageBox('没有符合条件的记录.','提示',64);
end;
end
else
begin
if zzsj.DateTime<qssj.DateTime then
begin
Application.MessageBox('起始时间不能大于终止时间.','提示',64);
Exit;
end;
with Data.Query2 do
begin
Close;
SQL.Clear;
if TempField <>'spmc' then
SQL.Add('select a.cgph,a.ckmc,a.spdm,b.spmc,a.cgdw,a.shl,a.dj,a.zk,a.sl,a.se,a.wzrje,a.je,a.bzq from t_cgmx a inner join t_spjcxx b on a.spdm = b.spdm and a.'+TempField + ' =:aa and a.cgph in (select cgph from t_cgph where sj >=:bb and sj<:cc )')
else
SQL.Add('select a.cgph,a.ckmc,a.spdm,b.spmc,a.cgdw,a.shl,a.dj,a.zk,a.sl,a.se,a.wzrje,a.je,a.bzq from t_cgmx a inner join t_spjcxx b on a.spdm = b.spdm and b.'+TempField + ' =:aa and a.cgph in (select cgph from t_cgph where sj >=:bb and sj<:cc )');
ParamByName('aa').AsString := Trim(zhi.Text);
ParamByName('bb').AsDate := Trunc(qssj.DateTime)-2;
ParamByName('cc').AsDate := Trunc(zzsj.DateTime)-2+1;
Open;
end;
if Data.Query2.RecordCount>0 then
begin
DataSource1.DataSet := Data.Query2;
dy.Enabled := True;
end
else
begin
DataSource1.DataSet := Nil;
dy.Enabled := False;
Application.MessageBox('没有符合条件的记录.','提示',64);
end;
end;
end;
end
else if check2.Checked = True then
begin
if zzsj.DateTime<qssj.DateTime then
begin
Application.MessageBox('起始时间不能大于终止时间.','提示',64);
Exit;
end;
with Data.Query2 do
begin
Close;
SQL.Clear;
SQL.Add('select aa.cgph,aa.ckmc,aa.spdm,bb.spmc,aa.cgdw,aa.shl,aa.dj,aa.zk,aa.sl,aa.se,aa.wzrje,aa.je,aa.bzq from t_cgmx aa inner join t_spjcxx bb on aa.cgph in (select cgph from t_cgph where sj>= :b and sj<:c)');
ParamByName('b').AsDate := Trunc(qssj.DateTime)-2;
ParamByName('c').AsDate := Trunc(zzsj.DateTime)-2+1;
Open;
end;
if Data.Query2.RecordCount>0 then
begin
DataSource1.DataSet := Data.Query2;
dy.Enabled := True;
end
else
begin
DataSource1.DataSet := Nil;
dy.Enabled := False;
Application.MessageBox('没有符合条件的记录.','提示',64);
end;
end
else
Application.MessageBox('请设置查询条件.','提示',64);
end;
procedure Tf_cgjhbb.RprinterPrint(Sender: TObject);
var
justify: TPrintJustify;
i,m,n,l: integer;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -