[GDC] 基本的概念与操作

在第一个章节提到:Genero FGL中若用到了交谈指令,则必须要有一个客户端来进行画面的处理与呈现。最简单常用的工具就是 GDC(Genero Desktop Client)。怎麽把 GDC 玩得好,玩的巧,会比较重要。

版本与安装

这个段落系以鼎新 TIPTOPGP/T100 系列ERP运用的方案为主

GDC主要必须搭配FGL套件的主版本,所以若您的 FGL 套件为2.2系列的,下载3.2X GDC是无法连结的。查看FGL版本可使用『FGLRUN -V』指令,以下列出系列现行最後更新版号,若非为最後版本,可考虑更新。

  • Genero 2.2系列 最终版本 2.20.06
  • Genero 2.3系列 最终版本 2.32.44
  • Genero 2.4系列 最终版本 2.41.10
  • Genero 2.5系列 最终版本 2.50.39
  • Genero 3.2系列 最终版本 3.20.18 (此版持续更新中)

安装设定

GDC 从 3.X 系列起,安装过程中除路径与授权询问外,最重要的是询问是否授予安装路径的写入权,这是为了符合OS层的规范而设计的,勾选後未来才可让 autoupdate 生效,未勾选时後续仍可启动,但会无法完成 autoupdate (需要手工另外压权限)
https://ithelp.ithome.com.tw/upload/images/20210917/200511696f6hJm927b.png

安装完成後,建议在 Windows端给予『系统管理者』身分执行作业
https://ithelp.ithome.com.tw/upload/images/20210917/20051169WOX59ak5L3.png

系统管理者与前一个『授予写入权』是不同的事情,所以两者不可只挑其一。系统管理者是在运行过程中,若使用新PORT建立连线时不会遭到异常终止,故建议启用

此外我们可对执行参数进行一些修改後在作启动GDC

捷径的执行目标  "gdc.exe" -aD -A 0

