高章伟
2022-03-18 4bfe21c4b5ddc089ae5a95f4b10f6cff148b690d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
<!-- 20211210 ljh 条形码 -->
<apex:page standardController="Consum_Apply__c">
    <apex:includeScript value="{!URLFOR($Resource.qrcode)}"/>
    <apex:includeScript value="/soap/ajax/46.0/connection.js"/>
    <apex:includeScript value="/soap/ajax/46.0/apex.js"/>
 
    <apex:includeScript value="{!URLFOR($Resource.jquery183minjs)}"/>
    <apex:includeScript value="{!URLFOR($Resource.jqueryBarcode)}"/>
    <script type="text/javascript">
        function generateBarcode(){
            var value = $("#barcodeValue").val();
            var btype = 'code128';
            var renderer = 'svg';
        
            var settings = {
              output:'svg',
              bgColor: '#FFFFFF',
              color: '#000000',
              showHRI: false,
              barWidth: '1',
              barHeight: '50',
              moduleSize: '5',
              posX: '10',
              posY: '20',
              addQuietZone: '1'
            };
            value = {code:value, rect: true};
            $("#barcodeTarget").html("").show().barcode(value, btype, settings);
        }
        $(function(){
            generateBarcode();
        });
    </script>
    <input type="hidden" id="barcodeValue" value="{!Consum_Apply__c.Name_No__c}"/> 
    <div id="barcodeTarget" class="barcodeTarget"></div>
    <script type="text/javascript">
        function getImgBase64(imageBase64){
            const imgNew = new Image(); // 创建图片容器
            imgNew.src = imageBase64; //imageBase64 为svg+xml的Base64 文件流
            // 图片创建后再执行,转Base64过程
            const canvas = document.createElement("canvas");
            canvas.width = 350;  //设置好 宽高  不然图片 不完整
            canvas.height = 60;
            const context = canvas.getContext("2d");
            context.drawImage(imgNew, 5, 5);
            let ImgBase64 = canvas.toDataURL("image/png");
            return ImgBase64
        }
        function createAttachmentBrcode() {
            var img = $("#barcodeTarget img");
            var src = img[0].src;
            var srcNew = getImgBase64(src);
            src = srcNew.substring(22, srcNew.length);
            sforce.connection.sessionId = '{!GETSESSIONID()}';
 
            var record = sforce.connection.query("select id from Attachment where ParentId = \'{!Consum_Apply__c.Id}\' and name = \'BRCode-{!Consum_Apply__c.Name_No__c}\'");
            // 既にあれば無視
            if (record.size == 0) {
                var atta = new sforce.SObject("Attachment");
                atta.Name = "BRCode-{!Consum_Apply__c.Name_No__c}";
                atta.ParentId = "{!Consum_Apply__c.Id}";
                atta.Body = src;
                var result = sforce.connection.create([atta]);
 
                var es = new sforce.SObject("Consum_Apply__c");
                es.Id = "{!Consum_Apply__c.Id}";
                es.BRId__c = result[0].id;
                result = sforce.connection.update([es]);
            //申请书更新失败的话再次更新
            } else if ("{!Consum_Apply__c.BRId__c}" == '' || "{!Consum_Apply__c.BRId__c}" == null) {
                var records = record.getArray("records");
                var es = new sforce.SObject("Consum_Apply__c");
                es.Id = "{!Consum_Apply__c.Id}";
                es.BRId__c = records[0].Id;
                result = sforce.connection.update([es]);
                // TODO Name変わる可能性あり、upsertにします
            } else {
                alert(record[0].id);
            }
        }
        // BRcode生成後、Attachmentを作成
        setTimeout("createAttachmentBrcode()", 1000);
    </script>
</apex:page>