Projekat

Općenito

Profil

Akcije

Podrška #27089

Zatvoren

Numerička i datumska polja i semafori: rješenje

Dodano od Ernad Husremović prije oko 13 godina. Izmjenjeno prije oko 13 godina.

Status:
Zatvoreno
Prioritet:
Odmah riješiti
Odgovorna osoba:
Saša Vranić
Početak:
13.03.2012
Završetak:
% završeno:

100%

Procjena vremena:

Povezani tiketi 1 (0 otvoreno1 zatvoren)

korelira sa F18 - Podrška #27077: F18 modul POS, stavljanje u funkcijuZatvorenoSaša Vranić13.03.2012

Akcije
Akcije #1

Izmjenjeno od Ernad Husremović prije oko 13 godina

nema nikakve potrebe da mijenjamo algoritam semafora da bi numerička i datumska polja ubacitli u postojeći algoritam semafora.

Akcije #2

Izmjenjeno od Ernad Husremović prije oko 13 godina

ako imamo polje koje je indeksirano po numeričkoj vrijednosti IDNUM

i postojeći indeks je

index on idnum tag "ID" 

sve što treba jeste da promjenimo logiku indeksa ... ili da ne čačkamo (ako se već indeks koristi) uvodimo polje

index on STR(IDNUM, 13) TAG "ID_SEM" 

ID_SEM tag ćemo koristiti za sinhronizaciju podataka. On će biti indeksiran po stringu.

Akcije #3

Izmjenjeno od Ernad Husremović prije oko 13 godina

idugov

index on DATUG to tag "DATUG"

uvodimo novi indeks:

index on DTOS to tag "DATUG_SEM"

DATUG_SEM koristimo kao indeks za semafore

Akcije #4

Izmjenjeno od Ernad Husremović prije oko 13 godina

serverska strana

http://redmine.bring.out.ba/issues/27077#note-13

u sql where stavljamo: to_char( datug, 'YYYYMMDD')

Akcije #5

Izmjenjeno od Ernad Husremović prije oko 13 godina

rezime

semafori traže da postiji dbf indeks koji sadrži izraz pohranjen u ključu.

Uvođenje novog indeksa za potrebe semafora u dbf je "bezbolna" i jednostavna operacija.

Uvođenje to_char na sql strani takođe nije problematično.

Time se sva logika semafora svodi na identifikatore koji su string polja.

Akcije #6

Izmjenjeno od Ernad Husremović prije oko 13 godina

  • Naslov promijenjeno iz Numerička i datumska polja u semaforima, rješenje u Numerička i datumska polja i semafori: rješenje
Akcije #7

Izmjenjeno od Saša Vranić prije oko 13 godina

Mislim da ovdje nije problem u samom kluču koliko je u formiranju sql izraza

Naime, u a_dbfs matrici definišemo ključna polja za insert/update

{ "id", "datum", "naz", ... }

ta se polja na kraju koriste kod formiranja del/ins sklopa

ovdje

Akcije #8

Izmjenjeno od Saša Vranić prije oko 13 godina

praktično tu treba napraviti manipulaciju sa datumskom varijablom, da je konvertuje u DTOS

Akcije #9

Izmjenjeno od Saša Vranić prije oko 13 godina

To je dio gdje se IDS zapisi dodaju

Akcije #10

Izmjenjeno od Ernad Husremović prije oko 13 godina

da.

kod numeričkih polja smo rekli

{ "num_polje", 5 } => STR(num_polje, 5)

stavićemo ovako za datumska polja

{ "dat_polje", 100 } => DTOS(dat_polje)
if VALTYPE( _field ) == "A" 
        _t_field := _field[1]
        _t_field_dec := _field[2]

        _values_dbf[_t_field] := EVAL(FIELDBLOCK(_t_field))
        if _values_dbf[_t_field] != values[ _t_field ]
            _changed_id := .t.
        endif

        if _t_field_dec > 99
            // ovo je datumsko polje
            _full_id_dbf += DTOS(_values_dbf[ _t_field ])
            _full_id_mem += DTOS( values[ _t_field ])
        else
           // num polj
           _full_id_dbf += STR(_values_dbf[ _t_field ], _t_field_dec)
            _full_id_mem += STR( values[ _t_field ], _t_field_dec )
       endif

else   
       ... obična karakter polja
endif
Akcije #11

Izmjenjeno od Ernad Husremović prije oko 13 godina

dodaj ovo u kod semafora.

Hmm ova sekvenca koda se pojavljuje na još par mjesta mislim ... uradi isto kao ovdje

Akcije #12

Izmjenjeno od Saša Vranić prije oko 13 godina

A ja sam već ispravio ovako

Akcije #13

Izmjenjeno od Saša Vranić prije oko 13 godina

jednostavno ispitujem ne osnovu vrijednosti tog polja o čemu se radi

Akcije #14

Izmjenjeno od Ernad Husremović prije oko 13 godina

aha dole. tvoje rješenje je bolje. to je to

gADBFS se ne zadaje kao matrica onda.

Akcije #15

Izmjenjeno od Saša Vranić prije oko 13 godina

tako da nema potrebe mjenjati strukturu matrice, praktično nam je to potrebno samo kod numeričkih vrijednosti radi toga da znamo koliko će biti decimala

Akcije #16

Izmjenjeno od Saša Vranić prije oko 13 godina

Sada na POS-u ažuriranje radi

Akcije #17

Izmjenjeno od Saša Vranić prije oko 13 godina

Sada još samo da ispitam sklop semafora i ids-ova kod kupljenja podataka da li će biti dobro

Akcije #18

Izmjenjeno od Saša Vranić prije oko 13 godina

  • Status promijenjeno iz Dodijeljeno u Zatvoreno
  • % završeno promijenjeno iz 0 u 100
Akcije

Također dostupno kao Atom PDF