如何将负号放到数字的前面
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何将负号放到数字的前面相关的知识,希望对你有一定的参考价值。
各位: ? ? 我们知道SAP是把负数的负号放到数字的后面在报表中,不知有没有什么设置可以,让负号 放到数字的前面去的。请指教!谢谢! best regards Park
一、据我所知还没有什么设置可以把负号提前 二、这个问题你应该放到ABAP板块去 三、编一个函数完成将负号提前。在报表中调用这个函数 FUNCTION CHAR_NUMC_CONVERSION. *"---------------------------------------------------------------------- *"*"Lokale Schnittstelle: *" ? ? ? IMPORTING *" ? ? ? ? ? ? ?INPUT DEFAULT 0 *" ? ? ? EXPORTING *" ? ? ? ? ? ? ?NUMCSTR *"---------------------------------------------------------------------- ?FIELD-SYMBOLS: . ?IF INPUT CA '#*' OR INPUT CA '##'. ? ?ASSIGN NUMCSTR TO TYPE 'C'. ? ?MOVE INPUT TO . ?ELSE. ? ?MOVE INPUT TO NUMCSTR. ?ENDIF. ENDFUNCTION. 参考技术A 告诉大家一个惨无人道的消息,一个灭绝人寰的消息,一个绝望至死的消息,一个伤心欲绝的消息,一个肝肠寸断的消息,一个愁眉苦脸的消息,一个捶胸顿足的消息,一个泣不成声的消息,一个垂头丧气的消息,一个生不如死的消息,一个心如刀割的消息,今天周一执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.
执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确. type TForm1 = class(TForm) Edit1: TEdit; procedure FormCreate(Sender: TObject); private Edit1OldProc: TWndMethod; procedure Edit1NewProc(var Message: TMessage); public { Public declarations } end; var Form1: TForm1; implementation {$R *.dfm} uses Clipbrd; procedure TForm1.FormCreate(Sender: TObject); begin Edit1OldProc := Edit1.WindowProc; Edit1.WindowProc := Edit1NewProc; end; procedure TForm1.Edit1NewProc(var Message: TMessage); var s: string; v: double; begin case Message.Msg of WM_PASTE: begin s := Clipboard.astext; s := copy(edit1.Text, 0, edit1.SelStart) + s + copy(edit1.Text, edit1.SelStart + edit1.SelLength, length(edit1.Text)); if trystrtofloat(s, v) then Edit1OldProc(Message) else ShowMessage(‘只允许输入数字‘); end; WM_CHAR: begin if (TWMCHAR(Message).CharCode = 45) then if (Pos(‘-‘, Edit1.Text) = 0) and (Edit1.SelStart = 0) then Edit1OldProc(Message); if (TWMCHAR(Message).CharCode = 46) then if (Pos(‘.‘, Edit1.Text) = 0) then Edit1OldProc(Message); if TWMCHAR(Message).CharCode in [48..57, 8, 3] then Edit1OldProc(Message); if (TWMCHAR(Message).CharCode = 22) then Edit1OldProc(Message); end; else Edit1OldProc(Message); end; end; -----------
以上是关于如何将负号放到数字的前面的主要内容,如果未能解决你的问题,请参考以下文章
excel2010,如何让会计专用格式负数显示负号,而不是括号?
执行这些代码, Edit1只能输入数字,小数点和负号,负号和小数点只能输入一个,负号必须在最前,粘贴的数字必须完全正确.