问题列表 - 第21553页

处理频繁变化的数据表单的选项

有哪些可能的设计可以处理频繁变化的数据表单?

我有一个基本的CRUD Web应用程序,主要数据输入表单每年都会更改.因此,每条记录都应该与表单的特定版本绑定.这个要求是新的,所以现有的应用程序并没有考虑到这一点.

我正在寻找不同的处理方式,希望避免未来的技术债务.以下是我提出的一些选项:

  • 为每个版本创建一个新对象,UI和一组表.这显然是最天真的方法.
  • 继续将所有字段添加到同一对象和数据库表中,但根据表单版本显示/隐藏它们.经过一些改变后,这将变得一团糟.
  • 构建表单定义,然后动态构建UI并将数据存储为某些字典格式(例如JSON/XML或可能是面向文档的数据库)我认为这对于此应用程序的范围来说太复杂了,尤其是对于UI .

还有哪些其他可能性?有没有人有这方面的经验?我正在寻找一些设计模式来帮助处理复杂性.

forms crud

7
推荐指数
1
解决办法
223
查看次数

C++:获取不正确的文件大小

我正在使用Linux和C++.我有一个大小为210732字节的二进制文件,但使用seekg/tellg报告的大小为210728.

我从ls-la获得以下信息,即210732字节:

-rw-rw-r-- 1 pjs pjs 210732 Feb 17 10:25 output.osr

并使用以下代码片段,我得到210728:

std::ifstream handle;
handle.open("output.osr", std::ios::binary | std::ios::in);
handle.seekg(0, std::ios::end);
std::cout << "file size:" << static_cast<unsigned int>(handle.tellg()) << std::endl;
Run Code Online (Sandbox Code Playgroud)

所以我的代码关闭了4个字节.我已使用十六进制编辑器确认文件的大小是正确的.那么为什么我没有得到正确的尺寸?

我的回答:我认为这个问题是由于文件中有多个开放的fstream引起的.至少那似乎已经为我解决了.感谢所有帮助过的人.

c++ linux

10
推荐指数
2
解决办法
4351
查看次数

android中的MapActivity类?

当我扩展MapActivity类时,它显示错误.

错误是:无法解析数据类型.为什么?

如何在我的项目中添加maps.jar?

谢谢.

android android-emulator

4
推荐指数
1
解决办法
1万
查看次数

你可以在ant Task.init()方法中做什么?

我正在开发一些所有需要初始化相同对象的自定义ant任务.我想在init()方法中从Task扩展的公共超类中初始化这些对象.但是我从ant任务的生命周期中看到,在设置任务子元素和属性之前调用init().因此,如果我正确读取,初始化这些对象所需的所有数据在init()期间都不可用.

那么,为什么在这一点调用init()?你甚至知道你可以在init()中使用什么?它可以用于什么?

(还有一些其他方法可以依赖于在execute()之前调用,但在我的数据可用之后?)

java ant

5
推荐指数
1
解决办法
874
查看次数

使用.NET字符串格式,如何格式化字符串以显示空(空字符串)为零(0)?

我在ASP.NET Datagrid中使用DataBinder.Eval表达式,但我认为这个问题一般适用于.NET中的String格式.客户已请求如果字符串的值为0,则不应显示该字符串.我有以下黑客来完成这个:

<%# IIf(DataBinder.Eval(Container.DataItem, "MSDWhole").Trim = "0", "", 
    DataBinder.Eval(Container.DataItem, "MSDWhole", "{0:N0}"))  %>
Run Code Online (Sandbox Code Playgroud)

我想更改{0:N0}格式表达式,以便我可以消除IIf语句,但找不到任何有效的.

.net formatting string.format string-formatting

6
推荐指数
1
解决办法
4703
查看次数

strcmp for python或如何在构建后缀数组时有效地对子字符串进行排序(无需复制)

这是从python中的字符串构建后缀数组的一种非常简单的方法:

def sort_offsets(a, b):
    return cmp(content[a:], content[b:])

content = "foobar baz foo"
suffix_array.sort(cmp=sort_offsets)
print suffix_array
[6, 10, 4, 8, 3, 7, 11, 0, 13, 2, 12, 1, 5, 9]
Run Code Online (Sandbox Code Playgroud)

但是,"content [a:]"会制作内容的副本,当内容变大时,内容会变得非常低效.所以我想知道是否有办法比较两个子串而不必复制它们.我试过使用buffer-builtin,但它没有用.

python sorting string suffix-array

10
推荐指数
2
解决办法
9866
查看次数

有多少div标签太多了?

在影响性能之前,一个HTML文档中需要多少个div标签?在这种情况下,标签不是嵌套的,并且每个标签内的内容都是最小的(背景颜色/图像).

这个问题是对前一个问题的后续跟进; 使用JavaScript绘制带有可点击点的线条

在这里,我决定使用HTML和CSS来做这件事.

