CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  企业开发 >  Lotus

如何使用LOTUSSCRIPT得到视图中每一个列的值

楼主sodeberge(累了,真的累了。)2003-12-04 20:50:28 在 企业开发 / Lotus 提问

如题 问题点数:0、回复次数:6Top

1 楼gjd111686(数字金刚)回复于 2003-12-04 21:28:33 得分 0

要打印是吧!  
  Sub   Initialize  
  Dim   session   As   New   notessession  
  Dim   db   As   notesdatabase  
  Set   db=session.currentdatabase  
   
  Dim   view   As   notesview  
  Set   view=db.getview("PrintView")  
   
  iPageLine=Int(Inputbox("每页行数?"))  
   
  Dim   excelApplication   As   Variant    
  Dim   excelWorkbook   As   Variant    
  Dim   excelSheet   As   Variant    
   
  Set   excelApplication   =   CreateObject("Excel.Application")    
  excelApplication.Visible   =   True  
  Set   excelWorkbook   =   excelApplication.Workbooks.Add    
  Set   excelSheet   =   excelWorkbook.Worksheets("Sheet1")  
   
  REM   输出开始  
  '设置行高  
  excelSheet.Rows.RowHeight=40  
  '完成  
  '垂直居中  
  excelSheet.Rows.VerticalAlignment   =2  
  '完成  
   
   
   
  Dim   navigator   As   notesviewnavigator  
  Dim   entry   As   notesviewentry  
  Set   navigator=view.createviewnav()  
  Set   entry=navigator.getfirst  
   
  i=0  
  Do   While(Not   entry   Is   Nothing)  
  If   i   Mod   iPageLine=0   Then   '10行换页[A4]  
  If   i<>0   Then  
  j=1  
  Forall   columnvalue   In   Entry.columnvalues  
  excelSheet.Cells(i,j)=columnvalue  
  j=j+1  
  End   Forall  
  Set   entry=navigator.getnext(entry)  
  End   If  
  excelSheet.Range(Cstr(i+1)+":"+Cstr(i+1)).Font.Size=18  
  excelSheet.Range(Cstr(i+1)+":"+Cstr(i+1)).Borders.Weight=1  
  excelSheet.Rows(i+1).RowHeight=60  
  excelSheet.Range("A"+Cstr(i+1)+":"+"E"+Cstr(i+1)).Merge(True)   '合并单元格  
  excelSheet.Range("A"+Cstr(i+1)+":"+"E"+Cstr(i+1)).MergeCells=True   '合并单元格  
  excelSheet.Cells(i+1,1)="收文处理登记表"  
  excelSheet.Cells(i+1,1).HorizontalAlignment=3  
  excelSheet.Cells(i+1,1).VerticalAlignment=3  
   
  k=1  
  Forall   m   In   view.columns  
  excelSheet.Cells(i+2,k)=m.title  
  excelSheet.Cells(i+2,k).HorizontalAlignment=3  
  k=k+1  
  End   Forall  
  i=i+3  
  Else  
  j=1  
  Forall   columnvalue   In   Entry.columnvalues  
  excelSheet.Cells(i,j)=columnvalue  
  '设置列宽  
  excelSheet.Columns(j).ColumnWidth=20  
  '完成  
  j=j+1  
  End   Forall  
  Set   entry=navigator.getnext(entry)  
  i=i+1  
  End   If  
  Loop  
  i=i-1  
  If   i   Mod   iPageLine<>0   Then  
  For   k=1   To   iPageLine-(i   Mod   iPageLine)  
  excelSheet.Cells(i+k,1)="   "  
  Next    
  End   If  
   
  REM   输出结束  
   
  excelSheet.UsedRange.Select  
  'excelSheet.UsedRange.EntireColumn.AutoFit  
  excelSheet.UsedRange.WrapText=True  
   
  excelSheet.UsedRange.Borders.Weight=2  
  excelSheet.UsedRange.VerticalAlignment   =   3  
  'excelSheet.UsedRange.HorizontalAlignment=4'水平右对齐  
   
   
  excelWorkbook.PersonalViewPrintSettings=True   '单元格中文本自动换行  
   
  excelWorkbook.PrintPreview  
  REM   excelWorkbook.PrintOut  
   
  excelApplication.quit  
  Set   excelSheet=Nothing  
  End   SubTop

2 楼sodeberge(累了,真的累了。)回复于 2003-12-04 21:51:09 得分 0

能不能简单一点,我只要得到每个列的值!!!Top

3 楼IBM123()回复于 2003-12-05 09:01:13 得分 0

Array=evaluate(|@DbColumn("";"SERVER":"Database.NSF";"ViewName";2)|)  
   
  Top

4 楼rosemerry(珏儿)回复于 2003-12-05 09:57:13 得分 0

楼上的说的对,最后的一个2就是列值了,可以自由进行变换。Top

5 楼IBM123()回复于 2003-12-05 11:15:09 得分 0

公式有数据限制,使用LS吧!  
   
  Sub   Initialize  
  Dim   session   As   New   NotesSession  
  Dim   db   As   NotesDatabase  
  Dim   view   As   NotesView  
  Dim   vc   As   NotesViewEntryCollection  
  Dim   Array()   As   String  
  Set   db   =   session.CurrentDatabase  
  Set   view   =   db.GetView("Viewname")  
  Set   doc   =   view.GetFirstDocument        
   
  Set   vc   =   view.AllEntries  
   
  Redim   Array(1   To   vc.count)  
   
  For   x=1   To   vc.count  
   
  Set   entry   =   vc.GetNthEntry(x)  
   
  array(x)=entry.ColumnValues(2)   '第二列  
   
  Next  
   
   
   
  End   SubTop

6 楼rosemerry(珏儿)回复于 2003-12-05 13:51:18 得分 0

公式是没有限制的,限制是域的限制,对于R5来说域有64K的限制,如果你不是用R5就没有关系。公式比LS好处是他方便,速度快。而LS比公式的好处是他能做到公式所做不到的效果,如果将两种很好的结合,要靠自己的琢磨。Top

相关问题

  • 如何使用CListView类为视图中的表添加行列,紧急!!!!!!!!
  • 如何使用代码获得视图的列的排序属性?
  • CBC如何使用MSSQL7.0的视图
  • 怎样使用视图的GetDocumentByKey
  • 如何在视图中使用splitter?
  • 怎么使用SQL2000的视图?(VB)
  • 视图使用Form Formula的问题
  • 使用临时表的视图问题
  • 新手上路:视图的排列
  • 列表视图控件的用法

关键词

  • view
  • vc
  • db
  • excelsheet
  • ipageline
  • excelworkbook
  • usedrange
  • cstr
  • columnvalues
  • 公式

得分解答快速导航

  • 帖主:sodeberge

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo