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

📄 bas_findipdata.pas

📁 这是一个为友人所写的小程序, 实现了分段模糊查询, 网页生成等小功能!
💻 PAS
📖 第 1 页 / 共 3 页
字号:
          + ' <td rowspan="2" align="center" valign="middle">公司名称</td>'
          + ' <td height="21" colspan="3">' + DataQuery.fieldbyname('ChineseName').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="21" colspan="3">' + DataQuery.fieldbyname('EnglishName').AsString
          + '&nbsp;</td> </tr>  <tr>'
          + ' <td height="19" align="center" valign="middle">网址</td>'
          + ' <td colspan="3">' + DataQuery.fieldbyname('WebSite').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="23" align="center" valign="middle">产品服务</td>'
          + ' <td colspan="3">' + DataQuery.fieldbyname('ServiceAndProduct').AsString
          + '&nbsp;</td> </tr> <tr> '
          + ' <td height="22" align="center" valign="middle">电话</td>'
          + ' <td>' + Str4
          + ' &nbsp;</td> <td>EMail</td><td>'
          + DataQuery.fieldbyname('EmailAddress').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="22" align="center" valign="middle">传真</td>'
          + ' <td>' + DataQuery.fieldbyname('FaxNo').AsString
          + '&nbsp;</td> <td>地址</td>'
          + ' <td>' + DataQuery.fieldbyname('Address').AsString
          + '&nbsp;</td>  </tr> </table><br>';
      end;
    end;
    if (SID = 8) then
    begin
      Str3 := DataQuery.fieldbyname('FaxNo').AsString;
      Point1 := MyPos(KeyWord, Str3);
      if (Point1 > 0) then
      begin
        Point2 := Point1 + Length(KeyWord);
        Str4 := '<Font Color=Black>' + Copy(DataQuery.fieldbyname('FaxNo').AsString, 1, Point1 - 1);
        Str4 := Str4 + '</Font><Font Color=Red>' + KeyWord + '</font><Font Color=Black>';
        Str4 := Str4 + Copy(DataQuery.fieldbyname('FaxNo').AsString, Point2, Length(Str3) - 1) + '</Font>';
        Str2 := Str2 + '<table width="600" border="1" border="1" cellspacing="0" cellpadding="1" bordercolordark="#EFEFEF" bordercolorlight="#111111">'
          + ' <tr>'
          + ' <td width="61" height="22" align="center" valign="middle">行业名称</td>'
          + '<td width="226">' + DataQuery.fieldbyname('SortName').AsString + '&nbsp;</td>'
          + '<td width="42">排位</td>'
          + ' <td width="243">' + DataQuery.fieldbyname('OrderID').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td rowspan="2" align="center" valign="middle">公司名称</td>'
          + ' <td height="21" colspan="3">' + DataQuery.fieldbyname('ChineseName').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="21" colspan="3">' + DataQuery.fieldbyname('EnglishName').AsString
          + '&nbsp;</td> </tr>  <tr>'
          + ' <td height="19" align="center" valign="middle">网址</td>'
          + ' <td colspan="3">' + DataQuery.fieldbyname('WebSite').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="23" align="center" valign="middle">产品服务</td>'
          + ' <td colspan="3">' + DataQuery.fieldbyname('ServiceAndProduct').AsString
          + '&nbsp;</td> </tr> <tr> '
          + ' <td height="22" align="center" valign="middle">电话</td>'
          + ' <td>' + DataQuery.fieldbyname('PhoneNo').AsString
          + '&nbsp; </td> <td>EMail</td><td>'
          + DataQuery.fieldbyname('EmailAddress').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="22" align="center" valign="middle">传真</td>'
          + ' <td>' + Str4
          + '&nbsp;</td> <td>地址</td>'
          + ' <td>' + DataQuery.fieldbyname('Address').AsString
          + '&nbsp;</td>  </tr> </table><br>';
      end;
    end;
    if (SID = 9) then
    begin
      Str3 := DataQuery.fieldbyname('EmailAddress').AsString;
      Point1 := MyPos(KeyWord, Str3);
      if (Point1 > 0) then
      begin
        Point2 := Point1 + Length(KeyWord);
        Str4 := '<Font Color=Black>' + Copy(DataQuery.fieldbyname('EmailAddress').AsString, 1, Point1 - 1);
        Str4 := Str4 + '</Font><Font Color=Red>' + KeyWord + '</font><Font Color=Black>';
        Str4 := Str4 + Copy(DataQuery.fieldbyname('EmailAddress').AsString, Point2, Length(Str3) - 1) + '</Font>';
        Str2 := Str2 + '<table width="600" border="1" border="1" cellspacing="0" cellpadding="1" bordercolordark="#EFEFEF" bordercolorlight="#111111">'
          + ' <tr>'
          + ' <td width="61" height="22" align="center" valign="middle">行业名称</td>'
          + '<td width="226">' + DataQuery.fieldbyname('SortName').AsString + '&nbsp;</td>'
          + '<td width="42">排位</td>'
          + ' <td width="243">' + DataQuery.fieldbyname('OrderID').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td rowspan="2" align="center" valign="middle">公司名称</td>'
          + ' <td height="21" colspan="3">' + DataQuery.fieldbyname('ChineseName').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="21" colspan="3">' + DataQuery.fieldbyname('EnglishName').AsString
          + '&nbsp;</td> </tr>  <tr>'
          + ' <td height="19" align="center" valign="middle">网址</td>'
          + ' <td colspan="3">' + DataQuery.fieldbyname('WebSite').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="23" align="center" valign="middle">产品服务</td>'
          + ' <td colspan="3">' + DataQuery.fieldbyname('ServiceAndProduct').AsString
          + '&nbsp;</td> </tr> <tr> '
          + ' <td height="22" align="center" valign="middle">电话</td>'
          + ' <td>' + DataQuery.fieldbyname('PhoneNo').AsString
          + '&nbsp; </td> <td>EMail</td><td>'
          + DataQuery.fieldbyname('EmailAddress').AsString
          + '&nbsp;</td> </tr> <tr>'
          + ' <td height="22" align="center" valign="middle">传真</td>'
          + ' <td>' + DataQuery.fieldbyname('FaxNo').AsString
          + '&nbsp;</td> <td>地址</td>'
          + ' <td>' + DataQuery.fieldbyname('Address').AsString
          + '&nbsp;</td>  </tr> </table><br>';
      end;
    end;
    DataQuery.Next;
  end;
  DataQuery.EnableControls;
  DataQuery.First;
  Str5 := '</body> </html>';
  Memo1.Lines.Add(Str1 + Str2 + Str5);
  Memo1.Lines.SaveToFile('Result.htm');
  ShellExecute(handle, 'open', PChar(SysUtils.ExtractFilePath(Application.ExeName) + '\Result.htm'), nil, nil, sw_shownormal);
