01.03.04.tiptop:快速开始篇(4fd+4gl+数据库:选项卡,两张表分别显示不同数据)

基础知识:01.03.01.快速开始篇(4fd+4gl+数据库:数据交互)

本页目录:

  • 1、语法
  • 2、实列
    • 2.1、编写程序
    • 2.2、测试

语法

将数据展现到画面

  • 效果
    在这里插入图片描述

  • 4gl

FUNCTION q380_show()
  DEFINE cnt,cnt_no INTEGER
  #单身
  CALL cl_set_act_visible("accept,cancel", FALSE)
  DIALOG ATTRIBUTES(UNBUFFERED)
   DISPLAY ARRAY g_table TO s_table.* 
         ATTRIBUTES(COUNT=g_table_count)
         BEFORE DISPLAY
            CALL cl_navigator_setting( g_curs_index, g_row_count )
            EXIT DIALOG
         BEFORE ROW
            LET cnt = ARR_CURR()
            CALL cl_show_fld_cont()
         ON ACTION first -- 第一笔按钮
            CALL paging_fetch('F')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION previous --上笔
            CALL paging_fetch('P')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION jump --指定笔
            CALL paging_fetch('/')
            ACCEPT DIALOG
               EXIT DIALOG 
         ON ACTION next --下笔
            CALL paging_fetch('N')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION last -- 末一笔
            CALL paging_fetch('L')
            ACCEPT DIALOG
               EXIT DIALOG 
         AFTER DISPLAY
            EXIT DIALOG
   END DISPLAY

   DISPLAY ARRAY g_table_no TO s_table_no.* 
         ATTRIBUTES(COUNT=g_table_no_count)
         BEFORE DISPLAY
            CALL cl_navigator_setting( g_curs_index, g_row_count )
            EXIT DIALOG
         BEFORE ROW
            LET cnt_no = ARR_CURR()
            CALL cl_show_fld_cont()
         ON ACTION first -- 第一笔按钮
            CALL paging_fetch('F')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION previous --上笔
            CALL paging_fetch('P')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION jump --指定笔
            CALL paging_fetch('/')
            ACCEPT DIALOG
               EXIT DIALOG 
         ON ACTION next --下笔
            CALL paging_fetch('N')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION last -- 末一笔
            CALL paging_fetch('L')
            ACCEPT DIALOG
               EXIT DIALOG 
         AFTER DISPLAY
            EXIT DIALOG
   END DISPLAY
 END DIALOG
 CALL cl_set_act_visible("accept,cancel", TRUE)
 
END FUNCTION

实列

基础:04.03.02.快速开始篇(4fd+4gl+数据库:按单头分页)

编写程序

  • 需求:第一层查询到数据(单头),再进行第二层查询(单身)
4fd
  • 代码:cxmq380.4fd
