#0004:旺财云库存管理系统硬件篇

随着移动终端的普及化,信息的采集和输出变得越来越容易唾手可得。

上一篇中介绍了旺财云库存管理系统的基本功能和定价体系,时隔一个多月,忙着种子用户的一些上线支持,还有软件著作权等。这一篇来介绍一下,想要用起来、用得好软件,还需要哪些必要的硬件支持。

1、智能手机或PDA
目前有安卓端的App,可以提供资料查询、库存查询、代客下单等操作,其实用不到专业的PDA,有个比较新款的1000元以上的安卓手机即可。

2、扫描枪
正常情况下,不需要扫描二维码的,就买个一维的扫描枪足够了,有线的就行,也有WiFi的,需要注意使用距离和信号。

没什么花头,淘宝上一搜一大堆,百元之内

3、标签打印机及标签纸
这个根据行业,普通的标签用热敏打印机就行了,如果是珠宝黄金这种需要打印到银标签,需要碳带的,就必须专业的标签打印机,推荐斑马的。

小巧桌面级、不需要耗材,直接购买热敏标签纸即可

推荐热敏打印机:佳博(Gprinter)GP1324D电子面单条码标签打印机热敏 快递单打印机不干胶二维码,不到400元,京东购买链接:https://item.jd.com/10572982722.html

企业级,工业级,不仅可以打印热敏的,还能热转印

推荐专业打印机:斑马(ZEBRA) ZT210/230 工业级标签机条码打印机 二维码不干胶打印机 ZT210(203dpi无屏 标配),4000元左右,京东购买链接:https://item.jd.com/10117924614.html

各种主流尺寸直接选择,价格低廉,每张1分钱

目前系统默认的标签尺寸有:40*30mm、50*30mm、100*60mm,请购买时参考。

标签购买参考链接:

1、https://item.jd.com/16047939605.html
2、https://item.jd.com/10033808873.html

4、针式打印机及多联单据打印纸
打印机很普通的针式打印机就够了。
打印纸就是常规的多联单,尺寸都是241mm宽度。

淘宝一搜一大堆,价格从500到1800不等,都好用
可根据需要选择整张,半张或三分之一张
一般客户一联、仓库一联、财务留存一联就够了。 根据自己业务需要购买。

购买的话,京东的链接供参考:https://item.jd.com/11880739745.html

规模小的企业,只要投入1500到2000元的硬件,
软件方面,每个账户每天一块钱,每年365元,只需要极少的初期资金投入,就可以拥有一套强大的信息系统支持了。

局域网快速传文件还是Dukto好用

试了飞鸽传书,也试了飞秋,都不满意,不可否认他们功能很多:聊天、群组、共享文件,但我就需要局域网的两台电脑快速传文件,要解决的痛点是:快速。至于其它的跨系统从Mac到Windows,其实本来一个网段就能直连;苹果手机或平板、安卓手机到PC互传其实也不是刚需。我需要的是快速,最好支持断点续传。

没想到试到第三个:Dukto,我的痛点就帮我解决了。

剩下我也不啰嗦了,官方下载地址:http://www.msec.it/blog/?page_id=11

C#访问SOAP Web Service时500报错后的返回信息获取

调试Infor ERP LN Web Service的时候,你会发现如果调用不成功,返回的Http Header是500,但用SoupUI还是能看到结果返回,是不是很诡异。

因为这个东西,曾浪费了好几天,换了多种方式调用Web Service:引用、静态、动态、HTTP Post都试了。最后用Fiddle监控本地服务,然后开SoupUI代理,获取到下图。

这就造成了当使用HttpWebRequest访问时,不成功就会出现System.Net.WebException: ‘The remote server returned an error: (500) Internal Server Error.’报错(如下图),获取不到结果了。

怎么办呢,这里只能通过获取异常,然后将异常的相应结果返回。

用下面的代码就不论500错误是否发生,都能获取到Web Service返回值的源代码。

            //500 error but get the message
            HttpWebResponse res;
            try
            {
                res = (HttpWebResponse)webRequest.GetResponse();
            }
            catch (WebException ex)
            {
                res = (HttpWebResponse)ex.Response;
            }
            StreamReader sr = new StreamReader(res.GetResponseStream() ?? throw new InvalidOperationException(), Encoding.UTF8);
            var result = sr.ReadToEnd();

H5 WebApp禁止Webform页面回发

前一阵写一个H5的WebApp,用得老技术Webform,然后找人封装一下,优化一下WebView等,主要是实现运行于安卓系统的PDA能很方便的查询库存、进行库存的收发操作。

其中有一个扫码查询,允许用户手动输入,针对input textbox做了onchange事件,但是提交就会出现一个页面自动回发的问题。

用了比较原始的方式:

1、先给页面的表单设置DefaultButton(这里设置的是btnSubmit)。作用是:回车时会以该按钮被点击来提交表单进行回发。

<form id="form1" runat="server" defaultbutton="btnSubmit">

2、为btnSubmit设置Enabled=”False”。作用是:回车后发现btnSubmit不能使用,所以这次提交也就不能成功了

3、如果不想看到这个btnSubmit,就加上样式style=” display:none”进行隐

好了看一下截图吧:

H5端软键盘把footer底部导航栏顶上去了怎么解决?

这个问题是WebApp的通病,特别是用了BootStrap的底部导航栏,又用了input选中时自动移到合适位置,避免软键盘覆盖的时候,会特别明显。

网上有不少分享,都是通过js来实现的,因为我是在安卓手机端,试了多个不管用。

比方说这个:

var oHeight = $(document).height(); //浏览器当前的高度 
$(window).resize(function(){//ios软键盘弹出不会触发resize事件
     if($(document).height() < oHeight){
     $("#footer").css("position","static"); }else{
     $("#footer").css("position","absolute"); //adsolute或fixed,看你布局
} }); 

还有这个:

$("body").find("input[type=text]").each(function() {
    $(this).bind('focus', function() {
        $('#footer').css('display', 'none');
    }).bind('blur', function() {
        $('#footer').css({
            'position': 'fixed',
            'bottom': '0'
        });
        var footer = $('#footer');
                    var display = footer.css('display');
                    if (display == 'none') {
                        footer.show();
                    } else {
                        footer.hide();
                    }
    });
});

最终,我把输入框软键盘防覆盖和底部导航软键盘防顶结合在一起,安卓端用起来还不错。

$(function () {
    $('input,textarea').on('focus', function () {
        //立即隐藏
        $('.footer').css('display', 'none');
        var target = this;
        setTimeout(function () {
            target.scrollIntoViewIfNeeded();
            //target.scrollIntoView(true);
            //console.log('scrollIntoViewIfNeeded');
        }, 200);
    });
    $('input,textarea').on('click', function () {
        var target = this;
        setTimeout(function () {
            target.scrollIntoViewIfNeeded();
            //target.scrollIntoView(true);
            //console.log('scrollIntoViewIfNeeded');
        }, 200);
    });
    $('input,textarea').on('blur', function () {
        $('.footer').css({
            'position': 'fixed',
            'bottom': '0'
        });
        var footer = $('.footer');
        var display = footer.css('display');
        if (display === 'none') {
            footer.fadeIn(2000, function () {//fade
                    footer.show();
            });

            //setTimeout(function () {
            //    footer.show();
            //}, 200);
        } else {
            footer.hide();
        }
    });
});

上海迪士尼游玩停车攻略(持续更新)

陆续去了多次上海迪士尼,从最早的内部员工参观,到试运营,到后面陪同游玩,官方停车场收费高的问题,一直困扰着我。所以如果你是土豪,就不用看这篇文章了。

根据游玩的方便程度和价格,我列出了几个选择:

1、迪士尼官方停车场(停过,价格高,最方便,推荐指数4)

2、小强停车(停过,价格便宜,一整天最划算,需要短驳交通,推荐指数3)

3、光明生态园停车场(原申迪生态园,停过,价格合理,步行10分钟挺方便,推荐指数5)

4、配套酒店停车场(没停过,据说下午去可以免费蹭到)

5、地铁11号线康新公路附近停车场(没停过,据说停一天最便宜,不带孩子,停这里坐一站地铁最好)

#0003:第一个公开演示-旺财云库存管理系统

趁着元旦放假加上本周末的一点时间,我将《0001:Done is better that perfect,比完美更好的是完成》提到的第2个积累的作品:旺财云库存的演示系统正式发布出来了。

这是一款– 针对中小型企业,特别是有一物一码(一码一物)、批次、质保期、有效期要求的金银珠宝、化妆品和汽配(电机) 等行业 ,也可以用于样品库存管理、备品备件库存管理。

看过我博客的朋友,应该记得我2014年开始为珠宝行业的黄金(素金)电商零售和批发定制过一套旺财珠宝库存管理系统(软件著作权2017SR342261),客户(邻居)用得很满意,现在年销售额都破2个亿了。在经历了旺财备品备件库存管理系统的通用性改造后,2018整年的闲暇时间都在重构,在保持简约、实用的强大库存管理的功能的基础上,针对不同行业设定配置参数,完成从珠宝行业到通用行业的升级。并在数家企业的实际业务中发挥重要作用。

软件的重要特点如下,更多功能亮点后继会逐一介绍:

  1. 支持多公司,多仓库,多库位
  2. 全追溯,序列号,批次号
  3. 双库存单位(特别针对金银贵金属)
  4. 运行于浏览器,客户端免安装
  5. 特别适用一物一码,批次管理,有效期,保质期等要求的行业
  6. 按件扫码盘点
  7. 出库、退货入库扫码操作
  8. 极易扩展为云进销存系统
  9. 可支持手机端经销商下单或手机代客开单

演示网址: http://spwmsdemo.wangcaisoft.com/
无需输入账号密码,直接点击:立即登录即可体验
注意:请勿修改测试密码,谢谢配合

当然了,你也可以在线注册演示账号,用于自己公司的数据测试。试用完毕觉得满意,就可以付费并一键迁移到正式系统。

费用吗,其实定位为中小企业的仓库库存管理系统,分2种模式:

1、按用户、按年收费、公有云:一个用户365/年( 一天一块钱 ),年数据量5万条以内
2、终生买断、私有云:不限用户,3.6万起,技术支持及升级服务费每年3600

收费模式和标准目前为2019年暂行,根据实际运营情况调整。

你要是问我是不是创业了,我说我一直在做,但没有专职创业。不过这个旺财软件是我夫人在专职搞运营,我负责提供技术的支持。

我是如何4个小时搞定一个比赛成绩查询微信端的

我的一个老同事,转行做教育行业,主办了一个省的比赛项目,给我打电话时,比赛刚结束,觉得直接微信公众号发个文章,把参赛选手的成绩放在一个表格里面,比较Low,另外可能有些小的机构组织者自己复制他们的选手成绩,就直接发给选手了,官方的公众号就是失去上千个选手的关注。

老同事开玩笑说发个红包,让我给她搞定,要第二天成绩一出来就能查。

心想有我的旺财C# .NET代码生成器,就一个表的事,80%的代码一键就生成了,剩下10%弄点后台代码,其它的都是前端的美化了。正巧晚上没有电话会议,就一口答应了,可是没想到3个小时居然没搞定。前端美化,特别是弄张顶部的图花费了我不少时间。

废话少说,先上截图吧,不然看文字你会看不下去,看完图,待我慢慢说来。

查询界面

结果页面(iPhone7和iPhone8)

管理员登录

新增及查看页面

老同事的电话上,我让她提供所要显示的成绩信息,就是列一个Excel表,把表头给我。然后告诉我根据什么来查询。

当天拿到的表结构如下:

我新增了3个字段,简单记录一下查询次数、首次查询时间和最近查询时间。

接着用代码生成器一键生成代码:

业务代码:除ScoreManager..Manual.cs文件外,都是自动生成的

Web页面及代码:Exam目录里的全部自动生成的,下面2个Exam.aspx和Score.aspx是手动创建的。

查询成绩的核心代码为复制现成的,手写一部分,如下:

读数据库的,就是纯SQL啦

前端部分,主要就是Exam.aspx和Score.aspx,涉及到一个上面的图,原始图如下,太宽了,得裁剪出来,不然文字都看不清楚,另外底部加点渐变。

功能真得很简单,因为时间紧张,做到这个程度已经让老同事惊讶,当然了第二天做了点文字、标题、数据导入、个别记录的修改,但核心的开发用了晚上的4个小时完成,多亏了不断完善的代码生成器。当然了,很多生成的代码和功能并未用到,特别是各种操作的权限管理、缓存等等。

如果时间来得及,这个比赛成绩查询小系统还可以做得更加完美

比方说:

  1. 记录查询者的IP地址信息,并获知其地理位置、省份城市等信息并保存
  2. 每次查询记录都保存到单独的表
  3. 用户查询时,可以多增加几个查询条件,并后台可以配置,如参赛码、比赛名称(可选)
  4. 管理员后台可以Excel/CSV导入记录
  5. 选手查询成绩后,如果中奖可以提交快递收货信息
  6. 选手查询成绩后,可生成图片转发到朋友圈炫耀等
  7. PC端也做上,特别是UI要针对PC

让高效技术帮助更多人

浪费了1个多小时写这篇文章,其实也没啥技术含量。但这么一个简单的功能,其实很多类似的竞赛、比赛、考试等都可以直接用,对考生、选手、举办方都会受益。

有类似需求的朋友,可以联系我量身定制贵组织的比赛/考试/竞赛成绩查询系统,体验快速、高效的技术服务。