AX 的零售 POS 开发-代码示例

这篇文章我们初步介绍.NET POS技术,让您可以编码。
1、POS是如何获取数据的? 
    虽然您可以使用任何.Net 技术访问数据,但 POS 提供 helper 类,使数据库连接更简单!
using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Data;usingSystem.Data.SqlClient;using LSRetailPosis.DataAccess;using LSRetailPosis.DataAccess.DataUtil; namespaceRahul.Dynamics.Retail.DataAccess{ public class PosIsButtonGrid : DataLayer { public PosIsButtonGrid(SqlConnection connection, string DATAAREAID) : base(connection, DATAAREAID) { } public DataTable GetPosIsButtonGridById(stringBUTTONGRIDID) { SqlSelect sqlUtilSelect = new SqlSelect("POSISBUTTONGRID"); sqlUtilSelect.Select("BUTTONGRIDID"); sqlUtilSelect.Select("NAME"); sqlUtilSelect.Where("DATAAREAID", base.dataAreaId, true); sqlUtilSelect.Where("BUTTONGRIDID", BUTTONGRIDID, false); return base.dbUtil.GetTable(sqlUtilSelect); } public DataTable GetPosIsButtonGridButtonsByGridId(string BUTTONGRIDID) { SqlSelect sqlUtilSelect = newSqlSelect("POSISBUTTONGRIDBUTTONS"); sqlUtilSelect.Select("DISPLAYTEXT"); sqlUtilSelect.Select("ACTIONPROPERTY"); sqlUtilSelect.Where("DATAAREAID", base.dataAreaId, true); sqlUtilSelect.Where("BUTTONGRIDID", BUTTONGRIDID, false); sqlUtilSelect.OrderBy("ROWNUMBER", true); return base.dbUtil.GetTable(sqlUtilSelect); } }}

2、POS如何显示一个对话框?

using (LSRetailPosis.POSProcesses.frmMessage dialog = new LSRetailPosis.POSProcesses.frmMessage("Rahul", MessageBoxButtons.OK, MessageBoxIcon.Error)){ LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSForm(dialog); }

3) 将项目添加到当前的销售事务。

//Sale item. Add it to retail transaction 
public static void ItemSale(ref PosTransaction posTransaction, string itemID, decimal quantity) { // If the transaction object is not of the type RetailTransaction, it has to be converted to one before an item can be added if (posTransaction.GetType() !=typeof(RetailTransaction)) { posTransaction = newRetailTransaction(LSRetailPosis.Settings.ApplicationSettings.Terminal.StoreId, LSRetailPosis.Settings.ApplicationSettings.Terminal.StoreCurrency, LSRetailPosis.Settings.ApplicationSettings.Terminal.TaxIncludedInPrice, LSRetailPosis.ApplicationServices.IRounding); TransactionSystem transSystem = new TransactionSystem(posTransaction); transSystem.LoadTransactionStatus(); } try { stringselectedItemId = itemID; //if (ApplicationServices.IItem.ItemSearch(ref selectedItemId, 500)) { ItemSystem system = newItemSystem((RetailTransaction)posTransaction); string selectedBarcodeId = ""; DataTable barcodesForItem = system.GetBarcodesForItem(selectedItemId); if (barcodesForItem == null) { selectedBarcodeId = ""; } else if(barcodesForItem.Rows.Count == 0) { selectedBarcodeId = ""; } else if (barcodesForItem.Rows.Count == 1) { selectedBarcodeId = barcodesForItem.Rows[0][0].ToString(); } if (selectedBarcodeId.Length != 0) { OperationInfo o = new OperationInfo(); o.NumpadQuantity = 1; o.NumpadValue = selectedBarcodeId; o.ReturnItems = false; new ItemSale { OperationID = PosisOperations.ItemSale, OperationInfo = o, Barcode = selectedBarcodeId, POSTransaction = posTransaction }.RunOperation(); } else { OperationInfo o = new OperationInfo(); o.NumpadQuantity = 1; o.NumpadValue = selectedItemId; o.ReturnItems = false; new ItemSale { OperationID = PosisOperations.ItemSale, OperationInfo = o, Barcode = selectedItemId, POSTransaction = posTransaction }.RunOperation(); } } } catch (PosisException exception) { using(LSRetailPosis.POSProcesses.frmMessage dialog = new LSRetailPosis.POSProcesses.frmMessage(exception.Message, MessageBoxButtons.OK, MessageBoxIcon.Error)) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSForm(dialog); } ApplicationExceptionHandler.HandleException("BlankOperation.ItemSale", exception); throw; } catch (Exception exception2) {using (LSRetailPosis.POSProcesses.frmMessage dialog = new LSRetailPosis.POSProcesses.frmMessage(exception2.Message, MessageBoxButtons.OK, MessageBoxIcon.Error)) { LSRetailPosis.POSProcesses.POSFormsManager.ShowPOSForm(dialog); } ApplicationExceptionHandler.HandleException("BlankOperation.ItemSale", exception2); throw; } }

时间: 2024-10-25 07:10:30

AX 的零售 POS 开发-代码示例的相关文章

【甘道夫】Eclipse+Maven搭建HBase开发环境及HBaseDAO代码示例

环境: Win764bit Eclipse Version: Kepler Service Release 1 java version "1.7.0_40" 第一步:Eclipse中新建Maven项目,编辑pom.xml并更新下载jar包 <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance&qu

SkylineGlobe Android 开发 面积计算示例代码

SkylineGlobe Android 开发 面积计算示例代码: 如果之前熟悉SkylineGlobe桌面端的二次开发,看这些代码应该不难理解. package com.skyline.terraexplorer.tools; import android.os.Handler; import android.os.Looper; import com.skyline.teapi.*; import com.skyline.teapi.ISGWorld.OnAnalysisProgressLi

【嵌入式开发】裸机引导操作系统和ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 )

