Line 955: | Line 955: | ||
| | | | ||
<syntaxhighlight lang="Python"> | <syntaxhighlight lang="Python"> | ||
#Updated | #Updated 26 Jul 2022 | ||
import win32com.client | import win32com.client | ||
Line 1,014: | Line 1,014: | ||
#Insert back with new Information | #Insert back with new Information | ||
lDtl. | lDtl.Append() #For 1St Branch | ||
lDtl.FindField("BranchType").AsString = "B" | |||
lDtl.FindField("BranchName").AsString = "BILLING" #Make sure this always same as b4 delete data | lDtl.FindField("BranchName").AsString = "BILLING" #Make sure this always same as b4 delete data | ||
lDtl.FindField("Address1").AsString = "New Address1" | lDtl.FindField("Address1").AsString = "New Address1" |
Revision as of 08:15, 26 July 2022
Introduction
This is the "Bridge" direct live linking between External Program with SQL Accounting
Pros
- Can Live or Batch Update.
- Can do action such as New, Edit & Delete.
- About 95% of modules is covered.
- Can direct Retrieve/Get Information From Connected Database.
- Able to do Automation (i.e. auto login & update data).
- Support GST & SST.
- Free of Charge (Freeware) for End User on SDK Linking.
Cons
- Must had programming knowledge.
- Must had SQL Accounting installed & running.
- Must self do checking else error prompt will unable to “capture”.
- Only supported in IE for JScript
Requirement
- Microsoft Windows 8.1 and above (recommended with 64 bits windows)
- Intel i5, i7 and above computer.
- 8 GB of RAM (recommended 12 GB and above).
- Firebird (For Automatic Login & Logout Only)
- SQL Accounting
- Windows Scheduler (For Automatic Login & Logout Only)
Documentation
Linking Flow
- Highlight in Yellow Color is the Windows base Application/Function you need to Develop/Create.
Example 1 - POS System
Example 2 - Cloud/Mobile System
- The SDK can be build in in your system or a Standalone windows Application(Middle Application).
- If you build in your system then it can be sync anytime either by a special interface with parameter (eg Date From, Date To & etc) or each transaction after post(not recommended)
- If you create a Standalone windows Application(Middle Application) you can make use the windows schedule to sync or call from you system to execute/run the Standalone windows Application(Middle Application).
Steps
CHM File
- Install SQL Accounting Click here
- Create Sample Data
- Login (username & password is Admin)
- Double click the SQLSDK.chm file
- Click Application Object | Business Objects
- Click the word "here"
- Click Yes
- In the list Look for (example)
- - AR_IV -> Customer Invoice
- - AR_CN -> Customer Credit Note
- - AP_PI -> Supplier Invoice
- - SL_IV -> Sales Invoice
- - PH_PI -> Purchase Invoice
- - ST_AJ -> Stock Adjustment
External Application Linking
- Login SQL Accounting
- Login External Application
- Click Post to SQL Accounting button or Click Save button from External Application.
- ----------------------------------------------------------------------------------------------------------------------------------------------------
- ----------------------------------------------------------------------------------------------------------------------------------------------------
Example External Program
VB. Net
- Example VBDotNet-20220614
C Sharp
- Example CSharp-20220614
Steps (C Sharp & VB.Net Only)
The example video is how to
- 01. Open DCF in D:\Happy\DB\Default.DCF
- 02. Datatabase is ACC-0008.FDB
- 03. Click Complete Post button
- 04. Where to check in SQL accounting after Post (Steps-2.gif)
Available Function
- - Complete Post - SL_CS, SL_CN, AR_PM, AR_CN & AR_CF
- - Batch Post - Cash Sales - SL_CS
- - Batch Post...2 DB
- - Batch Post...2 DCF
- - Add Stock Assembly with Override Raw Materials - ST_AS
- - Add Stock Job Order to Stock Assembly with Override Raw Materials - PD_JO & ST_AS
- - Add Agent - Agent
- - Get Agent Description
- - Add Journal Voucher - Add GL JE
- - Edit GL Journal Voucher - Edit GL_JE
- - Edit Sales Cash Sales - SL_CS
- - Delete Cash Sales - Del SL CS - SL_CS
- - Customer Aging - Customer.Aging.RO
- - Get Sales Invoice Listing - Sales.IV.RO
- - Stock Item List Filter by Supplier Item
- - Add SKU with Edit SKU - ST_ITEM
- - Del SKU - ST_ITEM
- - Get DCF Database List
- - Month End - FIFO
- - Month End - WA (Weighted Average)
- - Get Options...(Perform Tax / Local Amount Rounding, 5 Cents Rounding (Sales Invoice) & 5 Cents Rounding (Cash Sales)
- - Get Next Invoice No.
- - Is Valid ST_Item
- - Is Valid GL_Acc
- - Outstanding SO - Sales.OutstandingSO.RO
- - Read RTF n Picture Data...
- - Get Customer List - AR_Customer
- - Add Customer with Edit Customer - AR_Customer
- - Del Customer - AR_Customer
- - Add GL Payment Voucher - Add GL_PV
- - Transfer Document - DO to SL_IV
- - Get Transfer Info. 1 - At Invoice Find DO Number & Date
- - Get Transfer Info. 2 - At DO Find Invoice Number & Date
- - GL Ledger
- - Add Stock Transfer - Add ST XF
- - Add Stock Adjustment - Add ST AJ
- - Get Serial Number Balance - Serial No. Bal.
- - Add Customer Deposit - Deposit
- - Transfer Customer Deposit to Payment - Deposit to PM
- - Refund Deposit - Deposit Refund
- - Forfeit Deposit - Deposit Forfeit
- - Enable Support DocNo Format with Month & Year Format
- - Add AR IV
- - Add AR CN
- - Add AR PM Bounce Chq
- - Add GL Ledger RO
- - AR Statement
History - C Sharp & VB.Net
- Coming soon...
- - Add Add/Edit AR PM
- 14 Jun 2022
- - Add AR Statement
- - Fix Error when click 2nd time for Report.
- 27 Apr 2022
- - Add/Edit Location
- - Rename Caption for Add Customer to Add/Edit Cust
- - Rename Caption for Add Agent to Add/Edit Agent
- - Add Reconnect
- - Add/Edit ST_Batch
- - Fix bug on KillApp should Sleep 2 seconds after run the KillApp
- 18 Mar 2021
- - Enable Support DocNo Format with Month & Year Format
- - Add AR IV
- - Add AR CN
- - Add AR PM Bounce Chq
- - Add GL Ledger RO
- 22 May 2020
- - Fix Complete Post Action cause SQLAcc still not exit after logout
- - Add/Edit Customer Contra
- 28 Mar 2020
- - SL DO to SL IV button - Check Transfer Status should excluded Cancelled
- - Add Get Transfer Info. 1 - At Invoice Find DO Number & Date
- - Add Get Transfer Info. 2 - At DO Find Invoice Number & Date
- 04 Mar 2020
- - Add Post with Serial Number for Complete Post
- - Fix Posting Seq Error on Complete Post
- - Add GL JE
- - Add GL_PV
- - Add Additional Note for Outstanding SO button
- 05 Feb 2020
- - Add Customer Deposit
- - Add Customer Deposit to PM
- - Add Customer Deposit Refund
- - Add Customer Deposit Forfeit
- - Add SL DO to SL IV
- - Add 12 Months Aging Parameter for Customer.Aging.RO
- - Add Add ST AJ - Stock Adjustment
- - Add Add ST XF - Stock Transfer
- 22 Oct 2019
- - Add GL Ledger function
- - Add Cust. IV Listing function
- - Add Serial No. Bal function
- - Fixed Error on Auto Logout Error when using ComServer.DBManager.NewDataSet(lSQL)
- 23 Aug 2019
- - Add Del SKU function
- - Add Customer List... function
- - Add Add Customer function
- - Add Del Customer function
- - Add Del SL CS function
- 31 Jul 2019
- - Add Read RTF n Picture Data... function.
- 10 Jul 2019
- - Fixed KillApp function not working in some situation.
- 11 Jun 2019
- - Fixed Auto Logout Prompt Error.
- - Fixed SQLAcc not Fully Exit when Call Auto Logout.
- - Fixed Batch Post 2 DB error for CSharp
- 06 Jun 2019
- - Fixed unable to Update Stock Item for Add SKU.
- - Add Update UOM for Add SKU.
- - Add C Sharp Coding
- 23 May 2019
- - Update Complete Post - Add Description3 (More Description)
- - Fixed Batch Post.. keep login when looping
- - Add Get Outstanding SO - Sales.OutstandingSO.RO
- 05 May 2019
- - Add Condition for Stock Item List only filter if edCode is not empty
- - Add Prompt Message If Login Fail
- - Add SQLAcc Build No Condition for Get Sales Invoice Listing to support version 776 & above
- - Add SKU - ST_ITEM
ASP.Net C Sharp
01. Make sure Enabled the following function in IIS Manager - Sites - YourSiteName - Authentication
- - Anonymous Authentication
- - ASP.Net Impersonation (Make sure set Specific user (Windows Login User & Password))
02 Make sure the Windows user set in ASP.Net Impersonation is Login
- Example ASPDotNet-20210816
Available Function
- - Get Agent Description
- - New & Update Customer/Supplier Info.
- - Edit Cash Sales
- - Edit Purchase Invoice
- - Complete Post
- - GL PV
- - Add Add/Edit Agent
- - Add Add/Edit Terms
- - Add Add/Edit ST Item
- - Delete Cash Sales
- - Add SL SO
History
- 16 Aug 2021
- - Add SL SO
- 19 Feb 2021
- - Delete Cash Sales
- 16 Sep 2020
- - Add Add/Edit ST Item
- - Fix some comment note error
- 23 Jun 2020
- - Add Add/Edit Agent
- - Add Add/Edit Terms
- 22 May 2020
- - Add Edit Purchase Invoice
- - Add Complete Post
- - Add GL PV
- 06 Dec 2019
- - Add Edit Cash Sales
- - Enable Run Time Set User Name, Password, DCF & FDB
Python
- Module Require in Python
- - pypiwin32 (Mandatory) -> pip install pypiwin32
- - Pillow (Optional for Picture) -> pip install Pillow
- - striprtf (Optional for Rich Text to Text) -> pip install striprtf
Example-Get Agent
Get Agent Script |
---|
#Updated 17 Oct 2019
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
lSQL = "SELECT * FROM AGENT "
lSQL = lSQL + "WHERE CODE='FAIRY' "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet.RecordCount > 0:
print(lDataSet.FindField('Description').AsString)
else:
print ("Record Not Found")
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Add & Edit Agent
Add & Edit Agent Script |
---|
#Updated 17 Oct 2019
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0104.FDB") #Database Name
def PostData():
BizObject = ComServer.BizObjects.Find("Agent")
lMain = BizObject.DataSets.Find("MainDataSet")
lDocKey = BizObject.FindKeyByRef("CODE", "FAIRY")
if lDocKey is None:
BizObject.New()
lMain.FindField("CODE").value = "FAIRY"
lMain.FindField("DESCRIPTION").value = "FAIRY TAIL"
else:
BizObject.Params.Find("CODE").Value = lDocKey
BizObject.Open()
BizObject.Edit()
lMain.FindField("DESCRIPTION").value = "FAIRY TAIL WIZARD"
try:
BizObject.Save()
except Exception as e:
print("Oops!", e)
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Delete Agent
Delete Agent Script |
---|
#Updated 17 Oct 2019
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0016.FDB") #Database Name
def PostData():
BizObject = ComServer.BizObjects.Find("Agent")
lDocKey = BizObject.FindKeyByRef("CODE", "FAIRY")
if lDocKey is None:
print ("Record Not Found")
else:
BizObject.Params.Find("CODE").Value = lDocKey
BizObject.Open()
BizObject.Delete()
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Complete Post
SL_CS, AR_PM, SL_CN & AR_CN Script |
---|
#Updated 17 Oct 2019
#This will doing following posting
#01. Cash Sales
#02. Sales Credit Note
#03. Customer Payment With Knock off
#04. Edit Credit Note Posted in Step 02 & Knock Off
#05. Customer Refund to Knock off Credit Note
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0016.FDB") #Database Name
def PostDataCS():
BizObject = ComServer.BizObjects.Find("SL_CS")
lMain = BizObject.DataSets.Find("MainDataSet") #lMain contains master data
lDetail = BizObject.DataSets.Find("cdsDocDetail") #lDetail contains detail data
lDate = datetime.datetime(2018, 2, 22, 13, 0)
lDate.strftime('%m/%d/%Y')
BizObject.New();
lMain.FindField("DocKey").value = -1
lMain.FindField("DocNo").AsString = "--IV Test--"
lMain.FindField("DocDate").value = lDate
lMain.FindField("PostDate").value = lDate
lMain.FindField("Code").AsString = "300-C0001" #Customer Account
lMain.FindField("CompanyName").AsString = "Cash Sales"
lMain.FindField("Address1").AsString = "" #Optional
lMain.FindField("Address2").AsString = "" #Optional
lMain.FindField("Address3").AsString = "" #Optional
lMain.FindField("Address4").AsString = "" #Optional
lMain.FindField("Phone1").AsString = "" #Optional
lMain.FindField("Description").AsString = "Sales"
#Insert Data - Detail
#For Tax Inclusive = True with override Tax Amount
lDetail.Append()
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("Seq").value = 1
lDetail.FindField("Account").AsString = "500-000" #Sales Account
lDetail.FindField("Description").AsString = "Sales Item A"
lDetail.FindField("Description3").AsString = ("Item A Line 1" + ("\r" + "Item A Line 2"))
lDetail.FindField("Qty").AsFloat = 1
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 435
lDetail.FindField("Amount").AsFloat = 410.37 #Exclding GST Amt
lDetail.FindField("TaxAmt").AsFloat = 24.63
lDetail.DisableControls()
lDetail.FindField("TaxInclusive").value = 1
lDetail.EnableControls()
lDetail.Post()
#For Tax Inclusive = False with override Tax Amount
lDetail.Append()
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("Seq").value = 2
lDetail.FindField("Account").AsString = "500-000"
lDetail.FindField("Description").AsString = "Sales Item B"
lDetail.FindField("Qty").AsFloat = 1
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 94.43
lDetail.FindField("Amount").AsFloat = 94.43
lDetail.FindField("TaxAmt").AsFloat = 5.66
lDetail.Post()
#For With Item Code
lDetail.Append()
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("Seq").value = 3
lDetail.FindField("ItemCode").AsString = "ANT"
lDetail.FindField("Description").AsString = "Sales Item B"
#lDetail.FindField("Account").AsString = "500-000" #If you wanted override the Sales Account Code
lDetail.FindField("Qty").AsFloat = 2
lDetail.FindField("UOM").AsString = "UNIT"
#lDetail.FindField("DISC").AsString = "5%+3" #Optional(eg 5% plus 3 Discount)
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 100
lDetail.FindField("Amount").AsFloat = 200
lDetail.FindField("TaxAmt").AsFloat = 12
lDetail.Post()
BizObject.Save()
BizObject.Close()
def PostDataPM():
BizObject = ComServer.BizObjects.Find("AR_PM")
lMain = BizObject.DataSets.Find("MainDataSet") #lMain contains master data
lDetail = BizObject.DataSets.Find("cdsKnockOff") #lDetail contains detail data
lDate = datetime.datetime(2018, 2, 22, 13, 0)
lDate.strftime('%m/%d/%Y')
BizObject.New()
lMain.FindField("DOCKEY").Value = -1
lMain.FindField("DocNo").AsString = "--PM Test--"
lMain.FindField("CODE").AsString = "300-C0001" #Customer Account
lMain.FindField("DocDate").Value = lDate
lMain.FindField("PostDate").Value = lDate
lMain.FindField("Description").AsString = "Payment for A/c"
lMain.FindField("PaymentMethod").AsString = "320-000" #Bank or Cash Account
lMain.FindField("ChequeNumber").AsString = ""
lMain.FindField("BankCharge").AsFloat = 0
lMain.FindField("DocAmt").AsFloat = 200.00
lMain.FindField("Cancelled").AsString = "F"
#Knock Off IV
V = ["IV", "--IV Test--"] #DocType, DocNo
if (lDetail.Locate("DocType;DocNo", V, False, False)) :
lDetail.Edit()
lDetail.FindField("KOAmt").AsFloat = 147.09 #Partial Knock off
lDetail.FindField("KnockOff").AsString = "T"
lDetail.Post()
BizObject.Save()
BizObject.Close()
def PostDataCN():
BizObject = ComServer.BizObjects.Find("SL_CN")
lMain = BizObject.DataSets.Find("MainDataSet") #lMain contains master data
lDetail = BizObject.DataSets.Find("cdsDocDetail") #lDetail contains detail data
lDate = datetime.datetime(2018, 2, 22, 13, 0)
lDate.strftime('%m/%d/%Y')
BizObject.New()
lMain.FindField("DocKey").value = -1
lMain.FindField("DocNo").AsString = "--CN Test--"
lMain.FindField("DocDate").value = lDate
lMain.FindField("PostDate").value = lDate
lMain.FindField("Code").AsString = "300-C0001"
lMain.FindField("CompanyName").AsString = "Cash Sales"
lMain.FindField("Address1").AsString = ""
lMain.FindField("Address2").AsString = ""
lMain.FindField("Address3").AsString = ""
lMain.FindField("Address4").AsString = ""
lMain.FindField("Phone1").AsString = ""
lMain.FindField("Description").AsString = "Sales Returned"
#For With Item Code
lDetail.Append()
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("ItemCode").AsString = "ANT"
lDetail.FindField("Description").AsString = "Sales Item B"
lDetail.FindField("Description2").AsString = "Product Spoil" #Reason
lDetail.FindField("Remark1").AsString = "--IV Test--" #Invoice No
lDetail.FindField("Remark2").AsString = "01 Jan 2017" #Invoice Date
lDetail.FindField("Qty").AsFloat = 1
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 100
lDetail.FindField("Amount").AsFloat = 100
lDetail.FindField("TaxAmt").AsFloat = 6
lDetail.Post()
#Save Document
BizObject.Save()
BizObject.Close()
def PostKnockIVCN():
BizObject = ComServer.BizObjects.Find("AR_CN")
lMain = BizObject.DataSets.Find("MainDataSet")
lDetail = BizObject.DataSets.Find("cdsKnockOff")
#Find CN Number
lDocNo = "--CN Test--"
lDocKey = BizObject.FindKeyByRef("DocNo", lDocNo)
BizObject.Params.Find("DocKey").Value = lDocKey
if lDocKey is not None:
BizObject.Open()
BizObject.Edit()
lMain.Edit()
#Knock Off IV
V = ["IV", "--IV Test--"] #DocType, DocNo
if (lDetail.Locate("DocType;DocNo", V, False, False)) :
lDetail.Edit()
lDetail.FindField("KOAmt").AsFloat = 100 #Partial Knock off
lDetail.FindField("KnockOff").AsString = "T"
lDetail.Post()
BizObject.Save()
BizObject.Close()
def PostDataCF():
BizObject = ComServer.BizObjects.Find("AR_CF")
lMain = BizObject.DataSets.Find("MainDataSet") #lMain contains master data
lDetail = BizObject.DataSets.Find("cdsKnockOff") #lDetail contains detail data
lDate = datetime.datetime(2018, 2, 22, 13, 0)
lDate.strftime('%m/%d/%Y')
BizObject.New()
lMain.FindField("DOCKEY").Value = -1
lMain.FindField("DocNo").AsString = "--CF Test--"
lMain.FindField("CODE").AsString = "300-C0001" #Customer Account
lMain.FindField("DocDate").Value = lDate
lMain.FindField("PostDate").Value = lDate
lMain.FindField("Description").AsString = "Payment for A/c"
lMain.FindField("PaymentMethod").AsString = "320-000" #Bank or Cash Account
lMain.FindField("ChequeNumber").AsString = ""
lMain.FindField("BankCharge").AsFloat = 0
lMain.FindField("DocAmt").AsFloat = 6
lMain.FindField("Cancelled").AsString = "F"
#Knock Off Credit Note
V = ["CN", "--CN Test--"] #DocType, DocNo
if (lDetail.Locate("DocType;DocNo", V, False, False)) :
lDetail.Edit()
lDetail.FindField("KOAmt").AsFloat = 4 #Partial Knock off
lDetail.FindField("KnockOff").AsString = "T"
lDetail.Post()
BizObject.Save()
BizObject.Close()
try:
CheckLogin()
print ("Posting Cash Sales")
PostDataCS()
print ("Posting Payment")
PostDataPM()
print ("Posting Sales CN")
PostDataCN()
print ("Posting Knock Off CN")
PostKnockIVCN()
print ("Posting Customer Refund")
PostDataCF()
print ("Done")
finally:
ComServer.Logout()
ComServer = None
|
Example-Get Picture & Description3(Rich Text)
Get Picture & Description3(Rich Text) Script |
---|
#Updated 17 Oct 2019
import win32com.client
from io import BytesIO
from PIL import Image
from striprtf.striprtf import rtf_to_text
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
lSQL = "SELECT Description3, Picture FROM ST_ITEM "
lSQL = lSQL + "WHERE Code='ANT' "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
imgdata = BytesIO(lDataSet.FindField('Picture').Value)
dt = Image.open(imgdata)
dt.save("test.jpg")
print ("Done Export out...")
rtf = lDataSet.FindField('Description3').AsString
txt = rtf_to_text(rtf)
print (txt)
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Get Invoice Next Number
Get Invoice Next Number Script |
---|
#Updated 17 Oct 2019
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
lSQL = "SELECT A.*, B.NEXTNUMBER FROM SY_DOCNO A "
lSQL = lSQL + "INNER JOIN SY_DOCNO_DTL B ON (A.DOCKEY=B.PARENTKEY) "
lSQL = lSQL + "WHERE A.DOCTYPE='IV' "
lSQL = lSQL + "AND A.DESCRIPTION='Customer Invoice' "
lSQL = lSQL + "AND A.STATESET=1 "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
fmt = lDataSet.FindField('Format').AsString
NextNo = lDataSet.FindField('NEXTNUMBER').AsFloat
print (fmt % NextNo)
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Add & Edit Stock Item
Add & Edit Stock Item Script |
---|
#Updated 16 Sep 2020
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0015.FDB") #Database Name
def PostData():
BizObject = ComServer.BizObjects.Find("ST_ITEM")
lMain = BizObject.DataSets.Find("MainDataSet")
lDtl = BizObject.DataSets.Find("cdsUOM")
LBar = BizObject.DataSets.Find("cdsBarcode")
lDocKey = BizObject.FindKeyByRef("CODE", "FAIRY")
if lDocKey is None:
BizObject.New()
lMain.FindField("CODE").value = "FAIRY"
lMain.FindField("DESCRIPTION").value = "FAIRY TAIL"
lMain.FindField("STOCKGROUP").value = "DEFAULT";
lMain.FindField("STOCKCONTROL").value = "T";
lMain.FindField("ISACTIVE").value = "T";
lDtl.Edit() #For 1St UOM
lDtl.FindField("UOM").AsString = "PCS"
lDtl.FindField("Rate").AsFloat = 1
lDtl.FindField("RefCost").AsFloat = 10.2
lDtl.FindField("RefPrice").AsFloat = 25
lDtl.Post()
lDtl.Append() #For 2nd UOM
lDtl.FindField("UOM").AsString = "CTN"
lDtl.FindField("Rate").AsFloat = 12
lDtl.FindField("RefCost").AsFloat = 102
lDtl.FindField("RefPrice").AsFloat = 240
lDtl.Post()
LBar.Append() #For 1St UOM Barcode
LBar.FindField("Barcode").AsString = "123456"
LBar.FindField("UOM").AsString = "PCS"
LBar.Post()
LBar.Append() #For 2nd UOM Barcode
LBar.FindField("Barcode").AsString = "7890123"
LBar.FindField("UOM").AsString = "CTN"
LBar.Post()
else:
BizObject.Params.Find("Dockey").Value = lDocKey
BizObject.Open()
BizObject.Edit()
lMain.FindField("DESCRIPTION").value = "FAIRY TAIL WIZARD"
while lDtl.RecordCount > 0:
lDtl.First()
lDtl.Delete()
#Insert back with new Price
lDtl.Append() #For 1St UOM
lDtl.FindField("UOM").AsString = "PCS" #Make sure this always same as b4 delete data
lDtl.FindField("Rate").AsFloat = 1 #Make sure this always same as b4 delete data
lDtl.FindField("RefCost").AsFloat = 22.3
lDtl.FindField("RefPrice").AsFloat = 52
lDtl.Post();
lDtl.Append() #For 2nd UOM
lDtl.FindField("UOM").AsString = "CTN" #Make sure this always same as b4 delete data
lDtl.FindField("Rate").AsFloat = 12 #Make sure this always same as b4 delete data
lDtl.FindField("RefCost").AsFloat = 102.5
lDtl.FindField("RefPrice").AsFloat = 260.45
lDtl.Post()
while LBar.RecordCount > 0:
LBar.First()
LBar.Delete()
LBar.Append() #For 1St UOM Barcode
LBar.FindField("Barcode").AsString = "888888"
LBar.FindField("UOM").AsString = "PCS"
LBar.Post()
LBar.Append() #For 2nd UOM Barcode
LBar.FindField("Barcode").AsString = "999999"
LBar.FindField("UOM").AsString = "CTN"
LBar.Post()
try:
BizObject.Save()
except Exception as e:
print("Oops!", e)
BizObject.Close()
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Delete Stock Item
Delete Stock Item Script |
---|
#Updated 19 Oct 2019
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0104.FDB") #Database Name
def PostData():
BizObject = ComServer.BizObjects.Find("ST_ITEM")
lDocKey = BizObject.FindKeyByRef("CODE", "ANT")
if lDocKey is None:
print ("SKU Not Found...")
else:
try:
BizObject.Params.Find("Dockey").Value = lDocKey
BizObject.Open()
BizObject.Delete()
except Exception as e:
print("Oops!", e)
BizObject.Close()
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Add & Update AR_Customer
Add & Update AR_Customer Script |
---|
#Updated 26 Jul 2022
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0072.FDB") #Database Name
def PostData():
BizObject = ComServer.BizObjects.Find("AR_CUSTOMER")
lMain = BizObject.DataSets.Find("MainDataSet")
lDtl = BizObject.DataSets.Find("cdsBranch")
lDocKey = BizObject.FindKeyByRef("CODE", "FAIRY")
if lDocKey is None:
BizObject.New()
lMain.FindField("CODE").value = "FAIRY"
lMain.FindField("CompanyName").value = "FAIRY TAIL"
lDtl.Edit() #For 1St Branch
lDtl.FindField("BranchName").AsString = "BILLING"
lDtl.FindField("Address1").AsString = "Address1"
lDtl.FindField("Address2").AsString = "Address2"
lDtl.FindField("Address3").AsString = "Address3"
lDtl.FindField("Address4").AsString = "Address4"
lDtl.FindField("Attention").AsString = "Attention"
lDtl.FindField("Phone1").AsString = "Phone1"
lDtl.FindField("Fax1").AsString = "Fax1"
lDtl.FindField("Email").AsString = "EmailAddress"
lDtl.Post()
lDtl.Append() #For 2nd Branch
lDtl.FindField("BranchName").AsString = "Branch1"
lDtl.FindField("Address1").AsString = "DAddress1"
lDtl.FindField("Address2").AsString = "DAddress2"
lDtl.FindField("Address3").AsString = "DAddress3"
lDtl.FindField("Address4").AsString = "DAddress4"
lDtl.FindField("Attention").AsString = "DAttention"
lDtl.FindField("Phone1").AsString = "DPhone1"
lDtl.FindField("Fax1").AsString = "DFax1"
lDtl.FindField("Email").AsString = "DEmailAddress"
lDtl.Post()
else:
BizObject.Params.Find("Code").Value = "FAIRY"
BizObject.Open()
BizObject.Edit()
lMain.FindField("CompanyName").value = "FAIRY TAIL WIZARD"
while lDtl.RecordCount > 0:
lDtl.First()
lDtl.Delete()
#Insert back with new Information
lDtl.Append() #For 1St Branch
lDtl.FindField("BranchType").AsString = "B"
lDtl.FindField("BranchName").AsString = "BILLING" #Make sure this always same as b4 delete data
lDtl.FindField("Address1").AsString = "New Address1"
lDtl.FindField("Address2").AsString = "New Address2"
lDtl.FindField("Address3").AsString = "New Address3"
lDtl.FindField("Address4").AsString = "New Address4"
lDtl.FindField("Attention").AsString = "New Attention"
lDtl.FindField("Phone1").AsString = "New Phone1"
lDtl.FindField("Fax1").AsString = "New Fax1"
lDtl.FindField("Email").AsString = "New EmailAddress"
lDtl.Post()
lDtl.Append() #For 2nd Branch
lDtl.FindField("BranchName").AsString = "Branch1" #Make sure this always same as b4 delete data
lDtl.FindField("Address1").AsString = "New DAddress1"
lDtl.FindField("Address2").AsString = "New DAddress2"
lDtl.FindField("Address3").AsString = "New DAddress3"
lDtl.FindField("Address4").AsString = "New DAddress4"
lDtl.FindField("Attention").AsString = "New DAttention"
lDtl.FindField("Phone1").AsString = "New DPhone1"
lDtl.FindField("Fax1").AsString = "New DFax1"
lDtl.FindField("Email").AsString = "New DEmailAddress"
lDtl.Post()
try:
BizObject.Save()
except Exception as e:
print("Oops!", e)
BizObject.Close()
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Edit SL_CS
Edit SL_CS Script |
---|
#Updated 29 May 2020
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0091.FDB") #Database Name
def PostData():
lSQL = "SELECT Dockey FROM SL_CS "
lSQL = lSQL + "WHERE DocNo='--CS Test--' "
lSQL = lSQL + " AND Code='300-K0001' "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
BizObject = ComServer.BizObjects.Find("SL_CS")
lMain = BizObject.DataSets.Find("MainDataSet")
lDtl = BizObject.DataSets.Find("cdsDocDetail")
if lDataSet.RecordCount > 0:
lDataSet.First()
BizObject.Params.Find("DocKey").Value = lDataSet.FindField("DocKey").AsString
BizObject.Open()
BizObject.Edit()
lMain.Edit()
lMain.FindField("Description").AsString = "Edited Description 123"
#Delete all Detail
while lDtl.RecordCount != 0:
lDtl.First()
lDtl.Delete()
#Append Detail
lDtl.Append()
lDtl.FindField("DtlKey").value = -1
lDtl.FindField("Account").value = "500-0000"
lDtl.FindField("Description").value = "Item A"
lDtl.FindField("Tax").value = ""
lDtl.FindField("TaxInclusive").value = 0
lDtl.FindField("Amount").value = 410.37
lDtl.FindField("TaxAmt").value = 0
lDtl.Post()
try:
BizObject.Save()
except Exception as e:
print("Oops!", e)
BizObject.Close()
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-GL Ledger
GL Ledger Script |
---|
#Updated 17 Aug 2020
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
lSQL = "SELECT A.CODE, B.DESCRIPTION ACCDESC, A.DOCDATE, A.POSTDATE, A.DESCRIPTION, A.DESCRIPTION2, "
lSQL = lSQL + "A.LOCALDR, A.LOCALCR, A.REF1, A.REF2 FROM GL_TRANS A "
lSQL = lSQL + "INNER JOIN GL_ACC B ON (A.CODE=B.CODE) "
lSQL = lSQL + "WHERE A.CANCELLED='F' "
lSQL = lSQL + "AND A.POSTDATE BETWEEN '01 JAN 2018' "
lSQL = lSQL + "AND '31 DEC 2018' "
lSQL = lSQL + "AND A.CODE='500-2000' "
lSQL = lSQL + "ORDER BY A.CODE, A.POSTDATE "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet.RecordCount > 0:
while not lDataSet.eof:
print(lDataSet.FindField('CODE').AsString)
print(lDataSet.FindField('ACCDESC').AsString)
print(lDataSet.FindField('Description').AsString)
print(lDataSet.FindField('REF1').AsString)
print(lDataSet.FindField('LOCALDR').AsString)
print(lDataSet.FindField('LOCALCR').AsString)
print("===")
lDataSet.Next()
else:
print ("Record Not Found")
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-GL Trial Balance
GL Trial Balance Script |
---|
#Updated 17 Aug 2020
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
RptObject = ComServer.RptObjects.Find('GL.TrialBalance.RO')
RptObject.Params.Find("AllProject").Value = True
RptObject.Params.Find("AllAgent").Value = True
RptObject.Params.Find("AllArea").Value = True
RptObject.Params.Find("LedgerType").Value = "G" #G = Legder, S = Debtor, P = Supplier
#RptObject.Params.Find("ProjectData").Value = #Not use if AllArea is true
RptObject.Params.Find("ShowZeroBalance").Value = False
RptObject.Params.Find("SortBy").Value = "PostDate;DocNo"
RptObject.Params.Find("UseDescription2").Value = False
lDateFrom = datetime.datetime(2018, 1, 1, 13, 0)
lDateFrom.strftime('%m/%d/%Y')
lDateTo = datetime.datetime(2018, 12, 31, 13, 0)
lDateTo.strftime('%m/%d/%Y')
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
#RptObject.Params.Find("AgentData").Value = 'Not use if AllAgent is true
#RptObject.Params.Find("AreaData").Value = 'Not use if AllArea is true
RptObject.Params.Find("SortBy").Value = "Code;Description"
RptObject.CalculateReport()
lDataSet = RptObject.DataSets.Find("cdsMain")
lDataSet2 = RptObject.DataSets.Find("cdsGLAccount") #For Account List
if lDataSet.RecordCount > 0:
while not lDataSet.eof:
print("Month To Date")
print(lDataSet.FindField('CODE').AsString)
print(lDataSet.FindField('MTDDR').AsString)
print(lDataSet.FindField('MTDCR').AsString)
print("Year To Date")
print(lDataSet.FindField('CODE').AsString)
print(lDataSet.FindField('YTDDR').AsString)
print(lDataSet.FindField('YTDCR').AsString)
print("===")
lDataSet.Next()
else:
print ("Record Not Found")
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Get AR_Customer List
Get AR_Customer List Script |
---|
#Updated 25 Aug 2020
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0112.FDB") #Database Name
def GetData():
lSQL = "SELECT A.*, B.BRANCHTYPE, B.BRANCHNAME, B.ADDRESS1, B.ADDRESS2, B.ADDRESS3, B.ADDRESS4, "
lSQL = lSQL + "B.GEOLAT, B.GEOLONG, B.ATTENTION, B.PHONE1, B.PHONE2, B.MOBILE, B.FAX1, B.FAX2, B.EMAIL "
lSQL = lSQL + "FROM AR_CUSTOMER A "
lSQL = lSQL + "INNER JOIN AR_CUSTOMERBRANCH B ON (A.CODE=B.CODE) "
lSQL = lSQL + "WHERE A.STATUS='A' "
lSQL = lSQL + "ORDER BY A.CODE, B.BRANCHTYPE "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
while not lDataSet.eof:
fc = lDataSet.Fields.Count
for x in range(fc):
fn = lDataSet.Fields.Items(x).FieldName
fv = lDataSet.FindField(fn).AsString
lresult = "Index : "+ str(x) + " FieldName : " + fn + " Value : " + fv
print (lresult)
print("====")
lDataSet.Next()
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Add & Edit Terms
Add & Edit Terms Script |
---|
#Updated 12 Oct 2020
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0121.FDB") #Database Name
def PostData():
BizObject = ComServer.BizObjects.Find("Terms")
lMain = BizObject.DataSets.Find("MainDataSet")
lDocKey = BizObject.FindKeyByRef("CODE", "90 Days")
if lDocKey is None:
BizObject.New()
lMain.FindField("CODE").value = "90 Days"
lMain.FindField("DESCRIPTION").value = "Net 90 Days"
lMain.FindField("TermDay").value = 90
lMain.FindField("ISACTIVE").value = "T"
else:
BizObject.Params.Find("CODE").Value = lDocKey
BizObject.Open()
BizObject.Edit()
lMain.FindField("DESCRIPTION").value = "Net 90 Days - Edited"
lMain.FindField("ISACTIVE").value = "F"
try:
BizObject.Save()
except Exception as e:
print("Oops!", e)
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Add & Edit Company Category
Add & Edit Company Category Script |
---|
#Updated 12 Oct 2020
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0121.FDB") #Database Name
def PostData():
BizObject = ComServer.BizObjects.Find("COMPANYCATEGORY")
lMain = BizObject.DataSets.Find("MainDataSet")
lDocKey = BizObject.FindKeyByRef("CODE", "FAIRY")
if lDocKey is None:
BizObject.New()
lMain.FindField("CODE").value = "FAIRY"
lMain.FindField("DESCRIPTION").value = "FAIRY TAIL"
lMain.FindField("ISACTIVE").value = "T"
else:
BizObject.Params.Find("CODE").Value = lDocKey
BizObject.Open()
BizObject.Edit()
lMain.FindField("DESCRIPTION").value = "FAIRY TAIL WIZARD"
lMain.FindField("ISACTIVE").value = "F"
try:
BizObject.Save()
except Exception as e:
print("Oops!", e)
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Add & Edit ST_AJ
Add & Edit ST_SJ Script |
---|
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0100.FDB") #Database Name
def PostData():
lSQL = "SELECT Dockey FROM ST_AJ "
lSQL = lSQL + "WHERE DocNo='--AJ Test--' "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
BizObject = ComServer.BizObjects.Find("ST_AJ")
lMain = BizObject.DataSets.Find("MainDataSet")
lDtl = BizObject.DataSets.Find("cdsDocDetail")
lDate = datetime.datetime(2020, 2, 22, 13, 0)
lDate.strftime('%m/%d/%Y')
if lDataSet.RecordCount > 0:
lDataSet.First()
BizObject.Params.Find("DocKey").Value = lDataSet.FindField("DocKey").AsString
BizObject.Open()
BizObject.Edit()
lMain.FindField("Description").AsString = "Edited Description 123"
while lDtl.RecordCount != 0:
lDtl.First()
lDtl.Delete()
#Append Detail
lDtl.Append()
lDtl.FindField("DtlKey").value = -1
lDtl.FindField("Seq").value = 1
lDtl.FindField("ItemCode").value = "E-BAT"
lDtl.FindField("Description").value = "ERICSSON BATTERY"
lDtl.FindField("Qty").value = 2
lDtl.FindField("UOM").value = "UNIT"
lDtl.Post()
else:
BizObject.New()
lMain.FindField("DocKey").value = -1
lMain.FindField("DocNo").value = "--AJ Test--"
lMain.FindField("DocDate").value = lDate
lMain.FindField("PostDate").value = lDate
lMain.FindField("Description").value = "Stock Adjustment"
#Insert Data - Detail - Increase Stock Qty
lDtl.Append()
lDtl.FindField("DtlKey").value = -1
lDtl.FindField("Seq").value = 1
lDtl.FindField("ItemCode").value = "ANT"
lDtl.FindField("Description").value = "ANTENA"
lDtl.FindField("Qty").value = 2
lDtl.FindField("UOM").value = "BOX"
lDtl.Post()
#Insert Data - Detail - Reduce Stock Qty
lDtl.Append()
lDtl.FindField("DtlKey").value = -1
lDtl.FindField("Seq").value = 1
lDtl.FindField("ItemCode").value = "N-CHARGER"
lDtl.FindField("Description").value = "NOKIA CHARGER"
lDtl.FindField("Qty").value = -5
lDtl.FindField("UOM").value = "UNIT"
lDtl.Post()
try:
BizObject.Save()
except Exception as e:
print("Oops!", e)
BizObject.Close()
print ("Done")
try:
CheckLogin()
PostData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Sales.PriceHistory.RO
Sales.PriceHistory.RO Script |
---|
#Updated 01 Apr 2021
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
RptObject = ComServer.RptObjects.Find('Sales.PriceHistory.RO')
#RptObject.Params.Find("AgentData").Value = #Not use if AllAgent is true
#RptObject.Params.Find("TaxData").Value = #Not use if AllTax is true
#RptObject.Params.Find("CompanyCategoryData").Value = #Not use if AllCompanyCategory is true
RptObject.Params.Find("AllAgent").Value = True
RptObject.Params.Find("AllTax").Value = True
RptObject.Params.Find("AllShipper").Value = True
RptObject.Params.Find("AllArea").Value = True
RptObject.Params.Find("AllCompany").Value = True
RptObject.Params.Find("AllDocProject").Value = True
RptObject.Params.Find("AllItem").Value = False
RptObject.Params.Find("AllItemProject").Value = True
RptObject.Params.Find("AllLocation").Value = True
RptObject.Params.Find("AllCompanyCategory").Value = True
RptObject.Params.Find("AllBatch").Value = True
RptObject.Params.Find("AllTariff").Value = True
RptObject.Params.Find("AllStockGroup").Value = True
#RptObject.Params.Find("AreaData").Value = #Not use if AllArea is true
#RptObject.Params.Find("CategoryData").Value = #Not use if AllTax is true
#RptObject.Params.Find("CategoryTpl").Value = #Not use if AllTax is true
#RptObject.Params.Find("CompanyData").Value = #Not use if AllTax is true
lDateFrom = datetime.datetime(2021, 3, 1, 13, 0)
lDateFrom.strftime('%m/%d/%Y')
lDateTo = datetime.datetime(2021, 3, 31, 13, 0)
lDateTo.strftime('%m/%d/%Y')
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
RptObject.Params.Find("DoCN_SC").Value = False #Include Credit Note
#RptObject.Params.Find("DocProjectData").Value = #Not use if AllDocProject is true
RptObject.Params.Find("DoCS_CP").Value = True #Include Cash Sales
RptObject.Params.Find("DoDN_SD").Value = False #Include Debit Note
RptObject.Params.Find("DoDO_GR").Value = False #Include Delivery Order
RptObject.Params.Find("DoED_EG").Value = False #Include Extra Delivery Order
RptObject.Params.Find("DoIV_PI").Value = False #Include Invoice
RptObject.Params.Find("DoQT_PQ").Value = False #Include Quotation
RptObject.Params.Find("DoSO_PO").Value = False #Include Sales Order
#RptObject.Params.Find("ItemCode").Value = #For Internal use only
RptObject.Params.Find("ItemData").Value = "ANT" + "\r" + "BOM"
#RptObject.Params.Find("ItemProjectData").Value = #Not use if AllItemProject is true
#RptObject.Params.Find("LocationData").Value = #Not use if AllLocation is true
#RptObject.Params.Find("MaxRecords").Value = #Not use if SelectMaxRecords is False
RptObject.Params.Find("SelectDate").Value = True
RptObject.Params.Find("SelectMaxRecords").Value = False
#RptObject.Params.Find("GroupBy").Value = #Only use if wanted to grouping
RptObject.Params.Find("HasCategory").Value = False
#RptObject.Params.Find("ItemCategoryData").Value = #Not use if HasCategory is False
#RptObject.Params.Find("BatchData").Value = #Not use if AllBatch is true
#RptObject.Params.Find("TariffData").Value = #Not use if AllTariff is true
#RptObject.Params.Find("ShipperData").Value = #Not use if AllShipper is true
RptObject.Params.Find("SortBy").Value = "DocDate;DocNo"
#RptObject.Params.Find("StockGroupData").Value = #Not use if AllStockGroup is true
#RptObject.Params.Find("SummaryInterval
RptObject.CalculateReport()
lDataSet = RptObject.DataSets.Find("cdsMain")
if lDataSet.RecordCount > 0:
while not lDataSet.eof:
for idx in range(lDataSet.Fields.Count):
LFld = lDataSet.Fields.Items(idx).FieldName
print(LFld + " :"+ lDataSet.FindField(LFld).AsString)
print("===")
lDataSet.Next()
else:
print ("Record Not Found")
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-Get Edited Sales Invoice List
Get Edited Sales Invoice List Script |
---|
#Updated 19 Jul 2021
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
lSQL = "SELECT REFERENCE FROM AUDIT "
lSQL = lSQL + "WHERE REF LIKE 'SL_IV%' "
lSQL = lSQL + "AND UPDATEKIND='E' "
lSQL = lSQL + "AND CAST(DOCDATETIME AS DATE) = '10 JUN 2021' "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet.RecordCount > 0:
while not lDataSet.eof:
DocNo = lDataSet.FindField('REFERENCE').AsString
DocNo = DocNo.split(',')[0]
DocNo = DocNo.split(':')[1]
print(DocNo)
print("===")
lDataSet.Next()
else:
print ("Record Not Found")
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
Example-SO to DO
Get Outstanding SO by SO Number transfer to DO Script |
---|
#Updated 29 Nov 2021
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("FAUNG", "ADMIN", #UserName, Password
"D:\\Happy\\DB\\Default.DCF",
# "C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0011.FDB") #Database Name
def PostData():
lSQL = "SELECT Dockey, DocNo,Code, CompanyName, DocProject, Seq, DtlKey, ItemCode, Qty, UOM, UnitPrice, Disc, Amount, DtlProject, "
lSQL = lSQL + "Tax, TaxRate, TaxInclusive, TaxAmt, COALESCE(Sum(XFQty),0) XFQty, COALESCE((Qty-Sum(XFQty)), Qty) OSQty FROM ( "
lSQL = lSQL + "SELECT A.Dockey, A.DocNo, A.Code, A.CompanyName, A.Project DocProject, "
lSQL = lSQL + "B.DtlKey, B.Seq, B.ItemCode, B.Qty, B.UOM, B.UnitPrice, B.Disc, B.Amount, "
lSQL = lSQL + "B.Tax, B.TaxRate, B.TaxInclusive, B.TaxAmt, B.Project DtlProject, C.Qty XFQty FROM SL_SO A "
lSQL = lSQL + "INNER JOIN SL_SODTL B ON (A.DOCKEY=B.DOCKEY) "
lSQL = lSQL + "LEFT JOIN ST_XTRANS C ON (A.DOCKEY=C.FROMDOCKEY AND B.DTLKEY=C.FROMDTLKEY "
lSQL = lSQL + " AND C.FROMDOCTYPE='SO') "
lSQL = lSQL + "WHERE A.DOCNO='SO-00044') "
lSQL = lSQL + "GROUP BY Dockey, DocNo, Code, CompanyName, DocProject, Seq, Dtlkey, ItemCode, Qty, UOM, UnitPrice, Disc, "
lSQL = lSQL +" Amount, DtlProject, Tax, TaxRate, TaxInclusive, TaxAmt "
lSQL = lSQL + "HAVING COALESCE((Qty-Sum(XFQty)), Qty) >0 "
lDataSet = ComServer.DBManager.NewDataSet(lSQL) #Get Outstanding Qty for each itemcode
#print("==="+ str(lDataSet.RecordCount))
if lDataSet.RecordCount > 0:
BizObject = ComServer.BizObjects.Find("SL_DO")
lMain = BizObject.DataSets.Find("MainDataSet") #lMain contains master data
lDetail = BizObject.DataSets.Find("cdsDocDetail") #lDetail contains detail data
lDate = datetime.datetime(2021, 11, 29, 13, 0)
lDate.strftime('%m/%d/%Y')
BizObject.New();
lMain.FindField("DocKey").value = -1
lMain.FindField("DocNo").AsString = "--DO Test--"
lMain.FindField("DocDate").value = lDate
lMain.FindField("PostDate").value = lDate
lMain.FindField("Code").AsString = lDataSet.FindField("Code").AsString #Customer Account
lMain.FindField("CompanyName").AsString = lDataSet.FindField("CompanyName").AsString
#lMain.FindField("Address1").AsString = "" #Optional
#lMain.FindField("Address2").AsString = "" #Optional
#lMain.FindField("Address3").AsString = "" #Optional
#lMain.FindField("Address4").AsString = "" #Optional
#lMain.FindField("Phone1").AsString = "" #Optional
lMain.FindField("Project").AsString = lDataSet.FindField("DocProject").AsString
lMain.FindField("Description").AsString = "Delivery Order"
#Insert Data - Detail
while not lDataSet.eof:
lDetail.Append()
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("Seq").value = lDataSet.FindField("Seq").Value
lDetail.FindField("ItemCode").AsString = lDataSet.FindField("ItemCode").AsString
lDetail.FindField("UOM").AsString = lDataSet.FindField("UOM").AsString
lDetail.FindField("Qty").AsFloat = lDataSet.FindField("OSQty").AsFloat # Transfer all balance Qty
lDetail.FindField("DISC").AsString = lDataSet.FindField("DISC").AsString
lDetail.FindField("Tax").AsString = lDataSet.FindField("Tax").AsString
lDetail.FindField("TaxRate").AsString = lDataSet.FindField("TaxRate").AsString
lDetail.FindField("TaxInclusive").value = lDataSet.FindField("TaxInclusive").value
lDetail.FindField("UnitPrice").AsFloat = lDataSet.FindField("UnitPrice").AsFloat
lDetail.FindField("Amount").AsFloat = lDataSet.FindField("Amount").AsFloat
lDetail.FindField("TaxAmt").AsFloat = lDataSet.FindField("TaxAmt").AsFloat
lDetail.FindField("Project").AsString = lDataSet.FindField("DtlProject").AsString
lDetail.FindField("FromDocType").AsString = "SO"; #From Document Type
lDetail.FindField("FromDockey").AsFloat = lDataSet.FindField("Dockey").AsFloat;
lDetail.FindField("FromDtlkey").AsFloat = lDataSet.FindField("DtlKey").AsFloat;
lDetail.Post()
lDataSet.Next()
BizObject.Save()
BizObject.Close()
else :
print ("Record Not Found")
try:
CheckLogin()
print ("Posting SO to DO")
PostData()
print ("Done")
finally:
ComServer.Logout()
ComServer = None
|
Example-Example-Stock Month End - Weighted Average
Example-Stock Month End - Weighted Average Script |
---|
#Updated 30 Nov 2021
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("FAUNG", "ADMIN", #UserName, Password
"D:\\Happy\\DB\\Default.DCF",
# "C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0011.FDB") #Database Name
def GetData():
#Accuracy : 90% - Due to the figure is base on last run Costing in SQL Accounting
lSQL = "SELECT A.ItemCode, A.Location, A.Batch, MAX(B.Seq) AS Seq, 2 AS CostingMethod "
lSQL = lSQL + "FROM ST_TR A INNER JOIN ST_TR_WMA B ON (A.TRANSNO=B.TRANSNO) "
lSQL = lSQL + "WHERE A.PostDate<='31 Jul 2020' "
lSQL = lSQL + "GROUP BY A.ItemCode, A.Location, A.Batch "
lDataSet1 = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet1.RecordCount > 0:
lDataSet1.First()
while not lDataSet1.eof:
lSQL = "SELECT A.TRANSNO, A.ItemCode, A.Location, A.Batch, B.UTDQty, B.UTDCost FROM ST_TR A "
lSQL = lSQL + "INNER JOIN ST_TR_WMA B ON (A.TRANSNO=B.TRANSNO) "
lSQL = lSQL + "WHERE A.ITEMCODE= '" + lDataSet1.FindField("ItemCode").AsString + "' "
lSQL = lSQL + "AND B.SEQ= " + lDataSet1.FindField("Seq").AsString
lSQL = lSQL + " AND A.LOCATION='" + lDataSet1.FindField("Location").AsString + "' "
lSQL = lSQL + " AND A.BATCH='" + lDataSet1.FindField("Batch").AsString + "' "
lSQL = lSQL + "AND B.UTDQty<>0 "
lSQL = lSQL + "ORDER BY A.ItemCode, A.Location, A.Batch "
#print(lSQL)
lDataSet2 = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet2.RecordCount > 0:
lDataSet2.First()
print("ITEMCODE = "+lDataSet2.FindField("ITEMCODE").AsString)
print("LOCATION = "+lDataSet2.FindField("LOCATION").AsString)
print("BATCH = "+lDataSet2.FindField("BATCH").AsString)
print("UTDQTY = "+lDataSet2.FindField("UTDQTY").AsString)
print("UTDCOST = "+lDataSet2.FindField("UTDCOST").AsString)
print("=====")
else :
print ("Detail Record Not Found")
lDataSet1.Next()
else :
print ("Record Not Found")
try:
CheckLogin()
print ("Month End - WA")
GetData()
print ("Done")
finally:
ComServer.Logout()
ComServer = None
|
Example-Example-Stock Month End - FIFO
Example-Stock Month End - FIFO Script |
---|
#Updated 01 Dec 2021
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("FAUNG", "ADMIN", #UserName, Password
"D:\\Happy\\DB\\Default.DCF",
# "C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0011.FDB") #Database Name
def GetData():
#Accuracy : 90% - Due to the figure is base on last run Costing in SQL Accounting
lSQL = "SELECT A.ItemCode, A.Location, A.Batch, MAX(B.Seq) AS Seq, 1 AS CostingMethod "
lSQL = lSQL + "FROM ST_TR A INNER JOIN ST_TR_FIFO B ON (A.TRANSNO=B.TRANSNO) "
lSQL = lSQL + "WHERE A.PostDate<='31 Jul 2020' "
lSQL = lSQL + "AND A.ItemCode ='ANT' "
lSQL = lSQL + "GROUP BY A.ItemCode, A.Location, A.Batch "
lDataSet1 = ComServer.DBManager.NewDataSet(lSQL)
Seq = ""
if lDataSet1.RecordCount > 0:
lDataSet1.First()
while not lDataSet1.eof:
Seq = Seq + lDataSet1.FindField("SEQ").AsString + ", "
lDataSet1.Next()
Seq = Seq[:-2] #Delete last 2 character
#print(Seq)
if Seq != "": #not empty
lSQL = "SELECT A.TRANSNO, A.ItemCode, A.Location, A.Batch, B.QTY, B.COST FROM ST_TR A "
lSQL = lSQL + "INNER JOIN ST_TR_FIFO B ON (A.TRANSNO=B.TRANSNO) "
lSQL = lSQL + "WHERE B.COSTTYPE='U' "
lSQL = lSQL + "AND A.PostDate<='31 Jul 2020' "
lSQL = lSQL + "AND B.SEQ IN (" + Seq + ")"
lSQL = lSQL + " AND A.ITEMCODE ='ANT' "
lSQL = lSQL + "AND B.Qty<>0 "
lSQL = lSQL + "ORDER BY A.ItemCode, A.Location, A.BATCH, A.TRANSNO "
lDataSet2 = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet2.RecordCount > 0: #Total Qty & Cost
lDataSet2.First()
while not lDataSet2.eof:
print(" ")
print("TRANSNO = "+lDataSet2.FindField("TRANSNO").AsString)
print("ITEMCODE = "+lDataSet2.FindField("ITEMCODE").AsString)
print("LOCATION = "+lDataSet2.FindField("LOCATION").AsString)
print("BATCH = "+lDataSet2.FindField("BATCH").AsString)
print("QTY = "+lDataSet2.FindField("QTY").AsString)
print("COST = "+lDataSet2.FindField("COST").AsString)
print("=====")
print(" ")
print("===Detail Cost===")
lSQL = "SELECT TRANSNO, ITEMCODE, COSTSEQ, QTY, COST FROM ST_TR_FIFO "
lSQL = lSQL + "WHERE ITEMCODE = '" + lDataSet2.FindField("ITEMCODE").AsString
lSQL = lSQL + "' AND COSTTYPE='B' "
lSQL = lSQL + "AND TRANSNO="+lDataSet2.FindField("TRANSNO").AsString
lSQL = lSQL + " ORDER BY COSTSEQ"
lDataSet3 = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet3.RecordCount > 0: #Detail Cost
lDataSet3.First()
while not lDataSet3.eof:
print("TRANSNO = "+lDataSet3.FindField("TRANSNO").AsString)
print("ITEMCODE = "+lDataSet3.FindField("ITEMCODE").AsString)
print("COSTSEQ = "+lDataSet3.FindField("COSTSEQ").AsString)
print("QTY = "+lDataSet3.FindField("QTY").AsString)
print("COST = "+lDataSet3.FindField("COST").AsString)
print("D=====")
lDataSet3.Next()
lDataSet2.Next()
else :
print("Detail Record Not Found")
else :
print ("Record Not Found")
try:
CheckLogin()
print ("Month End - FIFO")
GetData()
print ("Done")
finally:
ComServer.Logout()
ComServer = None
|
Example-Example-Login 2 Database
Example-Login 2 Database |
---|
#Updated 17 Mar 2022
import win32com.client
import datetime
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin1():
ComServer = None
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("FAUNG", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0024.FDB") #Database Name
def CheckLogin2():
ComServer = None
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("FAUNG", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0015.FDB") #Database Name
def GetData():
lSQL = "SELECT COUNT(*) Nos FROM AR_CUSTOMER A WHERE A.CODE LIKE '%300%' "
try:
lDataSet1 = ComServer.DBManager.NewDataSet(lSQL)
Seq = 0
if lDataSet1.RecordCount > 0:
lDataSet1.First()
Seq = lDataSet1.FindField("Nos").Value
print(Seq)
else :
print ("Record Not Found")
finally:
lDataSet1 = None
try:
print ("Login 1st DB")
CheckLogin1()
GetData()
print ("Done 1st DB")
print ("Login 2nd DB")
CheckLogin2()
GetData()
print ("Done 2nd DB")
finally:
ComServer.Logout()
ComServer = None
print ("Done...")
|
Example-Example-Get Stock Qty Balance
Example-Get Stock Qty Balance |
---|
#Updated 08 Jul 2022
import win32com.client
ComServer = win32com.client.Dispatch("SQLAcc.BizApp")
def CheckLogin():
B = ComServer.IsLogin
if B == True:
ComServer.Logout()
ComServer.Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0081.FDB") #Database Name
def GetData():
lSQL = "SELECT ItemCode, Location, Batch, Sum(Qty) Qty FROM ST_TR "
lSQL = lSQL + "WHERE PostDate<='31 Dec 2019' "
lSQL = lSQL + "AND ITEMCODE ='ANT' "
lSQL = lSQL + "GROUP BY ItemCode, Location, Batch "
lDataSet = ComServer.DBManager.NewDataSet(lSQL)
if lDataSet.RecordCount > 0:
while not lDataSet.eof:
print(lDataSet.FindField('ItemCode').AsString)
print(lDataSet.FindField('Location').AsString)
print(lDataSet.FindField('Batch').AsString)
print(lDataSet.FindField('Qty').AsString)
print("===")
lDataSet.Next()
else:
print ("Record Not Found")
try:
CheckLogin()
GetData()
finally:
ComServer.Logout()
ComServer = None
|
PHP
- Add this in ..\xampp\php\php.ini
[PHP_COM_DOTNET] extension=php_com_dotnet.dll
Example-Get Agent
Get Agent Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 01 May 2020<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0082.FDB"); #Database Name
}
function GetData()
{
global $ComServer;
$lSQL = "SELECT * FROM AGENT
WHERE CODE='HALIM'";
$lDataSet = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet->RecordCount > 0)
{
echo "Result : ";
echo $lDataSet->FindField('Description')->AsString() . "<br>";
}
else
{
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
GetData();
echo date("d M Y h:i:s A") . " - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Get Agent"/>
</form>
</body>
</html>
|
Example-Add & Edit Agent
Add & Edit Agent Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 01 May 2020<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0082.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("Agent");
$lMain = $BizObject->DataSets->Find("MainDataSet");
$lDocKey = $BizObject->FindKeyByRef("CODE", "FAIRY");
if ($lDocKey == null){
$BizObject->New();
$lMain->FindField("CODE")->value = "FAIRY";
$lMain->FindField("DESCRIPTION")->value = "FAIRY TAIL";
} else{
$BizObject->Params->Find("CODE")->Value = $lDocKey;
$BizObject->Open();
$BizObject->Edit();
$lMain->FindField("DESCRIPTION")->value = "FAIRY TAIL WIZARD";
}
try{
$BizObject->Save();
echo "Posting Done <br>";
}catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
PostData();
echo date("d M Y h:i:s A") . " - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Add/Edit Agent"/>
</form>
</body>
</html>
|
Example-Delete Agent
Delete Agent Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 01 May 2020<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0082.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("Agent");
$lMain = $BizObject->DataSets->Find("MainDataSet");
$lDocKey = $BizObject->FindKeyByRef("CODE", "FAIRY");
if ($lDocKey == null){
echo "Record Not Found";
} else{
$BizObject->Params->Find("CODE")->Value = $lDocKey;
$BizObject->Open();
$BizObject->Delete();
echo "Delete Done<br>";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
PostData();
echo date("d M Y h:i:s A") . " - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Delete Agent"/>
</form>
</body>
</html>
|
Example-Complete Post
SL_CS, AR_PM, SL_CN & AR_CN Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 01 May 2020<br>";
#This will doing following posting
#01. Cash Sales - SL_CS
#02. Sales Credit Note - SL_CN
#03. Customer Payment With Knock off - AR_PM
#04. Edit Credit Note Posted in Step 02 & Knock Off - AR_CN
#05. Customer Refund to Knock off Credit Note - AR_CF
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0082.FDB"); #Database Name
}
function PostDataCS(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("SL_CS");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--CS Test--";
$lMain->FindField("DocDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("Code")->AsString = "300-C0001"; #Customer Account
$lMain->FindField("CompanyName")->AsString = "Cash Sales";
$lMain->FindField("Address1")->AsString = ""; #Optional
$lMain->FindField("Address2")->AsString = ""; #Optional
$lMain->FindField("Address3")->AsString = ""; #Optional
$lMain->FindField("Address4")->AsString = ""; #Optional
$lMain->FindField("Phone1")->AsString = ""; #Optional
$lMain->FindField("Description")->AsString = "Sales";
#Insert Data - Detail
#For Tax Inclusive = True with override Tax Amount
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 1;
$lDetail->FindField("Account")->AsString = "500-000"; #Sales Account
$lDetail->FindField("Description")->AsString = "Sales Item A";
$txt = <<<EOT
Item A Line 1
Item A Line 2
EOT;
$lDetail->FindField("Description3")->AsString = $txt;
$lDetail->FindField("Qty")->AsFloat = 1;
$lDetail->FindField("Tax")->AsString = "SV";
$lDetail->FindField("TaxRate")->AsString = "6%";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = 435;
$lDetail->FindField("Amount")->AsFloat = 410.37; #Exclding GST Amt
$lDetail->FindField("TaxAmt")->AsFloat = 24.63;
$lDetail->DisableControls();
$lDetail->FindField("TaxInclusive")->value = 1;
$lDetail->EnableControls();
$lDetail->Post();
#For Tax Inclusive = False with override Tax Amount
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 2;
$lDetail->FindField("Account")->AsString = "500-000";
$lDetail->FindField("Description")->AsString = "Sales Item B";
$lDetail->FindField("Qty")->AsFloat = 1;
$lDetail->FindField("Tax")->AsString = "SV";
$lDetail->FindField("TaxRate")->AsString = "6%";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = 94.43;
$lDetail->FindField("Amount")->AsFloat = 94.43;
$lDetail->FindField("TaxAmt")->AsFloat = 5.66;
$lDetail->Post();
#For With Item Code
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 3;
$lDetail->FindField("ItemCode")->AsString = "ANT";
$lDetail->FindField("Description")->AsString = "Sales Item B";
#$lDetail->FindField("Account")->AsString = "500-000"; #If you wanted override the Sales Account Code
$lDetail->FindField("UOM")->AsString = "UNIT";
$lDetail->FindField("Qty")->AsFloat = 2;
#$lDetail->FindField("DISC")->AsString = "5%+3"; #Optional(eg 5% plus 3 Discount)
$lDetail->FindField("Tax")->AsString = "SV";
$lDetail->FindField("TaxRate")->AsString = "6%";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = 100;
$lDetail->FindField("Amount")->AsFloat = 200;
$lDetail->FindField("TaxAmt")->AsFloat = 12;
$lDetail->Post();
$BizObject->Save();
$BizObject->Close();
}
function PostDataPM(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("AR_PM");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsKnockOff"); #lDetail contains detail data
$BizObject->New();
$lMain->FindField("DOCKEY")->Value = -1;
$lMain->FindField("DocNo")->AsString = "--PM Test--";
$lMain->FindField("CODE")->AsString = "300-C0001"; #Customer Account
$lMain->FindField("DocDate")->Value = "04/23/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->Value = "04/23/2020"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Payment for A/c";
$lMain->FindField("PaymentMethod")->AsString = "320-000"; #Bank or Cash Account
$lMain->FindField("ChequeNumber")->AsString = "";
$lMain->FindField("BankCharge")->AsFloat = 0;
$lMain->FindField("DocAmt")->AsFloat = 200.00;
$lMain->FindField("Cancelled")->AsString = "F";
#Knock Off IV
$V = array("IV", "--CS Test--"); #DocType, DocNo
if ($lDetail->Locate("DocType;DocNo", $V, False, False)) {
$lDetail->Edit();
$lDetail->FindField("KOAmt")->AsFloat = 147.09; #Partial Knock off
$lDetail->FindField("KnockOff")->AsString = "T";
$lDetail->Post();
}
$BizObject->Save();
$BizObject->Close();
}
function PostDataCN(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("SL_CN");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--CN Test--";
$lMain->FindField("DocDate")->value = "04/23/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "04/23/2020"; #MM/DD/YYYY
$lMain->FindField("Code")->AsString = "300-C0001";
$lMain->FindField("CompanyName")->AsString = "Cash Sales";
$lMain->FindField("Address1")->AsString = "";
$lMain->FindField("Address2")->AsString = "";
$lMain->FindField("Address3")->AsString = "";
$lMain->FindField("Address4")->AsString = "";
$lMain->FindField("Phone1")->AsString = "";
$lMain->FindField("Description")->AsString = "Sales Returned";
#For With Item Code
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("ItemCode")->AsString = "ANT";
$lDetail->FindField("Description")->AsString = "Sales Item B";
$lDetail->FindField("Description2")->AsString = "Product Spoil"; #Reason
$lDetail->FindField("Remark1")->AsString = "--CS Test--"; #Invoice No
$lDetail->FindField("Remark2")->AsString = "20 Apr 2020"; #Invoice Date
$lDetail->FindField("Qty")->AsFloat = 1;
$lDetail->FindField("Tax")->AsString = "SV";
$lDetail->FindField("TaxRate")->AsString = "6%";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = 100;
$lDetail->FindField("Amount")->AsFloat = 100;
$lDetail->FindField("TaxAmt")->AsFloat = 6;
$lDetail->Post();
$BizObject->Save();
$BizObject->Close();
}
function PostKnockIVCN(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("AR_CN");
$lMain = $BizObject->DataSets->Find("MainDataSet");
$lDetail = $BizObject->DataSets->Find("cdsKnockOff");
#Find CN Number
$lDocNo = "--CN Test--";
$lDocKey = $BizObject->FindKeyByRef("DocNo", $lDocNo);
$BizObject->Params->Find("DocKey")->AsString = $lDocKey;
if ($lDocKey != null){
$BizObject->Open();
$BizObject->Edit();
$lMain->Edit();
#Knock Off IV
$V = array("IV", "--CS Test--"); #DocType, DocNo
if ($lDetail->Locate("DocType;DocNo", $V, False, False)){
$lDetail->Edit();
$lDetail->FindField("KOAmt")->AsFloat = 100; #Partial Knock off
$lDetail->FindField("KnockOff")->AsString = "T";
$lDetail->Post();
}
$BizObject->Save();
$BizObject->Close();
}
}
function PostDataCF(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("AR_CF");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsKnockOff"); #lDetail contains detail data
$BizObject->New();
$lMain->FindField("DOCKEY")->Value = -1;
$lMain->FindField("DocNo")->AsString = "--CF Test--";
$lMain->FindField("CODE")->AsString = "300-C0001"; #Customer Account
$lMain->FindField("DocDate")->Value = "04/23/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->Value = "04/23/2020"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Payment for A/c";
$lMain->FindField("PaymentMethod")->AsString = "320-000"; #Bank or Cash Account
$lMain->FindField("ChequeNumber")->AsString = "";
$lMain->FindField("BankCharge")->AsFloat = 0;
$lMain->FindField("DocAmt")->AsFloat = 6;
$lMain->FindField("Cancelled")->AsString = "F";
#Knock Off CN
$V = array("CN", "--CN Test--"); #DocType, DocNo
if ($lDetail->Locate("DocType;DocNo", $V, False, False)) {
$lDetail->Edit();
$lDetail->FindField("KOAmt")->AsFloat = 4; #Partial Knock off
$lDetail->FindField("KnockOff")->AsString = "T";
$lDetail->Post();
}
$BizObject->Save();
$BizObject->Close();
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Posting Cash Sales<br>";
PostDataCS();
echo date("d M Y h:i:s A")." - Posting Customer Payment<br>";
PostDataPM();
echo date("d M Y h:i:s A")." - Posting Sales Credit Note<br>";
PostDataCN();
echo date("d M Y h:i:s A")." - Posting Knock Off Sales Credit Note<br>";
PostKnockIVCN();
echo date("d M Y h:i:s A")." - Posting Customer Refund<br>";
PostDataCF();
echo date("d M Y h:i:s A")." - Posting Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Complete Post"/>
</form>
</body>
</html>
|
Example-Get Invoice Next Number
Get Invoice Next Number Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 01 May 2020<br>";
#This action to Get Next Number for Customer Invoice
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF file
"ACC-0082.FDB"); #Database Name
}
function GetData(){
global $ComServer;
$lSQL = "SELECT A.*, B.NEXTNUMBER FROM SY_DOCNO A
INNER JOIN SY_DOCNO_DTL B ON (A.DOCKEY=B.PARENTKEY)
WHERE A.DOCTYPE='IV'
AND A.DESCRIPTION='Customer Invoice'
AND A.STATESET=1
";
$lDataSet = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet->RecordCount > 0) {
$lDataSet->First();
$fmt = $lDataSet->FindField('Format')->AsString();
$NextNo = $lDataSet->FindField('NEXTNUMBER')->AsFloat();
echo date("d M Y h:i:s A")." Format in SQLAcc : " . str_ireplace("d","s", $fmt)."<br>";
$fmt= str_ireplace(".","'0", $fmt);
echo date("d M Y h:i:s A")." Format in PHP : " . str_ireplace("d","s", $fmt)."<br>";
echo date("d M Y h:i:s A")." Output in PHP : " .sprintf($fmt,$NextNo)."<br>";
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
GetData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Get Doc Number"/>
</form>
</body>
</html>
|
Example-Add & Edit AR_Customer
Add & Edit AR_Customer Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 11 Jun 2020<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\\eStream\\SQLAccounting\\Share\\Default.DCF", #DCF File
"ACC-0035.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("AR_Customer");
$lMain = $BizObject->DataSets->Find("MainDataSet");
$lDtl = $BizObject->DataSets->Find("cdsBranch");
$lDocKey = $BizObject->FindKeyByRef("CODE", "FAIRY");
if ($lDocKey == null){
$BizObject->New();
$lMain->FindField("CODE")->value = "FAIRY";
$lMain->FindField("CompanyName")->value = "FAIRY TAIL";
$lDtl->Edit(); #For 1St Branch
$lDtl->FindField("BranchName")->AsString = "BILLING";
$lDtl->FindField("Address1")->AsString = "Address1";
$lDtl->FindField("Address2")->AsString = "Address2";
$lDtl->FindField("Address3")->AsString = "Address3";
$lDtl->FindField("Address4")->AsString = "Address4";
$lDtl->FindField("Attention")->AsString = "Attention";
$lDtl->FindField("Phone1")->AsString = "Phone1";
$lDtl->FindField("Fax1")->AsString = "Fax1";
$lDtl->FindField("Email")->AsString = "EmailAddress";
$lDtl->Post();
$lDtl->Append(); #For 2nd Branch
$lDtl->FindField("BranchName")->AsString = "Branch1";
$lDtl->FindField("Address1")->AsString = "DAddress1";
$lDtl->FindField("Address2")->AsString = "DAddress2";
$lDtl->FindField("Address3")->AsString = "DAddress3";
$lDtl->FindField("Address4")->AsString = "DAddress4";
$lDtl->FindField("Attention")->AsString = "DAttention";
$lDtl->FindField("Phone1")->AsString = "DPhone1";
$lDtl->FindField("Fax1")->AsString = "DFax1";
$lDtl->FindField("Email")->AsString = "DEmailAddress";
$lDtl->Post();
} else{
$BizObject->Params->Find("CODE")->Value = $lDocKey;
$BizObject->Open();
$BizObject->Edit();
$lMain->FindField("CompanyName")->value = "FAIRY TAIL WIZARD";
$r = $lDtl->RecordCount();
$x = 1;
while ($x <= $r ){
$lDtl->First();
$lDtl->Delete();
$x++;
}
#Insert back with new Information
$lDtl->Edit(); #For 1St Branch
$lDtl->FindField("BranchName")->AsString = "BILLING"; #Make sure this always same as b4 delete data
$lDtl->FindField("Address1")->AsString = "New Address1";
$lDtl->FindField("Address2")->AsString = "New Address2";
$lDtl->FindField("Address3")->AsString = "New Address3";
$lDtl->FindField("Address4")->AsString = "New Address4";
$lDtl->FindField("Attention")->AsString = "New Attention";
$lDtl->FindField("Phone1")->AsString = "New Phone1";
$lDtl->FindField("Fax1")->AsString = "New Fax1";
$lDtl->FindField("Email")->AsString = "New EmailAddress";
$lDtl->Post();
$lDtl->Append(); #For 2nd Branch
$lDtl->FindField("BranchName")->AsString = "Branch1"; #Make sure this always same as b4 delete data
$lDtl->FindField("Address1")->AsString = "New DAddress1";
$lDtl->FindField("Address2")->AsString = "New DAddress2";
$lDtl->FindField("Address3")->AsString = "New DAddress3";
$lDtl->FindField("Address4")->AsString = "New DAddress4";
$lDtl->FindField("Attention")->AsString = "New DAttention";
$lDtl->FindField("Phone1")->AsString = "New DPhone1";
$lDtl->FindField("Fax1")->AsString = "New DFax1";
$lDtl->FindField("Email")->AsString = "New DEmailAddress";
$lDtl->Post();
}
try{
$BizObject->Save();
echo "Posting Done <br>";
}catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
PostData();
echo date("d M Y h:i:s A") . " - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Add/Edit AR Customer"/>
</form>
</body>
</html>
|
Example-Get Stock List
Get Stock List Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 22 Jun 2020<br>";
#This action to Get Stock Item List
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function GetData(){
global $ComServer;
$lSQL = "SELECT A.*, B.UOM, B.RATE, B.REFCOST, B.REFPRICE, B.ISBASE FROM ST_ITEM A
INNER JOIN ST_ITEM_UOM B ON (A.CODE=B.CODE)
WHERE A.ISACTIVE='T'
";
$lDataSet = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet->RecordCount > 0) {
$lDataSet->First();
$fc = $lDataSet->Fields->Count-1;
echo "<table>";
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
#Insert Header
echo "<td>".$lDataSet->Fields->Items($x)->FieldName()."</td>";
}
echo "</tr>";
#Looping Dataset
while (! $lDataSet->Eof()){
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
$lFN = $lDataSet->Fields->Items($x)->FieldName();
echo "<td>".$lDataSet->FindField($lFN)->AsString()."</td>";
}
echo "</tr>";
$lDataSet->Next();
}
echo "</table>"."<br>";
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
GetData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Get Stock list"/>
</form>
</body>
</html>
|
Example-AR_IV
AR_IV Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 24 Jun 2020<br>";
#This action to Post Customer Invoice
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0070.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("AR_IV");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--IV Test--";
$lMain->FindField("DocDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("Code")->AsString = "300-C0001"; #Customer Account
$lMain->FindField("Description")->AsString = "Sales";
#Insert Data - Detail
#For Tax Inclusive = True with override Tax Amount
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 1;
$lDetail->FindField("Account")->AsString = "500-000"; #Sales Account
$lDetail->FindField("Description")->AsString = "Sales Item A";
$lDetail->FindField("Tax")->AsString = "SV";
$lDetail->FindField("TaxRate")->AsString = "6%";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("Amount")->AsFloat = 410.37; #Exclding GST Amt
$lDetail->FindField("TaxAmt")->AsFloat = 24.63;
$lDetail->DisableControls();
$lDetail->FindField("TaxInclusive")->value = 1;
$lDetail->EnableControls();
$lDetail->Post();
#For Tax Inclusive = False with override Tax Amount
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 2;
$lDetail->FindField("Account")->AsString = "500-000";
$lDetail->FindField("Description")->AsString = "Sales Item B";
$lDetail->FindField("Tax")->AsString = "SV";
$lDetail->FindField("TaxRate")->AsString = "6%";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("Amount")->AsFloat = 94.43;
$lDetail->FindField("TaxAmt")->AsFloat = 5.66;
$lDetail->Post();
$BizObject->Save();
$BizObject->Close();
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
PostData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Post Customer Invoice"/>
</form>
</body>
</html>
|
Example-Get Outstanding Invoice List
Get Outstanding Invoice List Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 24 Jun 2020<br>";
#This action to Get Outstanding Invoice List
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function GetData(){
global $ComServer;
$lSQL = "SELECT A.*, B.COMPANYNAME, (A.DOCAMT-A.PAYMENTAMT) OUTSTANDING FROM AR_IV A
INNER JOIN AR_CUSTOMER B ON (A.CODE=B.CODE)
WHERE (A.DOCAMT-A.PAYMENTAMT)<>0
AND CANCELLED='F'
";
$lDataSet = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet->RecordCount > 0) {
$lDataSet->First();
$fc = $lDataSet->Fields->Count-1;
echo "<table>";
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
#Insert Header
echo "<td>".$lDataSet->Fields->Items($x)->FieldName()."</td>";
}
echo "</tr>";
#Looping Dataset
while (! $lDataSet->Eof()){
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
$lFN = $lDataSet->Fields->Items($x)->FieldName();
echo "<td>".$lDataSet->FindField($lFN)->AsString()."</td>";
}
echo "</tr>";
$lDataSet->Next();
}
echo "</table>"."<br>";
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
GetData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Get Outstanding Invoice List"/>
</form>
</body>
</html>
|
Example-Stock Month End - Weighted Average
Stock Month End - Weighted Average Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 01 Dec 2021<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function GetData(){
#Accuracy : 90% - Due to the figure is base on last run Costing in SQL Accounting
global $ComServer;
$lSQL = "SELECT A.ItemCode, A.Location, A.Batch, MAX(B.Seq) AS Seq, 2 AS CostingMethod
FROM ST_TR A INNER JOIN ST_TR_WMA B ON (A.TRANSNO=B.TRANSNO)
WHERE A.PostDate<='31 Jul 2020'
AND A.ITEMCODE='Adj_Voucher'
GROUP BY A.ItemCode, A.Location, A.Batch
";
$lDataSet1 = $ComServer->DBManager->NewDataSet($lSQL);
$Seq = "";
$lDataSet1->First();
while (! $lDataSet1->Eof()){
$Seq = $Seq.$lDataSet1->FindField("SEQ")->AsString .",";
$lDataSet1->Next();
}
$lSQL = "SELECT A.TRANSNO, A.ItemCode, A.Location, A.Batch, B.UTDQty, B.UTDCost FROM ST_TR A
INNER JOIN ST_TR_WMA B ON (A.TRANSNO=B.TRANSNO)
WHERE A.PostDate<='31 Jul 2020'
AND A.ITEMCODE='Adj_Voucher'
AND B.SEQ IN (".substr_replace($Seq ,"",-1).")
AND B.UTDQty<>0
ORDER BY A.ItemCode, A.Location, A.Batch
";
$lDataSet2 = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet2->RecordCount > 0) {
$lDataSet2->First();
$fc = $lDataSet2->Fields->Count-1;
echo "<table>";
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
#Insert Header
echo "<td>".$lDataSet2->Fields->Items($x)->FieldName()."</td>";
}
echo "</tr>";
#Looping Dataset
while (! $lDataSet2->Eof()){
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
$lFN = $lDataSet2->Fields->Items($x)->FieldName();
echo "<td>".$lDataSet2->FindField($lFN)->AsString()."</td>";
}
echo "</tr>";
$lDataSet2->Next();
}
echo "</table>"."<br>";
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
GetData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Month End - WA"/>
</form>
</body>
</html>
|
Example-Stock Month End - FIFO
Stock Month End - FIFO Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 16 Jul 2020<br>";
#This action to Get Outstanding Invoice List
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function GetData(){
#Accuracy : 90% - Due to the figure is base on last run Costing in SQL Accounting
global $ComServer;
$lSQL = "SELECT A.ItemCode, A.Location, A.Batch, MAX(B.Seq) AS Seq, 1 AS CostingMethod
FROM ST_TR A INNER JOIN ST_TR_FIFO B ON (A.TRANSNO=B.TRANSNO)
WHERE A.PostDate<='31 Jul 2020'
AND A.ItemCode IN ('ANT', 'COVER', 'BOM')
GROUP BY A.ItemCode, A.Location, A.Batch
";
$lDataSet1 = $ComServer->DBManager->NewDataSet($lSQL);
$Seq = "";
$lDataSet1->First();
while (! $lDataSet1->Eof()){
$Seq = $Seq.$lDataSet1->FindField("SEQ")->AsString .",";
$lDataSet1->Next();
}
$lSQL = "SELECT A.TRANSNO, A.ItemCode, A.Location, A.Batch, B.QTY, B.COST FROM ST_TR A
INNER JOIN ST_TR_FIFO B ON (A.TRANSNO=B.TRANSNO)
WHERE B.COSTTYPE='U'
AND A.PostDate<='31 Jul 2020'
AND B.SEQ IN (".substr_replace($Seq ,"",-1).")
AND A.ItemCode IN ('ANT1.0', 'COVER', 'BOM')
AND B.Qty<>0
ORDER BY A.ItemCode, A.Location, A.Batch
";
$lDataSet2 = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet2->RecordCount > 0) {
$lDataSet2->First();
$fc = $lDataSet2->Fields->Count-1;
echo "<table>";
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
#Insert Header
echo "<td>".$lDataSet2->Fields->Items($x)->FieldName()."</td>";
}
echo "</tr>";
#Looping Dataset
while (! $lDataSet2->Eof()){
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
$lFN = $lDataSet2->Fields->Items($x)->FieldName();
echo "<td>".$lDataSet2->FindField($lFN)->AsString()."</td>";
}
echo "</tr>";
$lDataSet2->Next();
}
echo "</table>"."<br>";
}else {
echo "Record Not Found";
}
#FIFO Detail Key to link with $lDataSet2 & $lDataSet3 is TRANSNO
$Seq = "";
$lDataSet2->First();
while (! $lDataSet2->Eof()){
$Seq = $Seq.$lDataSet2->FindField("TRANSNO")->AsString .",";
$lDataSet2->Next();
}
$lSQL = "SELECT TransNo, Cost, SUM(Qty) AS Qty, MIN(CostSeq) AS Seq FROM ST_TR_FIFO
WHERE CostType='B'
AND TRANSNO IN (".substr_replace($Seq ,"",-1).")
GROUP BY TransNo, Cost
";
$lDataSet3 = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet3->RecordCount > 0) {
$lDataSet3->First();
$fc = $lDataSet3->Fields->Count-1;
echo "<table>";
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
#Insert Header
echo "<td>".$lDataSet3->Fields->Items($x)->FieldName()."</td>";
}
echo "</tr>";
#Looping Dataset
while (! $lDataSet3->Eof()){
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
$lFN = $lDataSet3->Fields->Items($x)->FieldName();
echo "<td>".$lDataSet3->FindField($lFN)->AsString()."</td>";
}
echo "</tr>";
$lDataSet3->Next();
}
echo "</table>"."<br>";
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
GetData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
#$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Month End - FIFO"/>
</form>
</body>
</html>
|
Example-Add & Edit Stock Item
Add & Edit Stock Item Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 05 Aug 2020<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("ST_ITEM");
$lMain = $BizObject->DataSets->Find("MainDataSet");
$lUOM = $BizObject->DataSets->Find("cdsUOM");
$lBarcode = $BizObject->DataSets->Find("cdsBarcode");
$lDocKey = $BizObject->FindKeyByRef("CODE", "FAIRY-PHP");
if ($lDocKey == null){
$BizObject->New();
$lMain->FindField("CODE")->AsString = "FAIRY-PHP";
$lMain->FindField("DESCRIPTION")->AsString = "FAIRY TAIL";
$lMain->FindField("STOCKGROUP")->AsString = "DEFAULT";
$lMain->FindField("STOCKCONTROL")->AsString = "T";
$lMain->FindField("ISACTIVE")->AsString = "T";
$lUOM->Edit(); #For 1St UOM
$lUOM->FindField("UOM")->AsString = "PCS";
$lUOM->FindField("Rate")->AsFloat = 1;
$lUOM->FindField("RefCost")->AsFloat = 10.2;
$lUOM->FindField("RefPrice")->AsFloat = 25;
$lUOM->Post();
$lUOM->Append(); #For 2nd UOM
$lUOM->FindField("UOM")->AsString = "CTN";
$lUOM->FindField("Rate")->AsFloat = 12;
$lUOM->FindField("RefCost")->AsFloat = 102;
$lUOM->FindField("RefPrice")->AsFloat = 240;
$lUOM->Post();
$lBarcode->Append(); #For 1st UOM Barcode
$lBarcode->FindField("BARCODE")->AsString = "123456789";
$lBarcode->FindField("UOM")->AsString = "PCS";
$lBarcode->Post();
$lBarcode->Append(); #For 2nd UOM Barcode
$lBarcode->FindField("BARCODE")->AsString = "987654321";
$lBarcode->FindField("UOM")->AsString = "CTN";
$lBarcode->Post();
} else{
$BizObject->Params->Find("Dockey")->AsString = $lDocKey;
$BizObject->Open();
$BizObject->Edit();
$lMain->FindField("DESCRIPTION")->AsString = "FAIRY TAIL WIZARD";
$r = $lUOM->RecordCount();
$x = 1;
while ($x <= $r ){
$lUOM->First();
$lUOM->Delete();
$x++;
}
$r = $lBarcode->RecordCount();
$x = 1;
while ($x <= $r ){
$lBarcode->First();
$lBarcode->Delete();
$x++;
}
$lUOM->Append(); #For 1St UOM
$lUOM->FindField("UOM")->AsString = "PCS"; #Make sure this always same as b4 delete data
$lUOM->FindField("Rate")->AsFloat = 1; #Make sure this always same as b4 delete data
$lUOM->FindField("RefCost")->AsFloat = 22.3;
$lUOM->FindField("RefPrice")->AsFloat = 52;
$lUOM->Post();
$lUOM->Append(); #For 2nd UOM
$lUOM->FindField("UOM")->AsString = "CTN"; #Make sure this always same as b4 delete data
$lUOM->FindField("Rate")->AsFloat = 12; #Make sure this always same as b4 delete data
$lUOM->FindField("RefCost")->AsFloat = 102.5;
$lUOM->FindField("RefPrice")->AsFloat = 260.45;
$lUOM->Post();
$lBarcode->Append(); #For 1st UOM Barcode
$lBarcode->FindField("BARCODE")->AsString = "456321789";
$lBarcode->FindField("UOM")->AsString = "PCS";
$lBarcode->Post();
$lBarcode->Append(); #For 2nd UOM Barcode
$lBarcode->FindField("BARCODE")->AsString = "321456987";
$lBarcode->FindField("UOM")->AsString = "CTN";
$lBarcode->Post();
}
try{
$BizObject->Save();
$BizObject->Close();
}catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Begin Posting Stock Item<br>";
PostData();
echo date("d M Y h:i:s A")." - Done<br>";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Add & Edit Stock Item"/>
</form>
</body>
</html>
|
Example-Add Stock Issue
Add Stock Issue Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 21 Oct 2020<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"D:\Happy\DB\Default.DCF", #"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function CheckLogin1()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("ST_IS");
$lMain = $BizObject->DataSets->Find("MainDataSet");
$lDetail = $BizObject->DataSets->Find("cdsDocDetail");
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--IS Test--";
$lMain->FindField("DocDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Stock Issue";
#Insert Data - Detail
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 1;
$lDetail->FindField("ItemCode")->AsString = "ANT";
$lDetail->FindField("Description")->AsString = "Sales Item B";
$lDetail->FindField("Qty")->AsFloat = 2;
$lDetail->FindField("UOM")->AsString = "BOX";
$lDetail->Post();
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 2;
$lDetail->FindField("ItemCode")->AsString = "N-CHARGER";
$lDetail->FindField("Description")->AsString = "NOKIA CHARGER";
$lDetail->FindField("Qty")->AsFloat = 5;
$lDetail->FindField("UOM")->AsString = "UNIT";
$lDetail->Post();
$BizObject->Save();
$BizObject->Close();
try{
$BizObject->Save();
$BizObject->Close();
}catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin1();
echo date("d M Y h:i:s A")." - Begin Posting<br>";
PostData();
echo date("d M Y h:i:s A")." - Done<br>";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Add Stock Issue"/>
</form>
</body>
</html>
|
Example-Add Points
Add Points Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 30 Oct 2020<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("Sales.Points.OPF");
$lMain = $BizObject->DataSets->Find("Main"); #lMain contains master data
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--Point Test--";
$lMain->FindField("DocDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("Code")->AsString = "300-C0001"; #Customer Account
$lMain->FindField("CompanyName")->AsString = "Cash Sales";
$lMain->FindField("DESCRIPTION")->AsString = "Points Earn";
$lMain->FindField("FromDocType")->AsString = "CS";
$lMain->FindField("FromDocNo")->AsString = "CS-01234";
$lMain->FindField("FROMDOCAMT")->AsFloat = 100.10;
$lMain->FindField("Points")->AsFloat = 10;
try{
$BizObject->Save();
}catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Posting Point<br>";
PostData();
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Post Point"/>
</form>
</body>
</html>
|
Example-AR_CN
AR_CN Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 12 Dec 2020<br>";
#This action to Post Customer Credit Note
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0040.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("AR_CN");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
$lKO = $BizObject->DataSets->Find("cdsKnockOff");
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--CN Test1--";
$lMain->FindField("DocDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("Code")->AsString = "300-C0001"; #Customer Account
$lMain->FindField("Description")->AsString = "Sales";
#Insert Data - Detail
#For Tax Inclusive = True with override Tax Amount
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 1;
$lDetail->FindField("Account")->AsString = "510-000"; #Sales Return Account
$lDetail->FindField("Description")->AsString = "Return Item A";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("Amount")->AsFloat = 410.37; #Exclding GST Amt
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->Post();
$V = array("IV", "IV-00003"); #DocType, DocNo
if ($lKO->Locate("DocType;DocNo", $V, False, False)){
$lKO->Edit();
$lKO->FindField("KOAmt")->AsFloat = 100; #Partial Knock off
$lKO->FindField("KnockOff")->AsString = "T";
$lKO->Post();
}
$BizObject->Save();
$BizObject->Close();
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
PostData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Post Customer Credit Note"/>
</form>
</body>
</html>
|
Example-SO to DO
SO to DO Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 15 Jan 2021<br>";
#This action to
#01. Get Oustanding SO
#02. Post To DO
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$lSQL = "SELECT Dockey, DocNo,Code, CompanyName, Seq, DtlKey, ItemCode, Qty, UOM, UnitPrice, Disc, Amount,
COALESCE(Sum(XFQty),0) XFQty, COALESCE((Qty-Sum(XFQty)), Qty) OSQty FROM (
SELECT A.Dockey, A.DocNo, A.Code, A.CompanyName,
B.DtlKey, B.Seq, B.ItemCode, B.Qty, B.UOM, B.UnitPrice, B.Disc, B.Amount,
C.Qty XFQty FROM SL_SO A
INNER JOIN SL_SODTL B ON (A.DOCKEY=B.DOCKEY)
LEFT JOIN ST_XTRANS C ON (A.DOCKEY=C.FROMDOCKEY AND B.DTLKEY=C.FROMDTLKEY
AND C.FROMDOCTYPE='SO')
WHERE A.DOCNO='SO-00140')
GROUP BY Dockey, DocNo, Code, CompanyName, Seq, Dtlkey, ItemCode, Qty, UOM, UnitPrice, Disc, Amount
HAVING COALESCE((Qty-Sum(XFQty)), Qty) >0
";
$lDataSet = $ComServer->DBManager->NewDataSet($lSQL); #Get Oustanding SO Qty
if ($lDataSet->RecordCount > 0) {
$BizObject = $ComServer->BizObjects->Find("SL_DO");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
$lDataSet->First();
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--DO Test--";
$lMain->FindField("DocDate")->value = "01/20/2021"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "01/20/2021"; #MM/DD/YYYY
$lMain->FindField("Code")->AsString = $lDataSet->FindField("Code")->AsString;
$lMain->FindField("CompanyName")->AsString = $lDataSet->FindField("CompanyName")->AsString;
$lMain->FindField("Description")->AsString = "Delivery Order";
while (! $lDataSet->Eof()){
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("ItemCode")->AsString = $lDataSet->FindField("ItemCode")->AsString;
$lDetail->FindField("UOM")->AsString = $lDataSet->FindField("UOM")->AsString;
$lDetail->FindField("Qty")->AsFloat = $lDataSet->FindField("OSQty")->AsFloat;
$lDetail->FindField("DISC")->value = $lDataSet->FindField("DISC")->value;
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = $lDataSet->FindField("UnitPrice")->AsFloat;
$lDetail->FindField("Amount")->AsFloat = $lDataSet->FindField("Amount")->AsFloat;
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->FindField("FromDocType")->AsString = "SO";
$lDetail->FindField("FromDockey")->AsFloat = $lDataSet->FindField("Dockey")->AsFloat;
$lDetail->FindField("FromDtlkey")->AsFloat = $lDataSet->FindField("DtlKey")->AsFloat;
$lDetail->Post();
$lDataSet->Next();
}
$BizObject->Save();
$BizObject->Close();
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
PostData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Post SO to DO"/>
</form>
</body>
</html>
|
Example-ST_AJ
ST_AJ Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 08 Feb 2021<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0100.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("ST_AJ");
$lMain = $BizObject->DataSets->Find("MainDataSet");
$lDetail = $BizObject->DataSets->Find("cdsDocDetail");
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = "--AJ Test--";
$lMain->FindField("DocDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "04/20/2020"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Stock Adjustment";
#Insert Data - Detail - Increase Stock Qty
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 1;
$lDetail->FindField("ItemCode")->AsString = "ANT";
$lDetail->FindField("Description")->AsString = "ANTENA";
$lDetail->FindField("Qty")->AsFloat = 2;
$lDetail->FindField("UOM")->AsString = "BOX";
$lDetail->Post();
#Insert Data - Detail - Reduce Stock Qty
$lDetail->Append();
$lDetail->FindField("DtlKey")->value = -1;
$lDetail->FindField("DocKey")->value = -1;
$lDetail->FindField("Seq")->value = 2;
$lDetail->FindField("ItemCode")->AsString = "N-CHARGER";
$lDetail->FindField("Description")->AsString = "NOKIA CHARGER";
$lDetail->FindField("Qty")->AsFloat = -5;
$lDetail->FindField("UOM")->AsString = "UNIT";
$lDetail->Post();
$BizObject->Save();
$BizObject->Close();
try{
$BizObject->Save();
$BizObject->Close();
}catch (Exception $e) {
echo 'Caught exception: ', $e->getMessage(), "\n";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
PostData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Post ST_AJ"/>
</form>
</body>
</html>
|
Example-Get Stock Serial Number balance
Get Stock Serial Number Balance List Script |
---|
<!DOCTYPE html>
<html>
<head>
<link rel="stylesheet" type="text/css" href="css/Grid.css" />
</head>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 21 May 2021<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"D:\Happy\DB\Default.DCF", #"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0024.FDB"); #Database Name
}
function GetData(){
global $ComServer;
$lSQL = "SELECT ItemCode, Location, Batch, SerialNumber, SUM(Qty) Qty FROM ST_TR_SN
GROUP BY ItemCode, Location, Batch, SerialNumber
HAVING SUM(Qty) > 0
";
$lDataSet = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet->RecordCount > 0) {
$lDataSet->First();
$fc = $lDataSet->Fields->Count-1;
echo "<table>";
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
#Insert Header
echo "<td>".$lDataSet->Fields->Items($x)->FieldName()."</td>";
}
echo "</tr>";
#Looping Dataset
while (! $lDataSet->Eof()){
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
$lFN = $lDataSet->Fields->Items($x)->FieldName();
echo "<td>".$lDataSet->FindField($lFN)->AsString()."</td>";
}
echo "</tr>";
$lDataSet->Next();
}
echo "</table>"."<br>";
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
GetData();
echo date("d M Y h:i:s A")." - Done";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Get SN Balance"/>
</form>
</body>
</html>
|
Example-SL_IV-Add, Edit & Delete
Insert, Edit & Delete Invoice Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 14 Mar 2022<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"D:\Happy\DB\Default.DCF", #"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0015.FDB"); #Database Name
}
function PostDataIV(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("SL_IV");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
#Find IV Number
$lDocNo = "--IV Test--";
$lDocKey = $BizObject->FindKeyByRef("DocNo", $lDocNo);
if ($lDocKey != null){
echo "Dockey = ".$lDocKey."<br>";
$BizObject->Params->Find("DocKey")->AsString = $lDocKey;
$BizObject->Open();
$BizObject->Edit();
$lMain->Edit();
$lMain->FindField("DocDate")->value = "02/20/2022"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "02/20/2022"; #MM/DD/YYYY
$lMain->FindField("CompanyName")->AsString = "Cash Sales-Edited";
$lMain->FindField("Address1")->AsString = ""; #Optional
$lMain->FindField("Address2")->AsString = ""; #Optional
$lMain->FindField("Address3")->AsString = ""; #Optional
$lMain->FindField("Address4")->AsString = ""; #Optional
$lMain->FindField("Phone1")->AsString = ""; #Optional
$lMain->FindField("Description")->AsString = "Sales - Edited";
$r = $lDetail->RecordCount();
$x = 1;
while ($x <= $r ){
$lDetail->First();
$lDetail->Delete();
$x++;
}
$lDetail->Append();
$lDetail->FindField("ItemCode")->AsString = "COVER";
$lDetail->FindField("Description")->AsString = "Sales Item Cover";
$lDetail->FindField("UOM")->AsString = "UNIT";
$lDetail->FindField("Qty")->AsFloat = 3;
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = 5.60;
$lDetail->FindField("Amount")->AsFloat = 16.80;
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->Post();
} else {
echo "New Invoice<br>";
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = $lDocNo;
$lMain->FindField("Code")->AsString = "300-C0001"; #Customer Account
$lMain->FindField("DocDate")->value = "02/18/2022"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "02/18/2022"; #MM/DD/YYYY
$lMain->FindField("CompanyName")->AsString = "Cash Sales";
$lMain->FindField("Address1")->AsString = ""; #Optional
$lMain->FindField("Address2")->AsString = ""; #Optional
$lMain->FindField("Address3")->AsString = ""; #Optional
$lMain->FindField("Address4")->AsString = ""; #Optional
$lMain->FindField("Phone1")->AsString = ""; #Optional
$lMain->FindField("Description")->AsString = "Sales";
#$lMain->FindField('DocAmt')->value = $Amt;
$lDetail->Append();
$lDetail->FindField("ItemCode")->AsString = "ANT";
$lDetail->FindField("Description")->AsString = "Sales Item ANT";
$lDetail->FindField("UOM")->AsString = "UNIT";
$lDetail->FindField("Qty")->AsFloat = 1;
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = 100;
$lDetail->FindField("Amount")->AsFloat = 100;
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->Post();
$lDetail->Append();
$lDetail->FindField("ItemCode")->AsString = "BOM";
$lDetail->FindField("Description")->AsString = "Sales Item BOM";
$lDetail->FindField("UOM")->AsString = "UNIT";
$lDetail->FindField("Qty")->AsFloat = 2;
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("UnitPrice")->AsFloat = 150;
$lDetail->FindField("Amount")->AsFloat = 300;
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->Post();
}
$BizObject->Save();
echo date("d M Y h:i:s A")." - Posting Done<br>";
$BizObject->Close();
}
function PostDelIV(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("SL_IV");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
#Find IV Number
$lDocNo = "--IV Test--";
$lDocKey = $BizObject->FindKeyByRef("DocNo", $lDocNo);
if ($lDocKey != null){
echo "Dockey = ".$lDocKey."<br>";
$BizObject->Params->Find("DocKey")->AsString = $lDocKey;
$BizObject->Open();
$BizObject->Delete();
echo date("d M Y h:i:s A")." - Record deleted<br>";
} else {
echo date("d M Y h:i:s A")." - Document Not Found<br>";
}
}
if (isset($_POST['BtnPost']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Begin Posting<br>";
PostDataIV();
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
if (isset($_POST['BtnDel']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Begin Delete<br>";
PostDelIV();
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnPost"
value="Post Sales IV"/>
<input type="submit" name="BtnDel"
value="Post Delete IV"/>
</form>
</body>
</html>
|
Example-GL_PV-Add, Edit & Delete
Insert, Edit & Delete Invoice Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 15 Mar 2022<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"D:\Happy\DB\Default.DCF", #"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0015.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("GL_PV");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
#Find PV Number
$lDocNo = "--PV Test--";
$lDocKey = $BizObject->FindKeyByRef("DocNo", $lDocNo);
if ($lDocKey != null){
echo "Dockey = ".$lDocKey."<br>";
$BizObject->Params->Find("DocKey")->AsString = $lDocKey;
$BizObject->Open();
$BizObject->Edit();
$lMain->Edit();
$lMain->FindField("DocDate")->value = "02/20/2022"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "02/20/2022"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Tenaga Malaysia - Edited";
$lMain->FindField("PaymentMethod")->AsString = "310-001"; #GL Bank/Cash account code
$lMain->FindField("CHEQUENUMBER")->AsString = "MBB 123456"; #Optional
$lMain->FindField("Cancelled")->AsString = "F";
$r = $lDetail->RecordCount();
$x = 1;
while ($x <= $r ){
$lDetail->First();
$lDetail->Delete();
$x++;
}
$lDetail->Append();
$lDetail->FindField("Code")->AsString = "907-000";
$lDetail->FindField("Description")->AsString = "TNB Bill for Feb 2022 - Edited";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("Amount")->AsFloat = 168.80;
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->Post();
} else {
echo "New PV<br>";
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = $lDocNo;
$lMain->FindField("DocDate")->value = "02/18/2022"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "02/18/2022"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Tenaga Malaysia";
$lMain->FindField("PaymentMethod")->AsString = "310-001"; #GL Bank/Cash account code
$lMain->FindField("CHEQUENUMBER")->AsString = "MBB 123456"; #Optional
$lMain->FindField("Cancelled")->AsString = "F";
$lDetail->Append();
$lDetail->FindField("Code")->AsString = "907-000"; #GL Account
$lDetail->FindField("Description")->AsString = "TNB Bill for Jan 2022";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("Amount")->AsFloat = 100.80;
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->Post();
$lDetail->Append();
$lDetail->FindField("Code")->AsString = "907-000";
$lDetail->FindField("Description")->AsString = "TNB Bill for Feb 2022";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("Amount")->AsFloat = 68.00;
$lDetail->FindField("TaxAmt")->AsFloat = 0;
$lDetail->Post();
}
$BizObject->Save();
echo date("d M Y h:i:s A")." - Posting Done<br>";
$BizObject->Close();
}
function DelData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("GL_PV");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
#Find PV Number
$lDocNo = "--PV Test--";
$lDocKey = $BizObject->FindKeyByRef("DocNo", $lDocNo);
if ($lDocKey != null){
echo "Dockey = ".$lDocKey."<br>";
$BizObject->Params->Find("DocKey")->AsString = $lDocKey;
$BizObject->Open();
$BizObject->Delete();
echo date("d M Y h:i:s A")." - Record deleted<br>";
} else {
echo date("d M Y h:i:s A")." - Document Not Found<br>";
}
}
if (isset($_POST['BtnPost']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Begin Posting<br>";
PostData();
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
if (isset($_POST['BtnDel']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Begin Delete<br>";
DelData();
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnPost"
value="Post GL PV"/>
<input type="submit" name="BtnDel"
value="Delete PV"/>
</form>
</body>
</html>
|
Example-GL_JE-Add, Edit & Delete
Insert, Edit & Delete Invoice Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 15 Mar 2022<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0015.FDB"); #Database Name
}
function PostData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("GL_JE");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
$lDetail = $BizObject->DataSets->Find("cdsDocDetail"); #lDetail contains detail data
#Find PV Number
$lDocNo = "--JE Test--";
$lDocKey = $BizObject->FindKeyByRef("DocNo", $lDocNo);
if ($lDocKey != null){
echo "Dockey = ".$lDocKey."<br>";
$BizObject->Params->Find("DocKey")->AsString = $lDocKey;
$BizObject->Open();
$BizObject->Edit();
$lMain->Edit();
$lMain->FindField("DocDate")->value = "02/20/2022"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "02/20/2022"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Credit Card Charges - Edited";
$lMain->FindField("Cancelled")->AsString = "F";
$r = $lDetail->RecordCount();
$x = 1;
while ($x <= $r ){
$lDetail->First();
$lDetail->Delete();
$x++;
}
$lDetail->Append();
$lDetail->FindField("Code")->AsString = "902-000";
$lDetail->FindField("Description")->AsString = "MBB Credit Card Charges - Edited";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("LocalDR")->AsFloat = 78.88;
$lDetail->FindField("DR")->AsFloat = 78.88; #If Wanted DR <> LocalDR
$lDetail->FindField("LocalTaxAmt")->AsFloat = 0;
$lDetail->Post();
$lDetail->Append();
$lDetail->FindField("Code")->AsString = "310-001";
$lDetail->FindField("Description")->AsString = "MBB Credit Card Charges - Edited";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("LocalCR")->AsFloat = 78.88;
$lDetail->FindField("CR")->AsFloat = 78.88; #If Wanted CR <> LocalCR
$lDetail->FindField("LocalTaxAmt")->AsFloat = 0;
$lDetail->Post();
} else {
echo "New JE<br>";
$BizObject->New();
$lMain->FindField("DocKey")->value = -1;
$lMain->FindField("DocNo")->AsString = $lDocNo;
$lMain->FindField("DocDate")->value = "02/18/2022"; #MM/DD/YYYY
$lMain->FindField("PostDate")->value = "02/18/2022"; #MM/DD/YYYY
$lMain->FindField("Description")->AsString = "Credit Card Charges";
$lMain->FindField("Cancelled")->AsString = "F";
$lDetail->Append();
$lDetail->FindField("Code")->AsString = "902-000";
$lDetail->FindField("Description")->AsString = "MBB Credit Card Charges";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("LocalDR")->AsFloat = 88.88;
$lDetail->FindField("DR")->AsFloat = 88.88; #If Wanted DR <> LocalDR
$lDetail->FindField("LocalTaxAmt")->AsFloat = 0;
$lDetail->Post();
$lDetail->Append();
$lDetail->FindField("Code")->AsString = "310-001";
$lDetail->FindField("Description")->AsString = "MBB Credit Card Charges";
$lDetail->FindField("Tax")->AsString = "";
$lDetail->FindField("TaxRate")->AsString = "";
$lDetail->FindField("TaxInclusive")->value = 0;
$lDetail->FindField("LocalCR")->AsFloat = 88.88;
$lDetail->FindField("CR")->AsFloat = 88.88; #If Wanted CR <> LocalCR
$lDetail->FindField("LocalTaxAmt")->AsFloat = 0;
$lDetail->Post();
}
$BizObject->Save();
echo date("d M Y h:i:s A")." - Posting Done<br>";
$BizObject->Close();
}
function DelData(){
global $ComServer;
$BizObject = $ComServer->BizObjects->Find("GL_JE");
$lMain = $BizObject->DataSets->Find("MainDataSet"); #lMain contains master data
#Find JE Number
$lDocNo = "--JE Test--";
$lDocKey = $BizObject->FindKeyByRef("DocNo", $lDocNo);
if ($lDocKey != null){
echo "Dockey = ".$lDocKey."<br>";
$BizObject->Params->Find("DocKey")->AsString = $lDocKey;
$BizObject->Open();
$BizObject->Delete();
echo date("d M Y h:i:s A")." - Record deleted<br>";
} else {
echo date("d M Y h:i:s A")." - Document Not Found<br>";
}
}
if (isset($_POST['BtnPost']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Begin Posting<br>";
PostData();
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
if (isset($_POST['BtnDel']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Begin Delete<br>";
DelData();
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnPost"
value="Post GL JE"/>
<input type="submit" name="BtnDel"
value="Delete JE"/>
</form>
</body>
</html>
|
Example-Get Outstanding SO List
Get Outstanding SO List Script |
---|
<!DOCTYPE html>
<html>
<body>
<h1>SQL Acc SDK in PHP page</h1>
<?php
echo "Updated 09 Jun 2022<br>";
$ComServer = null;
function CheckLogin()
{
global $ComServer;
$ComServer = new COM("SQLAcc.BizApp") or die("Could not initialise SQLAcc.BizApp object.");
$status = $ComServer->IsLogin();
if ($status == true)
{
$ComServer->Logout();
}
$ComServer->Login("ADMIN", "ADMIN", #UserName, Password
"C:\eStream\SQLAccounting\Share\Default.DCF", #DCF file
"ACC-0015.FDB"); #Database Name
}
function GetData(){
global $ComServer;
$lSQL = "SELECT Dockey, DocNo,Code, CompanyName, Seq, DtlKey, ItemCode, Qty, UOM, UnitPrice, Disc, Amount,
COALESCE(Sum(XFQty),0) XFQty, COALESCE((Qty-Sum(XFQty)), Qty) OSQty FROM (
SELECT A.Dockey, A.DocNo, A.Code, A.CompanyName,
B.DtlKey, B.Seq, B.ItemCode, B.Qty, B.UOM, B.UnitPrice, B.Disc, B.Amount,
C.Qty XFQty FROM SL_SO A
INNER JOIN SL_SODTL B ON (A.DOCKEY=B.DOCKEY)
LEFT JOIN ST_XTRANS C ON (A.DOCKEY=C.FROMDOCKEY AND B.DTLKEY=C.FROMDTLKEY
AND C.FROMDOCTYPE='SO')
WHERE A.Cancelled='F')
GROUP BY Dockey, DocNo, Code, CompanyName, Seq, Dtlkey, ItemCode, Qty, UOM, UnitPrice, Disc, Amount
HAVING COALESCE((Qty-Sum(XFQty)), Qty) >0
";
$lDataSet = $ComServer->DBManager->NewDataSet($lSQL);
if ($lDataSet->RecordCount > 0) {
$lDataSet->First();
$fc = $lDataSet->Fields->Count-1;
echo "<table>";
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
#Insert Header
echo "<td>".$lDataSet->Fields->Items($x)->FieldName()."</td>";
}
echo "</tr>";
#Looping Dataset
while (! $lDataSet->Eof()){
echo "<tr>";
for ($x = 0; $x <= $fc; $x++) {
$lFN = $lDataSet->Fields->Items($x)->FieldName();
echo "<td>".$lDataSet->FindField($lFN)->AsString()."</td>";
}
echo "</tr>";
$lDataSet->Next();
}
echo "</table>"."<br>";
}else {
echo "Record Not Found";
}
}
if (isset($_POST['BtnData']))
{
try
{
CheckLogin();
echo date("d M Y h:i:s A")." - Get Data<br>";
GetData();
echo date("d M Y h:i:s A")." - Done<br>";
}
finally
{
$ComServer->Logout();
#free the object
$ComServer = null;
}
}
?>
<form method="post">
<input type="submit" name="BtnData"
value="Get Outstanding SO List"/>
</form>
</body>
</html>
|
VB Script
Example-Get Company Profile
Company Profile Script |
---|
'Copy below script & paste to notepad & name it as eg Common.Agent.RO.vbs
Call GetCoInfo
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetCoInfo
Dim ComServer, RptObject, lDataSet
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("Common.Agent.RO")
'Step 3: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsProfile")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox "Company Name : " & lDataSet.FindField("CompanyName").AsString
MsgBox "Remark : " & lDataSet.FindField("Remark").AsString
MsgBox "ROC No : " & lDataSet.FindField("RegisterNo").AsString
MsgBox "GST No : " & lDataSet.FindField("GSTNo").AsString
MsgBox "Address 1 : " & lDataSet.FindField("Address1").AsString
MsgBox "Address 2 : " & lDataSet.FindField("Address2").AsString
MsgBox "Address 3 : " & lDataSet.FindField("Address3").AsString
MsgBox "Address 4 : " & lDataSet.FindField("Address4").AsString
MsgBox "Attention : " & lDataSet.FindField("Attention").AsString
MsgBox "Phone : " & lDataSet.FindField("Phone1").AsString
MsgBox "Fax : " & lDataSet.FindField("Fax1").AsString
MsgBox "E-Mail : " & lDataSet.FindField("EMail").AsString
lDataSet.Next
Wend
'Step 6 : Logout after done
ComServer.Logout
End Function
|
Example-Complete Post
SL_CS, AR_PM, SL_CN & AR_CN Script |
---|
'Updated 13 Sep 2018
'Copy below script & paste to notepad & name it as eg SL_CS.vbs
'This will doing following posting
'01. Cash Sales
'02. Sales Credit Note
'03. Customer Payment With Knock off
'04. Edit Credit Note Posted in Step 02 & Knock Off
Call CheckLogin
Call InsertData
Dim ComServer
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
function CheckLogin
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
'UserName, Password, DCF full path, Database filename
END IF
End Function
Function InsertData
Dim BizObject, lMain, lDetail, lDate
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("SL_CS")
'Step 3: Set Dataset
Set lMain = BizObject.DataSets.Find("MainDataSet") 'lMain contains master data
Set lDetail = BizObject.DataSets.Find("cdsDocDetail") 'lDetail contains detail data
'Begin Looping yr data
'Step 4 : Insert Data - Master
lDate = CDate("January 1, 2017")
BizObject.New
lMain.FindField("DocKey").value = -1
lMain.FindField("DocNo").AsString = "--IV Test--"
lMain.FindField("DocDate").value = lDate
lMain.FindField("PostDate").value = lDate
lMain.FindField("Code").AsString = "300-C0001" 'Customer Account
lMain.FindField("CompanyName").AsString = "Cash Sales"
lMain.FindField("Address1").AsString = "" 'Optional
lMain.FindField("Address2").AsString = "" 'Optional
lMain.FindField("Address3").AsString = "" 'Optional
lMain.FindField("Address4").AsString = "" 'Optional
lMain.FindField("Phone1").AsString = "" 'Optional
lMain.FindField("Description").AsString = "Sales"
'Step 5: Insert Data - Detail
'For Tax Inclusive = True with override Tax Amount
lDetail.Append
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("Seq").value = 1
lDetail.FindField("Account").AsString = "500-000" 'Sales Account
lDetail.FindField("Description").AsString = "Sales Item A"
lDetail.FindField("Qty").AsFloat = 1
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 435
lDetail.FindField("Amount").AsFloat = 410.37 'Exclding GST Amt
lDetail.FindField("TaxAmt").AsFloat = 24.63
lDetail.DisableControls
lDetail.FindField("TaxInclusive").value = 1
lDetail.EnableControls
lDetail.Post
'For Tax Inclusive = False with override Tax Amount
lDetail.Append
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("Seq").value = 2
lDetail.FindField("Account").AsString = "500-000"
lDetail.FindField("Description").AsString = "Sales Item B"
lDetail.FindField("Qty").AsFloat = 1
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 94.43
lDetail.FindField("Amount").AsFloat = 94.43
lDetail.FindField("TaxAmt").AsFloat = 5.66
lDetail.Post
'For With Item Code
lDetail.Append
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("Seq").value = 3
lDetail.FindField("ItemCode").AsString = "ANT"
lDetail.FindField("Description").AsString = "Sales Item B"
'lDetail.FindField("Account").AsString = "500-000" 'If you wanted override the Sales Account Code
lDetail.FindField("Qty").AsFloat = 2
lDetail.FindField("UOM").AsString = "UNIT"
'lDetail.FindField("DISC").AsString = "5%+3" 'Optional (eg 5% plus 3 Discount)
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 100
lDetail.FindField("Amount").AsFloat = 200
lDetail.FindField("TaxAmt").AsFloat = 12
lDetail.Post
'Step 6: Save Document
BizObject.Save
BizObject.Close
'Step 7: Payment
Call InsertARPM
'Step 8: Credit Note
Call InsertSLCN
'End Looping yr data
'Step 9 : Logout after done
'ComServer.Logout
MsgBox "Done"
End Function
Function InsertARPM
Dim BizObject, lMain, lDetail, lDate, v(1)
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_PM")
'Step 3: Set Dataset
Set lMain = BizObject.DataSets.Find("MainDataSet") 'lMain contains master data
Set lDetail = BizObject.DataSets.Find("cdsKnockOff") 'lDetail contains detail data
'Step 4 : Posting
lDate = CDate("January 23, 2017")
BizObject.New
lMain.FindField("DOCKEY").Value = -1
lMain.FindField("DocNo").AsString = "--PM Test--"
lMain.FindField("CODE").AsString = "300-C0001" 'Customer Account
lMain.FindField("DocDate").Value = lDate
lMain.FindField("PostDate").Value = lDate
lMain.FindField("Description").AsString = "Payment for A/c"
lMain.FindField("PaymentMethod").AsString = "320-000" 'Bank or Cash Account
lMain.FindField("ChequeNumber").AsString = ""
lMain.FindField("BankCharge").AsFloat = 0
lMain.FindField("DocAmt").AsFloat = 200.00
lMain.FindField("Cancelled").AsString = "F"
'Step 5: Knock Off IV
lIVNO = "--IV Test--"
v(0) = "IV"
v(1) = lIVNO
if (lDetail.Locate("DocType;DocNo", v, false, false)) then
lDetail.Edit
lDetail.FindField("KOAmt").AsFloat = 147.09 'Partial Knock off
lDetail.FindField("KnockOff").AsString = "T"
lDetail.Post
End IF
'Step 6: Save Document
BizObject.Save
BizObject.Close
End Function
Function InsertSLCN
Dim BizObject, lMain, lDetail, lDate
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("SL_CN")
'Step 3: Set Dataset
Set lMain = BizObject.DataSets.Find("MainDataSet") 'lMain contains master data
Set lDetail = BizObject.DataSets.Find("cdsDocDetail") 'lDetail contains detail data
'Step 4 : Insert Data - Master
lDate = CDate("January 24, 2017")
BizObject.New
lMain.FindField("DocKey").value = -1
lMain.FindField("DocNo").AsString = "--CN Test--"
lMain.FindField("DocDate").value = lDate
lMain.FindField("PostDate").value = lDate
lMain.FindField("Code").AsString = "300-C0001"
lMain.FindField("CompanyName").AsString = "Cash Sales"
lMain.FindField("Address1").AsString = ""
lMain.FindField("Address2").AsString = ""
lMain.FindField("Address3").AsString = ""
lMain.FindField("Address4").AsString = ""
lMain.FindField("Phone1").AsString = ""
lMain.FindField("Description").AsString = "Sales Returned"
'For With Item Code
lDetail.Append
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("DocKey").value = -1
lDetail.FindField("ItemCode").AsString = "ANT"
lDetail.FindField("Description").AsString = "Sales Item B"
lDetail.FindField("Description2").AsString = "Product Spoil" 'Reason
lDetail.FindField("Remark1").AsString = "--IV Test--" 'Invoice No
lDetail.FindField("Remark2").AsString = "01 Jan 2017" 'Invoice Date
lDetail.FindField("Qty").AsFloat = 1
lDetail.FindField("Tax").AsString = "SR"
lDetail.FindField("TaxRate").AsString = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("UnitPrice").AsFloat = 100
lDetail.FindField("Amount").AsFloat = 100
lDetail.FindField("TaxAmt").AsFloat = 6
lDetail.Post
'Step 6: Save Document
BizObject.Save
BizObject.Close
'Step 7: Knock Off Invoice
Call KnockIV
End Function
Function KnockIV
Dim BizObject, lMain, lDetail, lDate, v(1)
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_CN")
'Step 3: Set Dataset
Set lMain = BizObject.DataSets.Find("MainDataSet") 'lMain contains master data
Set lDetail = BizObject.DataSets.Find("cdsKnockOff") 'lDetail contains Knock off data
'Step 4 : Find CN Number
lDocNo = "--CN Test--"
lDocKey = BizObject.FindKeyByRef("DocNo", lDocNo)
BizObject.Params.Find("DocKey").Value = lDocKey
If not IsNull(lDocKey) Then
BizObject.Open
BizObject.Edit
lMain.Edit
'Step 5: Knock Off IV
lIVNO = "--IV Test--"
v(0) = "IV"
v(1) = lIVNO
if (lDetail.Locate("DocType;DocNo", v, false, false)) then
lDetail.Edit
lDetail.FindField("KOAmt").AsFloat = 106 'Fully Knock off
lDetail.FindField("KnockOff").AsString = "T"
lDetail.Post
End IF
'Step 6: Save Document
BizObject.Save
BizObject.Close
END IF
End Function
|
Example-AR_IV
AR_IV Script |
---|
'Copy below script & paste to notepad & name it as eg AR_IV.vbs
Call InsertARIV
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function InsertARIV
Dim ComServer, BizObject, lDataSet, lDataSet2, lDate
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
END IF
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_IV")
'Step 3: Set Dataset
Set lMainDataSet = BizObject.DataSets.Find("MainDataSet") 'lMainDataSet contains master data
Set lDetailDataSet = BizObject.DataSets.Find("cdsDocDetail") 'lDetailDataSet contains detail data
'Step 4 : Insert Data - Master
lDate = CDate("January 1, 2016")
BizObject.New
lMainDataSet.FindField("DocKey").value = -1
lMainDataSet.FindField("DocNo").value = "--IV Test--"
lMainDataSet.FindField("DocDate").value = lDate
lMainDataSet.FindField("PostDate").value = lDate
lMainDataSet.FindField("Code").value = "300-A0003"
lMainDataSet.FindField("Description").value = "Sales"
'Step 5: Insert Data - Detail
'For Tax Inclusive = True with override Tax Amount
lDetailDataSet.Append
lDetailDataSet.FindField("DtlKey").value = -1
lDetailDataSet.FindField("DocKey").value = -1
lDetailDataSet.FindField("Account").value = "500-000"
lDetailDataSet.FindField("Description").value = "Sales Item A"
lDetailDataSet.FindField("Tax").value = "SR"
lDetailDataSet.FindField("TaxInclusive").value = 0
lDetailDataSet.FindField("Amount").value = 410.37
lDetailDataSet.FindField("TaxAmt").value = 24.63
lDetailDataSet.DisableControls
lDetailDataSet.FindField("TaxInclusive").value = 1
lDetailDataSet.EnableControls
lDetailDataSet.FindField("Changed").value = "F"
lDetailDataSet.Post
'For Tax Inclusive = False with override Tax Amount
lDetailDataSet.Append
lDetailDataSet.FindField("DtlKey").value = -1
lDetailDataSet.FindField("DocKey").value = -1
lDetailDataSet.FindField("Account").value = "500-000"
lDetailDataSet.FindField("Description").value = "Sales Item B"
lDetailDataSet.FindField("Tax").value = "SR"
lDetailDataSet.FindField("TaxInclusive").value = 0
lDetailDataSet.FindField("Amount").value = 94.43
lDetailDataSet.FindField("TaxAmt").value = 5.66
lDetailDataSet.FindField("Changed").value = "F"
lDetailDataSet.Post
'Step 6: Save Document
BizObject.Save
BizObject.Close
MsgBox "Done"
End Function
|
Example-AR_IV-Edit
AR_IV Edit Script |
---|
'Available in Version 5.2018.833.759 & above
'Copy below script & paste to notepad & name it as eg AR_IV.vbs
Call CheckLogin
Call GetData
Call PostData
Dim ComServer, lDataSet
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
function CheckLogin
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
'UserName, Password, DCF full path, Database filename
END IF
End Function
Function GetData
Dim lSQL
lSQL = "SELECT Dockey FROM AR_IV "
lSQL = lSQL & "WHERE DocNo='IV-00002' "
Set lDataSet = ComServer.DBManager.NewDataSet(lSQL)
End Function
Function PostData
Dim BizObject, lMain, lDetail
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_IV")
'Step 3: Set Dataset
Set lMain = BizObject.DataSets.Find("MainDataSet") 'lMain contains master data
Set lDetail = BizObject.DataSets.Find("cdsDocDetail") 'lDetail contains detail data
'Step 4 : Find Doc Number
If lDataSet.RecordCount > 0 Then
lDataSet.First
BizObject.Params.Find("DocKey").Value = lDataSet.FindField("DocKey").AsString
BizObject.Open
BizObject.Edit
lMain.Edit
lMain.FindField("Description").AsString = "Sales - Edited"
'Step 5: Delete all Detail
While lDetail.RecordCount <> 0
lDetail.First
lDetail.Delete
Wend
'Step 6: Append Detail
lDetail.Append
lDetail.FindField("DtlKey").value = -1
lDetail.FindField("Account").value = "500-000"
lDetail.FindField("Description").value = "Sales Item A - Edited"
lDetail.FindField("Tax").value = "SR"
lDetail.FindField("TaxRate").value = "6%"
lDetail.FindField("TaxInclusive").value = 0
lDetail.FindField("Amount").value = 100
lDetail.FindField("TaxAmt").value = 6
lDetail.DisableControls
lDetail.FindField("TaxInclusive").value = 1
lDetail.EnableControls
lDetail.FindField("Changed").value = "F"
lDetail.Post
'Step 7: Save Document
BizObject.Save
BizObject.Close
'Step 8 : Logout after done
'ComServer.Logout
MsgBox "Done"
Else
MsgBox "Record Not Found"
END IF
End Function
|
Example-AR_PM
AR_PM Script |
---|
'Copy below script & paste to notepad & name it as eg AR_PM.vbs
Call PostData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function PostData
Dim ComServer, BizObject, lIVNo, v(1), lDate
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
END IF
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_PM")
'Step 3: Set Dataset
Set lMain = BizObject.DataSets.Find("MainDataSet") 'lMainDataSet contains master data
Set lDetailDataSet = BizObject.DataSets.Find("cdsKnockOff") 'lDetailDataSet contains detail data
'Step 4 : Posting
lDate = CDate("January 23, 2017")
BizObject.New
lMain.FindField("DOCKEY").Value = -1
lMain.FindField("DocNo").AsString = "--PM Test--"
lMain.FindField("CODE").AsString = "300-C0001"
lMain.FindField("DocDate").Value = lDate
lMain.FindField("PostDate").Value = lDate
lMain.FindField("Description").AsString = "Payment for A/c"
lMain.FindField("PaymentMethod").AsString = "310-000"
lMain.FindField("DocAmt").AsFloat = 65.57
lMain.FindField("Cancelled").AsString = "F"
'Step 5: Knock Off IV
lIVNO = "--IV Test--"
v(0) = "IV"
v(1) = lIVNO
if (lDetailDataSet.Locate("DocType;DocNo", v, false, false)) then
lDetailDataSet.Edit
lDetailDataSet.FindField("KOAmt").value = 65.57
lDetailDataSet.FindField("KnockOff").AsString = "T"
lDetailDataSet.Post
End IF
'Step 6: Save Document
BizObject.Save
BizObject.Close
MsgBox "Done"
'END IF
End Function
|
Example-AR_PM-Edit
AR_PM Edit Script |
---|
'Copy below script & paste to notepad & name it as eg AR_IV.vbs
Call EditARPM
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function EditARPM
Dim ComServer, BizObject, lDataSet, lDataSet2, lDocKey, lDocNo, lIVNo, v(1)
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
END IF
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_PM")
'Step 3: Set Dataset
Set lMainDataSet = BizObject.DataSets.Find("MainDataSet") 'lMainDataSet contains master data
Set lDetailDataSet = BizObject.DataSets.Find("cdsKnockOff") 'lDetailDataSet contains detail data
'Step 4 : Find OR Number
lDocNo = "OR-00022"
lDocKey = BizObject.FindKeyByRef("DocNo", lDocNo)
BizObject.Params.Find("DocKey").Value = lDocKey
If not IsNull(lDocKey) Then
BizObject.Open
BizObject.Edit
lMainDataSet.Edit
lMainDataSet.FindField("Description").AsString = "testing"
'Step 5: Knock Off IV
lIVNO = "IV-00006"
v(0) = "IV"
v(1) = lIVNO
if (lDetailDataSet.Locate("DocType;DocNo", v, false, false)) then
lDetailDataSet.Edit
lDetailDataSet.FindField("KOAmt").value = 50.12
lDetailDataSet.FindField("KnockOff").AsString = "T"
lDetailDataSet.Post
MsgBox "yes"
End IF
'Step 6: Save Document
BizObject.Save
BizObject.Close
MsgBox "Done"
END IF
End Function
|
Example-Customer.RO
Customer.RO Report Object Script |
---|
'Copy below script & paste to notepad & name it as eg customer_ro.vbs
Call GetCustomerData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetCustomerData
Dim ComServer, RptObject, lDataSet, lDataSet2, lDateFrom, lDateTo
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("Customer.RO")
'Step 3: Spool parameters
RptObject.Params.Find("AllAgent").Value = true
RptObject.Params.Find("AllArea").Value = true
RptObject.Params.Find("AllCompany").Value = false
RptObject.Params.Find("AllCompanyCategory").Value = true
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllTerms").Value = true
RptObject.Params.Find("SelectDate").Value = true
RptObject.Params.Find("PrintActive").Value = true
RptObject.Params.Find("PrintInactive").Value = false
RptObject.Params.Find("PrintPending").Value = false
RptObject.Params.Find("PrintProspect").Value = false
RptObject.Params.Find("PrintSuspend").Value = false
lDateFrom = CDate("January 1, 2000")
lDateTo = CDate("December 31, 2014")
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
RptObject.Params.Find("CompanyData").Value = "300-A0003"
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsBranch")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox lDataSet.FindField("Code").AsString & " " & lDataSet.FindField("CompanyName").AsString
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("Address1").AsString
lDataSet2.Next
Wend
lDataSet.Next
Wend
End Function
|
Example-Customer.Statement.RO
Customer.Statement.RO Report Object Script |
---|
'Copy below script & paste to notepad & name it as eg customer_statement_ro.vbs
Call GetCustStatementData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetCustStatementData
Const Quote = """"
Dim ComServer, RptObject, lDataSet, lDataSet2, lDateFrom, lDateTo, lAgeData
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("Customer.Statement.RO")
'Step 3: Spool parameters
lAgeData = "<?xml version=" & Quote & "1.0" & Quote & " standalone=" & Quote & "yes" & Quote & "?> <DATAPACKET Version=" & Quote & "2.0" & Quote & "><METADATA><FIELDS>" &_
"<FIELD attrname=" & Quote & "ColumnNo" & Quote & " fieldtype=" & Quote & "i4" & Quote & " required=" & Quote & "true" & Quote & "/><FIELD attrname=" & Quote & "ColumnType" & Quote & " fieldtype=" & Quote & "string" & Quote & " WIDTH=" & Quote & "1" & Quote & "/>" &_
"<FIELD attrname=" & Quote & "Param1" & Quote & " fieldtype=" & Quote & "i4" & Quote & " required=" & Quote & "true" & Quote & "/><FIELD attrname=" & Quote & "Param2" & Quote & " fieldtype=" & Quote & "i4" & Quote & " required=" & Quote & "true" & Quote & "/>" &_
"<FIELD attrname=" & Quote & "IsLocal" & Quote & " fieldtype=" & Quote & "boolean" & Quote & "/><FIELD attrname=" & Quote & "HeaderScript" & Quote & " fieldtype=" & Quote & "bin.hex" & Quote & " SUBTYPE=" & Quote & "Text" & Quote & " WIDTH=" & Quote & "1" & Quote & "/>" &_
"</FIELDS><PARAMS/></METADATA><ROWDATA><ROW ColumnNo=" & Quote & "0" & Quote & " ColumnType=" & Quote & "" & Quote & " Param1=" & Quote & "0" & Quote & " Param2=" & Quote & "0" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "1" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "0" & Quote & " Param2=" & Quote & "0" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= 'Current Mth'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "2" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-1" & Quote & " Param2=" & Quote & "-1" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '1 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "3" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-2" & Quote & " Param2=" & Quote & "-2" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '2 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "4" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-3" & Quote & " Param2=" & Quote & "-3" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '3 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "5" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-4" & Quote & " Param2=" & Quote & "-4" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '4 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "6" & Quote & " ColumnType=" & Quote & "B" & Quote & " Param1=" & Quote & "-999999" & Quote & " Param2=" & Quote & "-5" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '5 Month & above'
end;" & Quote & "/>" &_
"</ROWDATA></DATAPACKET>"
' RptObject.Params.Find("AgentData").Value = 'Not use if AllAgent is True
RptObject.Params.Find("AgingData").Value = lAgeData 'Fixed
RptObject.Params.Find("AgingOn").Value = "I" 'Fixed
RptObject.Params.Find("AllAgent").Value = true
RptObject.Params.Find("AllArea").Value = true
RptObject.Params.Find("AllCompany").Value = false
RptObject.Params.Find("AllCompanyCategory").Value = true
RptObject.Params.Find("AllControlAccount").Value = true
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllDocProject").Value = true
' RptObject.Params.Find("AreaData").Value = 'Not use if AllArea is True
' RptObject.Params.Find("CompanyCategoryData").Value = 'Not use if AllCompanyCategory is True
RptObject.Params.Find("CompanyData").Value = "300-A0001"& vbCRLF & "300-C0001" 'Filter by Customer Code 300-A0001 & 300-C0001
' RptObject.Params.Find("ControlAccountData").Value = 'Not use if AllControlAccount is True
' RptObject.Params.Find("CurrencyData").Value = 'Not use if AllCurrency is True
lDateFrom = CDate("August 1, 2016")
lDateTo = CDate("August 31, 2016")
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
' RptObject.Params.Find("DocProjectData").Value = 'Not use if AllDocProject is True
RptObject.Params.Find("IncludeZeroBalance").Value = false
RptObject.Params.Find("SelectDate").Value = true
RptObject.Params.Find("SortBy").Value = "CompanyCategory;Code;CompanyName;Agent;Area;CurrencyCode;ControlAccount"
RptObject.Params.Find("StatementDate").Value = lDateTo ' Norm same as DateTo
RptObject.Params.Find("StatementType").Value = "O" 'O = Open Item, B = B/F
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsDocument")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox lDataSet.FindField("Code").AsString & " " & lDataSet.FindField("CompanyName").AsString & " " & lDataSet.FindField("Balance").AsString
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("DocNo").AsString
lDataSet2.Next
Wend
lDataSet.Next
Wend
End Function
|
Example-GL.CB.RO
GL.CB.RO Report Object Script |
---|
'Copy below script & paste to notepad & name it as eg GL.CB.RO.vbs
Call GetCLCBData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetCLCBData
Dim ComServer, RptObject, lDataSet, lDataSet2, lDataSet3, lDateFrom, lDateTo
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("GL.CB.RO")
'Step 3: Spool parameters
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllDocProject").Value = true
RptObject.Params.Find("AllDocument").Value = true
RptObject.Params.Find("AllItemProject").Value = true
RptObject.Params.Find("AllItemArea").Value = true
RptObject.Params.Find("AllItemAgent").Value = true
RptObject.Params.Find("AllDocAgent").Value = true
RptObject.Params.Find("AllDocArea").Value = true
RptObject.Params.Find("AllPaymentMethod").Value = false
'RptObject.Params.Find("CurrencyData").Value = 'Not use if AllCurrency is true
lDateFrom = CDate("January 01, 2017")
lDateTo = CDate("December 31, 2017")
'For Post Date From & Date To'
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
'RptObject.Params.Find("DocProjectData").Value = 'Not use if AllDocProject is true
'RptObject.Params.Find("DocAreaData").Value = 'Not use if AllDocArea is true
'RptObject.Params.Find("DocAgentData").Value = 'Not use if AllDocAgent is true
'RptObject.Params.Find("ItemAgentData").Value = 'Not use if AllItemAgent is true
RptObject.Params.Find("DocType").Value = "PV" 'PV for Payment Voucher & OR for Official Receipt
'RptObject.Params.Find("DocumentData").Value = 'Not use if AllDocument is true
'RptObject.Params.Find("GroupBy").Value = 'If you wanted to grouping the data
RptObject.Params.Find("IncludeCancelled").Value = false
'RptObject.Params.Find("ItemAreaData").Value = 'Not use if AllItemArea is true
'RptObject.Params.Find("ItemProjectData").Value = 'Not use if AllItemProject is true
RptObject.Params.Find("PaymentMethodData").Value = "310-001"
RptObject.Params.Find("PrintDocumentStyle").Value = false
RptObject.Params.Find("SelectDate").Value = true 'For Post Date
'RptObject.Params.Find("SelectDocDate").Value = 'For Doc Date
RptObject.Params.Find("SortBy").Value = "PostDate;DocNo"
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsDetail")
Set lDataSet3 = RptObject.DataSets.Find("cdsTax")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox lDataSet.FindField("DocNo").AsString & " " & lDataSet.FindField("Description").AsString
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("Code").AsString & " " & lDataSet2.FindField("Description").AsString
lDataSet2.Next
Wend
lDataSet.Next
Wend
'For GST List
MsgBox "GST Code Count " & lDataSet3.RecordCount
lDataSet3.First
While (not lDataSet3.eof)
MsgBox lDataSet3.FindField("Code").AsString
lDataSet3.Next
Wend
End Function
|
Example-AR_Customer
AR_Customer - Script |
---|
'Copy below script & paste to notepad & name it as eg AR_Customer.vbs
Call CheckLogin
Call InsertData
Dim ComServer
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
function CheckLogin
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
'UserName, Password, DCF full path, Database filename
END IF
End Function
Function InsertData
Dim BizObject, lMain, lDetail
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_Customer")
'Step 3: Set Dataset
Set lMain = BizObject.DataSets.Find("MainDataSet") 'lMain contains master data
Set lDetail = BizObject.DataSets.Find("cdsBranch") 'lDetail contains detail data
'Begin Looping yr data
'Step 4 : Insert Data - Master
BizObject.New
lMain.FindField("Code").AsString = "300-Test"
lMain.FindField("CompanyName").AsString = "Cash Sales"
'Step 5: Insert Data - Detail
'For 1st Branch
lDetail.Edit
lDetail.FindField("BranchName").AsString = "BILLING"
lDetail.FindField("Address1").AsString = "Address1"
lDetail.FindField("Address2").AsString = "Address2"
lDetail.FindField("Address3").AsString = "Address3"
lDetail.FindField("Address4").AsString = "Address4"
lDetail.FindField("Attention").AsString = "Attention"
lDetail.FindField("Phone1").AsString = "Phone1"
lDetail.FindField("Fax1").AsString = "Fax1"
lDetail.FindField("Email").AsString = "EmailAddress"
lDetail.Post
'For 2nd Branch
lDetail.Append
lDetail.FindField("BranchName").AsString = "Branch1"
lDetail.FindField("Address1").AsString = "DAddress1"
lDetail.FindField("Address2").AsString = "DAddress2"
lDetail.FindField("Address3").AsString = "DAddress3"
lDetail.FindField("Address4").AsString = "DAddress4"
lDetail.FindField("Attention").AsString = "DAttention"
lDetail.FindField("Phone1").AsString = "DPhone1"
lDetail.FindField("Fax1").AsString = "DFax1"
lDetail.FindField("Email").AsString = "DEmailAddress"
lDetail.Post
'Step 6: Save Document
BizObject.Save
BizObject.Close
'End Looping yr data
'Step 7 : Logout after done
'ComServer.Logout
MsgBox "Done"
End Function
|
Example-AR_Customer-Edit
AR_Customer - Edit Script |
---|
'Copy below script & paste to notepad & name it as eg AR_Customer.vbs
Call EditARCustomer
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function EditARCustomer
Dim ComServer, BizObject, lDataSet, lDataSet2
'Step 1 Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
END IF
'Step 2 Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("AR_Customer")
'Step 3 Set Dataset
Set lMainDataSet = BizObject.DataSets.Find("MainDataSet") 'lMainDataSet contains master data
Set lDetailDataSet = BizObject.DataSets.Find("cdsBranch") 'lDetailDataSet contains detail data
'Step 4 Find Customer Code
BizObject.Params.Find("Code").Value = "300-Test"
BizObject.Open
BizObject.Edit
lMainDataSet.Edit
lMainDataSet.FindField("CompanyName").value = "Testing 123-Changed"
'Step 5 For 1st Branch
v = "BILLING"
if (lDetailDataSet.Locate("BranchName", v, false, false)) then
lDetailDataSet.Edit
lDetailDataSet.FindField("Address1").AsString = "Address1-Changed"
lDetailDataSet.FindField("Address2").AsString = "Address2-Changed"
lDetailDataSet.FindField("Address3").AsString = "Address3-Changed"
lDetailDataSet.FindField("Address4").AsString = "Address4-Changed"
lDetailDataSet.FindField("Attention").AsString = "Attention-Changed"
lDetailDataSet.FindField("Phone1").AsString = "Phone1-Changed"
lDetailDataSet.FindField("Fax1").AsString = "Fax1-Changed"
lDetailDataSet.FindField("Email").AsString = "EmailAddress-Changed"
lDetailDataSet.Post
end if
'Step 5 For 2nd Branch
v = "Branch1"
if (lDetailDataSet.Locate("BranchName", v, false, false)) then
lDetailDataSet.Edit
lDetailDataSet.FindField("Address1").AsString = "DAddress1-Changed"
lDetailDataSet.FindField("Address2").AsString = "DAddress2-Changed"
lDetailDataSet.FindField("Address3").AsString = "DAddress3-Changed"
lDetailDataSet.FindField("Address4").AsString = "DAddress4-Changed"
lDetailDataSet.FindField("Attention").AsString = "DAttention-Changed"
lDetailDataSet.FindField("Phone1").AsString = "DPhone1-Changed"
lDetailDataSet.FindField("Fax1").AsString = "DFax1-Changed"
lDetailDataSet.FindField("Email").AsString = "DEmailAddress-Changed"
lDetailDataSet.Post
end IF
'Step 6 Save Customer
BizObject.Save
BizObject.Close
MsgBox "Done"
End Function
|
Example-GL.TrialBalance.RO
GL Trial Balance Report Object Script |
---|
'Copy below script & paste to notepad & name it as eg GL.TrialBalance.RO.vbs
Call GetGLTBData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetGLTBData
Dim ComServer, RptObject, lDataSet, lDataSet2, lDateFrom, lDateTo
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("GL.TrialBalance.RO")
'Step 3: Spool parameters
RptObject.Params.Find("AllProject").Value = true
RptObject.Params.Find("AllAgent").Value = true
RptObject.Params.Find("AllArea").Value = true
RptObject.Params.Find("LedgerType").Value = "G" 'G = Legder, S = Debtor, P = Supplier
'RptObject.Params.Find("ProjectData").Value = 'Not use if AllArea is true
RptObject.Params.Find("ShowZeroBalance").Value = false
RptObject.Params.Find("SortBy").Value = "PostDate;DocNo"
RptObject.Params.Find("UseDescription2").Value = false
lDateFrom = CDate("October 27, 2016")
lDateTo = CDate("December 31, 2016")
'For Post Date From & Date To'
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
'RptObject.Params.Find("AgentData").Value = 'Not use if AllAgent is true
'RptObject.Params.Find("AreaData").Value = 'Not use if AllArea is true
RptObject.Params.Find("SortBy").Value = "Code;Description"
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsGLAccount")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox "Month To Date"
MsgBox lDataSet.FindField("Code").AsString & " DR=>" & lDataSet.FindField("MTDDR").AsString & " CR=>" & lDataSet.FindField("MTDCR").AsString
MsgBox "Year To Date"
MsgBox lDataSet.FindField("Code").AsString & " DR=>" & lDataSet.FindField("YTDDR").AsString & " CR=>" & lDataSet.FindField("YTDCR").AsString
lDataSet.Next
Wend
'For Account List
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("Code").AsString & " " & lDataSet2.FindField("Description").AsString
lDataSet2.Next
Wend
End Function
|
Example-Customer.Aging.RO
Customer Aging Report Object Script |
---|
'Copy below script & paste to notepad & name it as eg customer_aging_ro.vbs
Call GetCustStatementData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetCustStatementData
Const Quote = """"
Dim ComServer, RptObject, lDataSet, lDataSet2, lDateFrom, lDateTo, lAgeData
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("Customer.Aging.RO")
'Step 3: Spool parameters
lAgeData = "<?xml version=" & Quote & "1.0" & Quote & " standalone=" & Quote & "yes" & Quote & "?> <DATAPACKET Version=" & Quote & "2.0" & Quote & "><METADATA><FIELDS>" &_
"<FIELD attrname=" & Quote & "ColumnNo" & Quote & " fieldtype=" & Quote & "i4" & Quote & " required=" & Quote & "true" & Quote & "/><FIELD attrname=" & Quote & "ColumnType" & Quote & " fieldtype=" & Quote & "string" & Quote & " WIDTH=" & Quote & "1" & Quote & "/>" &_
"<FIELD attrname=" & Quote & "Param1" & Quote & " fieldtype=" & Quote & "i4" & Quote & " required=" & Quote & "true" & Quote & "/><FIELD attrname=" & Quote & "Param2" & Quote & " fieldtype=" & Quote & "i4" & Quote & " required=" & Quote & "true" & Quote & "/>" &_
"<FIELD attrname=" & Quote & "IsLocal" & Quote & " fieldtype=" & Quote & "boolean" & Quote & "/><FIELD attrname=" & Quote & "HeaderScript" & Quote & " fieldtype=" & Quote & "bin.hex" & Quote & " SUBTYPE=" & Quote & "Text" & Quote & " WIDTH=" & Quote & "1" & Quote & "/>" &_
"</FIELDS><PARAMS/></METADATA><ROWDATA><ROW ColumnNo=" & Quote & "0" & Quote & " ColumnType=" & Quote & "" & Quote & " Param1=" & Quote & "0" & Quote & " Param2=" & Quote & "0" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "1" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "0" & Quote & " Param2=" & Quote & "0" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= 'Current Mth'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "2" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-1" & Quote & " Param2=" & Quote & "-1" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '1 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "3" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-2" & Quote & " Param2=" & Quote & "-2" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '2 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "4" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-3" & Quote & " Param2=" & Quote & "-3" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '3 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "5" & Quote & " ColumnType=" & Quote & "A" & Quote & " Param1=" & Quote & "-4" & Quote & " Param2=" & Quote & "-4" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '4 Months'
end;" & Quote & "/>" &_
"<ROW ColumnNo=" & Quote & "6" & Quote & " ColumnType=" & Quote & "B" & Quote & " Param1=" & Quote & "-999999" & Quote & " Param2=" & Quote & "-5" & Quote & " IsLocal=" & Quote & "FALSE" & Quote & " HeaderScript=" & Quote & "ObjectPascal
begin
Value:= '5 Month & above'
end;" & Quote & "/>" &_
"</ROWDATA></DATAPACKET>"
RptObject.Params.Find("ActualGroupBy").Value = "Code;CompanyName" 'Fixed
' RptObject.Params.Find("AgentData").Value = 'Not use if AllAgent is True
RptObject.Params.Find("AgingData").Value = lAgeData 'Fixed
lDateTo = CDate("August 31, 2016")
RptObject.Params.Find("AgingDate").Value = lDateTo
RptObject.Params.Find("AgingOn").Value = "I" 'Fixed
RptObject.Params.Find("AllAgent").Value = true
RptObject.Params.Find("AllArea").Value = true
RptObject.Params.Find("AllCompany").Value = false
RptObject.Params.Find("AllCompanyCategory").Value = true
RptObject.Params.Find("AllControlAccount").Value = true
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllDocProject").Value = true
' RptObject.Params.Find("AreaData").Value = 'Not use if AllArea is True
' RptObject.Params.Find("CompanyCategoryData").Value = 'Not use if AllCompanyCategory is True
RptObject.Params.Find("CompanyData").Value = "300-A0001"& vbCRLF & "300-C0001" 'Filter by Customer Code 300-A0001 & 300-C0001
' RptObject.Params.Find("ControlAccountData").Value = 'Not use if AllControlAccount is True
' RptObject.Params.Find("CurrencyData").Value = 'Not use if AllCurrency is True
' RptObject.Params.Find("DocProjectData").Value = 'Not use if AllDocProject is True
RptObject.Params.Find("FilterPostDate").Value = false
' RptObject.Params.Find("GroupBy").Value = 'Not use
RptObject.Params.Find("IncludePDC").Value = false
RptObject.Params.Find("IncludeZeroBalance").Value = false
RptObject.Params.Find("SortBy").Value = "Code;CompanyName"
RptObject.Params.Find("DateTo").Value = lDateTo
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsDocument")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox lDataSet.FindField("Code").AsString & " " & lDataSet.FindField("CompanyName").AsString & " " & lDataSet.FindField("C1").AsString
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("DocNo").AsString & " " & lDataSet2.FindField("C1").AsString
lDataSet2.Next
Wend
lDataSet.Next
Wend
End Function
|
Example-GL.JE.RO
GL Journal Voucher Report Object Script |
---|
'Copy below script & paste to notepad & name it as eg GLJE_ro.vbs
Call GetCustomerData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetCustomerData
Dim ComServer, RptObject, lDataSet, lDataSet2, lDateFrom, lDateTo
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("GL.JE.RO")
'Step 3: Spool parameters
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllDocProject").Value = true
RptObject.Params.Find("AllDocument").Value = true
RptObject.Params.Find("AllItemProject").Value = true
RptObject.Params.Find("AllItemArea").Value = true
RptObject.Params.Find("AllItemAgent").Value = true
RptObject.Params.Find("AllDocAgent").Value = true
RptObject.Params.Find("AllDocArea").Value = true
RptObject.Params.Find("AllPaymentMethod").Value = true
lDateFrom = CDate("December 1, 2017")
lDateTo = CDate("December 31, 2017")
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DocDateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
RptObject.Params.Find("DocDateTo").Value = lDateTo
RptObject.Params.Find("IncludeCancelled").Value = false
RptObject.Params.Find("PrintDocumentStyle").Value = false
RptObject.Params.Find("SelectDate").Value = true 'Post Date
RptObject.Params.Find("SelectDocDate").Value = false 'Doc Date
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsDetail")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox lDataSet.FindField("DocNo").AsString & " " & lDataSet.FindField("Description").AsString
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("Code").AsString & " " & lDataSet2.FindField("Description").AsString
lDataSet2.Next
Wend
lDataSet.Next
Wend
End Function
|
Example-SL_CS
SL_CS Script |
---|
'Copy below script & paste to notepad & name it as eg SL_CS.vbs
Call InsertData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function InsertData
Dim ComServer, BizObject, lDate
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\estream\SQLAccounting\Share\Default.DCF", "ACC-0020.FDB"
END IF
'Step 2: Find and Create the Biz Objects
Set BizObject = ComServer.BizObjects.Find("SL_CS")
'Step 3: Set Dataset
Set lMainDataSet = BizObject.DataSets.Find("MainDataSet") 'lMainDataSet contains master data
Set lDetailDataSet = BizObject.DataSets.Find("cdsDocDetail") 'lDetailDataSet contains detail data
'Step 4 : Insert Data - Master
lDate = CDate("January 1, 2016")
BizObject.New
lMainDataSet.FindField("DocKey").value = -1
lMainDataSet.FindField("DocNo").value = "--IV Test--"
lMainDataSet.FindField("DocDate").value = lDate
lMainDataSet.FindField("PostDate").value = lDate
lMainDataSet.FindField("Code").value = "300-C0001" 'Customer Code
lMainDataSet.FindField("Description").value = "Sales"
'Step 5: Insert Data - Detail
'For Tax Inclusive = True with override Tax Amount
lDetailDataSet.Append
lDetailDataSet.FindField("DtlKey").value = -1
lDetailDataSet.FindField("DocKey").value = -1
lDetailDataSet.FindField("Account").value = "500-000" 'Sales Account Code & can ignore if had itemcode
lDetailDataSet.FindField("Description").value = "Sales Item A"
lDetailDataSet.FindField("Qty").value = 1
lDetailDataSet.FindField("Tax").value = "SR"
lDetailDataSet.FindField("TaxInclusive").value = 0
lDetailDataSet.FindField("UnitPrice").value = 410.37
lDetailDataSet.FindField("Amount").value = 410.37
lDetailDataSet.FindField("TaxAmt").value = 24.63
lDetailDataSet.DisableControls
lDetailDataSet.FindField("TaxInclusive").value = 1
lDetailDataSet.EnableControls
lDetailDataSet.Post
'For Tax Inclusive = False with override Tax Amount
lDetailDataSet.Append
lDetailDataSet.FindField("DtlKey").value = -1
lDetailDataSet.FindField("DocKey").value = -1
lDetailDataSet.FindField("Account").value = "500-000"
lDetailDataSet.FindField("Description").value = "Sales Item B"
lDetailDataSet.FindField("Qty").value = 1
lDetailDataSet.FindField("Tax").value = "SR"
lDetailDataSet.FindField("TaxInclusive").value = 0
lDetailDataSet.FindField("UnitPrice").value = 94.43
lDetailDataSet.FindField("Amount").value = 94.43
lDetailDataSet.FindField("TaxAmt").value = 5.66
lDetailDataSet.Post
'For With Item Code
lDetailDataSet.Append
lDetailDataSet.FindField("DtlKey").value = -1
lDetailDataSet.FindField("DocKey").value = -1
lDetailDataSet.FindField("ItemCode").value = "ANT"
lDetailDataSet.FindField("Description").value = "Sales Item B"
lDetailDataSet.FindField("Qty").value = 2
lDetailDataSet.FindField("Tax").value = "SR"
lDetailDataSet.FindField("TaxInclusive").value = 0
lDetailDataSet.FindField("UnitPrice").value = 100
lDetailDataSet.FindField("Amount").value = 200
lDetailDataSet.FindField("TaxAmt").value = 12
lDetailDataSet.Post
'Step 6: Save Document
BizObject.Save
BizObject.Close
ComServer.Logout
MsgBox "Done"
End Function
|
Example-Customer.PM.RO
Customer.PM.RO Script |
---|
'Copy below script & paste to notepad & name it as eg Customer.PM.RO.vbs
Call GetARPMData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetARPMData
Dim ComServer, RptObject, lDataSet, lDataSet2, lDataSet3, lDateFrom, lDateTo
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("Customer.PM.RO")
'Step 3: Spool parameters
'RptObject.Params.Find("AgentData").Value = 'Not use if AllAgent is true
'RptObject.Params.Find("CompanyCategoryData").Value = 'Not use if AllCompanyCategory is true
RptObject.Params.Find("AllAgent").Value = true
RptObject.Params.Find("AllCompanyCategory").Value = true
RptObject.Params.Find("AllArea").Value = true
RptObject.Params.Find("AllCompany").Value = true
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllDocument").Value = false
RptObject.Params.Find("AllPaymentMethod").Value = true
'RptObject.Params.Find("AreaData").Value = 'Not use if AllArea is true
'RptObject.Params.Find("CompanyData").Value = 'Not use if AllCompany is true
'RptObject.Params.Find("CurrencyData").Value = 'Not use if AllCurrency is true
lDateFrom = CDate("January 01, 2017")
lDateTo = CDate("December 31, 2017")
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
RptObject.Params.Find("DocumentData").Value = "VCOR-00049"
'RptObject.Params.Find("GroupBy").Value = 'If you wanted to grouping the data
RptObject.Params.Find("IncludeCancelled").Value = false
'RptObject.Params.Find("PaymentMethodData").Value = 'Not use if AllPaymentMethod is true
RptObject.Params.Find("PrintDocumentStyle").Value = false
RptObject.Params.Find("SelectDate").Value = true
RptObject.Params.Find("ShowUnappliedAmountOnly").Value = false
RptObject.Params.Find("SortBy").Value = "PostDate;DocNo;Code"
RptObject.Params.Find("AllDocProject").Value = true
RptObject.Params.Find("AllItemProject").Value = true
'RptObject.Params.Find("DocProjectData").Value = 'Not use if AllDocProject is true
'RptObject.Params.Find("ItemProjectData").Value = 'Not use if AllItemProject is true
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsKnockOff")
Set lDataSet3 = RptObject.DataSets.Find("cdsKnockOffDetail")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox lDataSet.FindField("DocKey").AsString & " " & lDataSet.FindField("DocNo").AsString & " " & lDataSet.FindField("Code").AsString
MsgBox "cdsKnockOff Count " & lDataSet2.RecordCount
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("FromDocKey").AsString & " " & lDataSet2.FindField("DocNo").AsString & " " & lDataSet2.FindField("KOAmt").AsString
lDataSet2.Next
Wend
MsgBox "cdsKnockOffDetail Count " & lDataSet3.RecordCount
lDataSet3.First
While (not lDataSet3.eof)
MsgBox lDataSet3.FindField("FromDocKey").AsString & " " & lDataSet3.FindField("DocNo").AsString & " " & lDataSet3.FindField("KOAmt").AsString
lDataSet3.Next
Wend
lDataSet.Next
Wend
End Function
|
Example-Sales.IV.RO
Sales.IV.RO Script |
---|
'Copy below script & paste to notepad & name it as eg Sales.IV.RO.vbs
Call GetSalesIVData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetSalesIVData
Dim ComServer, RptObject, lDataSet, lDataSet2, lDataSet3, lDateFrom, lDateTo
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("Sales.IV.RO")
'Step 3: Spool parameters
'RptObject.Params.Find("AgentData").Value = 'Not use if AllAgent is true
RptObject.Params.Find("AllAgent").Value = true
RptObject.Params.Find("AllArea").Value = true
RptObject.Params.Find("AllCompany").Value = false
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllDocProject").Value = true
RptObject.Params.Find("AllDocument").Value = true
RptObject.Params.Find("AllItem").Value = true
RptObject.Params.Find("AllItemProject").Value = true
RptObject.Params.Find("AllLocation").Value = true
RptObject.Params.Find("AllStockGroup").Value = true
RptObject.Params.Find("AllCompanyCategory").Value = true
RptObject.Params.Find("AllBatch").Value = true
RptObject.Params.Find("AllTariff").Value = true 'For Version 776 & above
'RptObject.Params.Find("TariffData").Value = 'Not use if TariffData is true - For Version 776 & above
'RptObject.Params.Find("AreaData").Value = 'Not use if AllArea is true
'RptObject.Params.Find("CompanyCategoryData").Value = 'Not use if AllCompanyCategory is true
RptObject.Params.Find("CompanyData").Value = "300-C0001"
'RptObject.Params.Find("CurrencyData").Value = 'Not use if AllCurrency is true
lDateFrom = CDate("January 01, 2017")
lDateTo = CDate("December 31, 2017")
RptObject.Params.Find("DateFrom").Value = lDateFrom
RptObject.Params.Find("DateTo").Value = lDateTo
'RptObject.Params.Find("DocProjectData").Value = 'Not use if AllDocProject is true
'RptObject.Params.Find("DocumentData").Value = 'Not use if AllDocument is true
'RptObject.Params.Find("GroupBy").Value = 'If you wanted to grouping the data
'RptObject.Params.Find("CategoryData").Value = 'Not use if HasCategory is false
'RptObject.Params.Find("CategoryTpl").Value = 'For Internal use only
RptObject.Params.Find("IncludeCancelled").Value = false
RptObject.Params.Find("HasCategory").Value = false
'RptObject.Params.Find("ItemData").Value = 'Not use if AllItem is true
'RptObject.Params.Find("ItemProjectData").Value = 'Not use if AllItemProject is true
'RptObject.Params.Find("LocationData").Value = 'Not use if AllLocation is true
'RptObject.Params.Find("ItemCategoryData").Value = 'For Internal use only
'RptObject.Params.Find("BatchData").Value = 'Not use if AllBatch is true
RptObject.Params.Find("PrintDocumentStyle").Value = false
RptObject.Params.Find("SelectDate").Value = true
RptObject.Params.Find("SortBy").Value = "PostDate;DocNo;Code"
'RptObject.Params.Find("StockGroupData").Value = 'Not use if AllStockGroup is true
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
Set lDataSet2 = RptObject.DataSets.Find("cdsDocDetail")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox lDataSet.FindField("DocKey").AsString & " " & lDataSet.FindField("DocNo").AsString & " " & lDataSet.FindField("Code").AsString
MsgBox "cdsDocDetail Count " & lDataSet2.RecordCount
lDataSet2.First
While (not lDataSet2.eof)
MsgBox lDataSet2.FindField("DocKey").AsString & " " & lDataSet2.FindField("ItemCode").AsString & " " & lDataSet2.FindField("Amount").AsString
lDataSet2.Next
Wend
lDataSet.Next
Wend
End Function
|
Example-Customer.DueDocument.RO
Customer.DueDocument.RO Script |
---|
'Copy below script & paste to notepad & name it as eg Customer.DueDocument.RO.vbs
Call GetData
Function CreateSQLAccServer
Set CreateSQLAccServer = CreateObject("SQLAcc.BizApp")
End Function
Function GetData
Dim ComServer, RptObject, lDataSet, lDateTo
'Step 1: Create Com Server object
Set ComServer = CreateSQLAccServer 'Create Com Server
If not ComServer.IsLogin Then 'if user hasn't logon to SQL application
ComServer.Login "ADMIN", "ADMIN", "C:\DB\SQLAcc.DCF", "ACC-0002.FDB"
END IF
'Step 2: Find and Create the Report Objects
Set RptObject = ComServer.RptObjects.Find("Customer.DueDocument.RO")
'Step 3: Spool parameters
'RptObject.Params.Find("AgentData").Value = 'Not use if AllAgent is true
RptObject.Params.Find("AllAgent").Value = true
RptObject.Params.Find("AllArea").Value = true
RptObject.Params.Find("AllCompany").Value = false
RptObject.Params.Find("AllCompanyCategory").Value = true
RptObject.Params.Find("AllCurrency").Value = true
RptObject.Params.Find("AllDocProject").Value = true
RptObject.Params.Find("AllItemProject").Value = true
'RptObject.Params.Find("AreaData").Value = 'Not use if AllArea is true
'RptObject.Params.Find("CompanyCategoryData").Value = 'Not use if AllCompanyCategory is true
RptObject.Params.Find("CompanyData").Value = "300-A0003"
'RptObject.Params.Find("CurrencyData").Value = 'Not use if AllCurrency is true
'RptObject.Params.Find("DocProjectData").Value = 'Not use if AllDocProject is true
'RptObject.Params.Find("GroupBy").Value = 'If you wanted to grouping the data
'RptObject.Params.Find("ItemProjectData").Value = 'Not use if AllItemProject is true
RptObject.Params.Find("PrintContra").Value = true
RptObject.Params.Find("PrintCreditNote").Value = true
RptObject.Params.Find("PrintDebitNote").Value = true
RptObject.Params.Find("PrintInvoice").Value = true
RptObject.Params.Find("PrintOverDue").Value = true
RptObject.Params.Find("PrintUnDue").Value = true
RptObject.Params.Find("ShowForeignCurrency").Value = true
RptObject.Params.Find("ShowLocalCurrency").Value = true
RptObject.Params.Find("SortBy").Value = "PostDate;DocNo;Code"
lDateTo = CDate("April 12, 2018")
RptObject.Params.Find("DateTo").Value = lDateTo
RptObject.Params.Find("IncludePDCheque").Value = true
'Step 4: Perform Report calculation
RptObject.CalculateReport()
Set lDataSet = RptObject.DataSets.Find("cdsMain")
MsgBox "Count " & lDataSet.RecordCount
'Step 5 Retrieve the output
lDataSet.First
While (not lDataSet.eof)
MsgBox "Dockey " & lDataSet.FindField("DocKey").AsString
MsgBox "DocNo " & lDataSet.FindField("DocNo").AsString
MsgBox "DocAmt " & lDataSet.FindField("DocAmt").AsString
MsgBox "Outstanding " & lDataSet.FindField("Outstanding").AsString
MsgBox "Code " & lDataSet.FindField("Code").AsString
lDataSet.Next
Wend
End Function
|
Example-Customer.IV.RO
Customer.IV.RO Script |
---|
'Copy below script & paste to notepad & name it as eg Customer.IV.RO.vbs
Call GetData
Function CreateSQLAccServer
Set CreateSQLAccServer = |