end;

procedure TBas_FindIPDataForm.ReadRec(RecID: string);
var
  SQL_Str : string;
begin
  if (RecID <> '') then
  begin
    SQL_Str := 'Select * From  Bas_IPRecord Where (ID=' + RecID + ')';
    WorkQuery.Active := False;
    WorkQuery.SQL.Clear;
    WorkQuery.SQL.Add(SQL_Str);
    WorkQuery.Open;
    if (WorkQuery.RecordCount > 0) then
    begin
      Label12.Caption := RecID;
      Edit1.Text := WorkQuery.fieldbyname('SortName').AsString;
      Edit2.Text := WorkQuery.fieldbyname('EnglishName').AsString;
      Edit3.Text := WorkQuery.fieldbyname('ChineseName').AsString;
      Edit4.Text := WorkQuery.fieldbyname('WebSite').AsString;
      Edit5.Text := WorkQuery.fieldbyname('ServiceAndProduct').AsString;
      Edit6.Text := WorkQuery.fieldbyname('PhoneNo').AsString;
      Edit7.Text := WorkQuery.fieldbyname('FaxNo').AsString;
      Edit8.Text := WorkQuery.fieldbyname('EMailAddress').AsString;
      Edit9.Text := WorkQuery.fieldbyname('Address').AsString;
      Edit10.Text := WorkQuery.fieldbyname('OrderID').AsString;
    end;
  end;
end;

procedure TBas_FindIPDataForm.DBGridEh1DblClick(Sender: TObject);
begin
  if (DataQuery.RecordCount <= 0) then
  begin
    ShowMessage('没有可以查看的记录, 请先查询出记录再进行查询!');
  end
  else
  begin
    Self.ReadRec(DataQuery.fieldbyname('ID').AsString);
  end;
end;

function TBas_FindIPDataForm.MyPos(SubStr, Str: string): Integer;
begin
  Result := Pos(LowerCase(SubStr), Str);
  if Result = 0 then
    Result := Pos(UpperCase(SubStr), Str);
end;

procedure TBas_FindIPDataForm.DataQueryAfterOpen(DataSet: TDataSet);
begin
  Label11.Caption := '总共有: ' + inttostr(DataQuery.RecordCount) + ' 条记录';
end;

