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

📄 mymainform.pas

📁 本产品是开发LISTVIEW相关功能的可定制产品
💻 PAS
📖 第 1 页 / 共 2 页
字号:
{**********************************************************************
                      界面显示定制及报表打印定制程序框架DEMO
代码名称:   界面显示定制及报表打印定制程序框架程序
编译工具:  Delphi 6.0
功能:      实现了整个系统显示、打印定制的相关功能
作者:      邓普德
版权:      成都四方信息技术有限公司
使用限制:
        SQL SERVER 数据库
	最多可以在Listview列表中显示30列;
	最多可以打印10列;
	显示及打印列最多支持30个字符;
	显示及打印列名称最多14个字符;
	只能保存最近30天的本地日志文件;
	建议打印备注信息不要超过5行,每行不要超过60个字符;
	需要先安装QR362ProfD6.EXE打印转XLS控件。
	适用于SQL SERVER数据库,且由于定制功能要使用数据库,因此数据库需要先打开。        
定义时间:  2006-08-02
修改时间:  2006-08-06
**********************************************************************}

unit myMainForm;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ComCtrls, Menus, ExtCtrls,unCustomDisplay, QrPrntr,
  Buttons,math,DateUtils, ImgList, ToolWin;

type
  TmyMainForm1 = class(TForm)
    MainMenu1: TMainMenu;
    N2: TMenuItem;
    N3: TMenuItem;
    N5: TMenuItem;
    N6: TMenuItem;
    ListViewPanel: TPanel;
    PopupMenu1: TPopupMenu;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    StBar: TStatusBar;
    CSListView: TListView;
    BitBtn1: TBitBtn;
    BitBtn2: TBitBtn;
    BitBtn3: TBitBtn;
    BitBtn4: TBitBtn;
    BitBtn5: TBitBtn;
    BitBtn6: TBitBtn;
    Memo1: TMemo;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N15: TMenuItem;
    N16: TMenuItem;
    N17: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    N29: TMenuItem;
    N30: TMenuItem;
    N31: TMenuItem;
    N32: TMenuItem;
    N33: TMenuItem;
    A1: TMenuItem;
    N34: TMenuItem;
    ToolBar1: TToolBar;
    ToolButton6: TToolButton;
    tbLogSys: TToolButton;
    ToolButton5: TToolButton;
    ToolButton20: TToolButton;
    ToolButton22: TToolButton;
    ToolButton3: TToolButton;
    ToolButton7: TToolButton;
    ToolButton9: TToolButton;
    ToolButton1: TToolButton;
    ToolButton8: TToolButton;
    ToolButton13: TToolButton;
    tbFind: TToolButton;
    CloseSound: TToolButton;
    ToolButton17: TToolButton;
    ToolButton26: TToolButton;
    Bevel1: TBevel;
    CImageList: TImageList;
    ImageList1: TImageList;
    N1: TMenuItem;
    N4: TMenuItem;
    procedure FormCreate(Sender: TObject);
    procedure N2Click(Sender: TObject);
    procedure N3Click(Sender: TObject);
    procedure N4Click(Sender: TObject);
    procedure N6Click(Sender: TObject);
    procedure N5Click(Sender: TObject);
    procedure CSListViewData(Sender: TObject; Item: TListItem);
    procedure BitBtn1Click(Sender: TObject);
    procedure BitBtn2Click(Sender: TObject);
    procedure N8Click(Sender: TObject);
    procedure N7Click(Sender: TObject);
    procedure N9Click(Sender: TObject);
    procedure CSListViewColumnClick(Sender: TObject; Column: TListColumn);
    procedure BitBtn6Click(Sender: TObject);
    procedure N11Click(Sender: TObject);
    procedure CSListViewDblClick(Sender: TObject);
    procedure CSListViewCustomDrawItem(Sender: TCustomListView;
      Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
    procedure Memo1DblClick(Sender: TObject);
    procedure FormDestroy(Sender: TObject);
    procedure N25Click(Sender: TObject);
  private
    DisplayClass:TCustomDisplay;//引入显示类
    ShowDataBuffer : ^TShowDataBuffer;//定义显示缓冲区指针,其中的
    FList: TList ;//定义显示列表
    function LoadSelectToShowBuffer: boolean;

    { Private declarations }
  public
    { Public declarations }
  end;

var
  myMainForm1: TmyMainForm1;
  HaveSort: Array [0..30] of Boolean;//定义LISTVIEW显示列排序数组
  FIndex,FDataType,FColumnIndex : integer ;//定义当前排序列在数组中的索引、数据类型、列号

implementation

uses unCDM,unCDefine,unReportNamePrint, unreportDisplay, ColorSelect, unPersonReportDisplay,
  unSetTableDetail, unfrmVer,UnMakeReportDetail;

{$R *.dfm}
//窗体创建
procedure TmyMainForm1.FormCreate(Sender: TObject);
var
  i:integer;
begin
//由于定制功能要使用数据库,因此数据库需要先打开
  if not Assigned(CDM) then
    CDM := TCDM.Create(nil);
  If CDM.ConnectDataBase('KSDA','DENGPD','CSAP','CSAP')=False Then //其参数依次分别表示数据库名称,服务器名称,用户名和口令。
     WriteLog(Memo1,'数据库连接失败');
  CDM.GetShowColor;


  FList := Tlist.Create;//创建FList列表
  For i := 0 to 30 do haveSort[i] := true;//初始化排序数组
  FColumnIndex:=0;
  sUserID:='CSaP';//取得登录员工工号
  DisplayClass := TCustomDisplay.Create();//创建显示类
  DisplayClass.IniCustomDisplay(myMainForm1,CSListView,'','',
      sUserID,ListViewPanel);      ////调用显示类的IniCustomDisplay初始化窗体中的显示列表ListView
  DisplayClass.nIconInArray:=2;    //nIconInArray表示需要进行图标/片显示的数组中的序号,=0表示不显示图标
  DisplayClass.nIconToBaseStateSeq:=0;     //nIconBaseSeq是ImageList中从第几个图标开始的序号(从0开始计数)
  DisplayClass.bShowStateColor:=True;  //不同状态的指定列需要显示不同的颜色
  DisplayClass.SetStateColor; //设置LISTVIEW行状态颜色,如果nIconInArray=0,或bShowStateColor=FALSE则该行可以不要,或设置了也不会有用
  ShowColor(myMainForm1);//显示个性化自定义颜色方案

end;

procedure TmyMainForm1.N2Click(Sender: TObject);
begin
    if not Assigned(frmReportNamePrint) then
      frmReportNamePrint := TfrmReportNamePrint.Create(nil);
    ShowColor(frmReportNamePrint);
    frmReportNamePrint.Show;
end;

procedure TmyMainForm1.N3Click(Sender: TObject);
begin
    if not Assigned(frmReportDisplay) then
      frmReportDisplay := TfrmReportDisplay.Create(nil);
    ShowColor(frmReportDisplay);
    frmReportDisplay.Show;

end;

procedure TmyMainForm1.N4Click(Sender: TObject);
begin
  if not Assigned(FrmSelectColor) then
    FrmSelectColor := TFrmSelectColor.Create(nil);
  ShowColor(myMainForm1);
  FrmSelectColor.ShowModal;
  FrmSelectColor.Free;
  FrmSelectColor := nil;
  ShowColor(myMainForm1);
end;

procedure TmyMainForm1.N6Click(Sender: TObject);
begin
  if Not Assigned(frmPersonReportDisplay) then
    frmPersonReportDisplay:=TfrmPersonReportDisplay.Create(nil);
  frmPersonReportDisplay.IniShow('Demo');
  ShowColor(frmPersonReportDisplay);
  frmPersonReportDisplay.Execute ;
end;

procedure TmyMainForm1.N5Click(Sender: TObject);
begin
    if not Assigned(frmTableDetail) then
      frmTableDetail := TfrmTableDetail.Create(nil);
    ShowColor(frmTableDetail);
    frmTableDetail.Show;
end;


//将待显示数据保存到FList列表中,并调用函数进行显示
function TmyMainForm1.LoadSelectToShowBuffer: boolean;
var
  i:Integer;
begin
  Result := false;
  If FList.Count>0 then//在载入数据前清空FLIST
    ClearList(FList);
  for i:=0 to 10002 do
  begin
    {
      //数组列显示顺序参考
      0    BID		          人孔所在局ID
      1    BNAME            人孔所在局ID(关联成局名称)
      2    CODEID            CODE ID
      3    RTUNAME          RTU 名称(关联成RTU名称)
      4    LINEID           所在RTU路号
      5    LOCKID           人孔锁编号
      6    WELLID	          人孔编号
      7    WELLNAME         人孔名称

      8    holeId          管孔编号
      9    lidId           外盖编号
      10   BoxId           交接箱编号
      11   BoxAdd           交接箱地址
      12   Trid               交接箱端子
      13   c3               外盖状态历时
    }
    new(showDataBuffer);
    if (i mod 10)=0 then
       ShowDataBuffer[0] := '0'; //第一个值是专门为状态图标显示用的,用于保存状态序号
    if (i mod 10)=1 then
       ShowDataBuffer[0] := '1'; //第一个值是专门为状态图标显示用的,用于保存状态序号

⌨️ 快捷键说明

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