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

📄 u_zdy.pas

📁 c/s系统。 delphi 6+access 运行前先配置数据环境:把db文件夹复制到c:下 要编译请安装第三方控件fastreport2.47 这是我的小小的毕业设计
💻 PAS
字号:
unit u_zdy;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ScktComp, Menus, Grids, DBGrids, ImgList, DB, ADODB,
  ComCtrls;

type

  //自定义一个结构的数据类型
  PMyRecord = ^TMyRecord;
  TMyRecord = record
    ParentNodeID : String; //父节点
    NodeID : String;       //节点代号
    Caption : String;      //标题文字
             //网址
  end;

  Tzdy = class(TForm)
    ClientSocket1: TClientSocket;
    Button1: TButton;
    Button2: TButton;
    Button3: TButton;
    PopupMenu1: TPopupMenu;
    MenuADD: TMenuItem;
    DBGrid1: TDBGrid;
    GroupBox1: TGroupBox;
    Edit1: TEdit;
    Edit2: TEdit;
    Edit3: TEdit;
    Edit4: TEdit;
    Edit5: TEdit;
    Edit6: TEdit;
    Label5: TLabel;
    Label4: TLabel;
    Label3: TLabel;
    Label1: TLabel;
    Label6: TLabel;
    Label2: TLabel;
    Button4: TButton;
    Button5: TButton;
    TreeView1: TTreeView;
    L_ADOConnection1: TADOConnection;
    ImageList1: TImageList;
    StatusBar1: TStatusBar;
    procedure Button1Click(Sender: TObject);
    procedure Button2Click(Sender: TObject);
    procedure Button3Click(Sender: TObject);
    procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
    procedure ClientSocket1Connect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure ClientSocket1Disconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button4Click(Sender: TObject);
    procedure Button5Click(Sender: TObject);
    procedure TreeView1DblClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
     procedure CreateSubNodes(myNode :TTreeNode);
  end;

var
  zdy: Tzdy;
  SEV_RESP_WAIT:boolean;


implementation
  uses u_dm;
{$R *.dfm}

procedure Tzdy.ClientSocket1Read(Sender: TObject;
  Socket: TCustomWinSocket);
begin
   if SEV_RESP_WAIT then
     begin
       //ListBox1.Items.Add('数据已被成功传输到服务器no:'+Socket.ReceiveText);
       StatusBar1.SimpleText:='数据已被成功传输到服务器no:'+Socket.ReceiveText;
       button2.Enabled:=true;
       dm.bxb.Delete;
         SEV_RESP_WAIT:=false;
        
     end;
end;

procedure Tzdy.Button1Click(Sender: TObject);
begin
     with dm.iptable do
         begin
         clientsocket1.Host:=dm.iptable.fieldbyname('ip').asstring
         end;
     ClientSocket1.Active:=true;
     Button1.Enabled:=false;
end;



procedure Tzdy.Button2Click(Sender: TObject);
  var
    adate:TstringList;
begin
    if not dm.bxb.eof
           then
      begin
     adate:=TstringList.Create;
     StatusBar1.SimpleText:='开始传输数据.....';
     //ListBox1.Items.Add('开始传输数据.....');
     dm.bxb.Open;
     dm.bxb.First;
     adate.values['报修系统']:=dm.bxb.FieldByName('报修系统').AsString;
     adate.values['报修部件']:=dm.bxb.FieldByName('报修部件').AsString;
     adate.values['报修位置']:=dm.bxb.FieldByName('报修位置').AsString;
     adate.values['故障特征']:=dm.bxb.fieldbyname('故障特征').AsString;
     adate.values['维修地点']:=dm.bxb.fieldbyname('维修地点').AsString;
     adate.values['车辆号码']:=dm.bxb.fieldbyname('车辆号码').AsString;
     adate.values['报修时间']:=dm.bxb.fieldbyname('报修时间').AsString;
     adate.Values['故障句']:= dm.bxb.fieldbyname('故障句').AsString;

     ClientSocket1.Socket.SendText(adate.text);
     SEV_RESP_WAIT:=true;
      button2.Enabled:=false;
     while SEV_RESP_WAIT do
       Application.ProcessMessages
      end
    else
      showmessage('没有保存的数据可以传输!');
end;

procedure Tzdy.Button3Click(Sender: TObject);
begin
 SEV_RESP_WAIT:=false;
  ClientSocket1.Active:=false;
  Button3.Enabled:=true;
   button2.Enabled:=true;
   StatusBar1.SimpleText:='连接已被中断';
  //ListBox1.Items.Add('连接已被中断');
  Button1.Enabled:=true;
end;

procedure Tzdy.ClientSocket1Connect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
    showmessage('你已经成功连接服务器!');
end;

procedure Tzdy.ClientSocket1Disconnect(Sender: TObject;
  Socket: TCustomWinSocket);