procedure TBas_FindIPDataForm.RzToolButton1Click(Sender: TObject);
begin
  if (DataQuery.RecordCount > 0) then
  begin
    if (Application.MessageBox('真的要删除选中的记录吗?', '系统提示', MB_YESNO + MB_ICONWARNING) = 6) then
    begin
      DataQuery.Edit;
      DataQuery.Delete;
      DataQuery.Active := False;
      DataQuery.Active := True;
    end
    else
    begin
      Abort;
    end;
  end
  else
  begin
    ShowMessage('没有可以删除的记录, 请重新选择!');
  end;
end;

procedure TBas_FindIPDataForm.GetCon(Sort, Strs: string);
var
  Str3    : string;
  Str1    : string;
  I, J    : Word;
  Point0  : Word;
  Point1  : Word;
begin
  Str3 := Strs + ' ';
  Str3 := StringReplace(Str3, '    ', ' ', [rfReplaceAll, rfIgnoreCase]);
  Str3 := StringReplace(Str3, '   ', ' ', [rfReplaceAll, rfIgnoreCase]);
  Str3 := StringReplace(Str3, '  ', ' ', [rfReplaceAll, rfIgnoreCase]);
  Point0 := 1;
  Constr := '';
  I := SearchChar(Str3, ' ') + 1;
  for J := 1 to I do
  begin
    Point1 := Pos(' ', Str3);
    Str1 := Copy(Str3, Point0, Point1);
    Str3 := StringReplace(Str3, Str1, '', []);
    Str1 := StringReplace(Str1, ' ', '', []);
    if (Str1 <> '') then
    begin
      Constr := Constr + ' AND (' + Sort + ' Like ' + #39 + '%' + Str1 + '%' + #39 + ')';
    end;
  end;

end;

procedure TBas_FindIPDataForm.RichEdit1MouseDown(Sender: TObject;
  Button: TMouseButton; Shift: TShiftState; X, Y: Integer);
begin
  if (RichEdit1.SelText <> '') then
  begin
    ShowMessage(RichEdit1.SelText);
  end;
end;

procedure TBas_FindIPDataForm.RzToolButton2Click(Sender: TObject);
begin
  if (DataQuery.RecordCount <= 0) then
  begin
    ShowMessage('没有网址信息可以查看,请设置好条件然后再进行查看!');
  end
  else
  begin
    if (SortNameKey <> '') then
    begin
      Self.BuilderNote(1, SortNameKey);
    end;
    if (CNameKey <> '') then
    begin
      Self.BuilderNote(2, CNameKey);
    end;
    if (ENameKey <> '') then
    begin
      Self.BuilderNote(3, ENameKey);
    end;
    if (WebsiteKey <> '') then
    begin
      Self.BuilderNote(4, WebsiteKey);
    end;
    if (PSKey <> '') then
    begin
      Self.BuilderNote(5, PSKey);
    end;
    if (AddressKey <> '') then
    begin
      Self.BuilderNote(6, AddressKey);
    end;
    if (PhoneKey <> '') then
    begin
      Self.BuilderNote(7, PhoneKey);
    end;
    if (FaxKey <> '') then
    begin
      Self.BuilderNote(8, FaxKey);
    end;
    if (EmailKey <> '') then
    begin
      Self.BuilderNote(9, EmailKey);
    end;
  end;
end;

procedure TBas_FindIPDataForm.BuilderNote(SID: Integer; KeyWord: string);
var
  Str3    : string;
  Str1    : string;
  I, J    : Word;
  Point0  : Word;
  Point1  : Word;
