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

📄 unreportnameprint.pas

📁 本产品是开发LISTVIEW相关功能的可定制产品
💻 PAS
📖 第 1 页 / 共 3 页
字号:
  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 + -