我有一個Informix 4GL生成的報告打印到屏幕上。 我需要有一列以反向格式顯示。 我試過以下內容:Informix 4GL報告到屏幕 - 反向
print line_image attribute(reverse)
但這並不奏效。這可能嗎?
我有一個Informix 4GL生成的報告打印到屏幕上。 我需要有一列以反向格式顯示。 我試過以下內容:Informix 4GL報告到屏幕 - 反向
print line_image attribute(reverse)
但這並不奏效。這可能嗎?
添加到前面的回答,您可以嘗試以下
print "\033[7mHello \033[0mWorld"
\ 033 [7米意味着反向打印。而且,\ 033 [0m意味着回到標準。
如果你的意思是「有沒有辦法做到這一點」,答案是「是」。如果你的意思是「有一個很好的簡單內置的方式來做到這一點」,答案是「不」。
什麼你需要做的是:
brv
(開始倒車視頻;如果你選擇你自己的名字不喜歡我的)。erv
(結束反向視頻)中。安排您的打印使用:
PRINT COLUMN 1, first_lot_of_data,
COLUMN 37, brv, reverse_data,
COLUMN 52, erv,
COLUMN 56, next_lot_of_data
有很可能會切換需要3個或4個字符。這些字符將由報告中的列計數代碼計算。
不同的終端類型將具有不同的序列。現在,您可能沒有處理80年代中期流行的大量實際綠屏終端,因此您可以將您的發現硬編碼爲brv
和erv
字符串。 OTOH,你可能不得不做一些奇特的步法來在運行時爲不同的終端找到正確的序列。如果您需要更多關於此的信息,請留言。
這可能讓你發現相關序列的簡單方法是運行一個程序,如(這還沒有任何接近的I4GL編譯器 - 有在它可能的語法錯誤):
MAIN
DISPLAY "HI" AT 1,1
DISPLAY "REVERSE" AT 1,4 ATTRIBUTE(REVERSE)
DISPLAY "LO" AT 1, 12
SLEEP 2
END MAIN
編譯爲terminfo.4ge
和運行:
./terminfo.4ge # So you know what the screen looks like
./terminfo.4ge > out.file
有不會使用的顯示屬性的機會。你會發現,如果你運行cat out.file
而沒有看到反向閃光燈,那麼我們必須更加努力地工作。
您還可以查看termcap
文件或terminfo
條目中的終端條目。使用infocmp $TERM
(在環境變量中設置正確的終端類型)並查找smso
(輸入突出模式)和rmso
(退出突出模式)功能。解密那些(我的rmso=\E[27m
和smso=\E[7m
爲xterm-256color
終端; \E
爲ASCII ESC或\033
),並在brv
和erv
字符串中使用它們。請注意,rmso
長度爲5個字符。