<?xml version="1.0" encoding="UTF-8" ?>
<ManagedForm databaseName="ds" gstVersion="22800" name="ManagedForm" uid="{a0a998a7-586e-40c7-a945-556afe07247f}">
  <AGSettings/>
  <Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="Undefined" order="" uid="{f7d1882a-c426-4abd-9aa0-16e2294dc3b3}" where="">
    <RecordField colName="" fieldIdRef="1" name="poz01" sqlTabName="" sqlType="VARCHAR" table_alias_name="" uid="{7b67776f-e187-43dd-804e-a61fc2d0d241}"/>
    <RecordField colName="" fieldIdRef="2" name="cnt" sqlTabName="" table_alias_name="" uid="{92852dad-3335-479e-8af4-6954a553c1fe}"/>
    <RecordField colName="" fieldIdRef="3" name="cn2" sqlTabName="" table_alias_name="" uid="{bbd73337-0489-4b87-b23f-ec237671c69e}"/>
    <RecordField colName="" fieldIdRef="14" name="poz011" sqlTabName="" table_alias_name="" uid="{cbb574b4-d467-4545-85c0-57b6cf8c274b}"/>
    <RecordField colName="" fieldIdRef="16" name="poy04" sqlTabName="" table_alias_name="" uid="{f810c0df-0f91-43c9-b8d8-b862744d1929}"/>
    <RecordField colName="" fieldIdRef="13" name="poy11" sqlTabName="" table_alias_name="" uid="{269862e5-6001-457d-81a4-9a22afd61039}"/>
    <RecordField colName="" fieldIdRef="15" name="imd02" sqlTabName="" table_alias_name="" uid="{61aa9b06-a89b-4a49-a3e1-693e439e3687}"/>
    <RecordField colName="" fieldIdRef="5" name="cn1" sqlTabName="" table_alias_name="" uid="{42c6d404-5cee-4086-8e3d-0e8fdb6787c2}"/>
    <RecordField colName="" fieldIdRef="20" name="cn3" sqlTabName="" table_alias_name="" uid="{927e2c79-c363-4055-9282-6a6d5a05d45b}"/>
  </Record>
  <Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="s_table" order="" uid="{365c9fbc-2e45-4f0f-bcf9-13fc9de5656c}" where="">
    <RecordField colName="" fieldIdRef="4" name="oea01" sqlTabName="" table_alias_name="" uid="{9d2d6d17-a9f9-4d40-8a87-a11bdf95162d}"/>
    <RecordField colName="" fieldIdRef="6" name="oea02" sqlTabName="" table_alias_name="" uid="{732553de-e9fc-48dd-a072-d0a3d43e0b4a}"/>
    <RecordField colName="" fieldIdRef="7" name="oeb03" sqlTabName="" table_alias_name="" uid="{8dbd1056-2a61-4b6e-a63c-5b87d94df16b}"/>
    <RecordField colName="" fieldIdRef="8" name="img01" sqlTabName="" table_alias_name="" uid="{3870aace-1d85-4f5d-9168-f53c9eb2258e}"/>
    <RecordField colName="" fieldIdRef="9" name="ima02" sqlTabName="" table_alias_name="" uid="{76c18a68-1509-47de-a3e5-052b8faf14f2}"/>
    <RecordField colName="" fieldIdRef="10" name="ima021" sqlTabName="" table_alias_name="" uid="{cce42e09-4821-4730-a81c-71fa580edad0}"/>
    <RecordField colName="" fieldIdRef="11" name="img09" sqlTabName="" table_alias_name="" uid="{c7d96247-b36c-4865-a489-23562939c646}"/>
    <RecordField colName="" fieldIdRef="12" name="img10" sqlTabName="" table_alias_name="" uid="{e2c64108-62d4-4d02-980e-3c22e9163d39}"/>
    <RecordField colName="" fieldIdRef="17" name="oeb12" sqlTabName="" table_alias_name="" uid="{aac5c56d-3044-4efa-b9b8-2118e8bdaecb}"/>
    <RecordField colName="" fieldIdRef="18" name="ogb12" sqlTabName="" table_alias_name="" uid="{3e30b40b-3c1a-484b-81e7-9874e5bfc94d}"/>
    <RecordField colName="" fieldIdRef="19" name="d" sqlTabName="" table_alias_name="" uid="{18f3347a-0b37-4b98-be47-ff9a5ea0fae6}"/>
  </Record>
  <Record additionalTables="" joinLeft="" joinOperator="" joinRight="" name="s_table_no" order="" uid="{49f25685-47f4-4370-8263-9551c2b92343}" where="">
    <RecordField colName="img01" fieldIdRef="21" fieldType="TABLE_COLUMN" name="img_file.img01" sqlTabName="img_file" sqlType="VARCHAR" table_alias_name="" uid="{ef328804-b8e9-4fae-a2c7-6de9002950c2}"/>
    <RecordField colName="ima02" fieldIdRef="24" fieldType="TABLE_COLUMN" name="ima_file.ima02" sqlTabName="ima_file" sqlType="VARCHAR" table_alias_name="" uid="{f58b8f6d-0364-4cf8-b220-d90723bf5ead}"/>
    <RecordField colName="ima021" fieldIdRef="26" fieldType="TABLE_COLUMN" name="ima_file.ima021" sqlTabName="ima_file" sqlType="VARCHAR" table_alias_name="" uid="{0c74d407-0bd1-40db-913e-49c55f95ba63}"/>
    <RecordField colName="img09" fieldIdRef="22" fieldType="TABLE_COLUMN" name="img_file.img09" sqlTabName="img_file" sqlType="VARCHAR" table_alias_name="" uid="{605e091e-ae62-4c55-8986-19c3075a717e}"/>
    <RecordField colName="img10" fieldIdRef="23" fieldType="TABLE_COLUMN" name="img_file.img10" precisionDecimal="15" scaleDecimal="3" sqlTabName="img_file" sqlType="DECIMAL" table_alias_name="" uid="{2717816f-24a9-457e-9fc5-9dbc3d9db301}"/>
  </Record>
  <Form gridHeight="45" gridWidth="257" name="apmq380" text="apmq380">
    <VBox gridHeight="45" gridWidth="256" name="VBox3" posX="1" posY="0">
      <Group gridHeight="12" gridWidth="256" name="ins" posX="0" posY="1" text="ins">
        <HBox gridHeight="3" gridWidth="120" name="HBox1" posX="2" posY="1">
          <Grid gridHeight="3" gridWidth="41" name="Grid5" posX="2" posY="0">
            <Label posX="4" posY="0" text="poz01"/>
            <ButtonEdit action="controlp" aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" case="none" colName="" columnCount="" comment="poz01" fieldId="1" gridHeight="1" gridWidth="27" image="zoom" name="poz01" noEntry="true" notNull="true" posX="11" posY="0" required="true" rowCount="" sqlTabName="" sqlType="VARCHAR" stepX="" stepY="" tabIndex="1" table_alias_name="" title="ButtonEdit1" verify="true" widget="ButtonEdit"/>
            <Label posX="4" posY="1" text="poy11"/>
            <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" comment="poy11" fieldId="13" gridHeight="1" gridWidth="27" name="poy11" posX="11" posY="1" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="Edit1" widget="Edit"/>
          </Grid>
          <Grid gridHeight="3" gridWidth="38" name="Grid4" posX="43" posY="0">
            <Label posX="2" posY="0" text="poz011"/>
            <ComboBox aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" comment="poz011" fieldId="14" gridHeight="1" gridWidth="27" items="正抛, 逆抛" name="poz011" posX="9" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="4" table_alias_name="" title="Edit1" widget="ComboBox">
              <Item lstrtext="false" name="1" text="正抛"/>
              <Item lstrtext="true" name="2" text="逆抛"/>
            </ComboBox>
            <Label posX="2" posY="1" text="imd02"/>
            <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" comment="imd02" fieldId="15" gridHeight="1" gridWidth="27" name="imd02" posX="9" posY="1" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="Edit1" widget="Edit"/>
          </Grid>
          <Grid gridHeight="3" gridWidth="37" name="Grid3" posX="81" posY="0">
            <Label posX="1" posY="0" text="poy04"/>
            <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" comment="poy04" fieldId="16" gridHeight="1" gridWidth="27" name="poy04" posX="8" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="Edit1" widget="Edit"/>
          </Grid>
        </HBox>
      </Group>
      <Group gridHeight="21" gridWidth="256" name="Group3" posX="0" posY="13" text="Group3">
        <Folder gridHeight="19" gridWidth="249" name="Folder1" posX="6" posY="1">
          <Page name="Page1" text="Page1">
            <VBox gridHeight="17" gridWidth="238" name="VBox1" posX="1" posY="0">
              <Table comment="s_table" gridHeight="10" gridWidth="238" name="s_table" posX="0" posY="1" totalRows="5">
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="4" gridHeight="1" gridWidth="19" name="oea01" posX="0" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="oea01" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="6" gridHeight="1" gridWidth="13" name="oea02" posX="19" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="oea02" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="7" gridHeight="1" gridWidth="9" justify="center" name="oeb03" posX="32" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="oeb03" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="8" gridHeight="1" gridWidth="14" justify="left" name="img01" posX="41" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="img01" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="9" gridHeight="1" gridWidth="27" justify="center" name="ima02" posX="55" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="ima02" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="10" gridHeight="1" gridWidth="36" name="ima021" posX="82" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="ima021" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="11" gridHeight="1" gridWidth="9" justify="right" name="img09" posX="118" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="img09" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="12" gridHeight="1" gridWidth="15" name="img10" posX="127" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="img10" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="17" gridHeight="1" gridWidth="16" name="oeb12" posX="142" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="oeb12" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="18" gridHeight="1" gridWidth="16" name="ogb12" posX="158" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="ogb12" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="19" gridHeight="1" gridWidth="16" name="d" posX="174" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="5" table_alias_name="" title="d" widget="Edit"/>
              </Table>
              <Grid fontPitch="variable" gridHeight="5" gridWidth="238" name="Grid1" posX="0" posY="11">
                <HLine gridWidth="10" name="hl3" posX="3" posY="0"/>
                <Label posX="13" posY="0" text="cn1"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" comment="cn1" fieldId="5" gridHeight="1" gridWidth="6" justify="right" name="cn1" posX="18" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="6" table_alias_name="" title="Edit1" widget="Edit"/>
              </Grid>
            </VBox>
          </Page>
          <Page name="Page2" text="Page2">
            <VBox gridHeight="17" gridWidth="241" name="VBox2" posX="2" posY="0">
              <Table comment="s_table_no" gridHeight="10" gridWidth="241" name="s_table_no" posX="0" posY="1" totalRows="5">
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="img01" columnCount="" fieldId="21" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="30" name="img_file.img01" notNull="true" posX="0" posY="0" rowCount="" scroll="true" sqlTabName="img_file" sqlType="VARCHAR" stepX="" stepY="" tabIndex="8" table_alias_name="" title="img01" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="ima02" columnCount="" fieldId="24" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="30" name="ima_file.ima02" posX="30" posY="0" rowCount="" scroll="true" sqlTabName="ima_file" sqlType="VARCHAR" stepX="" stepY="" tabIndex="12" table_alias_name="" title="ima02" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="ima021" columnCount="" fieldId="26" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="30" name="ima_file.ima021" posX="60" posY="0" rowCount="" scroll="true" sqlTabName="ima_file" sqlType="VARCHAR" stepX="" stepY="" tabIndex="11" table_alias_name="" title="ima021" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="img09" columnCount="" fieldId="22" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="18" name="img_file.img09" posX="90" posY="0" rowCount="" scroll="true" sqlTabName="img_file" sqlType="VARCHAR" stepX="" stepY="" tabIndex="9" table_alias_name="" title="img09" widget="Edit"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="img10" columnCount="" fieldId="23" fieldType="TABLE_COLUMN" gridHeight="1" gridWidth="17" name="img_file.img10" notNull="true" posX="108" posY="0" precisionDecimal="15" rowCount="" scaleDecimal="3" scroll="true" sqlTabName="img_file" sqlType="DECIMAL" stepX="" stepY="" tabIndex="10" table_alias_name="" title="img10" widget="Edit"/>
              </Table>
              <Grid fontPitch="variable" gridHeight="5" gridWidth="241" name="Grid2" posX="0" posY="11">
                <HLine gridWidth="10" name="hl4" posX="3" posY="0"/>
                <Label posX="13" posY="0" text="cn3"/>
                <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" comment="cn3" fieldId="20" gridHeight="1" gridWidth="6" justify="right" name="cn3" posX="18" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="7" table_alias_name="" title="Edit1" widget="Edit"/>
              </Grid>
            </VBox>
          </Page>
        </Folder>
      </Group>
      <HBox gridHeight="10" gridWidth="256" name="HBox2" posX="0" posY="34">
        <Grid gridHeight="10" gridWidth="125" name="Grid6" posX="2" posY="0">
          <HLine gridWidth="10" name="hl1" posX="3" posY="0"/>
          <Label posX="13" posY="0" text="cnt"/>
          <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" fieldId="2" gridHeight="1" gridWidth="6" name="cnt" posX="18" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="2" table_alias_name="" title="Edit1" widget="Edit"/>
        </Grid>
        <Grid gridHeight="10" gridWidth="127" name="Grid7" posX="127" posY="0">
          <HLine gridWidth="10" name="hl2" posX="4" posY="0"/>
          <Label posX="15" posY="0" text="cn2"/>
          <Edit aggregateColName="" aggregateName="" aggregateTableAliasName="" aggregateTableName="" colName="" columnCount="" comment="cn2" fieldId="3" gridHeight="1" gridWidth="6" justify="right" name="cn2" posX="20" posY="0" rowCount="" sqlTabName="" stepX="" stepY="" tabIndex="2" table_alias_name="" title="Edit1" widget="Edit"/>
        </Grid>
      </HBox>
    </VBox>
  </Form>
  <DiagramLayout>
    <![CDATA[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]]>
  </DiagramLayout>
</ManagedForm>
4gl
  • 在q_per添加开窗查询:q_oea904 。参考:03.01.03.组件篇(4fd+4gl 新增:查询+输入框 界面化方式)

  • 代码:cxmq380.4gl

# Prog. Version..: '5.00.03-2023.11.16(00000)'
# Pattern name...: cxmq380.4gl
# Descriptions...: 多角订单出货未交明细查询
# Author..: DKLi
# Date: 2023.11.17
DATABASE ds
GLOBALS "../../config/top.global"

# 4gl变量
DEFINE g_curs_index          LIKE type_file.num10
DEFINE g_row_count           LIKE type_file.num10
DEFINE g_table_count         LIKE type_file.num10
DEFINE g_table_no_count      LIKE type_file.num10
DEFINE g_msg                 LIKE ze_file.ze03
DEFINE g_table     DYNAMIC ARRAY OF RECORD
                     oea01   LIKE oea_file.oea01,
                     oea02   LIKE oea_file.oea02,
                     oeb03   LIKE oeb_file.oeb03,
                     img01   LIKE img_file.img01,
                     ima02   LIKE ima_file.ima02,
                     ima021  LIKE ima_file.ima021,
                     img09   LIKE img_file.img09,
                     img10   LIKE img_file.img10,
                     oeb12   LIKE oeb_file.oeb12,
                     ogb12   LIKE ogb_file.ogb12,
                     d       LIKE ogb_file.ogb12
                  END RECORD
DEFINE g_table_no DYNAMIC ARRAY OF RECORD
                     img01   LIKE img_file.img01,
                     ima02   LIKE ima_file.ima02,
                     ima021  LIKE ima_file.ima021,
                     img09   LIKE img_file.img09,
                     img10   LIKE img_file.img10
                  END RECORD
DEFINE g_rows     RECORD
                     poz01   LIKE poz_file.poz01,
                     poz011  LIKE poz_file.poz011,
                     poy04   LIKE poy_file.poy04,
                     poy11   LIKE poy_file.poy11,
                     imd02   LIKE imd_file.imd02
                  END RECORD

# 4fd的变量
DEFINE tm       RECORD
                    wc   string
                END RECORD

# Pattern name...: MAIN
# Descriptions...: 主函数
MAIN
  # 定義局域變量,本文函數可以用
  DEFINE p_row,p_col     LIKE type_file.num5

  LET p_row     = ARG_VAL(1)
  LET p_col     = ARG_VAL(2)
  LET tm.wc   = ARG_VAL(3)

  # 改變一些系統缺省值
  OPTIONS
      FORM LINE     FIRST + 2,               #畫面開始的位置
      MESSAGE LINE  LAST,                    #訊息顯示的位置
      PROMPT LINE   LAST,                    #提示訊息的位置
      INPUT NO WRAP                          #輸入的方式: 不打轉
  DEFER INTERRUPT                            #擷取中斷鍵

  # cl_user( ) 主要在抓取系統中與『個人設定』
  IF (NOT cl_user()) THEN
    EXIT PROGRAM
  END IF

  # 當發生 SQL 錯誤時,系統會CALL cl_err_msg_log( )
  WHENEVER ERROR CALL cl_err_msg_log

  # cl_setup( ) 主要在抓取系統中與『模組設定』相關的變數值資料,
  # 如這個模組所必需的全域變數等等
  IF (NOT cl_setup("CXM")) THEN
    EXIT PROGRAM
  END IF

  CALL  cl_used(g_prog,g_time,1) RETURNING g_time   -- 計算使用時間 (進入時間)

  # 打開窗口
  LET p_row = 5 LET p_col = 10  -- 給變量賦值
  OPEN WINDOW q380_w AT p_row,p_col WITH FORM "cxm/42f/cxmq380"
    ATTRIBUTE (STYLE = g_win_style CLIPPED)
    CALL cl_ui_init()     -- 初始化程序設定 
    CALL q380_menu()  -- 調用q380_menu函數
  CLOSE WINDOW q380_w

  CALL  cl_used(g_prog,g_time,2) RETURNING g_time    -- 計算使用時間 (退出時間)

