📄 gzgl_print_nbb.pas
字号:
{-----------------------------------------------------------------------------
Unit Name: pppp
Author: 水石工作室
Purpose:
History:
-----------------------------------------------------------------------------}
unit GZGL_print_NBB;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Grids, DBGrids, StdCtrls, ComCtrls, Buttons, ExtCtrls
;
type
TFrmGZGL_Print_NBB = class(TForm)
Panel4: TPanel;
Label16: TLabel;
Image1: TImage;
Label1: TLabel;
Panel1: TPanel;
pag1: TPageControl;
Tab1: TTabSheet;
Pnl_lst: TPanel;
Lst1: TListBox;
lst2: TListBox;
Pnl_contralBar: TPanel;
btn_del1: TSpeedButton;
btn_add1: TSpeedButton;
btn_delALL: TSpeedButton;
btn_addALL: TSpeedButton;
Panel8: TPanel;
btn_next1: TSpeedButton;
SpeedButton6: TSpeedButton;
Tab2: TTabSheet;
Panel5: TPanel;
DBGrid2: TDBGrid;
Panel2: TPanel;
GroupBox1: TGroupBox;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
EDT_Y: TEdit;
EDT_M: TEdit;
Panel6: TPanel;
btn_next2: TSpeedButton;
btn_back2: TSpeedButton;
btn_fixdata: TSpeedButton;
lab_info: TLabel;
lab_start: TLabel;
lab_over: TLabel;
btn_getdata: TSpeedButton;
Tab3: TTabSheet;
btn_preview: TSpeedButton;
btn_print: TSpeedButton;
Btn_exit: TSpeedButton;
Panel10: TPanel;
SpeedButton9: TSpeedButton;
btn_back3: TSpeedButton;
procedure lst2DblClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure btn_del1Click(Sender: TObject);
procedure btn_add1Click(Sender: TObject);
procedure btn_delALLClick(Sender: TObject);
procedure btn_addALLClick(Sender: TObject);
procedure Lst1DblClick(Sender: TObject);
procedure btn_previewClick(Sender: TObject);
procedure btn_fixdataClick(Sender: TObject);
procedure btn_next2Click(Sender: TObject);
procedure Tab1Show(Sender: TObject);
procedure EDT_YKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure pag1Changing(Sender: TObject; var AllowChange: Boolean);
procedure btn_back2Click(Sender: TObject);
procedure btn_back3Click(Sender: TObject);
procedure btn_getdataClick(Sender: TObject);
procedure btn_next1Click(Sender: TObject);
procedure btn_printClick(Sender: TObject);
procedure Btn_exitClick(Sender: TObject);
procedure EDT_YKeyPress(Sender: TObject; var Key: Char);
private
procedure emptyTbl;
procedure GetBaseData;
procedure FixGetedData;
procedure CountGetedData;
{ Private declarations }
public
{ Public declarations }
end;
var
FrmGZGL_Print_NBB: TFrmGZGL_Print_NBB;
implementation
uses GZGL_DModule, GZGL_Main, GZGL_reports;
{$R *.dfm}
procedure TFrmGZGL_Print_NBB.FormShow(Sender: TObject);
var
s:string;
begin
pag1.ActivePageIndex:=0;
with dmd do begin
if not Tbl_GZ.Active then Tbl_gz.Open;
if not Tbl_lb.Active then Tbl_lB.Open;
if not Tbl_NBB.Active then Tbl_NBB.Open;
end;
//添加车型列表
with dmd.TbL_lb do begin
first;
while not eof do begin
s:=fieldbyname('lbmc').AsString;
if s<>'' then begin
lst1.Items.Add(s);
end;
next
end;
end;
Image1.Picture:=FRMGZGL_Main.IMG_LOGO.Picture;
emptyTbl;
end;
{-----------------------------------------------------------------------------
开始操作列表框
-----------------------------------------------------------------------------}
//添加单个
procedure TFrmGZGL_Print_NBB.btn_add1Click(Sender: TObject);
var
i,id:integer;
s:string;
begin
id:=lst1.ItemIndex;
if id>=0 then begin
s:=lst1.items[id];
for i:=0 to lst2.Count-1 do begin
if s=lst2.Items[i] then begin
exit;
end;
end;
lst2.Items.Add(lst1.items[id]);
end;
end;
//删除添加单个
procedure TFrmGZGL_Print_NBB.btn_del1Click(Sender: TObject);
var
i:integer;
begin
i:=lst2.ItemIndex;
if i>=0 then
lst2.Items.Delete(I)
end;
//添加所有
procedure TFrmGZGL_Print_NBB.btn_addALLClick(Sender: TObject);
begin
lst2.Items:=lst1.items;
end;
procedure TFrmGZGL_Print_NBB.btn_delALLClick(Sender: TObject);
begin
lst2.Clear;
end;
procedure TFrmGZGL_Print_NBB.lst1DblClick(Sender: TObject);
begin
btn_add1Click(Sender);
end;
procedure TFrmGZGL_Print_NBB.Lst2DblClick(Sender: TObject);
begin
btn_DEL1Click(Sender);
end;
{-----------------------------------------------------------------------------
结束操作列表框
-----------------------------------------------------------------------------}
procedure TFrmGZGL_Print_NBB.btn_getdataClick(Sender: TObject);
var
s:string;
begin
if lst2.Count<1 then begin
s:='喂,喂,懂不懂呵,连车型都没有报什么表!';
pag1.ActivePageIndex:=0;
MessageBox(application.handle,pchar(s),'错误',mb_ICONerror+mb_ok);
exit;
end;
if (strlen(pchar(edt_y.Text))<>4) then begin
s:='伙计,烦劳您输够4位日期!';
MessageBox(application.handle,pchar(s),'错误',mb_ICONerror+mb_ok);
pag1.ActivePageIndex:=0;
exit;
end;
pag1.ActivePageIndex:=1;
lab_start.Caption:='开始于:'+timetostr(now);
lab_over.Caption:='结束于:';
lab_info.Caption:='正在处理数据......';
self.Refresh;
lab_info.Caption:='初始化报表......';
emptyTbl;
lab_info.Caption:='获取报表数据......';
GetBaseData;
lab_info.Caption:='整理获得数据......';
CountGetedData;
lab_over.Caption:='结束于:'+timetostr(now);
lab_info.Caption:='数据处理完毕';
end;
procedure TFrmGZGL_Print_NBB.btn_previewClick(Sender: TObject);
begin
with frmGZGL_Reports do begin
Lab_N.Caption:=EDT_Y.text+'年';
Lab_N2.Caption:=Lab_N.Caption;
end;
try
FrmGZGL_Reports.QR_NBB.Preview;
except
//QRListForm.close;
end;
end;
procedure TFrmGZGL_Print_NBB.btn_printClick(Sender: TObject);
begin
try
//FrmGZGL_Reports.QR_NBB.print;
except
//QRListForm.close;
end;
end;
procedure TFrmGZGL_Print_NBB.btn_fixdataClick(Sender: TObject);
begin
FixGetedData;
end;
procedure TFrmGZGL_Print_NBB.emptyTbl;
var
s:string;
begin
if dmd.Tbl_NBB.RecordCount<1 then exit;
with dmd.qry_temp do begin
s:='delete from 年终报表 ';
if active then close;
sql.Clear;
sql.Add(s);
execsql;
dmd.Tbl_NBB.close;
dmd.Tbl_NBB.open;
end;
end;
procedure TFrmGZGL_Print_NBB.GetBaseData;
var
s,s1:string; //sql语句前段,后段
BBRQ,lbdh,lbmc:string; //报表日期,类别代号,类别名称
gshj,czhj,xj:integer;//工时合计,产值合计
n,i:integer;//控制lst2循环,控制ok数组循环
ok:array[1..36]of integer;//统计好的各字段值
begin
bbrq:=edt_y.Text;
for n:=0 to lst2.count-1 do begin
application.ProcessMessages;
lbmc:=lst2.Items[n];
lab_info.Caption:='正在处理:'+lbmc;
dmd.tbl_lb.Locate('lbmc',lbmc,[]);
lbdh:=dmd.tbl_lb.fieldbyname('lbdh').AsString;
for i:=1 to 36 do begin
application.ProcessMessages;
s1:='select gzbh from 工装 where lb="'+lbdh+'" ';
case i of
1 :s:=' and DHRQ like "'+bbrq+'-01-%"';
2 :s:=' and DHRQ like "'+bbrq+'-02-%"';
3 :s:=' and DHRQ like "'+bbrq+'-03-%"';
4 :s:=' and DHRQ like "'+bbrq+'-04-%"';
5 :s:=' and DHRQ like "'+bbrq+'-05-%"';
6 :s:=' and DHRQ like "'+bbrq+'-06-%"';
7 :s:=' and DHRQ like "'+bbrq+'-07-%"';
8 :s:=' and DHRQ like "'+bbrq+'-08-%"';
9 :s:=' and DHRQ like "'+bbrq+'-09-%"';
10:s:=' and DHRQ like "'+bbrq+'-10-%"';
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -