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

时间:2019-04-17 12:43:29

标签: character-encoding openedge progress-4gl

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

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

设置我

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

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

我们还使用了以下启动参数:

-cpinternal IBM857

结果是:

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

设置II

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

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

我们还使用了以下启动参数:

-cprcodein 1254 -cpinternal IBM857

结果是:

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

设置III

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

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

我们还使用了以下启动参数:

-cprcodein 1254

结果是:

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

设置IV

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

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

,结果是:     

结果,

我们要产生如下输出:

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

4 个答案:

答案 0 :(得分:1)

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

您可以尝试设置-cpterm,但是我相信这仅适用于字符终端输出(_progres.exe),因此它可能对Windows GUI(_prowin.exe)程序无济于事。

另一个可能性是-cpstream,并使用stream-io定义显示帧。

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

答案 1 :(得分:0)

为了创建进度条或条形图,我建议使用矩形。 您可以动态创建它们,动态设置它们的外观,位置和大小等。 您还可以创建垂直条,而垂直条不能通过填充获得。 参见CREATE RECTANGLE hRectangle ASSIGN ...

过去,我使用加粗字体(例如, ||||||||)使用加粗字体对管道(不需要查找任何奇怪的字符)进行进度条处理。 ||||

答案 2 :(得分:0)

如果仅需要显示这些字符,则可以通过将数据库和-cprcodein保留为当前值,并将-cpinternal设置为UTF-8来获得。 该应用程序可能需要进行一些返工,具体取决于其编写方式。

答案 3 :(得分:0)

由于无法使用-cpinternal,-cprcodein等显示dos字符,因此,我创建了一种新字体,并将特定字段(即`| ^)的一些未使用字符更改为其他字符█的厚度,以用于不同的情况。this is the result