begin
  RichEdit1.Clear;
  DataQuery.First;
  DataQuery.DisableControls;
  RichEdit1.Lines.Add('总的记录数量: ' + inttostr(DataQuery.RecordCount));
  RichEdit1.Lines.Add('================================================================');
  while DataQuery.Eof = False do
  begin
    RichEdit1.Lines.Add('行业名称: ' + DataQuery.fieldbyname('SortName').AsString + '     排位: ' + DataQuery.fieldbyname('OrderID').AsString);
    RichEdit1.Lines.Add('企业名称(中文名称): ' + DataQuery.fieldbyname('ChineseName').AsString);
    RichEdit1.Lines.Add('企业名称(英文名称): ' + DataQuery.fieldbyname('EnglishName').AsString);
    RichEdit1.Lines.Add('网址: ' + DataQuery.fieldbyname('WebSite').AsString);
    RichEdit1.Lines.Add('产品服务: ' + DataQuery.fieldbyname('ServiceAndProduct').AsString);
    RichEdit1.Lines.Add('电话: ' + DataQuery.fieldbyname('PhoneNo').AsString);
    RichEdit1.Lines.Add('传真: ' + DataQuery.fieldbyname('FaxNo').AsString);
    RichEdit1.Lines.Add('电邮: ' + DataQuery.fieldbyname('EMailAddress').AsString);
    RichEdit1.Lines.Add('地址: ' + DataQuery.fieldbyname('Address').AsString);
    RichEdit1.Lines.Add('------------------------------------------------------------------');
    DataQuery.Next;
  end;
  DataQuery.First;
  DataQuery.EnableControls;
  RichEdit1.SelLength := 0;
  RichEdit1.SelStart := 0; // here we go
  RichEdit1.Perform(EM_SCROLLCARET, 0, 0); // ensure viewport is right
  TabSheet2.Show;
  Str3 := KeyWord + ' ';
  Str3 := StringReplace(Str3, '    ', ' ', [rfReplaceAll, rfIgnoreCase]);
  Str3 := StringReplace(Str3, '   ', ' ', [rfReplaceAll, rfIgnoreCase]);
  Str3 := StringReplace(Str3, '  ', ' ', [rfReplaceAll, rfIgnoreCase]);
  Point0 := 1;
  Constr := '';
  I := SearchChar(Str3, ' ') + 1;
  for J := 1 to I do
  begin
    Point1 := Pos(' ', Str3);
    Str1 := Copy(Str3, Point0, Point1);
    Str3 := StringReplace(Str3, Str1, '', []);
    Str1 := StringReplace(Str1, ' ', '', []);
    if (Str1 <> '') then
    begin
      MarkKeyword(Str1);
    end;
  end;
end;

procedure TBas_FindIPDataForm.MarkKeyword(KStr: string);
var
  Found   : Longint;
  startpos, Toend: Integer;
begin
  with RichEdit1 do
  begin
    if SelLength <> 0 then
      startpos := SelStart + SelLength
    else
      startpos := 0;
    Toend := Length(Text) - startpos;
    Found := 0;
    while Found <> -1 do
    begin
      Found := FindText(KStr, startpos, Toend, []);
      if Found <> -1 then
      begin
        SetFocus;
        SelStart := Found;
        SelLength := Length(KStr);
        RichEdit1.SelAttributes.Color := clred;
        SelLength := 0;
        startpos := Found + 1;
      end;
    end;
  end;
end;

procedure TBas_FindIPDataForm.N1Click(Sender: TObject);
begin
  if (RichEdit1.SelText <> '') then
  begin
    DataQuery.Locate('SortName', RichEdit1.SelText, [loPartialKey]);
    Self.ReadRec(DataQuery.fieldbyname('序号').AsString);
    TabSheet1.Show;
  end;
end;

procedure TBas_FindIPDataForm.N2Click(Sender: TObject);
begin
  if (RichEdit1.SelText <> '') then
  begin
    DataQuery.Locate('ChineseName', RichEdit1.SelText, [loPartialKey]);
    Self.ReadRec(DataQuery.fieldbyname('ID').AsString);
    TabSheet1.Show;
  end;
end;

procedure TBas_FindIPDataForm.N3Click(Sender: TObject);
begin
  if (RichEdit1.SelText <> '') then
  begin
    DataQuery.Locate('EnglishName', RichEdit1.SelText, [loPartialKey]);
    Self.ReadRec(DataQuery.fieldbyname('ID').AsString);
    TabSheet1.Show;
  end;
end;

procedure TBas_FindIPDataForm.N4Click(Sender: TObject);
begin
  if (RichEdit1.SelText <> '') then
  begin
    DataQuery.Locate('WebSite', RichEdit1.SelText, [loPartialKey]);
    Self.ReadRec(DataQuery.fieldbyname('ID').AsString);
    TabSheet1.Show;
  end;
end;

procedure TBas_FindIPDataForm.N5Click(Sender: TObject);
begin
  if (RichEdit1.SelText <> '') then
  begin
    DataQuery.Locate('ServiceAndProduct', RichEdit1.SelText, [loPartialKey]);
    Self.ReadRec(DataQuery.fieldbyname('ID').AsString);
    TabSheet1.Show;
  end;
end;

procedure TBas_FindIPDataForm.N6Click(Sender: TObject);
begin
  if (RichEdit1.SelText <> '') then
  begin
    DataQuery.Locate('Address', RichEdit1.SelText, [loPartialKey]);
    Self.ReadRec(DataQuery.fieldbyname('ID').AsString);
    TabSheet1.Show;
  end;
end;

end.

⌨️ 快捷键说明

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