[嵌入式开发]ARM 内存操作 ( DRAM SRAM 类型 简介 | Logical Bank | 内存地址空间介绍 | 内存芯片连接方式 | 内存初始化 | 汇编代码示例 ) 一. 内存 简介 1. 两大内存分类 ( 1 ) DRAM 简介 ( 定期刷新 | 速度慢 | 成本低 ) DRAM 简介 : 1.硬件描述 : DRAM 基本由一个个小电容基本原件组成, 电容的两端保留电荷; 2.优缺点描述 : ① 优点 : 成本很低, 很便宜; ② 缺点 : 需要 定期刷新数据, 速度较慢; a.

领域驱动开发推荐代码示例 — Microsoft NLayerApp

简介: Microsoft NLayerApp是由微软西班牙团队出品的基于.NET 4.0的“面向领域N层分布式架构”代码示例,在codeplex上的地址是:http://microsoftnlayerapp.codeplex.com/. 架构图: 点击查看大图 代码下载:http://microsoftnlayerapp.codeplex.com/releases/view/56660 所用到的软件: - Microsoft Visual Studio 2010  - Microsoft Ex

代码示例:一些简单技巧优化JavaScript编译器工作详解,让你写出高性能运行的更快JavaScript代码

告诉你一些简单的技巧来优化JavaScript编译器工作,从而让你的JavaScript代码运行的更快.尤其是在你游戏中发现帧率下降或是当垃圾回收器有大量的工作要完成的时候. 单一同态: 当你定义了一个两个参数的函数,编译器会接受你的定义,如果函数参数的类型.个数或者返回值的类型改变编译器的工作会变得艰难.通常情况下,单一同态的数据结构和个数相同的参数会让你的程序会更好的工作. function example(a, b) { // 期望a,b都为数值类型 console.log(++a * +

[IE编程] 多页面基于IE内核浏览器的代码示例

有不少人发信问这个问题,我把答案贴在这里: 建议参考 WTL (Windows Template Library) 的代码示例工程TabBrowser  (在WTL目录/Samples/TabBrowser 下面).该工程演示了如何用WTL + IE WebBrowser接口开发一个多Tab的IE内核浏览器, 并演示如何用ATL的IDispEventSimpleImpl监听DWebBrowserEvents2 事件, 代码简洁易懂,很有参考价值. WTL 是微软的开源项目,可以去 http://

客户端操作zookeeper服务代码示例

本文主要贴出通过zookeeper的客户端类访问zookeeper的示例,以及其它第三方更高层次的封装的客户端使用. 1.通过org.apache.zookeeper.ZooKeeper来操作zookeeper服务 有关zookeeper服务的部署参见文:http://aiilive.blog.51cto.com/1925756/1684145 下文将有代码示例展示通过编码方式在应用中启动zookeeper服务. ZooKeeper类对zookeeper服务的简单操作示例代码如下: packag

Android Java使用JavaMail API发送和接收邮件的代码示例

JavaMail是Oracle甲骨文开发的Java邮件类API,支持多种邮件协议,这里我们就来看一下Java使用JavaMail API发送和接收邮件的代码示例 使用Javamail发送邮件,必需的jar包(请下载javamail的源文件,官方下载页:http://www.oracle.com/technetwork/java/javamail/index-138643.html):mailapi.jar.定义了收发邮件所使用到的接口API:smtp.jar.包含了发送邮件使用到的类:pop3.

英特尔&#174; 实感? 深度摄像头代码示例 – R200 摄像头数据流

英特尔开发人员专区原文地址 简介 该可下载代码示例展示了如何使用面向 Windows 的英特尔® 实感™ SDK* 捕捉和查看用 C#/XAML 编写的原始 R200 摄像头数据流. Visual Studio* 解决方法实际上包含四个简单项目(均不到 200 行代码): ColorStream – 显示 RGB 摄像头的色彩数据流 DepthStream – 显示深度数据流 IRStreams – 显示左右 IR 摄像头数据流 AllStreams – 在单个窗口中显示上述所有数据流(图 1)