如何接收数据?给我一些思路(200分)

  • 主题发起人 主题发起人 jobsxy
  • 开始时间 开始时间
J

jobsxy

Unregistered / Unconfirmed
GUEST, unregistred user!
我打算做一个CGI,客户访问后即显示一张报名表(这些我会做),但现在需要客户能够自己
打印,因为IE本身打印功能太弱,我准备写个ActiveXForm以控制打印,问题是ActivexForm
如何来接受打印内容呢?因为安全考虑, 数据库并没有直接暴露在INTERNET上,也就是说
ActiveX是不能直接访问数据库的。
能否让ActiveX“抓取”网页里的数据呢?或者用什么XML的东东,我对XML不熟悉。
最好给个简单的实例,如打印出“hello world”,谢谢!
 
你可以把内容发送到Excel中打印。
 
>>能否让ActiveX“抓取”网页里的数据呢?
直接重新下载一遍数据最简单,只要得到IE的URL,然后你的ActiveX也从这个URL里取数据
 
to xianjun:ActiveX能否知道数据已经下载完

to youngsum:发送到Excel?如果我能用ActiveX实现“发送”干嘛不直接打印呢?
 
如果是自己下载的话,一切都在你的控制之中
另外,从IE中提取数据也不难,提供了访问的方法的。
在MSDN或Microsoft网站上查查“ObjectFromLresult”
 
我可以从网页代码里提取数据,不过,我如何控制下载的过程呢?比如怎么知道下载已经完成?
 
设置标志位!
 
把一些数据放在IE的控件中,然后用ASP的方式,提取到后台数据库中,
然后从后台数据库中把数据抓取出来
 
一个笨人的笨办法:
在ActiveXForm里向当前IE窗口发送一个组合键CTRL+A (将网页内容全选)
再发送一个 CTRL+C (复制)
然后向ActiveXForm里某文本组件(如MEMO发送CTRL+V进行粘贴,可设MEMO的VISIBLE为FALSE);
一般来讲,报表名数据格式都是相对固定的,然后分析MEMO的LINES,.....

太笨了,别见笑!
 
c037:能不能说详细些,我看不大明白
 
你可以考虑在IE网页中要显示的数据放在文本框中加以显示,
这样就可把文本框中的数据提取出来(用ASP、PHP技术可以实现)
 
我们现在使用用友的华表打印,很OK
 
字符串比较一贴的答案应该是错误的!
if b[pos(a,b)+length(a)] = ',' then
我没法在该贴提交,在此说几句。
上面的算法对以下情况,肯定会出错:

a:='ABC';
b:='AAA,ABC' ;// flase,不正确
b:='AAA,AAABC,xxx' //true ,不正确

我提供一种算法:

function subItem(a:string;b:string):boolean;
var
s:TStrings;
begin
s:=TStringList.Create ;
s.CommaText:=UpperCase(b);
Result:=(s.IndexOf(UpperCase(a))>=0);
s.Free;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
a,b:string;
begin
a:='forname1';
b:='forname1,forname1_a,forname1_b,forname2,forname2_a,forname_b';
if subItem(a,b) then showmessage('In') else showmessage('No');
//// IN
b:='forname1_a,forname1_b,forname2,forname2_a,forname_b';
if subItem(a,b) then showmessage('In') else showmessage('No');
//// NO
end;

 
http://www.delphibbs.com/delphibbs/dispq.asp?lid=1453971
抱歉、抱歉,我那个回答有问题。jsxjd说得对!
 
呵呵,谢谢jsxjd和zw84611两位,两位认真负责的态度令人感动。

 
后退
顶部