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

📄 printselectunit.pas

📁 公交行业的管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      begin
           for i:=0 to DstList.Count-1 do
           begin
                  ExcelWorkSheet.cells(j,i+1):=curQuery.FieldByName(PrintFieldSelectDlg.DstList.Items[i]).AsString;
                  Range:=ExcelWorkSheet.Cells[j,i+1];
                  Range.Borders[1].LineStyle := 7;
                  Range.Borders[2].LineStyle := 7;
                  Range.Borders[3].LineStyle := 7;
                  Range.Borders[4].LineStyle := 7;
           end;
           j:=j+1;
           curQuery.Next;
      end;
      for i:=0 to PrintFieldSelectDlg.DstList.Count-1 do
      ExcelWorkSheet.Columns[i+1].AutoFit;
      end;
      ExcelApp.Visible:=true;
      ExcelWorkSheet.PageSetup.LeftFooter :='统计负责人:'+Edit1.Text;
      ExcelWorkSheet.PageSetup.CenterFooter :='统计人员:'+Edit2.Text ;
      ExcelWorkSheet.PageSetup.RightFooter :='填表日期:'+DateToStr(DateTimePicker1.Date);
      ExcelApp.ActiveSheet.PrintPreview;
      ExcelApp.activeworkbook.saved:=true;
      ExcelApp.quit;
end;

procedure TPrintFieldSelectDlg.InitPrnSrc(curQuery:TADOQuery);
var
i:integer;
myItem:TListItem;
begin
     srclist.Visible:=true;
     srclistview.Visible:=false;
     PrintFieldSelectDlg.SrcList.Clear;
      PrintFieldSelectDlg.DstList.Clear;
      for  i:=0 to curQuery.FieldCount-1 do
      begin
            SrcList.Items.Add(curQuery.Fields[i].FieldName);
      end;

   //////////////////新添代码////////////////////////////////////////
    {   SrcListView.Items.Clear;
       for  i:=0 to curQuery.FieldCount-1 do
      begin
           myItem:=SrcListView.Items.Add;
           myItem.Caption:=curQuery.Fields[i].FieldName;
           myitem.SubItems.Add('***');
      end;       }

  ///////////////////新添代码/////////////////////////////////////

end;

