Kategorie szkoleń | Egzaminy | Kontakt
  • 1
  • 0
  • 1

Dzień dobry.

po szkoleniu z Power Bi wiem, ze jest mozliwość otwarcia przez tę aplikację pliku .xml. Moje pytanie jest następujące, czy znają Państwo sposób, aby taki plik został ładnie wyeksponowany?

Moje pytanie oparte jest na potrzebie stworzenia jak najlepszego obrazu faktury na bazie pliku .xml właśnie. zwyczajowo plik z tym rozszerzeniem otwiera się w notatniku w mało czytelnej formie. jak do tej pory najlepszym sposobem jaki znalazłam, jest "przeciągniecie"pliku do otwartej wyszukiwarki Google, która umiarkowanie ładnie dzieli wiersze. w załączeniu przykładowy plik .xml oraz obraz jaki "wypluwa" Google. Czy jest szansa, aby przy pomocy Power Bi stworzyć jeszcze lepszy obraz?

Załączniki

  • xml

    5851701.xml ( 11K )
  • png

    5851701.png ( 131K )
Julia_Boruta
  • Zapytał
  • @ Julia_Boruta | 13.12.2019
    • 0
    • 0
    • 0

Odpowiedź (1)

  • 0

Najlepszym sposobem jest otwarcie pliku przez PowerQuery i albo ręczna eksploracja do pożądanego elementu (najlepiej równolegle otworzyć plik w notatniku - ale bardziej zaawansowanym, typu Notepad++ - i klikać na tabele według drzewka hierarchii xlm, żeby dostać się do kolejnych elementów), albo zaprzyjaźnienie się z językiem M. :)

let
    Źródło = Xml.Tables(File.Contents("C:\Users\janiamir\Desktop\5851701.xml")),
    SetDTE = Źródło{0}[SetDTE],
    DTE = SetDTE{0}[DTE],
    Documento = DTE{0}[Documento],
    Encabezado = Table.Buffer(Documento{0}[Encabezado]),
    pobierz = (grupa as text, kolumny as list) => Table.UnpivotOtherColumns(Table.SelectColumns(Record.Field(Table.SelectColumns(Encabezado, {grupa}){0}, grupa), kolumny), {}, "Atrybut", "Wartość") 
    IdDoc = pobierz("IdDoc", {"Folio", "FchEmis"}),
    Emisor = pobierz("Emisor", {"RznSoc"}),
    Receptor = pobierz("Receptor", {"RznSocRecep"}),
    Totales = pobierz("Totales", {"MntNeto","MntExe","IVA","MntTotal","VlrPagar"}),
    #"Dołączone zapytanie" = Table.Combine({IdDoc, Emisor, Receptor, Totales})
in
    #"Dołączone zapytanie"

W skrócie: najpierw dotarłem do gałęzi "Encabezado", która jest "rodzicem" dla wszystkich elementów, które chcesz wyciągnąć, a później napisałem funkcję, która pobiera z niej odpowiednią odnogę (podaną jako pierwszy atrybut funkcji) i wybrane elementy (wpisane jako lista, w nawiasie klamrowym). Funkcja może wygląda trochę zawile, ale w zasadzie to tylko zwykłe przechodzenie do podrzędnych elementów drzewka, o którym wspomniałem na początku. :)

 
Mirosław_Janiak
  • Odpowiedział
  • @ Mirosław_Janiak | 13.12.2019
    • 1
    • 7
    • 1