我有一些报告项目在有条件隐藏时更改其他项目的位置时遇到问题.
我一直在使用Reporting Services 2000将项目价格标签打印为PDF,报告由一个表组成,每个项目包含一个单元格.标签上的数据字段和其他项都放在一个矩形内.由于需要非常特定的布局,设计器中的某些报表项会重叠,以便在呈现的PDF上正确定位.
这已经好几年了,直到我们升级到SSRS 2008并且我不得不将报告迁移到新版本.
现在,突然间,当报表上的某些项目被隐藏时(通过隐藏属性中的表达式),某些其他项目会改变其位置.在某些情况下,甚至包含的矩形也会调整大小.
经过相当多的谷歌搜索,我发现SSRS 2008试图保持报告项目之间的相对间距,以便如果另一个项目左侧的项目大小发生变化,则右侧项目会相应调整.
显然,隐藏项目等于将其大小更改为零,因此它旁边的项目向左移动以填补空白.
但是,我不希望出现这种情况,因为所有项目都应该保留在预定义的位置,而不管其他项目.
那么,有没有人知道一种"修复"报告项目位置的方法,这样他们就不会受到隐藏其他项目的影响?
我已经尝试将这些项目放在单独的矩形中以便对它们进行分组,希望只有同一个矩形内的项目可以相互影响,但这似乎没有帮助.
任何想法将不胜感激.
我即将开始我的第一个PHP项目 - 为一个小型非营利组织建立一个新网站.来自.Net和Java背景,面向对象编程对我来说非常自然,但我不确定它是否适合在PHP中建立一个中等复杂度的网站.我的理解是,大多数基于PHP的站点主要使用非OO代码编写.
对于一个Web 应用程序,我肯定会走OO路线,但对于一个相当简单的网站,我不太确定.该网站将包含大约五个部分,每个部分有一到四个内容页面,包含文章,新闻,图片库和一些表格.没有涉及复杂的交互(除了一些非常简单的Web表单,用于编写文章,注释,注册等),并且不需要维护状态(登录除外).MySQL将用于数据存储.
代码实际上并不需要特别可扩展 - 这不是我们正在讨论的企业网站或模板引擎 - 但重要的是代码对于具有相当数量的程序员来说相当容易理解PHP经验.我猜大多数PHP程序员都不习惯OO代码,所以也许这是支持程序代码的一点?
支持OO的一个方面是在数据库级别中将存在不同类型的文章,这些文章基于包含大多数属性的超类型,当然这些文章非常自然地转换为OO代码.
也许某种混合方法最好,使用对象来表示"业务对象"等,但使用传统的过程代码呈现HTML等?
评论非常感谢.--Rolf
我在单独的.pem文件中有公钥和私钥,我需要以某种方式进入JKS密钥库.
为此尝试在KeyTool中使用-import命令,这会产生"非X.509证书"错误.
我猜这个解决方案与OpenSSL有关,但我不完全确定如何处理它.
真的很感激任何帮助,因为我对所有与加密有关的东西都完全无能为力.
在此先感谢, - 罗尔夫
首先,抱歉发布一些可能有点过于具体的内容,但我对Swing不是很有经验,似乎无法找到符合我需求的好例子.
所以我试图找出实现动态GUI的最佳方法,以便在Swing中选择过滤条件:

底层模型是一个类,其中包含可以否定的标准列表(即应用NOT前缀),以及指示这些标准是否应与AND或OR组合的属性.
GUI将允许用户添加,更改或删除标准,并选择组合运算符(和/或).第一个标准自然没有组合选择器,第三个和后续标准将简单地使用与第二个标准相同的组合运算符.
右侧的X按钮将用于删除标准.按下"添加"按钮后,将在底部添加一个新的组件行.随着更改,这些将反映在基础模型中.
当然,我可以通过简单地将组件添加到JPanel然后相应地更新模型来实现"原始",但我更喜欢更简洁的解决方案,例如TableModel提供的解决方案.
所以我想知道一个带有自定义TableModel和TableCellRenderer/Editor的表是否是最好的方法,或者是否有更好的方法来实现这样的东西.如果table确实是最好的方法,我会很感激指出如何使用TableCellRenderers或-Editors来实现这一目标.
提前致谢.
有人碰巧知道Google日历是否在订阅安全的https地址上提供的iCalendar供稿时遇到了一些问题?
我正在开发一个运行在https-address上的网站,该网站有一个用户可以订阅的iCalendar订阅源.在Outlook和iCal中,Feed可以正常工作,但在Google日历中则不行.当用户尝试订阅源时,他们会收到错误消息"无法获取URL".
我怀疑Feed或生成的iCalendar数据有问题,所以我运行了通过一些验证器生成的.ics文件,它们没问题.为了排除Feed本身的错误,我将生成的.ics文件放在服务器上,以查看静态文件是否有效,以及Google日历中的失败.然后我把文件放在一个完全不同的服务器后面的非安全(http)网址,这是有效的!
所以我开始怀疑httpS是个问题.服务器的证书有效,因此不会造成任何麻烦.此外,验证器可以访问feed(和静态文件)就好了.
此谷歌小组讨论表明其他人也有类似的怀疑:http://productforums.google.com/forum/#!topic/calendar/61-eUd-fyrg
问题是,该网站必须通过https运行,所以我不能只是切换到http来使Feed工作.
因此,如果任何人有任何确认或与我的理论相矛盾的信息,或任何其他可能导致这些问题的想法,我将不胜感激.
我需要使用Apache FOP从XML数据生成PDF.问题是FOP不支持fo:float,我真的需要在PDF中并排放置项目(渲染数据框).更确切地说,我需要在每页的4x4网格中使用它们,如下所示:

