---
# System prepended metadata

title: 前端

---

# 前端
:::danger
常用語法
:::
```
//html
(afterViewInit)="formManagementAfterViewInit()"
[disabled]="true"
(focus)="Check_ACNOCD()"
(systexBeforeBlur)="Validate_SVTYPE()"
[alwaysRunBeforeBlurFunc]="true"

//ts
ECommon.SystexAlert(this.form, '「具有稅籍的居住國家或地區」請放置正確');
disabledDefaultTransactionCompletedEvent: true;
this.form.formControl(Ids.GURTYPE).setValue('');
this.form.setProperty(Ids.LONID, 'disabled', true);
import { ECommon } from '@systex/platform/core'
ECommon.setfocusto(this.form,'id')
```
:::warning
單畫面
:::
```
//單畫面start
//html
(dataChange)="onFormDataChange($event.detail)"

//ts
AfterViewInit{
  private _form: FormGroup;
  private _formData: H37443I1;
  screenID: string;
  disabledResult = true;
  @ViewChild('form', { static: true }) formElementRef: ElementRef;
  get form() {
    return this.formElementRef.nativeElement as SystexFormManagementElement;
  }
  
ngOnInit() {
    this.screenID = `${this.transaction}I1`;
  }
ngAfterViewInit() {
    this.updateContainerConfig({
      buttonConfigs: [
        {
          id: 'confirm',
          clickListener: () => {
            if (this.disabledResult === true) {
              if (this.button1_onclick()) {
                this.transactionCompleted.emit({
                  data: new H37443I1Tita(this._formData),
                  titaHeaderPatch: {
                    TxnCode: 'H37443',
                    MsgID: `H37443I1ViewModel`
                  }
                });
              }
            } else {
              this.callQueryH87163();
            }
          }
        }
      ]
    });
  }
  
  onFormDataChange(change: any) {
    setTimeout(() => {
      if (!this._form && change.formGroup) {
        this._form = change.formGroup;
      }
      this._formData = { ...change.formGroup.value };
    }, 0);
  }
  callQueryH87163() {
    const LONID = this.form.formControl(Ids.LONID).value;
    const LONNO = this.form.formControl(Ids.LONNO).value;
    const APPDAY = this.form.formControl(Ids.CONSAPDATE).value;
    this.getcallQueryData(LONID, LONNO, APPDAY).subscribe(response => {
      const data = response.TotaBody[0];
      this.form.formControl(Ids.MAXFANCODE).setValue(data[Ids.MAXFANCODE]);
      this.form.formControl(Ids.GURTYPE).setValue(data[Ids.GURTYPE]);
      this.SCR_After2();
      this.disabledResult = true;
    });
  }
  private getcallQueryData(LONID: string, LONNO: string, APPDAY: string) {
    return this.submitCallQuery(
      {
        CallQueryTxnCode: 'H87163',
        MsgID: 'H87163I1ViewModel'
      },
      {
        LONID: LONID,
        LONNO: LONNO,
        APPDAY: APPDAY
      }
    );
  }
```
:::warning
多畫面
:::
```
//父層

//子層
//html
(afterViewInit)="formMangementAfterViewInit()"





//子層callquery start
//子
@Input() submitCallQuery: (
    titaHeaderPatch: CallQueryTitaHeader,
    titaBody: any,
    config?: {
      focusId?: string;
      focusIdWhenError?: string;
      disabledFocus?: boolean;
      requiredCheck?: string[];
    }
  ) => Observable<ApiResponse<any>>;
  
//父html
[submitCallQuery]="submitCallQuery"

//子層callquery end


```
:::info
直接給Tita值
:::
![](https://i.imgur.com/eYbuQIu.png)

:::info
身分證要加Edite Mask = A6
:::
:::info
setProperty
:::
![](https://i.imgur.com/w529Sku.png)
:::info
限制輸入
:::
```
Process_TXNCDE(event: any) {
    if (event.keyCode < 49 || event.keyCode > 55) {
      event.preventDefault();
      this.form.element<SystexInputElement>(`${event.srcElement}`).setFocus();
      event.keyCode = 0;
    }
  }
```
//HN7612

:::info
grid_focus_to_first_option
:::
![](https://i.imgur.com/hwDCLMM.png)
![](https://i.imgur.com/GePfYvv.png)
//H37444
```
 [focusEleId]="'SELITEM'"
 [id]="'SELITEM'"
```
:::info
grid tab
:::
GRID 畫面 選好資料 按TAB到確定按鈕
把 systex-grid 標籤 加上順序[systexTabIndex]=""
讓它成為最後一個順序
假如有個標籤 [systexTabIndex]="02" 是最後了
就給grid標籤 [systexTabIndex]="03'
有需要這樣的才做，有些GRID不需要 自行判斷
:::info
onfocus
:::
當要用onfocus時，請打(focus)

:::info
callquery完會focus在下一個表格，可以調設定
:::
![](https://i.imgur.com/ELOgQi3.png)

:::info
grid內需要資料編審的這樣寫
:::
![](https://i.imgur.com/JScbjNh.png)

:::    info
父層用子層Function
:::
```
import { TransactionsJ326i1i1Component } from './transactions-j326i1i1/transactions-j326i1i1.component';


@ViewChild(TransactionsJ326i1i1Component, { static: false })
  child: TransactionsJ326i1i1Component;
  
  
  
  if (this.child.button1_onclick()) {
          const OPTION_X = this.form1.OPTION_X;
          console.log('OPTION_X', OPTION_X);
          const CONFMK = this._formData.CONFM
          ..
          ...
          ....
          
```
:::info
callquery 解除預設focus
:::
```
private getcallQueryData(LONNO: string) {
    return this.submitCallQuery(
      {
        CallQueryTxnCode: 'H87101',
        MsgID: 'H87101I1ViewModel'
      },
      {
        LONNO: LONNO
      },{
        disabledFocus:true
      }
    );
  }
```
