⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gzgl_print_nbb.pas

📁 制造业工装信息管理系统 制造业工装信息管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{-----------------------------------------------------------------------------
 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 + -