begin
showmessage('服务器已被关闭或者你已中断连接,请停止传输数据!');
end;

procedure Tzdy.FormClose(Sender: TObject; var Action: TCloseAction);
begin
   Edit1.text:='';
   Edit2.text:='';
   Edit3.text:='';
   Edit4.text:='';
   Edit5.text:='';
   Edit6.text:='';
   StatusBar1.SimpleText:='';
  //ListBox1.Items.Clear;
end;

procedure Tzdy.Button4Click(Sender: TObject);
begin
if(edit1.Text<>'')and(edit2.Text<>'')and(edit3.Text<>'')and (edit4.Text<>'')
        and (edit5.Text<>'') then
        begin
dm.bxb.Append;
dm.bxb.FieldByName('报修系统').AsString:=Edit1.text;
dm.bxb.FieldByName('报修部件').AsString:=Edit2.text;
dm.bxb.FieldByName('报修位置').AsString:=Edit3.text;
dm.bxb.FieldByName('故障特征').AsString:=Edit4.text;
dm.bxb.FieldByName('维修地点').AsString:=Edit6.text;
dm.bxb.FieldByName('车辆号码').AsString:=Edit5.text;
dm.bxb.FieldByName('报修时间').AsString:=datetimetostr(now());
dm.bxb.FieldByName('故障句').AsString:= Edit2.text+Edit3.text+ Edit4.text;
dm.bxb.post;
Edit1.text:='';
Edit2.text:='';
Edit3.text:='';
Edit4.text:='';
Edit5.text:='';
Edit6.text:='';
end;
end;

procedure Tzdy.Button5Click(Sender: TObject);
begin
dm.bxb.Delete;
end;

procedure Tzdy.TreeView1DblClick(Sender: TObject);

var
        currentnode: ttreenode;
        begin
             currentnode:=treeview1.selected;

                      if treeview1.selected.level=1  then
                      begin
                          Edit1.Text:=currentnode.Text;
                       end;
                     if treeview1.selected.level=2 then
                      begin
                          Edit2.Text:=currentnode.Text;
                      end;
                    if treeview1.selected.level=3 then
                      begin
                          Edit3.Text:=currentnode.Text;
                      end;
                    if treeview1.selected.level=4 then
                      begin
                          Edit4.Text:=currentnode.Text;
                      end;



end;

procedure Tzdy.FormCreate(Sender: TObject);
var
   //声明指针变量
   MyRecordPointer: PMyRecord;
begin
   //创建指针变量
   New(MyRecordPointer);

   //设置根节点的指针变量内容
   MyRecordPointer.ParentNodeID := '';
   MyRecordPointer.NodeID := 'Root';
   MyRecordPointer.Caption := TreeView1.Items[0].Text;

   TreeView1.Items[0].Data :=  MyRecordPointer;

   //将数据库的数据写到TTreeView对象中
   CreateSubNodes(TreeView1.Items[0]);
end;
procedure Tzdy.CreateSubNodes(myNode :TTreeNode);
var
   //声明指针变量
   MyRecordPointer: PMyRecord;
   tmpDataSet : TADODataSet;
   tmpNode : TTreeNode;
   SQLStr : string;
begin
   //创建DataSet
   tmpDataSet := TADODataSet.Create(nil);

   //组合SQL命令,找出指定节点的所有的子节点
   SQLStr := ' ParentNodeID = ''' + PMyRecord(myNode.Data)^.NodeID + '''';

   //连接数据库
   tmpDataSet.Connection := L_ADOConnection1;
   tmpDataSet.CursorType := ctStatic;
   tmpDataSet.CursorLocation := clUseClient;
   tmpDataSet.CommandText := 'select * from  myTTreeView where ' + SQLStr + ' Order by NodeID ';
   tmpDataSet.Active := True;
   tmpDataSet.First;
   While Not tmpDataSet.Eof do begin
       //创建Model Node
       tmpNode := TreeView1.Items.AddChild(myNode,tmpDataSet.FieldValues['Caption']);

       //设置图片属性
       tmpNode.ImageIndex := tmpNode.Level + 1;
       tmpNode.SelectedIndex := tmpNode.Level + 1;

       //创建指针变量
       New(MyRecordPointer);

       //将相关数据保存到tmpNode
       MyRecordPointer.ParentNodeID := tmpDataSet.FieldValues['ParentNodeID'];
       MyRecordPointer.NodeID := tmpDataSet.FieldValues['NodeID'];
       MyRecordPointer.Caption := tmpDataSet.FieldValues['Caption'];

       tmpNode.Data :=  MyRecordPointer;

       //创建子节点(以递归的方式调用)
       CreateSubNodes(tmpNode);
       tmpDataSet.Next;
   end;

   //关闭与释放DataSet
   tmpDataSet.Active := False;
   tmpDataSet.Free;
end;


end.

⌨️ 快捷键说明

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