2017-01-05 8 views
-1

У меня проблемы с передачей значения с проблемами форматирования. Описание Я установил коды, поскольку у меня возникла проблема с передачей моего PreEditedCheque в моем коде для части if ValidateMMonCheque <> MM. Выход для if length(RawChequenumber) = 15 будет 1 цифра вместо 00001 (пример)Передача значения с числовым форматом

MM = HostGetFLD('','MM') 
YY = HostGetFLD('','YY') 
PreEditedCheque = substr(RawChequenumber,11,5) 

ValidateMMonCheque = substr(RawChequenumber,7,2) 

if ValidateMMonCheque <> MM Then *From this statement* 
Do 
    PreEditedCheque = substr('00000',1,5) *This part where those 0 can't be properly shown if pass to the next statement* 
    EditedCheque = '00'||'2'||'0'||YY||MM||'00'||PreEditedCheque 
    rc = message(2,2,EditedCheque) 
End 


if length(RawChequenumber) = 15 Then 

    EditedCheque = '00'||'2'||'0'||YY||MM||'00'||PreEditedCheque + 1 *Second statement if <>MM ran, this part, the PreEditedCheque will be not in 00001, it will be 1. 

rc = PanSetCtlData('PREVIEW',EditedCheque) 
+0

Каков был вход, Какой вывод вы получаете и что ожидаете? –

+0

Я ожидаю, что выход будет 00001 (5 цифр) вместо 1 (всего одна цифра), входные данные фактически проходят от переменной rawchequenumber. –

+0

Проблема заключается в '+' во втором выражении, это преобразует его в числовое выражение, предложение Росса по использованию правой функции должно работать –

ответ

3

Что вы просите это иметь номер чека проложенный слева нулями в поле 5 символов. Right() function является вашим другом:

Right(PreEditedCheque, 5, '0') /* "1" -> "00001" */ 
+0

Большое вам спасибо, Росс. Оно работает. –