<div>标签将具有至少4个像素的宽度,和400-800个像素,从而100-200 div标签的总宽度.

最重要的是,这些图表/时间线中将有五个或六个堆叠在一起.然后div标签的数量在500-1200之间.

再说一次,承认每个内容很少,这对性能有何影响?

_L

html performance xhtml

3
推荐指数
1
解决办法
5337
查看次数

如何在Java中将ScrollPane添加到面板?

我想JPanel在运行时添加垂直堆叠的不同按钮,并使用一个JScrollPane按钮以便所有按钮都可见(通过一些滚动).

为了做到这一点,我已将我添加JPanel到a JScrollPane,然后我将按钮添加到我的JPanel.

但是,当我这样做时,垂直滚动条不允许我看到所有图像.例如,当我添加7个按钮时,我只能滚动查看5个完整图像和6个图像中的一半.

为什么我的滚动条不允许我显示所有7个按钮?

java swing

1
推荐指数
1
解决办法
1万
查看次数

正则表达式匹配出现在XML节点内的">","<","&"字符

我正在尝试使用PHP中的PCRE库编写正则表达式.

我需要一个正则表达式匹配&,>以及<任何XML节点的字符串部分中存在的字符,而不是标签声明本身.

输入XML:

<pnode>
  <cnode>This string contains > and < and & chars.</cnode>
</pnode>
Run Code Online (Sandbox Code Playgroud)

我们的想法是搜索并替换这些字符并将它们转换为XML实体等价物.

如果我要将整个XML转换为实体,那么XML将如下所示:

整个XML转换为实体

&lt;pnode&gt;
  &lt;cnode&gt;This string contains &gt; and &lt; and &amp; chars.&lt;/cnode&gt;
&lt;/pnode&gt;
Run Code Online (Sandbox Code Playgroud)

我需要它看起来像这样:

正确的XML

<pnode>
  <cnode>This string contains &gt; and &lt and &amp; chars.</cnode>
</pnode>
Run Code Online (Sandbox Code Playgroud)

我曾尝试使用look-ahaead编写一个正则表达式来匹配这些字符,但我不知道如何使它工作.我的尝试(目前只尝试匹配>符号):

/>(?=[^<]*<)/g
Run Code Online (Sandbox Code Playgroud)

只是为了说清楚我试图解决的XML来自第三方,他们似乎无法修复它的结束,因此我尝试修复它.

php regex xml

10
推荐指数
1
解决办法
2447
查看次数

Ruby相当于C#的'yield'关键字,或者,在没有预先分配内存的情况下创建序列

在C#中,你可以这样做:

public IEnumerable<T> GetItems<T>()
{
    for (int i=0; i<10000000; i++) {
        yield return i;
    }
}
Run Code Online (Sandbox Code Playgroud)

这将返回一个包含1000万个整数的可枚举序列,而无需在该长度的内存中分配集合.

有没有办法在Ruby中做同等的事情?我试图处理的具体例子是将矩形数组展平为要枚举的值序列.返回值不必是Array或者Set,而是某种只能按顺序迭代/枚举的序列,而不是索引.因此,不需要在存储器中同时分配整个序列.在.NET中,这是IEnumerableIEnumerable<T>.

关于Ruby世界中使用的术语的任何澄清都会有所帮助,因为我对.NET术语更熟悉.

编辑

也许我原来的问题还不够清楚 - 我认为yield在C#和Ruby 中具有非常不同含义的事实是造成混淆的原因.

我不想要一个需要我的方法来使用块的解决方案.我想要一个具有实际返回值的解决方案.返回值允许方便地处理序列(过滤,投影,连接,压缩等).

这是一个我可能会如何使用的简单示例get_items:

things = obj.get_items.select { |i| !i.thing.nil? }.map { |i| i.thing }
Run Code Online (Sandbox Code Playgroud)

在C#中,任何返回IEnumerable使用a的方法yield return都会导致编译器在幕后生成满足此行为的有限状态机.我怀疑使用Ruby的延续可以实现类似的东西,但我还没有看到一个例子,我自己也不清楚如何做到这一点.

我确实有可能用它Enumerable来实现这一目标.一个简单的解决方案是我们Array(包括模块Enumerable),但我不想在内存中创建一个包含N个项目的中间集合,只要它们可以懒得提供它们并且完全避免任何内存峰值.

如果这仍然没有意义,那么请考虑上面的代码示例. get_items返回一个枚举,在其select上调用.传递给的select是一个知道如何在需要时提供序列中的下一个项目的实例.重要的是,尚未计算整个项目集.只有当select需要一个项目时它才会要求它,并且潜在的代码get_items将开始行动并提供它.这种懒惰带有链条,这样select只有在map询问它时才从序列中抽取下一个项目.这样,可以一次对一个数据项执行长链操作.实际上,以这种方式构造的代码甚至可以处理无限 …

ruby yield sequences

7
推荐指数
2
解决办法
1198
查看次数