正在加载图片...
chinapub. coM ixs Ac Bsmt -t 541 编译组件时,MIDL编译器使用IDL文件创建一个类型库和调度代码 现在已经可以在组件中使用 Response对象了。先添加一个方法来使用它。在前一章中我 们编写了一个ASP程序,它用存储在组件中的数据生成HTML。如果由组件本身产生HTML表 组件会更强大。这一修改使得性能更为优越,并封装了绘制逻辑。 封装具有许多好处。对于生成表,所有绘制代码集中到一个地方,任何ASP页可调用包 含这段代码的组件,并可以运行它。很显然这比在页和页之间拷贝同样的代码或编写新的代 码简单。开发人员可主要关心将像数据存取这样的高层次问题,而不是去寻找遍历数据并在 表中显示的方式。调用一个组件和运行预编译代码比分析一系列复杂的HIML命令快得多 最后需要说明的是即使绘制编码需要有微小的修改,组件也要重新编译。开发组件时应 仔细考虑程序员在生成表时需要设置的参数。用户可修改的特征,如边界尺寸、表格单元的 背景色,可作为参数传给接口方法,而不必进行硬编码。但是如果组件接口改变,使用这个 口的ASP页必须进行修改。 Add Met 还有一点需要说明,必须在 ITableStorage2中增加与 ITableStorage相同的方 法,例如 Parsecs、 GetField和Mww GetColumnName等。详细内容可参阅第17章 在 ITableStorage2中增加一个新方法ars Output Table,按照图18-3所示的对话框进行 配置 OupuT 虽然增加其他表格属性如颜色、单元宽 度等也很简单,但为了说明方便,仅允许改 变边界尺寸。 OutputTable的代码如下: 图18-3增加新方法 STDMETHODIMP CTablestorage2:: OutputTable( short bordersize HRESULT hResult wstring tempstring; tablestring [321 if((m_ bonstartPageCalled = TRUE)&&(mpiResponse ! NULL)) 2r pmte( tablestring, " TABLE border=sd><TR>,bordersize ) mpiResponse->Write( CComvariant( tablestring ) 首先确认 m bOnStart Page Called为TRUE并且,m_ reSponse确实包含一个指针。如果检 查通过,就可以使用 Response对象。 Write方法希望字符串为 variant,在C++中使用 variant.必须指定一种 variant类型。最简单的 方法是将字符串作为字符类型,并用 CCom variant类构造一个 variant。下一步输出表列: the tables headers COLUMN_ INDEX_MAP: iterator mapIter mcolumnIndexMap. begin(); hile mapIter I= m_columnIndexMap. end()) tempstring L<TH>": tempString +=(*mapIter) first cstr()i tempstring + L"</TH> mpiResponse->Write( CComVariant( tempstring. c_str())):第1 8章 对C + +组件的进一步讨论计计541 编译组件时,M I D L编译器使用I D L文件创建一个类型库和调度代码。 现在已经可以在组件中使用 R e s p o n s e对象了。先添加一个方法来使用它。在前一章中我 们编写了一个A S P程序,它用存储在组件中的数据生成H T M L。如果由组件本身产生H T M L表, 组件会更强大。这一修改使得性能更为优越,并封装了绘制逻辑。 封装具有许多好处。对于生成表,所有绘制代码集中到一个地方,任何 A S P页可调用包 含这段代码的组件,并可以运行它。很显然这比在页和页之间拷贝同样的代码或编写新的代 码简单。开发人员可主要关心将像数据存取这样的高层次问题,而不是去寻找遍历数据并在 表中显示的方式。调用一个组件和运行预编译代码比分析一系列复杂的 H T M L命令快得多。 最后需要说明的是即使绘制编码需要有微小的修改,组件也要重新编译。开发组件时应 仔细考虑程序员在生成表时需要设置的参数。用户可修改的特征,如边界尺寸、表格单元的 背景色,可作为参数传给接口方法,而不必进行硬编码。但是如果组件接口改变,使用这个 接口的A S P页必须进行修改。 还 有 一 点 需 要 说 明 , 必 须 在 I Ta b l e S t o r a g e 2中增加与I Ta b l e S t o r a g e相同的方 法 , 例 如 P a r s e C S V 、 G e t F i e l d 和 G e t C o l u m n N a m e等。详细内容可参阅第1 7章。 在I Ta b l e S t o r a g e 2中增加一个新方法 O u t p u t Ta b l e,按照图1 8 - 3所示的对话框进行 配置。 虽然增加其他表格属性如颜色、单元宽 度等也很简单,但为了说明方便,仅允许改 变边界尺寸。O u t p u t Ta b l e的代码如下: 首先确认m _ b O n S t a r t P a g e C a l l e d为T R U E并且,m _ p i R e s p o n s e确实包含一个指针。如果检 查通过,就可以使用R e s p o n s e对象。 Wr i t e方法希望字符串为v a r i a n t,在C + +中使用v a r i a n t必须指定一种v a r i a n t类型。最简单的 方法是将字符串作为字符类型,并用 C C o m Va r i a n t类构造一个v a r i a n t。下一步输出表列: 图18-3 增加新方法 下载
<<向上翻页向下翻页>>
©2008-现在 cucdc.com 高等教育资讯网 版权所有