📄 unreportnameprint.pas
字号:
// N5.Enabled:=True;
if ((lvReportName.ItemIndex<0) or (lvReportName.ItemIndex>lvReportName.Items.Count))then
exit;
sSerial:=lvReportName.Items[lvReportName.ItemIndex].Caption;
sFormCaption:=lvReportName.Items[lvReportName.ItemIndex].SubItems[0];
sReportName:=lvReportName.Items[lvReportName.ItemIndex].SubItems[1];
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 PRINTTAB,PRINTCAPTION,CAPTION,WIDTH,FORMCAPTION,A.TABLEDETAILID 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(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;
nOldSelectRow:=lvReportName.ItemIndex;
StatusBar1.Panels.Items[1].Text := '报表名称:'+sReportName+',打印总列宽为:'+IntToStr(nRowWidth)+'个像素.';
end;
procedure TfrmReportNamePrint.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
lvReportName.Items.Clear;
lvTableDetail.Items.Clear;
lvPrintDetail.Items.Clear;
end;
procedure TfrmReportNamePrint.spAddClick(Sender: TObject);
begin
GroupBox4.Visible:=False;
FrmReportInfo:=TFrmReportInfo.Create(nil);
FrmReportInfo.IniInfo(0,0,0,'','','');
ShowColor(FrmReportInfo);
FrmReportInfo.ShowModal;
if FrmReportInfo.bbSure=True then
begin
with lvReportName.Items.Add do
begin
Caption:=FrmReportInfo.sReportID;
SubItems.Add(FrmReportInfo.sFormCaption);
SubItems.Add(FrmReportInfo.sReportName);
SubItems.Add(FrmReportInfo.sPrintType);
SubItems.Add(FrmReportInfo.sDiscription);
END;
end;
FrmReportInfo.Free;
FrmReportInfo:=NIL;
end;
procedure TfrmReportNamePrint.spEditClick(Sender: TObject);
var i,j:Integer;
begin
GroupBox4.Visible:=False;
j:=lvReportName.ItemIndex;
if(j>=0)then
begin
sFormCaption:=lvReportName.Items[J].SubItems[0];
sReportName:=lvReportName.Items[J].SubItems[1];
sDiscription:=lvReportName.Items[J].SubItems[3];
if (lvReportName.Items[J].SubItems[2]='A4横打') then
i:=1
else
i:=0;
FrmReportInfo:=TFrmReportInfo.Create(nil);
FrmReportInfo.IniInfo(nRowWidth,1,i,sFormCaption,sReportName,sDiscription);
ShowColor(FrmReportInfo);
FrmReportInfo.ShowModal;
if FrmReportInfo.bbSure=True then
begin
lvReportName.Items[j].SubItems[0]:=FrmReportInfo.sFormCaption;
lvReportName.Items[j].SubItems[1]:=FrmReportInfo.sReportName;
lvReportName.Items[j].SubItems[2]:=FrmReportInfo.sPrintType;
lvReportName.Items[j].SubItems[3]:=FrmReportInfo.sDiscription;
end;
FrmReportInfo.Free;
FrmReportInfo:=NIL;
end
else
StatusBar1.Panels.Items[1].Text := '请选择要修改的行!'
end;
procedure TfrmReportNamePrint.spDelClick(Sender: TObject);
var i,J:Integer;
begin
GroupBox4.Visible:=False;
J:=lvReportName.ItemIndex;
if(J>=0)then
begin
sFormCaption:=lvReportName.Items[J].SubItems[0];
sReportName:=lvReportName.Items[J].SubItems[1];
if (lvReportName.Items[J].SubItems[2]='A4横打') then
i:=1
else
i:=0;
sDiscription:=lvReportName.Items[J].SubItems[3];
FrmReportInfo:=TFrmReportInfo.Create(nil);
FrmReportInfo.IniInfo(nRowWidth,2,i,sFormCaption,sReportName,sDiscription);
ShowColor(FrmReportInfo);
FrmReportInfo.ShowModal;
if FrmReportInfo.bbSure=True then
lvReportName.Items[j].Delete;
FrmReportInfo.Free;
FrmReportInfo:=NIL;
if(j<lvReportName.Items.Count) then
begin
lvReportName.Items[j].Selected:=True;
lvReportNameClick(lvReportName);
end
else
spRefresh.Click;
end
else
StatusBar1.Panels.Items[1].Text := '请选择要删除的行!'
end;
procedure TfrmReportNamePrint.BitBtn1Click(Sender: TObject);
var i,nWidth:Integer;
sPintCaption,sCaption,StrSerial:String;
begin
GroupBox4.Visible:=False;
i:=lvTableDetail.ItemIndex;
if(i>=0)then
begin
sPintCaption:=lvTableDetail.Items[i].Caption;
sCaption:=lvTableDetail.Items[i].SubItems[0];
nWidth:=StrToInt(lvTableDetail.Items[i].SubItems[1]);
sFormCaption:=lvTableDetail.Items[i].SubItems[2];
StrSerial:=lvTableDetail.Items[i].SubItems[3];
//合乎要求继续
i:=0;
while i< lvPrintDetail.Items.Count do
begin
if((lvPrintDetail.Items[i].SubItems[0]=sPintCaption) And (lvPrintDetail.Items[i].SubItems[1]=sCaption) And(lvPrintDetail.Items[i].SubItems[2]=IntToStr(nWidth)))then
break;
i:=i+1;
end;
if(i = lvPrintDetail.Items.Count)then
begin
lvPrintDetail.items.BeginUpdate;
with lvPrintDetail.Items.Add do
begin
Caption:=Combobox1.Text;
SubItems.Add(sPintCaption);
SubItems.Add(sCaption);
SubItems.Add(IntToStr(nWidth));
SubItems.Add(lvReportName.Items[nOldSelectRow].SubItems[1]);
SubItems.Add(StrSerial);
end;
lvPrintDetail.items.EndUpdate;
nRowWidth:=nRowWidth+nWidth;
end
else
Application.MessageBox(' 你选择的打印列已经存在,请检查是否重复!','系统信息管理窗',0);
end;
StatusBar1.Panels.Items[1].Text := '报表名称:'+lvReportName.Items[nOldSelectRow].SubItems[1]+',添加打印列成功,打印总列宽为:'+IntToStr(nRowWidth)+'个像素.';
GroupBox4.Visible:=False;
spUp.Enabled:=True;
spAdd.Enabled:=True;
spEdit.Enabled:=True;
spDel.Enabled:=True;
end;
procedure TfrmReportNamePrint.BitBtn2Click(Sender: TObject);
begin
GroupBox4.Visible:=False;
spUp.Enabled:=True;
spAdd.Enabled:=True;
spEdit.Enabled:=True;
spDel.Enabled:=True;
end;
procedure TfrmReportNamePrint.lvReportNameKeyUp(Sender: TObject;
var Key: Word; Shift: TShiftState);
var qQryDB:TQuery;
sSerial:string;
begin
if ((Key=38) or(Key=40)) then
begin
if nOldSelectRow=lvReportName.ItemIndex then
Exit;
sReportName:=lvReportName.Items[lvReportName.ItemIndex].SubItems[1];
sSerial:=lvReportName.Items[lvReportName.ItemIndex].Caption;
sFormCaption:=lvReportName.Items[lvReportName.ItemIndex].SubItems[0];
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 PRINTTAB,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(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;
nOldSelectRow:=lvReportName.ItemIndex;
StatusBar1.Panels.Items[1].Text := '报表名称:'+sReportName+',打印总列宽为:'+IntToStr(nRowWidth)+'个像素.';
end;
end;
procedure TfrmReportNamePrint.lvTableDetailClick(Sender: TObject);
begin
GroupBox4.Visible:=False;
spUp.Enabled:=True;
spAdd.Enabled:=True;
spEdit.Enabled:=True;
spDel.Enabled:=True;
spDown.Enabled:=True;
spSaveDB.Enabled:=True;
spAllUp.Enabled:=True;
end;
procedure TfrmReportNamePrint.lvPrintDetailClick(Sender: TObject);
begin
GroupBox4.Visible:=False;
spUp.Enabled:=True;
spAdd.Enabled:=True;
spEdit.Enabled:=True;
spDel.Enabled:=True;
spDown.Enabled:=True;
spSaveDB.Enabled:=True;
spAllUp.Enabled:=True;
end;
procedure TfrmReportNamePrint.N5Click(Sender: TObject);
begin
GroupBox4.Visible:=False;
end;
procedure TfrmReportNamePrint.ComboBox1KeyPress(Sender: TObject;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -