i hate conversions but . . ......(customer pays, i eat)
below is the A4V6 code snipette for preparing data for export to an outside Alpha DOS program. it works perfectly in A4V6. am stuck on some of the conversion so please feel free to advise (critize?) as needed. i created the badcustomer and postdata dialog to work with the conversion.
The Invoice.dbf file is open on a record and the client pushes the "Post" letter 'P'. i get the current record, read that record into system varibles, verify i have good customer ID, ask client if they really want to post, make sure i have room to open the file by closing file 9 if open, open the export file, and enter the field data and save it. then re-open the invoice file, find the invoice, main menu and do global update to posting flag for current record and display the updated record.
{SCREENFREEZE}
{*SCREENON}{DEBUGON*}
{SET %rec,SYSTEM-"REC_NUMBER}
{XLOOKUPR "invoice",%rec, %err}
{SET %CUSTR_ID,XLOOKUP("company","comp_alp",%INVOICE_BILL_ID,"COMP_NUM")}
{IF %CUSTR_ID="", {{PLAY "BADCUST"}{GOTO :Z}}}
{SET %message,"Updateing export file"}{PLAY "SHOWMES"}
{ALTF10}cc9{ESC}
coarimport{ENTER}v
e
{FIELDENTER "TRAN_TYPE","1", %err}
{FIELDENTER "BATCH",7, %err}
{FIELDENTER "TRAN_NUMBR",RIGHT(%INVOICE_INV_NO,5), %err}
{F10}{ENTER}
{FIELDENTER "TRAN_TYPE","I", %err}
{FIELDENTER "BATCH",7, %err}
{FIELDENTER "TRAN_NUMBR",RIGHT(%INVOICE_INV_NO,5), %err}
{FIELDENTER "CUST_ID",%CUSTR_ID, %err}
{SET %trandate,"0"+RIGHT(DTOS(CTOD(%INVOICE_DELVY_DATE)),6)}
{FIELDENTER "TRAN_DATE",%trandate, %err}
{FIELDENTER "TRAN_AMT",%INVOICE_NTBILL_AMT, %err}
{FIELDENTER "GLDISTAMT",%INVOICE_NTBILL_AMT, %err}
{SET %trandate,"0"+RIGHT(DTOS(CTOD(%INVOICE_DELVY_DATE)+30),6)}
{FIELDENTER "DUEDATE",%TRANDATE, %err}
{FIELDENTER "SALESPERSN",%INVOICE_TRACTOR, %err}
{FIELDENTER "ARACCTNUMB","1400000000", %err}
{SET %acct,%INVOICE_GLACCTNO+"000000"}
{FIELDENTER "SALEACCTNB",%acct, %err}
{FIELDENTER "FRGHTNUMBR","5098000000", %err}
{FIELDENTER "MISCNUMBER","3009000000", %err}
{FIELDENTER "CASHNUMBER",0, %err}
{FIELDENTER "SLSTAXLIAB","2022000000", %err}
{FIELDENTER "DESCRIPTIN",%REC+" "+%INVOICE_PRO_NO, %err}
{FIELDENTER "BANKNUMBER",2, %err}
{F10}{F10}
mgura{F10}
{SET %message,"Update complete"}{PLAY "SHOWMES"}
{ALTF10}COINVOICE{ENTER}VF{%INVOICE_INV_NO}{ENTER}
MGUO{F2}POST{ENTER}.T.{ENTER}{F10}
{F2}A{ENTER:3}{F2}C{F2}C{F10}V
{:Z}
below i include the commented old A4 and the converted A5 code.
below is what i have done so far on the conversion (HAHA)
getting the current record number was relatively easy
'{SET %rec,SYSTEM-"REC_NUMBER}
DIM SHARED rec AS N
rec = recno()
in A4V6 you could read the data into system variables for global use, can that be done in A5V6?? could not find that so here is the conversion using scripting
'{XLOOKUPR "invoice",%rec, %status}
'Go to a specified record number in Form 'frmInvoice' .
DIM var_recno_target as N
var_recno_target = rec
DIM object_name as C
object_name = ":"+"frmInvoice"
DIM varP_Object as p
'Get a pointer to the specified object
varP_Object = obj(object_name)
'Check if the specified object exists
if .not. is_object(varP_Object) then
ui_msg_box("Error","The object '"+object_name+"' does not exist.",ui_stop_symbol)
else
varP_Object.recno_goto(var_recno_target)
end if
once i was at the record i got the bill ID
'{SET %CUSTR_ID,XLOOKUP("company","comp_alp",%INVOICE_BILL_ID,"COMP_NUM")}
DIM SHARED custr id AS c
custr id = varP_Object:Bill_id.value
now is where i begin to have problems. in A4 your system IF statement did NOT require a FALSE statement to be coded and you can have multiple commnds in the expression.
'{IF %CUSTR_ID="", {{PLAY "BADCUST"}{GOTO :Z}}}
'Run script : badcustomer
'Jump to label into script: 'exit'.
if(custr id"""","",script_play("badcustomer")GOTO EXIT)
am not sure this will work. please advise. same with the following that gets a yes/no answer
'{PLAY "REALPOST"}{IF %SYS_LAST_BUTTON="No",{{GOTO :Z}}}
'Run script: postdata
script_play("postdata")
if(postdata_NO_button,goto exit,"")
this is as far as i have gotten. the next part the key presses and field entry i have not figured out yet, so please feel free to comment.
Thank you in advance for your help. conversions are so much FUN and i have 185 more scripts to play with.
Don
below is the A4V6 code snipette for preparing data for export to an outside Alpha DOS program. it works perfectly in A4V6. am stuck on some of the conversion so please feel free to advise (critize?) as needed. i created the badcustomer and postdata dialog to work with the conversion.
The Invoice.dbf file is open on a record and the client pushes the "Post" letter 'P'. i get the current record, read that record into system varibles, verify i have good customer ID, ask client if they really want to post, make sure i have room to open the file by closing file 9 if open, open the export file, and enter the field data and save it. then re-open the invoice file, find the invoice, main menu and do global update to posting flag for current record and display the updated record.
{SCREENFREEZE}
{*SCREENON}{DEBUGON*}
{SET %rec,SYSTEM-"REC_NUMBER}
{XLOOKUPR "invoice",%rec, %err}
{SET %CUSTR_ID,XLOOKUP("company","comp_alp",%INVOICE_BILL_ID,"COMP_NUM")}
{IF %CUSTR_ID="", {{PLAY "BADCUST"}{GOTO :Z}}}
{SET %message,"Updateing export file"}{PLAY "SHOWMES"}
{ALTF10}cc9{ESC}
coarimport{ENTER}v
e
{FIELDENTER "TRAN_TYPE","1", %err}
{FIELDENTER "BATCH",7, %err}
{FIELDENTER "TRAN_NUMBR",RIGHT(%INVOICE_INV_NO,5), %err}
{F10}{ENTER}
{FIELDENTER "TRAN_TYPE","I", %err}
{FIELDENTER "BATCH",7, %err}
{FIELDENTER "TRAN_NUMBR",RIGHT(%INVOICE_INV_NO,5), %err}
{FIELDENTER "CUST_ID",%CUSTR_ID, %err}
{SET %trandate,"0"+RIGHT(DTOS(CTOD(%INVOICE_DELVY_DATE)),6)}
{FIELDENTER "TRAN_DATE",%trandate, %err}
{FIELDENTER "TRAN_AMT",%INVOICE_NTBILL_AMT, %err}
{FIELDENTER "GLDISTAMT",%INVOICE_NTBILL_AMT, %err}
{SET %trandate,"0"+RIGHT(DTOS(CTOD(%INVOICE_DELVY_DATE)+30),6)}
{FIELDENTER "DUEDATE",%TRANDATE, %err}
{FIELDENTER "SALESPERSN",%INVOICE_TRACTOR, %err}
{FIELDENTER "ARACCTNUMB","1400000000", %err}
{SET %acct,%INVOICE_GLACCTNO+"000000"}
{FIELDENTER "SALEACCTNB",%acct, %err}
{FIELDENTER "FRGHTNUMBR","5098000000", %err}
{FIELDENTER "MISCNUMBER","3009000000", %err}
{FIELDENTER "CASHNUMBER",0, %err}
{FIELDENTER "SLSTAXLIAB","2022000000", %err}
{FIELDENTER "DESCRIPTIN",%REC+" "+%INVOICE_PRO_NO, %err}
{FIELDENTER "BANKNUMBER",2, %err}
{F10}{F10}
mgura{F10}
{SET %message,"Update complete"}{PLAY "SHOWMES"}
{ALTF10}COINVOICE{ENTER}VF{%INVOICE_INV_NO}{ENTER}
MGUO{F2}POST{ENTER}.T.{ENTER}{F10}
{F2}A{ENTER:3}{F2}C{F2}C{F10}V
{:Z}
below i include the commented old A4 and the converted A5 code.
below is what i have done so far on the conversion (HAHA)
getting the current record number was relatively easy
'{SET %rec,SYSTEM-"REC_NUMBER}
DIM SHARED rec AS N
rec = recno()
in A4V6 you could read the data into system variables for global use, can that be done in A5V6?? could not find that so here is the conversion using scripting
'{XLOOKUPR "invoice",%rec, %status}
'Go to a specified record number in Form 'frmInvoice' .
DIM var_recno_target as N
var_recno_target = rec
DIM object_name as C
object_name = ":"+"frmInvoice"
DIM varP_Object as p
'Get a pointer to the specified object
varP_Object = obj(object_name)
'Check if the specified object exists
if .not. is_object(varP_Object) then
ui_msg_box("Error","The object '"+object_name+"' does not exist.",ui_stop_symbol)
else
varP_Object.recno_goto(var_recno_target)
end if
once i was at the record i got the bill ID
'{SET %CUSTR_ID,XLOOKUP("company","comp_alp",%INVOICE_BILL_ID,"COMP_NUM")}
DIM SHARED custr id AS c
custr id = varP_Object:Bill_id.value
now is where i begin to have problems. in A4 your system IF statement did NOT require a FALSE statement to be coded and you can have multiple commnds in the expression.
'{IF %CUSTR_ID="", {{PLAY "BADCUST"}{GOTO :Z}}}
'Run script : badcustomer
'Jump to label into script: 'exit'.
if(custr id"""","",script_play("badcustomer")GOTO EXIT)
am not sure this will work. please advise. same with the following that gets a yes/no answer
'{PLAY "REALPOST"}{IF %SYS_LAST_BUTTON="No",{{GOTO :Z}}}
'Run script: postdata
script_play("postdata")
if(postdata_NO_button,goto exit,"")
this is as far as i have gotten. the next part the key presses and field entry i have not figured out yet, so please feel free to comment.
Thank you in advance for your help. conversions are so much FUN and i have 185 more scripts to play with.
Don
Comment