Skip to main content

Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5

Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5
Hi Raman,

I think you need to use Function 14 to quesry the field attribute and then check the bit to see if the field in a NonDisplay field.

Tom

Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5
Hi Raman,

I think you need to use Function 14 to quesry the field attribute and then check the bit to see if the field in a NonDisplay field.

Tom

Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5
Hello TomFitz,

Once again thank you for the reply.

Can you provide c# code sample for the same.
I am unable to detect the field.
For one field i am getting Value 223.
How to interpret it decide that it is hidden field.

Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5

Hi,

From IBM documentation here www.ibm.com/.../emulator_programming08.htm

You need to check for 0b11000 for a non Display attribute, pay attention that the leading 0b will make the number a binary literal number.

int fieldAttribute = 223;
if((fieldAttribute & 0b11000) != 0) {
// We are dealing with nonDisplay field
}

Thanks
Adi


Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5
Hi Adi

Thank you for the reply.
I did one thing I captured Field Attribute of all the field.
I observed that for Password and new Password I am getting integer value 205.
So I am taking decision that this is Hidden field.

int fieldAttribute = GetFieldAttribute(rc,CurrentField);

if((fieldAttribute == 205) {
//Hidden field
}

Please correct me if I am doing something wrong.

Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5
Hi Adi

Thank you for the reply.
I did one thing I captured Field Attribute of all the field.
I observed that for Password and new Password I am getting integer value 205.
So I am taking decision that this is Hidden field.

int fieldAttribute = GetFieldAttribute(rc,CurrentField);

if((fieldAttribute == 205) {
//Hidden field
}

Please correct me if I am doing something wrong.

Hi There, 

Can you provide c# code sample to identify the Field is hidden or password field.

 

Right now I am using following code to get FieldName

public string CopyFieldToString(UInt32 rc)
{
UInt32 ReceivedCode = rc;
byte[] databyte = new byte[20];
UInt16 f = (UInt16)FunctionCodes.CopyFieldToString; //Function 34
UInt32 l = 20;
HLLAPIWrapperMethod(out f, databyte, out l, out ReceivedCode);  
//TODO if REceivedCode is zero then its success otherwise failed
string txt = string.Empty;
for (int i = 0; i < databyte.Length; i )
{
txt = Convert.ToString((char)databyte);
}
return txt;
}

With this i want to know if its password field stop capturing it.

 


#Rumba
#Rumba9.5

Hi Raman,

 

First I'm sorry but it looks like I did a mistake regarding the order of the bits, from this line "The bit positions are in IBM format with bit 0 as the left most bit in the byte." I see that my previous response assume 0 is the right most position...

I wouldn't use 205 as indication to hidden field , as you saw before you can get 233 as hidden field as well or any other number

In the link I sent you to IBM protocol specification you can see the following table:

for 3270

Bit Position Meaning
0-1 Both = 1, field attribute byte
2 Unprotected/protected

0 = Unprotected data field

1 = Protected field

3 A/N

0 = Alphanumeric data

1 = Numeric data only

4-5 I/SPD

00 = Normal intensity, pen not detectable

01 = Normal intensity, pen detectable

10 = High intensity, pen detectable

11 = Nondisplay, pen not detectable

6 Reserved
7 MDT

0 = Field has not been modified

1 = Field has been modified

in you example

205 is equal to 11001101 in binary

so to check the masking data will give us the following:

11001101 - Field Attribute

 

11001101 - Unprotected data field

11001101  - Alphanumeric data

11001101 - 00 = Nondisplay, pen not detectable, pen not detectable

11001101 - Reserve , not used

11001101 - Field has been modified

 

if you are using 5250:

Bit Position Meaning
0 Field attribute flag

0 = Nonfield attribute flag

1 = Field attribute flag

1 Visibility

0 = Nondisplay

1 = Display

2 Unprotected/protected

0 = Unprotected data field

1 = Protected field

3 Intensity

0 = Normal intensity

1 = High intensity

4-6 Field type

000 = Alphanumeric data: All characters are available

001 = Alphabet only: Uppercase and lowercase, comma, period, hyphen, blank, or Dup key are available

010 = Numeric shift: Automatic shift for number

011 = Numeric data only: 0-9, comma, period, plus, minus, blank, or Dup key are available

101 = Numeric data only: 0-9, or Dup key are available

110 = Magnetic stripe reading device data only

111 = Signed-numeric data: 0-9, plus, minus, or Dup key are available

7 MDT

0 = Field has not been modified

1 = Field has been modified

 

205 is equal to 11001101 in binary

11001101 - Nonfield attribute flag

11001101 - Display

11001101  - UnProtected field

11001101 - Normal intensity

11001101 - Magnetic stripe reading device data only

11001101  Field has been modified

 

In order to check for hidden field you need to check for

3270: 11 in the 4-5 bit offset  so the check is 0B00001100 or just 12 or 0xC --> if (fieldAttrib &  0B00001100 ) == 0B00001100 

5250: 0 in second bit 0b01000000 --> if (fieldAttrib &  0b01000000 ) == 0 

Hope this will help this time and sorry for the mistake

Adi