参数说明

  1. -aD 开启 a: admin D:Debug 模式,可展开 admin 设定页签与 Debug 操作页签
  2. -A 0 调降安全管理权限。调整为 0 表示允许来自非本身的启动需求,此处不调整时,预设为 2 ,表示必须透过 GDC 本身的 shortcut 捷径系统登入服务器(server)再回来的才视为安全可连线。 )
    T系列会由server端进行作业推送,因此此处必须调降为 0 以增快开启速度
    (GDC的安全分级设置,更详细的可参考 https://4js.com/ask-reuben/ig-90/ )

GDC 在2.50版本前有额外推出 ActiveX 版本,支持 ie 触发下载功能。随着微软正式宣告停止支援 ActiveX,GDC从 3.00起停止发行 ActiveX 版本

讯息传递与渲染

我们将第一篇的 FGLRUN与GDC关系图在做深化一些讲解:
https://ithelp.ithome.com.tw/upload/images/20210916/200511694wYjYhLMhj.png

程序利用FGLRUN 工具执行起来时,就已经会在主机的记忆体中呈现一棵程序树。但因为没有画面档的需求,或是还不需要与用户交谈,这个XML结构 (树) 不会送出。直到执行『交谈指令』才会送出。
(交谈指令为:MENU/INPUT/DISPLAY ARRAY/CONSTRUCT/PROMPT/DIALOG等)

当踩到交谈指令後,即会将此 XML结构送出;之後,再传送『有异动的部分』回到服务器。
(所以,当画面启动当下,传输量会有个小高峰,接下来传输量会降低。)

AUI TREE: 传递用的 Streaming XML

我们可以从 GDC端,透过 Ctrl-滑鼠右键,在执行出来的应用程序空白处点击,就可以把XML结构呈现出来
https://ithelp.ithome.com.tw/upload/images/20210917/20051169lQN1etJoFq.png

透过AUI TREE可以看甚麽?当然是看画面上的结构、元件、甚至是资源档读进来的内容,是否满足原先构想的需求。
举例来说:现在画面上 lbl_gzza001 到底翻译资料读进来是啥?COMBOBOX下拉式选单里面是否已经有选项?等。这些都可以透过从AUITREE的资料来确认想处理的是否已送到GDC。

渲染:Native Randering(原生渲染) 与 Universal Randering(通用渲染)

将 XML 转化为实体的外显视窗、表单、元件的方式,即为渲染的意思。GDC原始透过 QT 的工具协助绘制各种对应於 OS 的视窗及控件(widget),这就是 Native Randering

现今许多桌面应用作业,都想相容於浏览器、或跨移动端执行,且个性化、客制化程度高。传统式的点击操控在浏览器介面早已被多样的控件取代。因此後续将会修改为以 Universal Randering为主,逐步停止对 Native Randering 的支持。

GDC作为一个承载渲染引擎的工具,从GDC 3.00开始,支援 Native 与 Universal 并存。
**於 GDC 4.00板起,取消 Native Randering 的支援 **

两种渲染方式,其实影响的不是程序码(4GL & PER/4FD),而是相对位置。因此,相关程序功能大多不会因为调整渲染方式而发生异动,需要检视的是画面元件,会不会因为相对位置的些微出入,造成排版上阅读不习惯。这是需要花力气在作核对的。

注:因应网路特性:浏览器基底不会支援直接让 Code 透通 OS 的底层,所以同时被关闭的功能还有 frontCALL 部分,此部分调整成因与『渲染引擎』无关,不可混为一谈。

GDC 启动与问题排除

https://ithelp.ithome.com.tw/upload/images/20210917/20051169ipCV2m3Aib.png

启动後若没有调整启动通讯埠,预设为 6400,重复启动GDC (不同版本) 时,会叠加到 6401..之後

若启动 port变更,则主机上 FGL 所需要的环境变数也需要对应修改,如 export FGLSERVER=X.X.X.X:1
:1 指的就是在 6400 + 1 = 6401 (依此类推)

设定

https://ithelp.ithome.com.tw/upload/images/20210917/2005116973T6XTFnCm.png

设定页签上有些功能可作为运用

  • 偏好:可设定字型大小,请特别注意此处影响的是字形的基底,也就是当画面解析度高的时候,才需要作字形的放大,其余状况不需要。另外中文字型,若有设定资源档时,则此处会被应用程序覆盖 (如 T系列产品)
    GDC 3.X系列下方会有『通用呈现』的开关,此开关开启後会改为使用 Universal Randering
  • 进阶:此处有『清除』功能。GDC会将画面的属性写入 windows Registry 档案。从而影响下一次开启。若需要清除这些设定可从此页签进行清除。
  • 连结:主要就是 ping 值的设定,若网路状况不佳时,建议可设定 FGL 参数值的80% (就是要回头看FGL配置啦,要搭配上的)
  • 安全性:启动时的参数 -A X 主要影响此页签的设定
  • 报表:若采用 GRE 进行列印时,可透过此处指定直接送印的印表装置

除错/调试

https://ithelp.ithome.com.tw/upload/images/20210917/20051169tAmDFhuBFX.png
操作遇到问题,最麻烦的就是无法理解用户当下遇到甚麽问题。所以可以透过上述『交纪录档』的方法,请用户作一下操作过程的录制。录制出来的档案提交到 MIS 或开发端,可以利用『重播』功能,观看整个操作纪录。可能是资料缺漏,或是真正遇到问题,都可以从此处看出来。

例如上方曾经提到的 AUI TREE,如果想要理解『如何被异动』,就可以点开立即查看的小视窗。此处会将收到的封包内容完整的呈现过来,此时可以观察到底是缺少设定资料,或是发生异常的段落。
https://ithelp.ithome.com.tw/upload/images/20210917/20051169T4pwPlqCrw.png

** 从 FGL端也可查看,需要使用『export FGLGUIDEBUG=1』启动监测功能,与GDC相互比对

此方法通常可观测到的是网路问题,例如已经触发功能了,但 server没传递过来 (可能防火墙有开,或 roter不通之类的问题)

连线捷径设定

回到第一个页签中,曾经看过捷径的设定。基本上建议可善用此连线设定,只要将 GAS 套件提供的连线 URL 配置过来,透过点击就可以直接开启作业进行操作。省去了透过浏览器启动的动作。
https://ithelp.ithome.com.tw/upload/images/20210917/200511691kW1pJvSwg.png

下一步
https://ithelp.ithome.com.tw/upload/images/20210917/20051169cCSL0BP6et.png

从 GDC 3.20 版本起,该捷径配置还可支援『拖拉方式』,直接拖曳到桌面汇出,或拖拉到 GDC 进行汇入。此举可方便分享操作捷径,对推广系统初期,甚为便利。

GDC可运用的配置项目还有许多,但仍受到 OS 与第三方搭配软件 (如 QT) 的版本牵制,以致於许多设定或异常并没有办法及时修复。期望後续在调整为 Universal Randering 之後,能趋向於即知即改,避免用户作过多的替代方案。


<<:  Day2 - Shioaji套件安装&相关问题

>>:  前端工程师也能开发全端网页:挑战 30 天用 React 加上 Firebase 打造社群网站|Day17 文章留言功能

Progressive Web App NFC 入门实作 (29)

什麽是 Web NFC? NFC (Near Field Communication) 近场通讯是高...

软件开发流程 需求蒐集法1 - 问卷

在 软件开发的用户需求哪里来? 此篇有和大家分享过常见的需求来源,但实际上到底要怎麽进行又是另外一件...

day16 : NATS 、NATS Streaming、JetStream服务应用 on K8S (下)

昨天简略的介绍了今天会布署的NATS,虽然NATS Streaming要被弃用了,不过我还是会介绍一...

Day28-保护鲸鱼人人有责(三)

小结 前两天讲了几个比较重要的 Dockerfile best practice 之後,今天要来说一...

疫情学习用电脑麦克风

为什麽会议,大家听不到我声音,却能听到我的音乐啊~~~~ 设来设去...到底怎麽回事啊... 答案是...