在HTML中,我只是将它们渲染为具有适当宽度和高度的左浮动div.
我的数据看起来像这样:
<item id="1">
<a>foo</a>
<b>bar</b>
<c>baz</c>
</item>
<item id="2">...</item>
...
<item id="n">...</item>
Run Code Online (Sandbox Code Playgroud)
我考虑过使用两列区域体,但是项目的顺序是1,3,2,4(从左到右阅读),因为它们将被渲染为tb-lr而不是lr-tb,我需要它们的顺序正确(上面的xml中的id).
我想我可以尝试使用表格,但我不太确定如何将项目分组到表格行中.
因此,缺乏fo:float的某种解决方法将非常受欢迎.
我无法确定如何为以下实体正确设置JPA持久性(使用EclipseLink和transaction-type ="RESOURCE_LOCAL"):
@Entity
public class User {
// snip various members
@ManyToMany
private List<Company> companies;
public void setCompanies(List<Company> companies) {
this.companies = companies;
}
}
@Entity
public class Company {
// snip various members
}
Run Code Online (Sandbox Code Playgroud)
我要做的是为公司列表设置一个级联,这样,如果一个以前没有保留过的新公司在列表中,它将自动与用户一起保存:
User newUser = new User();
Company newCompany = new Company();
List<Company> companies = new ArrayList<Company>();
companies.add(newCompany);
newUser.setCompanies(companies);
entityManager.persist(newUser);
Run Code Online (Sandbox Code Playgroud)
通过在@ManyToMany上设置cascadeType.PERSIST,这很好用.但是,如果公司列表中包含一个预先保留的公司,我会收到MySQLIntegrityConstraintViolationException,因为它试图使用相同的主键持久化(INSERT)一个新的公司:
User newUser = new User();
Company oldCompany = companyDAO.find(oldCompanyId);
List<Company> companies = new ArrayList<Company>();
companies.add(oldCompany);
newUser.setCompanies(companies);
entityManager.persist(newUser);
Run Code Online (Sandbox Code Playgroud)
那么应该如何设置以便新公司自动保留,但现有公司只是添加到用户公司映射中?
我有一个 XSLT 样式表,可将 XML 数据转换为 XSL-FO(然后使用 Apache FOP 将其呈现为 PDF)。
现在,我需要将输出本地化为几种不同的语言。例如,XSLT 生成的表的列标题需要本地化。下面是生成带有列标题“Date”、“Name”和“Something”的表标题的 XSLT 的简化片段:
...
<fo:table>
<fo:table-header>
<fo:table-row>
<fo:table-cell>
<fo:block>Date</fo:block>
</fo:table-cell>
<fo:table-cell>
<fo:block>Name</fo:block>
</fo:table-cell>
<fo:table-cell>
</fo:block>Something</fo:block>
</fo:table-cell>
</fo:table-row>
</fo:table-header>
</fo:table-body>
<xsl:apply-templates select="item"/>
</fo:table-body>
</fo:table>
...
Run Code Online (Sandbox Code Playgroud)
我们已经在系统的其他部分使用TMX文件进行国际化,因此这似乎是一种自然的方法。下面是一个 TMX 文件的简化示例,其中包含两个语言的几个字符串:
<tmx version="1.4b">
<body>
<tu tuid="DATE">
<tuv xml:lang="en"><seg>Date</seg></tuv>
<tuv xml:lang="sv"><seg>Datum</seg></tuv>
</tu>
<tu tuid="NAME">
<tuv xml:lang="en"><seg>Name</seg></tuv>
<tuv xml:lang="sv"><seg>Namn</seg></tuv>
</tu>
</body>
</tmx>
Run Code Online (Sandbox Code Playgroud)
因此,基本上我想用 TMX 文件中的字符串引用(使用tuid属性)替换 XSLT 中的硬编码列标题,以便相同的 XSLT 可以生成不同语言的输出。
但我似乎找不到任何有关如何将 TMX 文件与 XSLT 结合使用的资源。示例或指向一些好的教程的指针将不胜感激。
java ×2
xsl-fo ×2
apache-fop ×1
certificate ×1
cryptography ×1
eclipselink ×1
https ×1
icalendar ×1
jpa ×1
keystore ×1
localization ×1
many-to-many ×1
oop ×1
persistence ×1
php ×1
private-key ×1
public-key ×1
swing ×1
tablemodel ×1
tabular ×1
tmx ×1
xslt ×1