procedure TPrintFieldSelectDlg.InitPrnSrc2(curQuery:TADOQuery;nextQuery:TADOTable);
var
i:integer;
myItem:TListItem;
begin
       srclist.Visible:=false;
       srclistview.Visible:=true;
       PrintFieldSelectDlg.DstList.Clear;
   //////////////////新添代码////////////////////////////////////////
       SrcListView.Items.Clear;
       for  i:=0 to curQuery.FieldCount-1 do
      begin
           myItem:=SrcListView.Items.Add;
           myItem.Caption:=curQuery.Fields[i].FieldName;
           nextquery.Active:=false;
           nextquery.Filtered:=false;
           nextquery.Filter:= '指标代码='''+curQuery.Fields[i].FieldName+'''';
           nextquery.Filtered:=true;
           nextquery.Active:=true;
         //  nextquery.Filtered:=false;
           if nextquery.Eof then
           begin
               myitem.SubItems.Add('***');
           end
           else
               myitem.SubItems.Add(nextquery.FieldValues['指标名称']);
      //myitem.SubItems.Add(QueryTemp.fieldbyname('loginname').AsString);
         //  myitem.SubItems.Add('***');
      end;
           nextquery.Active:=false;
           nextquery.Filtered:=false;
           nextquery.Active:=true;
  ///////////////////新添代码/////////////////////////////////////

end;

procedure TPrintFieldSelectDlg.IncludeBtnClick(Sender: TObject);
var
  Index: Integer;
  Item: TListItem;
begin
  if SrcList.Visible=true then
  begin
    Index := GetFirstSelection(SrcList);
    MoveSelected(SrcList, DstList.Items);
    SetItem(SrcList, Index);
  end

  else
  begin
         Item := srcListView.Selected;
          while Item <> nil do
          begin
            for index := 0 to dstList.Items.Count - 1 do
            begin
             if dstlist.Items.Strings[index]=item.Caption  then
             begin
               dstlist.Items.Delete(index);
               break;
             end;
             end;
             dstlist.Items.Add(Item.Caption);
             Item := srcListView.GetNextItem(Item, sdAll, [isSelected]);
         end;
         SetButtons;
  end;
end;

procedure TPrintFieldSelectDlg.ExcludeBtnClick(Sender: TObject);
var
  Index: Integer;
begin
  if SrcList.Visible=true then
  begin
    Index := GetFirstSelection(DstList);
    MoveSelected(DstList, SrcList.Items);
    SetItem(DstList, Index);
  end

  else
  begin
      for index := 0 to dstList.Items.Count - 1 do
          if dstList.Selected[index] then
          begin
          dstlist.DeleteSelected;
          break;
           //    Item:=srclistview.Items.Add;
              // Item.Caption:=dstlist.Items.Strings[index];
             //  item.SubItems.Add(QueryTemp.fieldbyname('loginname').AsString);
          end;
        SetButtons;
  end;
end;

procedure TPrintFieldSelectDlg.IncAllBtnClick(Sender: TObject);
var
  I: Integer;
begin
  if srclist.Visible=true then
  begin
  for I := 0 to SrcList.Items.Count - 1 do
          DstList.Items.AddObject(SrcList.Items[I],
           SrcList.Items.Objects[I]);
        SrcList.Items.Clear;
        SetItem(SrcList, 0);
  end

  else
  begin
  dstlist.Clear;
       for I := 0 to SrcListview.Items.Count - 1 do
         { DstList.Items.AddObject(SrcListview.Items[I].Caption,
           SrcListview.Items.Objects[I]);   }
            dstlist.Items.Add(SrcListview.Items[I].Caption);
    //    SrcListview.Items.Clear;
     //   SetItem(SrcListview, 0);
     SetButtons;
  end;
end;

procedure TPrintFieldSelectDlg.ExcAllBtnClick(Sender: TObject);
var
  I: Integer;
begin
  if srclist.Visible=true then
  begin
  for I := 0 to DstList.Items.Count - 1 do
    SrcList.Items.AddObject(DstList.Items[I], DstList.Items.Objects[I]);
  DstList.Items.Clear;
  SetItem(DstList, 0);
  end
  else
  begin

          dstlist.Clear;

        SetButtons;
  end;
end;

procedure TPrintFieldSelectDlg.MoveSelected(List: TCustomListBox; Items: TStrings);
var
  I: Integer;
  tempItems: TStringList;
begin
    tempItems:=TStringList.Create;
    for I := List.Items.Count - 1 downto 0 do
    if List.Selected[I] then
    begin
      tempItems.AddObject(List.Items[I], List.Items.Objects[I]);
      List.Items.Delete(I);
    end;
    for I := tempItems.Count - 1 downto 0 do   
    begin
      Items.AddObject(tempItems.Strings[I], tempItems.Objects[I]);
    end;
    tempItems.Free;
end;

procedure TPrintFieldSelectDlg.SetButtons;
var
  SrcEmpty, DstEmpty: Boolean;
begin
  if srclist.Visible=true then
  begin
  SrcEmpty := SrcList.Items.Count = 0;
  DstEmpty := DstList.Items.Count = 0;
  IncludeBtn.Enabled := not SrcEmpty;
  IncAllBtn.Enabled := not SrcEmpty;
  ExcludeBtn.Enabled := not DstEmpty;
  ExAllBtn.Enabled := not DstEmpty;
  end
  else
  begin
       SrcEmpty := SrcListview.Items.Count = 0;
       DstEmpty := DstList.Items.Count = 0;
       IncludeBtn.Enabled := not SrcEmpty;
       IncAllBtn.Enabled := not SrcEmpty;
       ExcludeBtn.Enabled := not DstEmpty;
       ExAllBtn.Enabled := not DstEmpty;
  end;
end;

function TPrintFieldSelectDlg.GetFirstSelection(List: TCustomListBox): Integer;
begin
  for Result := 0 to List.Items.Count - 1 do
    if List.Selected[Result] then Exit;
  Result := LB_ERR;
end;

procedure TPrintFieldSelectDlg.SetItem(List: TListBox; Index: Integer);
var
  MaxIndex: Integer;
begin
  with List do
  begin
    SetFocus;
    MaxIndex := List.Items.Count - 1;
    if Index = LB_ERR then Index := 0
    else if Index > MaxIndex then Index := MaxIndex;
    Selected[Index] := True;
  end;
  SetButtons;
end;

end.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -