📄 unreportdisplay.pas
字号:
begin
Caption:=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;
nOldSelectRow:=lvReportName.ItemIndex;
StatusBar1.Panels.Items[1].Text := '窗体名称:'+sFormCaption;
end;
procedure TfrmReportDisplay.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
lvReportName.Items.Clear;
lvTableDetail.Items.Clear;
lvDisplayDetail.Items.Clear;
end;
procedure TfrmReportDisplay.BitBtn1Click(Sender: TObject);
var i,nWidth:Integer;
sCaption,StrSerial:String;
begin
GroupBox4.Visible:=False;
i:=lvTableDetail.ItemIndex;
if(i>=0)then
begin
sCaption:=lvTableDetail.Items[i].Caption;
nWidth:=StrToInt(lvTableDetail.Items[i].SubItems[0]);
sFormCaption:=lvTableDetail.Items[i].SubItems[1];
StrSerial:=lvTableDetail.Items[i].SubItems[2];
//合乎要求继续
i:=0;
while i< lvDisplayDetail.Items.Count do
begin
if(lvDisplayDetail.Items[i].SubItems[0]=sCaption)then
break;
i:=i+1;
end;
if(i = lvDisplayDetail.Items.Count)then
begin
lvDisplayDetail.items.BeginUpdate;
with lvDisplayDetail.Items.Add do
begin
Caption:=Combobox1.Text;
SubItems.Add(sCaption);
SubItems.Add(IntToStr(nWidth));
SubItems.Add(lvReportName.Items[nOldSelectRow].Caption);
SubItems.Add(StrSerial);
end;
lvDisplayDetail.items.EndUpdate;
nRowWidth:=nRowWidth+nWidth;
end
else
Application.MessageBox(' 你选择的显示列已经存在,请检查是否重复!','系统信息管理窗',0);
end;
StatusBar1.Panels.Items[1].Text := '窗体名称:'+lvReportName.Items[nOldSelectRow].Caption+',添加显示列成功';
GroupBox4.Visible:=False;
spUp.Enabled:=True;
end;
procedure TfrmReportDisplay.BitBtn2Click(Sender: TObject);
begin
GroupBox4.Visible:=False;
spUp.Enabled:=True;
end;
procedure TfrmReportDisplay.lvReportNameKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var qQryDB:TQuery;
sFormCaption:string;
begin
if ((Key=38) or(Key=40)) then
begin
if nOldSelectRow=lvReportName.ItemIndex then
Exit;
sFormCaption:=lvReportName.Items[lvReportName.ItemIndex].Caption;
qQryDB:=TQuery.Create(nil);
qQryDB.DatabaseName:=CDM.dbData.DatabaseName;
qQryDB.SessionName:=CDM.dbData.SessionName;
with qQryDB do
begin
Close;//选择要显示的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT A.TABLEDETAILID,DISPLAYTAB,'
+'CAPTION,WIDTH,FORMCAPTION FROM SFRJDISPLAYDETAIL A,SFRJTABLEDETAIL B');
SQL.Add(' WHERE A.TABLEDETAILID=B.TABLEDETAILID AND FORMCAPTION='''
+sFormCaption+''' ORDER BY DISPLAYTAB ASC');
Open;
First;
lvDisplayDetail.items.BeginUpdate;
lvDisplayDetail.items.Clear;
nRowWidth:=0;//显示列总宽度
While not Eof do
begin
with lvDisplayDetail.Items.Add do
begin
Caption:=FieldByName('DISPLAYTAB').AsString;
SubItems.Add(FieldByName('CAPTION').AsString);
SubItems.Add(FieldByName('WIDTH').Asstring);
nRowWidth:=nRowWidth+FieldByName('WIDTH').AsInteger;
SubItems.Add(sFormCaption);
SubItems.Add(FieldByName('TABLEDETAILID').Asstring);
Next ;
end;
end;
lvDisplayDetail.items.endupdate;
Close;//提供可以选择的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT TABLEDETAILID,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('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;
nOldSelectRow:=lvReportName.ItemIndex;
StatusBar1.Panels.Items[1].Text := '窗体名称:'+sFormCaption;
end;
end;
procedure TfrmReportDisplay.lvTableDetailClick(Sender: TObject);
begin
GroupBox4.Visible:=False;
spUp.Enabled:=True;
spDown.Enabled:=True;
spSaveDB.Enabled:=True;
spAllUp.Enabled:=True;
end;
procedure TfrmReportDisplay.lvDisplayDetailClick(Sender: TObject);
begin
GroupBox4.Visible:=False;
spUp.Enabled:=True;
spDown.Enabled:=True;
spSaveDB.Enabled:=True;
spAllUp.Enabled:=True;
end;
procedure TfrmReportDisplay.N5Click(Sender: TObject);
begin
GroupBox4.Visible:=False;
end;
procedure TfrmReportDisplay.ComboBox1KeyPress(Sender: TObject;
var Key: Char);
begin
if (Key <> Char(VK_UP))and(Key <> Char(VK_DOWN))then
key := Char(0); //禁止用户键盘输入信息
end;
procedure TfrmReportDisplay.ComboBox2KeyPress(Sender: TObject;
var Key: Char);
begin
if (Key <> Char(VK_UP))and(Key <> Char(VK_DOWN))then
key := Char(0); //禁止用户键盘输入信息
end;
procedure TfrmReportDisplay.N10Click(Sender: TObject);
begin
close;
end;
//判断指定窗体指定LISTVIEW列在报表打印定制中是否允许删除
Function TfrmReportDisplay.bAgreeDel(const FormCaption,
DisplayColumnCaption:string):boolean;
var qQryDB:TQuery;
begin
result:=True;
qQryDB:=TQuery.Create(nil);//创建查询
qQryDB.DatabaseName:=CDM.dbData.DatabaseName;
qQryDB.SessionName:=CDM.dbData.SessionName;
with qQryDB do
begin
Close;
SQL.Clear;//清SQL
SQL.Add('SELECT FORMCAPTION,A.TABLEDETAILID '
+' FROM SFRJPRINTDETAIL A,SFRJTABLEDETAIL B ');
SQL.Add('WHERE A.TABLEDETAILID=B.TABLEDETAILID AND FORMCAPTION='''
+FormCaption+''' AND CAPTION='''+DisplayColumnCaption+'''');
Open;
If Not eof then
begin
result:=False;
end;
qQryDB.Close;
qQryDB.Free;
qQryDB:=nil;
end;
end;
//取定制显示内容
procedure TfrmReportDisplay.Refresh;
var qQryDB:TQuery;
i:integer;
sFormCaption: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 '
+'WHERE SHAREUSE=1 GROUP BY FORMCAPTION');
Open;
First;
lvReportName.items.BeginUpdate;
lvReportName.items.Clear;
I:=0;
sFormCaption:='0';
While not Eof do
begin
with lvReportName.Items.Add do
begin
Caption:=FieldByName('FORMCAPTION').AsString;
If i=0 Then
begin
sFormCaption:=FieldByName('FORMCAPTION').AsString;
end;
i:=i+1;
Next ;
end;
end;
lvReportName.items.endupdate;
Close;//选择要显示的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT A.TABLEDETAILID,DISPLAYTAB,'
+'CAPTION,WIDTH,FORMCAPTION FROM SFRJDISPLAYDETAIL A,SFRJTABLEDETAIL B ');
SQL.Add('WHERE A.TABLEDETAILID=B.TABLEDETAILID AND FORMCAPTION='''
+sFormCaption+''' ORDER BY DISPLAYTAB ASC');
Open;
First;
lvDisplayDetail.items.BeginUpdate;
lvDisplayDetail.items.Clear;
nRowWidth:=0;
While not Eof do
begin
with lvDisplayDetail.Items.Add do//添加到显示队列中
begin
Caption:=FieldByName('DISPLAYTAB').AsString;
SubItems.Add(FieldByName('CAPTION').AsString);
SubItems.Add(FieldByName('WIDTH').Asstring);
nRowWidth:=nRowWidth+FieldByName('WIDTH').AsInteger;
SubItems.Add(sFormCaption);
SubItems.Add(FieldByName('TABLEDETAILID').Asstring);
Next ;
end;
end;
lvDisplayDetail.items.endupdate;
Close;//提供可以选择的字段LISTVIEW初始化
SQL.Clear;
SQL.Add('SELECT TABLEDETAILID,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('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 TfrmReportDisplay.N12Click(Sender: TObject);
begin
Refresh;
end;
procedure TfrmReportDisplay.spRefreshClick(Sender: TObject);
begin
Refresh;
end;
procedure TfrmReportDisplay.lvReportNameColumnClick(Sender: TObject;
Column: TListColumn);
begin
SortListView(lvReportName,Column.ID,ssAlpha,True);
end;
procedure TfrmReportDisplay.lvDisplayDetailColumnClick(Sender: TObject;
Column: TListColumn);
begin
Case Column.Index of
0,2: SortListView(lvDisplayDetail,Column.ID,ssNumeric,True);
1,3: SortListView(lvDisplayDetail,Column.ID,ssAlpha,True);
end;
end;
procedure TfrmReportDisplay.lvTableDetailColumnClick(Sender: TObject;
Column: TListColumn);
begin
Case Column.Index of
1: SortListView(lvTableDetail,Column.ID,ssNumeric,True);
0,2: SortListView(lvTableDetail,Column.ID,ssAlpha,True);
end;
end;
procedure TfrmReportDisplay.spExitClick(Sender: TObject);
begin
close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -