📄 dlg_print.pas
字号:
unit dlg_print;
interface
uses Windows, SysUtils, Classes, Graphics, Forms, Controls, StdCtrls,
Buttons, ExtCtrls, Grids, ValEdit;
type
TDlg_printf = class(TForm)
OKBtn: TButton;
CancelBtn: TButton;
Bevel1: TBevel;
Label1: TLabel;
RadioGroup1: TRadioGroup;
Panel1: TPanel;
ValueListEditor1: TValueListEditor;
Label2: TLabel;
Edit1: TEdit;
procedure FindTablePrint;
procedure ValueListEditor1Click(Sender: TObject);
procedure ValueListEditor1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
procedure RadioGroup1Click(Sender: TObject);
procedure OKBtnClick(Sender: TObject);
procedure FormActivate(Sender: TObject); //查询并显示table列表
private
temsql:string;//查询tabel列表
keyid:string;
temparameter:string;
{ Private declarations }
public
{ Public declarations }
end;
var
Dlg_printf: TDlg_printf;
implementation
uses unit_global, data_module;
{$R *.dfm}
procedure TDlg_printf.FindTablePrint;
var
i:integer;
VlistRowcount:integer;
begin
///////////删除以前的信息//////////
VlistRowcount:=ValueListEditor1.RowCount-1;
if ValueListEditor1.RowCount>1 then
begin
for i:=1 to VlistRowcount do
begin
ValueListEditor1.DeleteRow(1);
ValueListEditor1.Refresh;
VlistRowcount:=ValueListEditor1.RowCount-1;
end;
end;
///////////添加新信息/////////////
with dm.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add(temsql);
try
open;
first;
while not eof do
begin
ValueListEditor1.InsertRow(fieldbyname('group_num').AsString,fieldbyname('group_name').AsString,true);
next;
end;
except
close;
end;
end;
end;
procedure TDlg_printf.ValueListEditor1Click(Sender: TObject);
begin
// ValueListEditor1.OnSelectCell(Sender);
end;
procedure TDlg_printf.ValueListEditor1SelectCell(Sender: TObject; ACol,
ARow: Integer; var CanSelect: Boolean);
begin
keyid:='';
edit1.Text:=ValueListEditor1.Cells[1,Arow];
keyid:=ValueListEditor1.Cells[0,Arow];
end;
procedure TDlg_printf.RadioGroup1Click(Sender: TObject);
var
i:integer;
begin
temparameter:='print_pjt.exe ';
//根据选中的单位节点,来判断是否显示个人列表还是名册
case radiogroup1.ItemIndex of
0:
begin
temsql:='select * from workbook where single_pres=''0''';
temparameter:=temparameter+'single '+Gencode;
end;
1:
begin
temsql:='select * from workbook where single_pres=''1''';
if Selected_Node.HasChildren then
begin
temparameter:=temparameter+'multi_system '+Systemcode;
end else
begin
temparameter:=temparameter+'multi_dept '+Company_code;
end;
end;
end;
FindTablePrint;
end;
procedure TDlg_printf.OKBtnClick(Sender: TObject);
var
tem:string;
begin
if RadioGroup1.Enabled=false then
begin
RadioGroup1.OnClick(Sender);
end;
if edit1.Text='' then
begin
application.MessageBox('请选择打印的表','信息提示',mb_ok);
exit;
end else
begin
tem:=temparameter+' '+keyid;
setcurrentdir(ExtractFilePath(Application.ExeName));
winexec(pchar(tem),SW_SHOWNORMAL); //调用打印模块
end;
end;
procedure TDlg_printf.FormActivate(Sender: TObject);
begin
edit1.Text:='';
radiogroup1.Enabled:=true;
if (gencode<>'') and (Selected_Node=nil) then
begin
radiogroup1.ItemIndex:=0;
radiogroup1.Enabled:=false;
temsql:='select * from workbook where single_pres=''0''';
end else
begin
if (Selected_Node.HasChildren) or (gencode='') then
begin
radiogroup1.ItemIndex:=1;
radiogroup1.Enabled:=false;
temsql:='select * from workbook where single_pres=''1''';
end else
begin
radiogroup1.ItemIndex:=0;
temsql:='select * from workbook where single_pres=''0''';
end;
end;
//FindTablePrint;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -