OpenEdge 10.2A - 是否可以在浏览器中显示 Windows 上的 DOS 字符 (Chr(219) █ )?

OpenEdge 10.2A - Is it possible to displaying DOS Characters (Chr(219) █ ) on Windows in a browse?

在我们的某些浏览器中,我们想使用旧的 dos 字符 chr(219) █ 来创建进度条或条形图之类的字段。

我们的代码和数据库使用 codepage-1254。

设置一

我们已尝试将字段值创建为:

myTable.myValue=fill(chr(219,"IBM857","1254"),100).

我们还使用了启动参数:

-cpinternal IBM857

结果是:

ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

设置二

我们已尝试将字段值创建为:

myTable.myValue=fill(chr(219,"IBM857","1254"),100).

我们还使用了启动参数:

-cprcodein 1254 -cpinternal IBM857

结果是:

ÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛÛ

设置三

我们已尝试将字段值创建为:

myTable.myValue=fill(chr(219,"IBM857","1254"),100).

我们还使用了启动参数:

-cprcodein 1254

结果是:

êêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêêê

设置四

我们已尝试将字段值创建为:

myTable.myValue=fill(chr(219,"IBM857"),100).

我们还使用了启动参数:

-cpinternal IBM857

结果是: ›››››››››››››››››››››››>>

设置 V

我们已尝试将字段值创建为:

myTable.myValue=fill(chr(219,"IBM857"),100).

我们还使用了启动参数:

-cprcodein 1254 -cpinternal IBM857

结果是: ›››››››››››››››››››››››>>

设置VI

我们已尝试将字段值创建为:

myTable.myValue=fill(chr(219,"IBM857")),100).

我们还使用了启动参数:

-cprcodein 1254

结果是:

因此,

我们想要产生如下输出:

██████████████████████████████████████

1254 是土耳其语,不包含您要显示的字符。

您可以尝试设置 -cpterm,但我认为这仅适用于字符终端输出 (_progres.exe),因此它可能无法帮助您使用 Windows GUI (_prowin.exe)程序。

另一种可能性是 -cpstream 并使用 stream-io 定义显示框架。

否则我认为您最好的选择是将数据库转换为 UTF-8 并使用该环境中可用的字符。从长远来看,这当然也是一个更强大的解决方案。

为了创建进度条或条形图,我建议使用矩形。 您可以动态创建它们,即时设置它们的外观、位置和大小等。 您还可以创建垂直条,这是您无法通过填充获得的。 请参阅创建矩形 hRectangle ASSIGN...

过去我用管道(不需要找到任何奇怪的字符)来完成进度条,使用粗体,这样结果就不会太糟糕,比如|||| ||||||||

如果这些字符仅用于显示,您可以将数据库和 -cprcodein 保留为它们的当前值并仅将 -cpinternal 设置为 UTF-8。 应用程序可能需要一些返工,具体取决于其编写的清晰程度。

由于我无法使用 -cpinternal、-cprcodein 等显示 dos 字符,作为变通方法,我创建了一种新字体并为特定字段更改了一些未使用的字符(即 ` | ^ )不同厚度的 █ 以用于不同的情况。