END MAIN

# Pattern name...: q380_menu()
# Descriptions...:画面的ToolBar的设置函数
FUNCTION q380_menu()
    # ToolBar的設置
    MENU ""
        BEFORE MENU
          CALL cl_navigator_setting(g_curs_index, g_row_count)  -- 重新設定TOOLBAR上的『上筆、跳筆、下筆』等五個按鍵是否可用 / 不可用。
        ON ACTION query -- 查询按钮
         CALL q380_s()
        ON IDLE g_idle_seconds 
          CALL cl_on_idle() 
          CONTINUE MENU
        ON ACTION first -- 第一笔按钮
         CALL paging_fetch('F')
        ON ACTION previous --上笔
         CALL paging_fetch('P')
        ON ACTION jump --指定笔
         CALL paging_fetch('/')
        ON ACTION next --下笔
         CALL paging_fetch('N')
        ON ACTION last -- 末一笔
         CALL paging_fetch('L')
      
        ON ACTION locale --语言按钮
          CALL cl_dynamic_locale() #切换
          CALL cl_show_fld_cont() #显示
        ON ACTION help --帮助/说明按钮
          CALL cl_show_help()
        ON ACTION about --程式咨询按钮
          CALL cl_about()
        ON ACTION controlg --程式切换
          CALL cl_cmdask() 
        ON ACTION exit   -- 離開按鈕
          LET INT_FLAG = FALSE
          EXIT MENU
        ON ACTION close -- 窗口右上角x按钮
          LET INT_FLAG=FALSE
          EXIT MENU
    END MENU
END FUNCTION

# Pattern name...: q380_q()
# Descriptions...: 获取4fd传来的数据
FUNCTION q380_s()

   INITIALIZE tm.wc TO NULL
   CALL q380_set_entry("q")

   CONSTRUCT BY NAME tm.wc ON poz01
      BEFORE CONSTRUCT
         CALL cl_qbe_init()
      ON ACTION CONTROLP
         CASE
            WHEN INFIELD(poz01)
               CALL cl_init_qry_var()
               LET g_qryparam.state = 'c'
                  LET g_qryparam.form = "q_poz01"
               CALL cl_create_qry() RETURNING g_qryparam.multiret
               DISPLAY g_qryparam.multiret TO poz01
               NEXT FIELD poz01
         OTHERWISE EXIT CASE
         END CASE
      ON ACTION locale
         CALL cl_dynamic_locale()
         CALL cl_show_fld_cont()
         EXIT CONSTRUCT
      ON IDLE g_idle_seconds
         CALL cl_on_idle()
         CONTINUE CONSTRUCT
      ON ACTION about
         CALL cl_about()
      ON ACTION controlg
         CALL cl_cmdask()
      ON ACTION help
         CALL cl_show_help()
   END CONSTRUCT

   CALL q380_q()

END FUNCTION


# Pattern name...: q380_set_entry(p_cmd)
# Descriptions...: 设置输入框可以编辑
FUNCTION q380_set_entry(p_cmd)
   DEFINE p_cmd LIKE type_file.chr1
   IF p_cmd = 'q' THEN
        CALL cl_set_comp_entry("poz01",TRUE)
   END IF
END FUNCTION

# Pattern name...: q380_q()
# Descriptions...: 根据4fd输入的信息,查询后台数据
FUNCTION q380_q()
   DEFINE l_sql                 string
   
   INITIALIZE g_rows.* TO NULL
   LET l_sql ="SELECT poz01,poz011,a.poy04,a.poy11,imd02 ",
              "FROM POZ_FILE ",
              "INNER JOIN  (SELECT poy01,poy04,poy11,MAX(poy02) ",
              "             FROM POY_FILE ",
              "             WHERE poy11 IS NOT NULL ",
              "               AND LOWER(poy04) ='",g_dbs CLIPPED,"' ",
              "             GROUP BY poy01,poy04,poy11) a ON a.poy01=poz01 ",
              "LEFT JOIN IMD_FILE ON imd01=a.poy11 ",
              "WHERE ",tm.wc CLIPPED,
              " AND pozacti='Y' ",
              " AND poz011='2'  ",
              " AND poz01 NOT IN (SELECT DISTINCT poy01 ",
              "                   FROM POY_FILE ",
              "                   WHERE poy02='99') ",
              "GROUP BY poz01,poz011,a.poy04,a.poy11,imd02 "


   PREPARE q380_prepare FROM l_sql
   DECLARE q380_paging SCROLL CURSOR WITH HOLD FOR q380_prepare

   LET g_row_count = 0
   LET g_curs_index=1
   FOREACH q380_paging INTO g_rows.*
      IF cl_null (g_rows.poz01)  THEN
         CONTINUE FOREACH
      END IF
      LET g_row_count = g_row_count + 1
   END FOREACH


    OPEN q380_paging
        IF SQLCA.sqlcode THEN
            CALL cl_err('',SQLCA.sqlcode,0)
            INITIALIZE tm.wc TO NULL
        ELSE
            CALL paging_fetch('F')
        END IF

END FUNCTION


# Pattern name...: q380_show()
# Descriptions...: 將數據顯示到畫面
FUNCTION q380_show()
  DEFINE cnt,cnt_no INTEGER
  # 单头
  DISPLAY g_rows.* TO FORMONLY.poz01,
                      FORMONLY.poz011,
                      FORMONLY.poy04,
                      FORMONLY.poy11,
                      FORMONLY.imd02
    #单尾
  DISPLAY g_row_count TO FORMONLY.cn2
  DISPLAY g_curs_index TO FORMONLY.cnt
  DISPLAY g_table_count TO FORMONLY.cn1
  DISPLAY g_table_no_count TO FORMONLY.cn3
  #单身
  CALL cl_set_act_visible("accept,cancel", FALSE)
  DIALOG ATTRIBUTES(UNBUFFERED)
   DISPLAY ARRAY g_table TO s_table.* 
         ATTRIBUTES(COUNT=g_table_count)
         BEFORE DISPLAY
            CALL cl_navigator_setting( g_curs_index, g_row_count )
            EXIT DIALOG
         BEFORE ROW
            LET cnt = ARR_CURR()
            CALL cl_show_fld_cont()
          ON ACTION query -- 查询按钮
             CALL q380_s()
         ON ACTION locale
            CALL cl_dynamic_locale()
            CALL cl_show_fld_cont()
            EXIT DIALOG
         ON IDLE g_idle_seconds
            CALL cl_on_idle()
            CONTINUE DIALOG
         ON ACTION about
            CALL cl_about()
         ON ACTION controlg
            CALL cl_cmdask()
         ON ACTION help
             CALL cl_show_help()
         ON ACTION first -- 第一笔按钮
            CALL paging_fetch('F')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION previous --上笔
            CALL paging_fetch('P')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION jump --指定笔
            CALL paging_fetch('/')
            ACCEPT DIALOG
               EXIT DIALOG 
         ON ACTION next --下笔
            CALL paging_fetch('N')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION last -- 末一笔
            CALL paging_fetch('L')
            ACCEPT DIALOG
               EXIT DIALOG 
         AFTER DISPLAY
            EXIT DIALOG
   END DISPLAY

   DISPLAY ARRAY g_table_no TO s_table_no.* 
         ATTRIBUTES(COUNT=g_table_no_count)
         BEFORE DISPLAY
            CALL cl_navigator_setting( g_curs_index, g_row_count )
            EXIT DIALOG
         BEFORE ROW
            LET cnt_no = ARR_CURR()
            CALL cl_show_fld_cont()
         ON ACTION query -- 查询按钮
             CALL q380_s()
         ON ACTION locale
            CALL cl_dynamic_locale()
            CALL cl_show_fld_cont()
            EXIT DIALOG
         ON IDLE g_idle_seconds
            CALL cl_on_idle()
            CONTINUE DIALOG
         ON ACTION about
            CALL cl_about()
         ON ACTION controlg
            CALL cl_cmdask()
         ON ACTION help
             CALL cl_show_help()
         ON ACTION first -- 第一笔按钮
            CALL paging_fetch('F')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION previous --上笔
            CALL paging_fetch('P')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION jump --指定笔
            CALL paging_fetch('/')
            ACCEPT DIALOG
               EXIT DIALOG 
         ON ACTION next --下笔
            CALL paging_fetch('N')
            ACCEPT DIALOG
               EXIT DIALOG
         ON ACTION last -- 末一笔
            CALL paging_fetch('L')
            ACCEPT DIALOG
               EXIT DIALOG 
         AFTER DISPLAY
            EXIT DIALOG
   END DISPLAY
 END DIALOG
 CALL cl_set_act_visible("accept,cancel", TRUE)
 
END FUNCTION

# Pattern name...: paging_fetch(p_flag)
# Descriptions...: 分页显示
FUNCTION paging_fetch(p_flag)
   DEFINE p_flag          LIKE type_file.chr1
   DEFINE l_abso          LIKE type_file.num10

    CASE p_flag
      WHEN 'F' 
        LET g_curs_index = 1 
        FETCH FIRST q380_paging INTO g_rows.*
      WHEN 'N'
        LET g_curs_index = g_curs_index + 1 
        FETCH NEXT q380_paging INTO g_rows.*
      WHEN 'P' 
        LET g_curs_index = g_curs_index - 1
        FETCH PREVIOUS q380_paging INTO g_rows.*
      WHEN 'L' 
        LET g_curs_index = g_row_count
        FETCH LAST q380_paging INTO g_rows.*
      WHEN '/'
        CALL cl_getmsg('fetch',g_lang) RETURNING g_msg
        LET INT_FLAG = FALSE
        PROMPT g_msg CLIPPED,': ' FOR l_abso 
            ON IDLE g_idle_seconds
            CALL cl_on_idle()
        END PROMPT
        IF INT_FLAG THEN
            LET INT_FLAG = 0
            EXIT CASE
        END IF

        LET g_curs_index =l_abso
        IF g_row_count <l_abso THEN
         LET g_curs_index =g_row_count
        END IF
        FETCH ABSOLUTE l_abso q380_paging INTO g_rows.*
   END CASE

   IF g_row_count != 0 THEN
         CALL fgl_set_arr_curr(1)
   END IF
   CALL cl_navigator_setting(g_curs_index, g_row_count)
   CALL q380_pq()
   CALL q380_no_pq()
   CALL q380_show()
END FUNCTION


# Pattern name...: q380_pq()
# Descriptions...: 有订单单身数据明细
FUNCTION q380_pq()
   DEFINE l_sql                 string
   CALL g_table.clear()
   LET l_sql ="SELECT oea01,oea02,oeb03,img01,ima02,ima021,img09, ",
              "       sum(img10) img10,NVL(oeb12,0) oeb12,NVL(ogb12,0) ogb12,NVL(oeb12-ogb12,0) d ",
              "FROM IMG_FILE ",
              "INNER JOIN IMA_FILE ON ima01=img01 ",
              "LEFT JOIN (SELECT oea01,oea02,oeb03,oeb04,oeb05,sum(oeb12) oeb12,sum(ogb12) ogb12 ",
              "           FROM OEA_FILE ",
              "           INNER JOIN OEB_FILE ON oea01=oeb01 ",
              "           LEFT JOIN OGB_FILE ON ogb31=oeb01 ",
              "                              AND ogb32=oeb03 ",
              "                              AND ogb05=oeb05 ",
              "           INNER JOIN OGA_FILE ON oga01=ogb01 ",
              "                               AND ogaconf ='Y' ",
              "                               AND oga55='1' ",
              "           WHERE oeaconf = 'Y' ",
              "              AND oea11 IN ('6','7') ",
              "              AND oea49 ='1' ",
              "              AND oea904= '",g_rows.poz01 CLIPPED,"' ",
              "           GROUP BY oea01,oea02,oeb03,oeb04,oeb05 ",
              "           HAVING sum(oeb12)>sum(ogb12) ",
              "           ) a ON a.oeb04=ima01 AND a.oeb05=img09 ",
              "WHERE img02 ='",g_rows.poy11 CLIPPED,"' ",
              "  AND oea01 IS NOT NULL ",
              "GROUP BY oea01,oea02,oeb03,img01,ima02,ima021,img09,oeb12,ogb12 ",
              "ORDER BY img01,oea02,oea01,oeb03"

   PREPARE q380pq_prepare FROM l_sql
   DECLARE q380pq_cs CURSOR FOR q380pq_prepare
   LET g_table_count = 1
   FOREACH q380pq_cs INTO g_table[g_table_count].*
      IF SQLCA.sqlcode THEN
           CALL cl_err('Foreach:',SQLCA.sqlcode,1)
         EXIT FOREACH
      END IF
      LET g_table_count = g_table_count + 1
   END FOREACH
   CALL g_table.deleteElement(g_table_count)
   LET g_table_count=g_table_count-1

END FUNCTION


# Pattern name...: q380_no_pq()
# Descriptions...: 无订单单身数据明细
FUNCTION q380_no_pq()
   DEFINE l_sql                 string
   CALL g_table_no.clear()
   LET l_sql ="SELECT img01,ima02,ima021,img09,sum(img10) img10 ",
              "FROM IMG_FILE ",
              "INNER JOIN IMA_FILE ON ima01=img01 ",
              "LEFT JOIN (SELECT oea01,oeb04,oeb05 ",
              "           FROM OEA_FILE ",
              "           INNER JOIN OEB_FILE ON oea01=oeb01 ",
              "           WHERE oeaconf = 'Y' ",
              "              AND oea11 IN ('6','7') ",
              "              AND oea49 ='1' ",
              "              AND oea904= '",g_rows.poz01 CLIPPED,"' ",
              "           GROUP BY oea01,oeb04,oeb05 ",
              "           ) a ON a.oeb04=ima01 AND a.oeb05=img09 ",
              "WHERE img02 ='",g_rows.poy11 CLIPPED,"' ",
              "  AND oea01 IS NULL ",
              "GROUP BY img01,ima02,ima021,img09 ",
              " HAVING sum(img10)>0 ",
              "ORDER BY img01 "

   PREPARE q380pq_prepare1 FROM l_sql
   DECLARE q380pq_cs1 CURSOR FOR q380pq_prepare1
   LET g_table_no_count = 1
   FOREACH q380pq_cs1 INTO  g_table_no[g_table_no_count].*
      IF SQLCA.sqlcode THEN
           CALL cl_err('Foreach:',SQLCA.sqlcode,1)
         EXIT FOREACH
      END IF
      LET g_table_no_count = g_table_no_count + 1
   END FOREACH
   CALL g_table_no.deleteElement(g_table_no_count)
   LET g_table_no_count=g_table_no_count-1
END FUNCTION


测试

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

DKLi1717

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值