wiki:Docs/Prog/Manual/ApplicationLibraries/lib825ev/Ticket/CTktFlds

Version 15 (modified by Don Wilson, 6 years ago) ( diff )

--

CTktFlds

CTktFlds is a C++ class that is a wrapper around struct tktfld_struct to simplify ticket programming.

Constructor

CTktFlds(void);

Parameters

Constructor does not accept any parameters

Examples

CTktFlds flds;

This contructs the object.

Member Functions

Clear

Clears all references or a specified item.

void Clear(void);

void Clear(int nFld);

Parameters

  • nFld - Ticket item to clear

Version with no parameters clears all fields

Return Value

Function does not return a result.

Remarks

Examples

CTktFlds flds;
flds.Set(TKT_FLD_TIME, strTime);
flds.Set(TKT_FLD_GROSS, strGross);
PrintTkt(TKT_STD, flds);
CTktFlds flds;
flds.Set(TKT_FLD_TIME, strTime);
flds.Set(TKT_FLD_GROSS, strGross);
flds.PrintTkt(TKT_STD);

// Clear the entire flds object to start over
flds.Clear();
flds.Set(TKT_FLD_TIME, strTime);
flds.Set(TKT_FLD_NET, strNet);
flds.PrintTkt(TKT_ALT);
CTktFlds flds;
flds.Set(TKT_FLD_TIME, strTime);
flds.Set(TKT_FLD_GROSS, strGross);
flds.PrintTkt(TKT_STD);

// Clear the gross weight reference so it will not print on the alternate ticket, time will still print
flds.Clear(TKT_FLD_GROSS);
flds.Set(TKT_FLD_NET, strNet);
flds.PrintTkt(TKT_ALT);

Set

Sets a reference

void Set(int nFld, string& str);
void Set(int nFld, char* psz);
void Set(int nFld, const char* psz);

Parameters

  • nFld - Field to set
  • str - String variable
  • psz - pointer to character array

Retrun Value

Function does not return any result.

Remarks

The TKT_FLD_xxx definitions relate to the ticket field position information provided in the "Configuration" program. Refer to the chart below.

IDTypical useCode Character
TKT_FLD_GROSSGross weight1
TKT_FLD_TARETare weight2
TKT_FLD_NETNet weight3
TKT_FLD_TIMETime4
TKT_FLD_DATEDate5
TKT_FLD_IDID6
TKT_FLD_CNConsecutive number7
TKT_FLD_UNITSWeight units8
TKT_FLD_DSP_WTDisplay weight9
TKT_FLD_PC_CNTPiece countA
TKT_FLD_TOT_CNTTotal countB
TKT_FLD_ID1ID1C
TKT_FLD_ID2ID2D
TKT_FLD_ID3ID3E
TKT_FLD_G_ACCUMGross weight accumulatorF
TKT_FLD_N_ACCUMNet weight accumulatorG
TKT_FLD_PRMPT1Prompt 1H
TKT_FLD_PRMPT2Prompt 2I
TKT_FLD_PRMPT3Prompt 3J
TKT_FLD_REF1Reference 1K
TKT_FLD_REF2Reference 2L
TKT_FLD_REF3Reference 3M
TKT_FLD_CNV_NETConverted net weightZ

The following are not standard nControl fields:

IDTypical useCode Character
TKT_FLD_CNV_UNITSConverted weight units0 (Zero)
TKT_FLD_CNV_DSP_WTConverted display weightU
TKT_FLD_CNV_G_ACCUMConverted gross accumulatorV
TKT_FLD_CNV_N_ACCUMConverted net accumulatorW
TKT_FLD_CNV_GROSSConverted gross weightX
TKT_FLD_CNV_TAREConverted tare weightY
TKT_FLD_IN_TIMETime In - First pass timeN
TKT_FLD_IN_DATEDate In - First pass dateO
TKT_FLD_ID4ID4P
TKT_FLD_PRMPT4Prompt 4Q
TKT_FLD_CUSTOMCustom fieldR

The Set function does not copy the provided data, but only creates a reference to it. The provided data must remain in scope until after the PrintTkt function is performed (Otherwise garbled data may appear in the output or the indicator may crash).

Example

string strTime = GetTimeStr(1); // Include seconds
string strGross = FormatGrossWt(1);

CTktFlds flds;
flds.Set(TKT_FLD_TIME, strTime);
flds.Set(TKT_FLD_GROSS, strGross);
flds.PrintTkt(TKT_STD);

SetEvent

Sets an event to allow the application to do some processing during printing

void SetEvent(void* userData, TKT_EVENT func);

Parameters

  • userData - Pointer to anything that may be useful to the event function
  • func - Event function

Retrun Value

Function does not return any result.

Remarks

The event function receives four parameters. tkt is the ticket format TKT_STD, TKT_ALT, TKT_FPASS, TKT_LOG, TKT_SPEC1, ... TKT_SPEC6. p is a pointer to the struct tktfld_struct, file is the FILE* pointer for the output, code is the point during printing TKT_EVENT_BEFORE_BEGIN_PRINT (before begin print codes are printed) TKT_EVENT_AFTER_BEGIN_PRINT (after the begin print codes are printed but before any ticket text is printed) TKT_EVENT_BEFORE_END_PRINT (after ticket text is printed but before ending print codes are printed) TKT_EVENT_AFTER_END_PRINT (after end print codes are printed).

Example

struct tran_info_struct
{
    int tktNum;
    // ... other data
} tran;

TKT_EVENT(PrintBarCode)
{
   if(tkt == TKT_FPASS && code == TKT_EVENT_BEFORE_END_PRINT)
   {
      // Print bar code of the ticket number on P600 printer
      struct tran_info_struct* pTran = (tran_info_struct*)p->userStruct;
      if(pTran != NULL)
      {
          fprintf(file, "%cb428%c%07d%c", 0x1B, 0x40, pTran->tktNum, 0x1E);
      }
   }
   return 0;
}


void AppPrint(void)
{
   string strTime = GetTimeStr(1); // Include seconds
   string strTare = FormatTareWt(1);

   tran.tktNum++;

   CTktFlds flds;
   flds.Set(TKT_FLD_TIME, strTime);
   flds.Set(TKT_FLD_TARE, strTare);

   flds.SetEvent(&tran, TktEventPrintBarCode);

   flds.PrintTkt(TKT_FPASS);
}
Note: See TracWiki for help on using the wiki.