📄 unreportnameprint.pas
字号:
var Key: Char);
begin
if (Key <> Char(VK_UP))and(Key <> Char(VK_DOWN))then
key := Char(0); //禁止用户键盘输入信息
end;
procedure TfrmReportNamePrint.ComboBox2KeyPress(Sender: TObject;
var Key: Char);
begin
if (Key <> Char(VK_UP))and(Key <> Char(VK_DOWN))then
key := Char(0); //禁止用户键盘输入信息
end;
procedure TfrmReportNamePrint.ComboBox2Click(Sender: TObject);
var qQryDB:TQuery;
i:integer;
sSerial:string;
begin
qQryDB:=TQuery.Create(nil);
qQryDB.DatabaseName:=CDM.dbData.DatabaseName;
qQryDB.SessionName:=CDM.dbData.SessionName;
with qQryDB do
begin
Close;//报表名称LISTVIEW
SQL.Clear;
IF ComBoBox2.Text<>'全部'THEN
SQL.Add('SELECT * FROM SFRJREPORTNAME A WHERE FORMCAPTION='''+ComBoBox2.Text+''' ORDER BY REPORTID ')
ELSE
SQL.Add('SELECT * FROM SFRJREPORTNAME A ORDER BY REPORTID');
Open;
First;
lvReportName.items.BeginUpdate;
lvReportName.items.Clear;
I:=0;
sSerial:='0';
While not Eof do
begin
with lvReportName.Items.Add do
begin
Caption:=FieldByName('REPORTID').AsString;
If i=0 Then
begin
sSerial:=Caption;
sFormCaption:=FieldByName('FORMCAPTION').AsString;
end;
i:=i+1;
SubItems.Add(FieldByName('FORMCAPTION').AsString);
SubItems.Add(FieldByName('REPORTNAME').AsString);
if FieldByName('PRINTTYPE').AsInteger=0 then
SubItems.Add('A4竖打')
else
SubItems.Add('A4横打');
SubItems.Add(FieldByName('DISCRIPTION').Asstring);
Next ;
end;
end;
lvReportName.items.endupdate;
Close;//选择要打印的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT PRINTTAB,PRINTDETAILID,PRINTCAPTION,CAPTION,WIDTH,FORMCAPTION,A.TABLEDETAILID FROM SFRJPRINTDETAIL A,SFRJTABLEDETAIL B WHERE A.TABLEDETAILID=B.TABLEDETAILID AND REPORTID='+sSerial+' ORDER BY PRINTTAB');
Open;
First;
lvPrintDetail.items.BeginUpdate;
lvPrintDetail.items.Clear;
nRowWidth:=0;
While not Eof do
begin
with lvPrintDetail.Items.Add do
begin
Caption:=FieldByName('PRINTTAB').AsString;
SubItems.Add(FieldByName('PRINTCAPTION').Asstring);
SubItems.Add(FieldByName('CAPTION').AsString);
SubItems.Add(FieldByName('WIDTH').Asstring);
nRowWidth:=nRowWidth+FieldByName('WIDTH').AsInteger;
SubItems.Add(FieldByName('FORMCAPTION').Asstring);
SubItems.Add(FieldByName('TABLEDETAILID').Asstring);
Next ;
end;
end;
lvPrintDetail.items.endupdate;
Close;//提供可以选择的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT TABLEDETAILID,PRINTCAPTION,CAPTION,WIDTH,FORMCAPTION FROM SFRJTABLEDETAIL A WHERE FORMCAPTION='''+sFormCaption+''' ORDER BY TABLEDETAILID');
Open;
First;
lvTableDetail.items.BeginUpdate;
lvTableDetail.items.Clear;
While not Eof do
begin
with lvTableDetail.Items.Add do
begin
Caption:=FieldByName('PRINTCAPTION').AsString;
SubItems.Add(FieldByName('CAPTION').AsString);
SubItems.Add(FieldByName('WIDTH').Asstring);
SubItems.Add(FieldByName('FORMCAPTION').Asstring);
SubItems.Add(FieldByName('TABLEDETAILID').Asstring);
Next ;
end;
end;
lvTableDetail.items.endupdate;
qQryDB.Close;
qQryDB.Free;
qQryDB:=nil;
END;
end;
procedure TfrmReportNamePrint.lvPrintDetailEndDrag(Sender, Target: TObject;
X, Y: Integer);
var i,j:Integer;
lsPrintName,lsCaptionName,lsWidth,lsReportName,lsTableDetailID:string;
begin
i:=(Y div 17)-1;
If ((i<0) Or (i>lvPrintDetail.Items.Count))Then Exit;
try
begin
j:=lvPrintDetail.ItemIndex;
lsPrintName:=lvPrintDetail.Items[i].SubItems[0];
lsCaptionName:=lvPrintDetail.Items[i].SubItems[1];
lsWidth:=lvPrintDetail.Items[i].SubItems[2];
lsReportName:=lvPrintDetail.Items[i].SubItems[3];
lsTableDetailID:=lvPrintDetail.Items[i].SubItems[4];
lvPrintDetail.Items[i].SubItems[0]:=lvPrintDetail.Items[j].SubItems[0];
lvPrintDetail.Items[i].SubItems[1]:=lvPrintDetail.Items[j].SubItems[1];
lvPrintDetail.Items[i].SubItems[2]:=lvPrintDetail.Items[j].SubItems[2];
lvPrintDetail.Items[i].SubItems[3]:=lvPrintDetail.Items[j].SubItems[3];
lvPrintDetail.Items[i].SubItems[4]:=lvPrintDetail.Items[j].SubItems[4];
lvPrintDetail.Items[i].SubItems[0]:=lsPrintName;
lvPrintDetail.Items[i].SubItems[1]:=lsCaptionName;
lvPrintDetail.Items[i].SubItems[2]:=lsWidth;
lvPrintDetail.Items[i].SubItems[3]:=lsReportName;
lvPrintDetail.Items[i].SubItems[4]:=lsTableDetailID;
StatusBar1.SimpleText:='将定制打印报表'+lsReportName+'的列'+IntToStr(j)+',与列'+IntToStr(i)+'的打印顺序交换';
end;
except;
end;
end;
procedure TfrmReportNamePrint.N6Click(Sender: TObject);
begin
if N6.Checked=False then
begin
N6.Checked:=True;
Label1.Visible:=True;
Combobox2.Visible:=True;
StatusBar1.SimpleText:='请选择窗体上方的选择查询内容---定制哪个窗体的报表';
end
else
begin
N6.Checked:=False;
Label1.Visible:=False;
Combobox2.Visible:=False;
end
end;
procedure TfrmReportNamePrint.N10Click(Sender: TObject);
begin
close;
end;
procedure TfrmReportNamePrint.Refresh;
var qQryDB:TQuery;
i:integer;
sSerial:string;
begin
nOldSelectRow:=0;
qQryDB:=TQuery.Create(nil);
qQryDB.DatabaseName:=CDM.dbData.DatabaseName;
qQryDB.SessionName:=CDM.dbData.SessionName;
with qQryDB do
begin
Close;
SQL.Clear;
SQL.Add('SELECT FORMCAPTION FROM SFRJREPORTNAME A GROUP BY FORMCAPTION');
Open;
First;
ComBoBox2.Items.Clear;
ComBoBox2.Items.Add('全部');
While not eof do
begin
ComBoBox2.Items.Add(FieldByName('FORMCAPTION').AsString);
next;
end;
ComBoBox2.ItemIndex:=0;
Close;//报表名称LISTVIEW
SQL.Clear;
IF ComBoBox2.Text<>'全部'THEN
SQL.Add('SELECT * FROM SFRJREPORTNAME A WHERE FORMCAPTION='''+ComBoBox2.Text+''' ORDER BY REPORTID')
ELSE
SQL.Add('SELECT * FROM SFRJREPORTNAME A ORDER BY REPORTID');
Open;
First;
lvReportName.items.BeginUpdate;
lvReportName.items.Clear;
I:=0;
sSerial:='0';
While not Eof do
begin
with lvReportName.Items.Add do
begin
Caption:=FieldByName('REPORTID').AsString;
If i=0 Then
begin
sSerial:=Caption;
sFormCaption:=FieldByName('FORMCAPTION').AsString;
sReportName:=FieldByName('REPORTNAME').AsString;
end;
i:=i+1;
SubItems.Add(FieldByName('FORMCAPTION').AsString);
SubItems.Add(FieldByName('REPORTNAME').AsString);
if FieldByName('PRINTTYPE').AsInteger=0 then
SubItems.Add('A4竖打')
else
SubItems.Add('A4横打');
SubItems.Add(FieldByName('DISCRIPTION').Asstring);
Next ;
end;
end;
lvReportName.items.endupdate;
Close;//选择要打印的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT A.TABLEDETAILID,PRINTTAB,A.TABLEDETAILID,PRINTCAPTION,CAPTION,WIDTH,FORMCAPTION,A.TABLEDETAILID FROM SFRJPRINTDETAIL A,SFRJTABLEDETAIL B ');
SQL.Add('WHERE A.TABLEDETAILID=B.TABLEDETAILID AND REPORTID='+sSerial+' ORDER BY PRINTTAB');
Open;
First;
lvPrintDetail.items.BeginUpdate;
lvPrintDetail.items.Clear;
nRowWidth:=0;
While not Eof do
begin
with lvPrintDetail.Items.Add do
begin
Caption:=FieldByName('PRINTTAB').AsString;
SubItems.Add(FieldByName('PRINTCAPTION').Asstring);
SubItems.Add(FieldByName('CAPTION').AsString);
SubItems.Add(FieldByName('WIDTH').Asstring);
nRowWidth:=nRowWidth+FieldByName('WIDTH').AsInteger;
SubItems.Add(sReportName);
SubItems.Add(FieldByName('TABLEDETAILID').Asstring);
Next ;
end;
end;
lvPrintDetail.items.endupdate;
Close;//提供可以选择的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT TABLEDETAILID,PRINTCAPTION,CAPTION,WIDTH,FORMCAPTION FROM SFRJTABLEDETAIL A WHERE FORMCAPTION='''+sFormCaption+''' ORDER BY TABLEDETAILID');
Open;
First;
lvTableDetail.items.BeginUpdate;
lvTableDetail.items.Clear;
While not Eof do
begin
with lvTableDetail.Items.Add do
begin
Caption:=FieldByName('PRINTCAPTION').AsString;
SubItems.Add(FieldByName('CAPTION').AsString);
SubItems.Add(FieldByName('WIDTH').Asstring);
SubItems.Add(FieldByName('FORMCAPTION').Asstring);
SubItems.Add(FieldByName('TABLEDETAILID').Asstring);
Next ;
end;
end;
lvTableDetail.items.endupdate;
qQryDB.Close;
qQryDB.Free;
qQryDB:=nil;
END;
end;
procedure TfrmReportNamePrint.N12Click(Sender: TObject);
begin
Refresh;
end;
procedure TfrmReportNamePrint.spRefreshClick(Sender: TObject);
begin
Refresh;
end;
procedure TfrmReportNamePrint.lvReportNameColumnClick(Sender: TObject;
Column: TListColumn);
begin
Case Column.Index of
0: SortListView(lvReportName,Column.ID,ssNumeric,True);
1,2,3: SortListView(lvReportName,Column.ID,ssAlpha,True);
end;
end;
procedure TfrmReportNamePrint.lvPrintDetailColumnClick(Sender: TObject;
Column: TListColumn);
begin
Case Column.Index of
0,3: SortListView(lvPrintDetail,Column.ID,ssNumeric,True);
1,2,4: SortListView(lvPrintDetail,Column.ID,ssAlpha,True);
end;
end;
procedure TfrmReportNamePrint.lvTableDetailColumnClick(Sender: TObject;
Column: TListColumn);
begin
Case Column.Index of
0,3: SortListView(lvTableDetail,Column.ID,ssNumeric,True);
1,2,4: SortListView(lvTableDetail,Column.ID,ssAlpha,True);
end;
end;
procedure TfrmReportNamePrint.spExitClick(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -